From 051d912fad157dbbaf42250d1d35f14021727bd5 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Thu, 21 Dec 2023 13:21:05 -0500 Subject: [PATCH 1/3] Bump prerelease pointers A follow-on patch will regenerate Make-managed files. References: * https://github.com/ucoProject/UCO/issues/573 Signed-off-by: Alex Nelson --- dependencies/CASE-unstable | 2 +- dependencies/CASE-unstable-2.0.0 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies/CASE-unstable b/dependencies/CASE-unstable index ce25a0b5..aa76a503 160000 --- a/dependencies/CASE-unstable +++ b/dependencies/CASE-unstable @@ -1 +1 @@ -Subproject commit ce25a0b5acc7173941db469f4c4b2e794f3ddd0b +Subproject commit aa76a503b6108997e572c53304f6e742d2dc0d54 diff --git a/dependencies/CASE-unstable-2.0.0 b/dependencies/CASE-unstable-2.0.0 index 93dbee27..4ac65384 160000 --- a/dependencies/CASE-unstable-2.0.0 +++ b/dependencies/CASE-unstable-2.0.0 @@ -1 +1 @@ -Subproject commit 93dbee27939f23510393f23e450adc421e1a215d +Subproject commit 4ac653849e5d54e8ed20bd0b3ece21c927922ca8 From ea6edf492e89f4502beee8cc0cac6c3c825af8d9 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Thu, 21 Dec 2023 13:53:21 -0500 Subject: [PATCH 2/3] Re-type some Relationships that did not pertain to Observables A follow-on patch will regenerate Make-managed files. References: * https://github.com/ucoProject/UCO/issues/573 Signed-off-by: Alex Nelson --- examples/crossover_heist/src/crossover_heist_base.json | 2 +- examples/crossover_wmd/src/crossover_wmd-investigator_role.json | 2 +- examples/hardware_duplicator/src/hardware_duplicator_base.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/crossover_heist/src/crossover_heist_base.json b/examples/crossover_heist/src/crossover_heist_base.json index 309241c3..41ffdf3d 100644 --- a/examples/crossover_heist/src/crossover_heist_base.json +++ b/examples/crossover_heist/src/crossover_heist_base.json @@ -51,7 +51,7 @@ }, { "@id": "kb:Relationship-ec126575-d6a4-4590-9690-f2571a48b8ac", - "@type": "uco-observable:ObservableRelationship", + "@type": "uco-core:Relationship", "uco-core:source": { "@id": "kb:Identity-cbfbd171-e56c-4f59-a01b-4404a1e5eb28" }, diff --git a/examples/crossover_wmd/src/crossover_wmd-investigator_role.json b/examples/crossover_wmd/src/crossover_wmd-investigator_role.json index f300dacc..0bf03752 100644 --- a/examples/crossover_wmd/src/crossover_wmd-investigator_role.json +++ b/examples/crossover_wmd/src/crossover_wmd-investigator_role.json @@ -18,7 +18,7 @@ }, { "@id": "kb:investigatorrole-e9a01d66-fff4-4fa8-88d4-8e445f3369aa", - "@type": "uco-observable:ObservableRelationship", + "@type": "uco-core:Relationship", "uco-core:source": { "@id": "kb:identity-0108480e-1e7a-4341-8b1d-558877c4cc39" }, diff --git a/examples/hardware_duplicator/src/hardware_duplicator_base.json b/examples/hardware_duplicator/src/hardware_duplicator_base.json index ed42e895..09d847d5 100644 --- a/examples/hardware_duplicator/src/hardware_duplicator_base.json +++ b/examples/hardware_duplicator/src/hardware_duplicator_base.json @@ -49,7 +49,7 @@ }, { "@id": "kb:relationship-d5b4a1e1-0e25-4257-81f7-19febc86ded1", - "@type": "uco-observable:ObservableRelationship", + "@type": "uco-core:Relationship", "uco-core:source": { "@id": "kb:identity-c5bb09c3-3612-4bf2-b165-6f12d0e3c6af" }, From f163b49a263f37f12b33056ce665996c8d3d6e5f Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Thu, 21 Dec 2023 13:53:35 -0500 Subject: [PATCH 3/3] Regenerate Make-managed files References: * https://github.com/ucoProject/UCO/issues/573 Signed-off-by: Alex Nelson --- examples/crossover_heist/crossover_heist.json | 2 +- examples/crossover_heist/index.html | 2 +- examples/crossover_wmd/crossover_wmd.json | 2 +- ...rossover_wmd_validation-unstable-2.0.0.ttl | 29 ++++++- .../crossover_wmd_validation-unstable.ttl | 33 +++++++- examples/crossover_wmd/index.html | 2 +- .../hardware_duplicator.json | 2 +- examples/hardware_duplicator/index.html | 2 +- ..._trafficking_validation-unstable-2.0.0.ttl | 74 +++++++++++++---- .../owl_trafficking_validation-unstable.ttl | 80 +++++++++++++++---- ontology/CASE-unstable-2.0.0.ttl | 10 +++ ontology/CASE-unstable.ttl | 14 ++++ 12 files changed, 212 insertions(+), 40 deletions(-) diff --git a/examples/crossover_heist/crossover_heist.json b/examples/crossover_heist/crossover_heist.json index 29e8b2f2..b669c3d3 100644 --- a/examples/crossover_heist/crossover_heist.json +++ b/examples/crossover_heist/crossover_heist.json @@ -51,7 +51,7 @@ }, { "@id": "kb:Relationship-ec126575-d6a4-4590-9690-f2571a48b8ac", - "@type": "uco-observable:ObservableRelationship", + "@type": "uco-core:Relationship", "uco-core:source": { "@id": "kb:Identity-cbfbd171-e56c-4f59-a01b-4404a1e5eb28" }, diff --git a/examples/crossover_heist/index.html b/examples/crossover_heist/index.html index 64b4f7c8..1fac65a4 100644 --- a/examples/crossover_heist/index.html +++ b/examples/crossover_heist/index.html @@ -86,7 +86,7 @@

