From f93c5ccf372598dc5efd26ab1478cff8ce32fd37 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Tue, 7 Nov 2023 17:11:09 -0500 Subject: [PATCH] Insert disjoint classes Endurant and Perdurant into hierarchy This patch also adds the relating properties `core:hasParticipant` and `core:isPerdurantProperPartOf`, as suggested in Issue 544. No effects were observed on Make-managed files. References: * https://github.com/ucoProject/UCO/issues/544 Signed-off-by: Alex Nelson --- ontology/uco/action/action.ttl | 2 +- ontology/uco/core/core.ttl | 49 ++++++++++++++++++++++++-- ontology/uco/location/location.ttl | 2 +- ontology/uco/observable/observable.ttl | 5 ++- ontology/uco/pattern/pattern.ttl | 5 ++- 5 files changed, 57 insertions(+), 6 deletions(-) diff --git a/ontology/uco/action/action.ttl b/ontology/uco/action/action.ttl index d5a5bf26..e2783889 100644 --- a/ontology/uco/action/action.ttl +++ b/ontology/uco/action/action.ttl @@ -37,7 +37,7 @@ action:Action owl:Class , sh:NodeShape ; - rdfs:subClassOf core:UcoObject ; + rdfs:subClassOf core:Perdurant ; rdfs:label "Action"@en ; rdfs:comment "An action is something that may be done or performed."@en ; sh:property diff --git a/ontology/uco/core/core.ttl b/ontology/uco/core/core.ttl index aaa52614..2ddbaf3b 100644 --- a/ontology/uco/core/core.ttl +++ b/ontology/uco/core/core.ttl @@ -171,6 +171,26 @@ core:EnclosingCompilation sh:targetClass core:EnclosingCompilation ; . +core:Endurant + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Endurant"@en ; + owl:disjointWith core:Perdurant ; + sh:targetClass core:Endurant ; + . + +core:Endurant-disjointWith-Perdurant + a sh:NodeShape ; + sh:not [ + a sh:NodeShape ; + sh:class core:Perdurant ; + ] ; + sh:targetClass core:Endurant ; + . + core:ExternalReference a owl:Class , @@ -234,7 +254,7 @@ core:IdentityAbstraction owl:Class , sh:NodeShape ; - rdfs:subClassOf core:UcoObject ; + rdfs:subClassOf core:Endurant ; rdfs:label "IdentityAbstraction"@en ; rdfs:comment "An identity abstraction is a grouping of identifying characteristics unique to an individual or organization. This class is an ontological structural abstraction for this concept. Implementations of this concept should utilize the identity:Identity class."@en ; sh:targetClass core:IdentityAbstraction ; @@ -245,7 +265,7 @@ core:Item owl:Class , sh:NodeShape ; - rdfs:subClassOf core:UcoObject ; + rdfs:subClassOf core:Endurant ; rdfs:label "Item"@en ; rdfs:comment "An item is a distinct article or unit."@en ; sh:targetClass core:Item ; @@ -273,6 +293,17 @@ core:ModusOperandi sh:targetClass core:ModusOperandi ; . +core:Perdurant + a + owl:Class , + sh:NodeShape + ; + rdfs:subClassOf core:UcoObject ; + rdfs:label "Perdurant"@en ; + owl:disjointWith core:Endurant ; + sh:targetClass core:Perdurant ; + . + core:Relationship a owl:Class , @@ -565,6 +596,13 @@ core:hasFacet-shape sh:targetObjectsOf core:hasFacet ; . +core:hasParticipant + a owl:ObjectProperty ; + rdfs:label "hasParticipant"@en ; + rdfs:domain core:Perdurant ; + rdfs:range core:Endurant ; + . + core:isDirectional a owl:DatatypeProperty ; rdfs:label "isDirectional"@en ; @@ -572,6 +610,13 @@ core:isDirectional rdfs:range xsd:boolean ; . +core:isPerdurantProperPartOf + a owl:ObjectProperty ; + rdfs:label "isPerdurantProperPartOf"@en ; + rdfs:domain core:Perdurant ; + rdfs:range core:Perdurant ; + . + core:kindOfRelationship a owl:DatatypeProperty ; rdfs:label "kindOfRelationship"@en ; diff --git a/ontology/uco/location/location.ttl b/ontology/uco/location/location.ttl index c713430c..1ebaf702 100644 --- a/ontology/uco/location/location.ttl +++ b/ontology/uco/location/location.ttl @@ -90,7 +90,7 @@ location:Location owl:Class , sh:NodeShape ; - rdfs:subClassOf core:UcoObject ; + rdfs:subClassOf core:Endurant ; rdfs:label "Location"@en ; rdfs:comment "A location is a geospatial place, site, or position."@en ; sh:targetClass location:Location ; diff --git a/ontology/uco/observable/observable.ttl b/ontology/uco/observable/observable.ttl index 050119f7..fe4273ff 100644 --- a/ontology/uco/observable/observable.ttl +++ b/ontology/uco/observable/observable.ttl @@ -5038,7 +5038,10 @@ observable:ObservablePattern owl:Class , sh:NodeShape ; - rdfs:subClassOf observable:Observable ; + rdfs:subClassOf + core:Endurant , + observable:Observable + ; rdfs:label "ObservablePattern"@en ; rdfs:comment "An observable pattern is a grouping of characteristics unique to a logical pattern composed of observable object and observable action properties."@en ; sh:targetClass observable:ObservablePattern ; diff --git a/ontology/uco/pattern/pattern.ttl b/ontology/uco/pattern/pattern.ttl index de7163c8..04f2a899 100644 --- a/ontology/uco/pattern/pattern.ttl +++ b/ontology/uco/pattern/pattern.ttl @@ -22,7 +22,10 @@ pattern:LogicalPattern owl:Class , sh:NodeShape ; - rdfs:subClassOf pattern:Pattern ; + rdfs:subClassOf + core:Endurant , + pattern:Pattern + ; rdfs:label "LogicalPattern"@en ; rdfs:comment "A logical pattern is a grouping of characteristics unique to an informational pattern expressed via a structured pattern expression following the rules of logic."@en ; sh:property [