diff --git a/ontology/uco-gufo.ttl b/ontology/uco-gufo.ttl index 57c77e6..af74787 100644 --- a/ontology/uco-gufo.ttl +++ b/ontology/uco-gufo.ttl @@ -218,6 +218,14 @@ uco-identity:Person ; . +uco-observable:AlternateDataStream + a gufo:Kind ; + rdfs:subClassOf + drafting:Endurant , + gufo:Object + ; + . + uco-observable:BluetoothAddressFacet a drafting:SpecificFacetType ; . @@ -229,6 +237,10 @@ uco-observable:Device ; . +uco-observable:FileSystemObject + a gufo:Category ; + . + uco-observable:MACAddressFacet a drafting:GeneralFacetType ; . diff --git a/tests/exemplars.ttl b/tests/exemplars.ttl index a25b9a9..e32d28a 100644 --- a/tests/exemplars.ttl +++ b/tests/exemplars.ttl @@ -30,6 +30,15 @@ kb:Action-13c91d40-9ca0-4558-81a1-4f7db888c371 uco-action:startTime "2020-01-02T03:04:05Z"^^xsd:dateTime ; . +kb:AlternateDataStream-e6ceee40-5614-4740-b08c-d21ce9b2356d + a + uco-observable:AlternateDataStream , + uco-observable:FileSystemObject + ; + rdfs:comment "TODO - The assignment of FileSystemObject is only necessary until UCO Issue 590 is incorporated."@en ; + rdfs:seeAlso ; + . + kb:AnalyticResult-34fb92db-d576-45a7-9d62-dae04510968f a uco-analysis:AnalyticResult ; . diff --git a/tests/test_exemplar_coverage.py b/tests/test_exemplar_coverage.py index a6ce568..7e0ff06 100644 --- a/tests/test_exemplar_coverage.py +++ b/tests/test_exemplar_coverage.py @@ -20,6 +20,7 @@ from typing import Optional, Set from rdflib import RDF, RDFS, Graph, URIRef +from rdflib.query import ResultRow NS_RDF = RDF NS_RDFS = RDFS @@ -34,6 +35,7 @@ def test_exemplar_coverage() -> None: ontologies) designated a subclass of some C', and each property P designated a subproperty of some P', C (/P) is used in the exemplars graph. + For gUFO, instances of a gufo:Type are also included in the review. """ exemplar_graph = Graph() profile_graph = Graph() @@ -66,6 +68,22 @@ def test_exemplar_coverage() -> None: assert isinstance(triple[0], URIRef) classes_mapped.add(triple[0]) + gufo_type_query = """\ +PREFIX gufo: +SELECT ?nClass +WHERE { + # owl:Class restriction is to not pick up Relators. + ?nClass + a owl:Class ; + a/rdfs:subClassOf* gufo:Type ; + . +} +""" + for gufo_type_query_result in tbox_graph.query(gufo_type_query): + assert isinstance(gufo_type_query_result, ResultRow) + assert isinstance(gufo_type_query_result[0], URIRef) + classes_mapped.add(gufo_type_query_result[0]) + result: Optional[bool] class_query = """\