CASE Representation of Investigation

}, { "@id": "kb:Relationship-ec126575-d6a4-4590-9690-f2571a48b8ac", - "@type": "uco-observable:ObservableRelationship", + "@type": "uco-core:Relationship", "uco-core:source": { "@id": "kb:Identity-cbfbd171-e56c-4f59-a01b-4404a1e5eb28" }, diff --git a/examples/crossover_wmd/crossover_wmd.json b/examples/crossover_wmd/crossover_wmd.json index 7b424bfb..1de86ac7 100644 --- a/examples/crossover_wmd/crossover_wmd.json +++ b/examples/crossover_wmd/crossover_wmd.json @@ -487,7 +487,7 @@ }, { "@id": "kb:investigatorrole-e9a01d66-fff4-4fa8-88d4-8e445f3369aa", - "@type": "uco-observable:ObservableRelationship", + "@type": "uco-core:Relationship", "uco-core:source": { "@id": "kb:identity-0108480e-1e7a-4341-8b1d-558877c4cc39" }, diff --git a/examples/crossover_wmd/crossover_wmd_validation-unstable-2.0.0.ttl b/examples/crossover_wmd/crossover_wmd_validation-unstable-2.0.0.ttl index 20af041e..72c972ae 100644 --- a/examples/crossover_wmd/crossover_wmd_validation-unstable-2.0.0.ttl +++ b/examples/crossover_wmd/crossover_wmd_validation-unstable-2.0.0.ttl @@ -1,3 +1,4 @@ +@prefix core: . @prefix owl: . @prefix rdf: . @prefix rdfs: . @@ -8,7 +9,7 @@ [] a sh:ValidationReport ; - sh:conforms "true"^^xsd:boolean ; + sh:conforms "false"^^xsd:boolean ; sh:result [ a sh:ValidationResult ; @@ -39,6 +40,32 @@ sh:severity sh:Info ; ] ; sh:value "Phone" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode ; + sh:resultMessage "Value does not have class uco-observable:Observable" ; + sh:resultPath core:source ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class uco-observable:Observable ; + sh:path core:source ; + ] ; + sh:value ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode ; + sh:resultMessage "Value does not have class uco-observable:Observable" ; + sh:resultPath core:source ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class uco-observable:Observable ; + sh:path core:source ; + ] ; + sh:value ; ] ; . diff --git a/examples/crossover_wmd/crossover_wmd_validation-unstable.ttl b/examples/crossover_wmd/crossover_wmd_validation-unstable.ttl index 20af041e..9d8a7f6c 100644 --- a/examples/crossover_wmd/crossover_wmd_validation-unstable.ttl +++ b/examples/crossover_wmd/crossover_wmd_validation-unstable.ttl @@ -1,3 +1,4 @@ +@prefix core: . @prefix owl: . @prefix rdf: . @prefix rdfs: . @@ -8,7 +9,7 @@ [] a sh:ValidationReport ; - sh:conforms "true"^^xsd:boolean ; + sh:conforms "false"^^xsd:boolean ; sh:result [ a sh:ValidationResult ; @@ -39,6 +40,36 @@ sh:severity sh:Info ; ] ; sh:value "Phone" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode ; + sh:resultMessage "The source on an ObservableRelationship is expected to be typed as an Observable, and the noted value node is not. This will be an error in UCO 2.0.0."@en ; + sh:resultPath core:source ; + sh:resultSeverity sh:Warning ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class uco-observable:Observable ; + sh:message "The source on an ObservableRelationship is expected to be typed as an Observable, and the noted value node is not. This will be an error in UCO 2.0.0."@en ; + sh:path core:source ; + sh:severity sh:Warning ; + ] ; + sh:value ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode ; + sh:resultMessage "The source on an ObservableRelationship is expected to be typed as an Observable, and the noted value node is not. This will be an error in UCO 2.0.0."@en ; + sh:resultPath core:source ; + sh:resultSeverity sh:Warning ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class uco-observable:Observable ; + sh:message "The source on an ObservableRelationship is expected to be typed as an Observable, and the noted value node is not. This will be an error in UCO 2.0.0."@en ; + sh:path core:source ; + sh:severity sh:Warning ; + ] ; + sh:value ; ] ; . diff --git a/examples/crossover_wmd/index.html b/examples/crossover_wmd/index.html index 9a5653a3..026382ca 100644 --- a/examples/crossover_wmd/index.html +++ b/examples/crossover_wmd/index.html @@ -368,7 +368,7 @@

