Skip to content

Commit

Permalink
Merge pull request #608 from ucoProject/develop
Browse files Browse the repository at this point in the history
Issues 586, 590: Catch develop-2.0.0 up to develop
  • Loading branch information
plbt5 authored Jun 12, 2024
2 parents 980fbb5 + fde4cdd commit 51da525
Show file tree
Hide file tree
Showing 9 changed files with 151 additions and 0 deletions.
11 changes: 11 additions & 0 deletions ontology/uco/core/core.ttl
Original file line number Diff line number Diff line change
Expand Up @@ -377,6 +377,17 @@ core:UcoInherentCharacterizationThing
sh:targetClass core:UcoInherentCharacterizationThing ;
.

core:UcoInherentCharacterizationThing-disjointWith-UcoObject-shape
a sh:NodeShape ;
sh:message "observable:UcoInherentCharacterizationThing and observable:UcoObject are disjoint classes. Assigning both types to a single node will be an error in UCO 2.0.0."@en ;
sh:not [
a sh:NodeShape ;
sh:class core:UcoObject ;
] ;
sh:severity sh:Warning ;
sh:targetClass core:UcoInherentCharacterizationThing ;
.

core:UcoObject
a
owl:Class ,
Expand Down
8 changes: 8 additions & 0 deletions ontology/uco/observable/observable.ttl
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,14 @@ observable:AlternateDataStream
rdfs:subClassOf observable:ObservableObject ;
rdfs:label "AlternateDataStream"@en ;
rdfs:comment "An alternate data stream is data content stored within an NTFS file that is independent of the standard content stream of the file and is hidden from access by default NTFS file viewing mechanisms."@en ;
rdfs:seeAlso [
a sh:NodeShape ;
rdfs:comment "This anonymous shape is attached with rdfs:seeAlso in order to associate a warning-severity class constraint, that will only be necessary as an independent shape until UCO 2.0.0."@en ;
sh:class observable:FileSystemObject ;
sh:message "In UCO 2.0.0, uco-observable:AlternateDataStream will be a subclass of uco-observable:FileSystemObject. In preparation for UCO 2.0.0, the additional type uco-observable:FileSystemObject should be assigned to this node."@en ;
sh:severity sh:Warning ;
sh:targetClass observable:AlternateDataStream ;
] ;
sh:targetClass observable:AlternateDataStream ;
.

Expand Down
22 changes: 22 additions & 0 deletions ontology/uco/types/types.ttl
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,17 @@ types:Thread
] ;
.

types:Thread-disjointWith-co-List-shape
a sh:NodeShape ;
sh:message "types:Thread and co:List are disjoint classes. Assigning both types to a single node will be an error in UCO 2.0.0."@en ;
sh:not [
a sh:NodeShape ;
sh:class co:List ;
] ;
sh:severity sh:Warning ;
sh:targetClass types:Thread ;
.

types:ThreadItem
a
owl:Class ,
Expand All @@ -213,6 +224,17 @@ types:ThreadItem
] ;
.

types:ThreadItem-disjointWith-co-ListItem-shape
a sh:NodeShape ;
sh:message "types:ThreadItem and co:ListItem are disjoint classes. Assigning both types to a single node will be an error in UCO 2.0.0."@en ;
sh:not [
a sh:NodeShape ;
sh:class co:ListItem ;
] ;
sh:severity sh:Warning ;
sh:targetClass types:ThreadItem ;
.