CASE Representation of data extraction

}, { "@id": "kb:investigatorrole-e9a01d66-fff4-4fa8-88d4-8e445f3369aa", - "@type": "uco-observable:ObservableRelationship", + "@type": "uco-core:Relationship", "uco-core:source": { "@id": "kb:identity-0108480e-1e7a-4341-8b1d-558877c4cc39" }, diff --git a/examples/hardware_duplicator/hardware_duplicator.json b/examples/hardware_duplicator/hardware_duplicator.json index 1efe8cb4..e2e35f01 100644 --- a/examples/hardware_duplicator/hardware_duplicator.json +++ b/examples/hardware_duplicator/hardware_duplicator.json @@ -49,7 +49,7 @@ }, { "@id": "kb:relationship-d5b4a1e1-0e25-4257-81f7-19febc86ded1", - "@type": "uco-observable:ObservableRelationship", + "@type": "uco-core:Relationship", "uco-core:source": { "@id": "kb:identity-c5bb09c3-3612-4bf2-b165-6f12d0e3c6af" }, diff --git a/examples/hardware_duplicator/index.html b/examples/hardware_duplicator/index.html index b3146265..cba60fa1 100644 --- a/examples/hardware_duplicator/index.html +++ b/examples/hardware_duplicator/index.html @@ -68,7 +68,7 @@

CASE INVESTIGATION CONTEXT

}, { "@id": "kb:relationship-d5b4a1e1-0e25-4257-81f7-19febc86ded1", - "@type": "uco-observable:ObservableRelationship", + "@type": "uco-core:Relationship", "uco-core:source": { "@id": "kb:identity-c5bb09c3-3612-4bf2-b165-6f12d0e3c6af" }, diff --git a/examples/owl_trafficking/owl_trafficking_validation-unstable-2.0.0.ttl b/examples/owl_trafficking/owl_trafficking_validation-unstable-2.0.0.ttl index 13c0538e..1113ce43 100644 --- a/examples/owl_trafficking/owl_trafficking_validation-unstable-2.0.0.ttl +++ b/examples/owl_trafficking/owl_trafficking_validation-unstable-2.0.0.ttl @@ -1,3 +1,4 @@ +@prefix core: . @prefix owl: . @prefix rdf: . @prefix rdfs: . @@ -8,21 +9,62 @@ [] a sh:ValidationReport ; - sh:conforms "true"^^xsd:boolean ; - sh:result [ - a sh:ValidationResult ; - sh:focusNode ; - sh:resultMessage "Value is outside the default vocabulary AccountTypeVocab." ; - sh:resultPath uco-observable:accountType ; - sh:resultSeverity sh:Info ; - sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; - sh:sourceShape [ - sh:datatype vocabulary:AccountTypeVocab ; - sh:message "Value is outside the default vocabulary AccountTypeVocab." ; - sh:path uco-observable:accountType ; - sh:severity sh:Info ; - ] ; - sh:value "phone" ; - ] ; + sh:conforms "false"^^xsd:boolean ; + sh:result + [ + a sh:ValidationResult ; + sh:focusNode ; + sh:resultMessage "Value is outside the default vocabulary AccountTypeVocab." ; + sh:resultPath uco-observable:accountType ; + sh:resultSeverity sh:Info ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; + sh:sourceShape [ + sh:datatype vocabulary:AccountTypeVocab ; + sh:message "Value is outside the default vocabulary AccountTypeVocab." ; + sh:path uco-observable:accountType ; + sh:severity sh:Info ; + ] ; + sh:value "phone" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode ; + sh:resultMessage "Value does not have class uco-observable:Observable" ; + sh:resultPath core:source ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class uco-observable:Observable ; + sh:path core:source ; + ] ; + sh:value ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode ; + sh:resultMessage "Value does not have class uco-observable:Observable" ; + sh:resultPath core:source ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class uco-observable:Observable ; + sh:path core:source ; + ] ; + sh:value ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode ; + sh:resultMessage "Value does not have class uco-observable:Observable" ; + sh:resultPath core:source ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class uco-observable:Observable ; + sh:path core:source ; + ] ; + sh:value ; + ] + ; . diff --git a/examples/owl_trafficking/owl_trafficking_validation-unstable.ttl b/examples/owl_trafficking/owl_trafficking_validation-unstable.ttl index 13c0538e..28976f9a 100644 --- a/examples/owl_trafficking/owl_trafficking_validation-unstable.ttl +++ b/examples/owl_trafficking/owl_trafficking_validation-unstable.ttl @@ -1,3 +1,4 @@ +@prefix core: . @prefix owl: . @prefix rdf: . @prefix rdfs: . @@ -8,21 +9,68 @@ [] a sh:ValidationReport ; - sh:conforms "true"^^xsd:boolean ; - sh:result [ - a sh:ValidationResult ; - sh:focusNode ; - sh:resultMessage "Value is outside the default vocabulary AccountTypeVocab." ; - sh:resultPath uco-observable:accountType ; - sh:resultSeverity sh:Info ; - sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; - sh:sourceShape [ - sh:datatype vocabulary:AccountTypeVocab ; - sh:message "Value is outside the default vocabulary AccountTypeVocab." ; - sh:path uco-observable:accountType ; - sh:severity sh:Info ; - ] ; - sh:value "phone" ; - ] ; + sh:conforms "false"^^xsd:boolean ; + sh:result + [ + a sh:ValidationResult ; + sh:focusNode ; + sh:resultMessage "Value is outside the default vocabulary AccountTypeVocab." ; + sh:resultPath uco-observable:accountType ; + sh:resultSeverity sh:Info ; + sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; + sh:sourceShape [ + sh:datatype vocabulary:AccountTypeVocab ; + sh:message "Value is outside the default vocabulary AccountTypeVocab." ; + sh:path uco-observable:accountType ; + sh:severity sh:Info ; + ] ; + sh:value "phone" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode ; + sh:resultMessage "The source on an ObservableRelationship is expected to be typed as an Observable, and the noted value node is not. This will be an error in UCO 2.0.0."@en ; + sh:resultPath core:source ; + sh:resultSeverity sh:Warning ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class uco-observable:Observable ; + sh:message "The source on an ObservableRelationship is expected to be typed as an Observable, and the noted value node is not. This will be an error in UCO 2.0.0."@en ; + sh:path core:source ; + sh:severity sh:Warning ; + ] ; + sh:value ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode ; + sh:resultMessage "The source on an ObservableRelationship is expected to be typed as an Observable, and the noted value node is not. This will be an error in UCO 2.0.0."@en ; + sh:resultPath core:source ; + sh:resultSeverity sh:Warning ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class uco-observable:Observable ; + sh:message "The source on an ObservableRelationship is expected to be typed as an Observable, and the noted value node is not. This will be an error in UCO 2.0.0."@en ; + sh:path core:source ; + sh:severity sh:Warning ; + ] ; + sh:value ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode ; + sh:resultMessage "The source on an ObservableRelationship is expected to be typed as an Observable, and the noted value node is not. This will be an error in UCO 2.0.0."@en ; + sh:resultPath core:source ; + sh:resultSeverity sh:Warning ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class uco-observable:Observable ; + sh:message "The source on an ObservableRelationship is expected to be typed as an Observable, and the noted value node is not. This will be an error in UCO 2.0.0."@en ; + sh:path core:source ; + sh:severity sh:Warning ; + ] ; + sh:value ; + ] + ; . diff --git a/ontology/CASE-unstable-2.0.0.ttl b/ontology/CASE-unstable-2.0.0.ttl index 6236989a..8b004127 100644 --- a/ontology/CASE-unstable-2.0.0.ttl +++ b/ontology/CASE-unstable-2.0.0.ttl @@ -8617,6 +8617,16 @@ observable:ObservableRelationship ; rdfs:label "ObservableRelationship"@en ; rdfs:comment "An observable relationship is a grouping of characteristics unique to an assertion of an association between two observable objects."@en ; + sh:property + [ + sh:class observable:Observable ; + sh:path core:source ; + ] , + [ + sh:class observable:Observable ; + sh:path core:target ; + ] + ; sh:targetClass observable:ObservableRelationship ; . diff --git a/ontology/CASE-unstable.ttl b/ontology/CASE-unstable.ttl index 1947c731..dc251928 100644 --- a/ontology/CASE-unstable.ttl +++ b/ontology/CASE-unstable.ttl @@ -8545,6 +8545,20 @@ observable:ObservableRelationship ; rdfs:label "ObservableRelationship"@en ; rdfs:comment "An observable relationship is a grouping of characteristics unique to an assertion of an association between two observable objects."@en ; + sh:property + [ + sh:class observable:Observable ; + sh:message "The source on an ObservableRelationship is expected to be typed as an Observable, and the noted value node is not. This will be an error in UCO 2.0.0."@en ; + sh:path core:source ; + sh:severity sh:Warning ; + ] , + [ + sh:class observable:Observable ; + sh:message "The target on an ObservableRelationship is expected to be typed as an Observable, and the noted value node is not. This will be an error in UCO 2.0.0."@en ; + sh:path core:target ; + sh:severity sh:Warning ; + ] + ; sh:targetClass observable:ObservableRelationship ; .