types:entry
a owl:ObjectProperty ;
rdfs:label "entry"@en ;
Expand Down
4 changes: 4 additions & 0 deletions tests/examples/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,14 @@ all: \
action_inheritance_PASS_validation.ttl \
action_inheritance_XFAIL_validation.ttl \
action_result_PASS_validation.ttl \
alternate_data_stream_PASS_validation.ttl \
co_PASS_validation.ttl \
co_XFAIL_validation.ttl \
configuration_setting_PASS_validation.ttl \
configuration_setting_XFAIL_validation.ttl \
database_records_PASS_validation.ttl \
database_records_XFAIL_validation.ttl \
disjointedness_PASS_validation.ttl \
event_XFAIL_validation.ttl \
file_url_XFAIL_validation.ttl \
has_facet_inverse_functional_PASS_validation.ttl \
Expand Down Expand Up @@ -92,12 +94,14 @@ check: \
action_inheritance_PASS_validation.ttl \
action_inheritance_XFAIL_validation.ttl \
action_result_PASS_validation.ttl \
alternate_data_stream_PASS_validation.ttl \
co_PASS_validation.ttl \
co_XFAIL_validation.ttl \
configuration_setting_PASS_validation.ttl \
configuration_setting_XFAIL_validation.ttl \
database_records_PASS_validation.ttl \
database_records_XFAIL_validation.ttl \
disjointedness_PASS_validation.ttl \
event_XFAIL_validation.ttl \
file_url_XFAIL_validation.ttl \
has_facet_inverse_functional_PASS_validation.ttl \
Expand Down
21 changes: 21 additions & 0 deletions tests/examples/alternate_data_stream_PASS.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"@context": {
"kb": "http://example.org/kb/",
"observable": "https://ontology.unifiedcyberontology.org/uco/observable/",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#"
},
"@graph": [
{
"@id": "kb:AlternateDataStream-07b3c41a-080c-4916-8375-c18148763e13",
"@type": "observable:AlternateDataStream",
"rdfs:comment": "This node should trigger a sh:Warning from not being a observable:FileSystemObject"
},
{
"@id": "kb:AlternateDataStream-b2d4968b-4490-4b44-a56b-832058834454",
"@type": [
"observable:AlternateDataStream",
"observable:FileSystemObject"
]
}
]
}
28 changes: 28 additions & 0 deletions tests/examples/alternate_data_stream_PASS_validation.ttl
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
@prefix observable: <https://ontology.unifiedcyberontology.org/uco/observable/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[]
a sh:ValidationReport ;
sh:conforms "true"^^xsd:boolean ;
sh:result [
a sh:ValidationResult ;
sh:focusNode <http://example.org/kb/AlternateDataStream-07b3c41a-080c-4916-8375-c18148763e13> ;
sh:resultMessage "In UCO 2.0.0, uco-observable:AlternateDataStream will be a subclass of uco-observable:FileSystemObject. In preparation for UCO 2.0.0, the additional type uco-observable:FileSystemObject should be assigned to this node."@en ;
sh:resultSeverity sh:Warning ;
sh:sourceConstraintComponent sh:ClassConstraintComponent ;
sh:sourceShape [
a sh:NodeShape ;
rdfs:comment "This anonymous shape is attached with rdfs:seeAlso in order to associate a warning-severity class constraint, that will only be necessary as an independent shape until UCO 2.0.0."@en ;
sh:class observable:FileSystemObject ;
sh:message "In UCO 2.0.0, uco-observable:AlternateDataStream will be a subclass of uco-observable:FileSystemObject. In preparation for UCO 2.0.0, the additional type uco-observable:FileSystemObject should be assigned to this node."@en ;
sh:severity sh:Warning ;
sh:targetClass observable:AlternateDataStream ;
] ;
sh:value <http://example.org/kb/AlternateDataStream-07b3c41a-080c-4916-8375-c18148763e13> ;
] ;
.

18 changes: 18 additions & 0 deletions tests/examples/disjointedness_PASS.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"@context": {
"kb": "http://example.org/kb/",
"core": "https://ontology.unifiedcyberontology.org/uco/core/",
"observable": "https://ontology.unifiedcyberontology.org/uco/observable/",
"xsd": "http://www.w3.org/2001/XMLSchema#"
},
"@graph": [
{
"@id": "kb:File-33a25932-3a1a-4828-a90f-d31818b495ce",
"@type": [
"observable:File",
"observable:FileFacet"
],
"rdfs:comment": "This node will trigger a violation in UCO 2.0.0 for designating itself a File and FileFacet, which are disjoint due to File being a (eventual) subclass of UcoObject, and FileFacet being a (eventual) subclass of UcoInherentCharacterizationThing."
}
]
}
21 changes: 21 additions & 0 deletions tests/examples/disjointedness_PASS_validation.ttl
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
@prefix core: <https://ontology.unifiedcyberontology.org/uco/core/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[]
a sh:ValidationReport ;
sh:conforms "true"^^xsd:boolean ;
sh:result [
a sh:ValidationResult ;
sh:focusNode <http://example.org/kb/File-33a25932-3a1a-4828-a90f-d31818b495ce> ;
sh:resultMessage "observable:UcoInherentCharacterizationThing and observable:UcoObject are disjoint classes. Assigning both types to a single node will be an error in UCO 2.0.0."@en ;
sh:resultSeverity sh:Warning ;
sh:sourceConstraintComponent sh:NotConstraintComponent ;
sh:sourceShape core:UcoInherentCharacterizationThing-disjointWith-UcoObject-shape ;
sh:value <http://example.org/kb/File-33a25932-3a1a-4828-a90f-d31818b495ce> ;
] ;
.

18 changes: 18 additions & 0 deletions tests/examples/test_validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,15 @@ def test_action_result_PASS_validation() -> None:
g = load_validation_graph("action_result_PASS_validation.ttl", True)
assert isinstance(g, rdflib.Graph)

def test_alternate_data_stream_PASS_validation() -> None:
confirm_validation_results(
"alternate_data_stream_PASS_validation.ttl",
True,
expected_focus_node_severities={
("http://example.org/kb/AlternateDataStream-07b3c41a-080c-4916-8375-c18148763e13", str(NS_SH.Warning)),
}
)

def test_configuration_setting_PASS_validation() -> None:
g = load_validation_graph("configuration_setting_PASS_validation.ttl", True)
assert isinstance(g, rdflib.Graph)
Expand Down Expand Up @@ -207,6 +216,15 @@ def test_database_records_XFAIL() -> None:
}
)

def test_disjointedness_PASS() -> None:
confirm_validation_results(
"disjointedness_PASS_validation.ttl",
True,
expected_focus_node_severities={
("http://example.org/kb/File-33a25932-3a1a-4828-a90f-d31818b495ce", str(NS_SH.Warning)),
}
)

def test_event_XFAIL() -> None:
confirm_validation_results(
"event_XFAIL_validation.ttl",
Expand Down

0 comments on commit 51da525

Please sign in to comment.