From 8173e83d34ac3286e799db90885e266483fdf1f2 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Thu, 2 Dec 2021 17:44:42 -0500 Subject: [PATCH 01/24] Fix OWL syntax of CASE datatype This fix was applied in the same manner as in this UCO commit in support of UCO CP-90: https://github.com/ucoProject/UCO/tree/242d315f9d0d838096c57b76f5d497a75dca0d13 References: * [ONT-467] (CP-43) Vocabulary datatypes are OWL-syntactically incomplete * [UCO OC-192] (CP-90) Vocabulary datatypes are OWL-syntactically incomplete Signed-off-by: Alex Nelson --- ontology/vocabulary/vocabulary.ttl | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/ontology/vocabulary/vocabulary.ttl b/ontology/vocabulary/vocabulary.ttl index e57a994..828ad03 100644 --- a/ontology/vocabulary/vocabulary.ttl +++ b/ontology/vocabulary/vocabulary.ttl @@ -14,13 +14,14 @@ vocab:InvestigationFormVocab a rdfs:Datatype ; - rdfs:subClassOf rdfs:Resource ; - rdfs:label "Investigation Form Vocabulary"@en-US ; - rdfs:comment "Defines an open-vocabulary of investigation forms."@en-US ; - owl:oneOf ( - "case"^^vocab:InvestigationFormVocab - "incident"^^vocab:InvestigationFormVocab - "suspicious-activity"^^vocab:InvestigationFormVocab - ) ; + owl:equivalentClass [ + rdfs:label "Investigation Form Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of investigation forms."@en-US ; + owl:oneOf ( + "case"^^vocab:InvestigationFormVocab + "incident"^^vocab:InvestigationFormVocab + "suspicious-activity"^^vocab:InvestigationFormVocab + ) ; + ] ; . From 3d8f1f1c2d3e6cbbf3e99c9d2cb599e1650e63e6 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Fri, 19 Aug 2022 16:45:57 -0400 Subject: [PATCH 02/24] Replace UCO glom_graph.py reference with rdfpipe No effects observed on Make-managed files. References: * https://github.com/ucoProject/UCO/issues/424 Signed-off-by: Alex Nelson --- tests/Makefile | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/Makefile b/tests/Makefile index 535365e..c7b6a0f 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -47,15 +47,14 @@ all: case_monolithic.ttl: \ $(top_srcdir)/.lib.done.log \ - $(top_srcdir)/dependencies/UCO/tests/src/glom_graph.py \ $(case_turtle_files) \ $(uco_turtle_files) \ .venv.done.log source venv/bin/activate \ - && python3 $(top_srcdir)/dependencies/UCO/tests/src/glom_graph.py \ - __$@ \ + && rdfpipe \ $(case_turtle_files) \ - $(uco_turtle_files) + $(uco_turtle_files) \ + > __$@ java -jar $(top_srcdir)/dependencies/UCO/lib/rdf-toolkit.jar \ --infer-base-iri \ --inline-blank-nodes \ From 28ef8e3abca9d7c9ccdf6f04ac10df62b467ea34 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Fri, 19 Aug 2022 17:40:17 -0400 Subject: [PATCH 03/24] Apply semi-open vocabulary patterns This is a downstream application of two proposals: * UCO CP-100 implemented the suggested-value enforcement pattern for semi-open vocabularies. This was a part of UCO 0.8.0. * UCO Issue 406 adjusted the implementation pattern from UCO CP-100 to account for an OWL requirement on `rdf:List` usage. This has been approved for UCO 1.0.0. A third proposal adjusting the CASE vocabulary namespace, UCO Issue 435, would also apply, but has not had an approval vote yet. Due to vote and other Git logistics, that will be handled separately. No effects were observed on Make-managed files. References: * [UCO OC-12] (CP-100) UCO's idea of "Open vocabulary" does not agree with its implementation with owl:oneOf * https://github.com/ucoProject/UCO/issues/406 * https://github.com/ucoProject/UCO/issues/435 Signed-off-by: Alex Nelson --- ontology/investigation/investigation.ttl | 38 +++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/ontology/investigation/investigation.ttl b/ontology/investigation/investigation.ttl index 6e2d233..beee31f 100644 --- a/ontology/investigation/investigation.ttl +++ b/ontology/investigation/investigation.ttl @@ -140,9 +140,39 @@ investigation:Investigation ] , [ sh:datatype vocabulary:InvestigationFormVocab ; + sh:message "Value is outside the default vocabulary InvestigationFormVocab." ; + sh:path investigation:investigationForm ; + sh:severity sh:Info ; + ] , + [ sh:maxCount "1"^^xsd:integer ; sh:minCount "1"^^xsd:integer ; sh:nodeKind sh:Literal ; + sh:or ( + [ + sh:datatype vocabulary:InvestigationFormVocab ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; + sh:path investigation:investigationForm ; + ] , + [ + sh:message "Value is not member of the vocabulary InvestigationFormVocab." ; + sh:or ( + [ + sh:datatype vocabulary:InvestigationFormVocab ; + sh:in ( + "case"^^vocabulary:InvestigationFormVocab + "incident"^^vocabulary:InvestigationFormVocab + "suspicious-activity"^^vocabulary:InvestigationFormVocab + ) ; + ] + [ + sh:datatype xsd:string ; + ] + ) ; sh:path investigation:investigationForm ; ] ; @@ -266,7 +296,13 @@ investigation:investigationForm a owl:DatatypeProperty ; rdfs:label "investigationForm"@en ; rdfs:comment "A label categorizing a type of investigation (case, incident, suspicious-activity, etc.)"@en ; - rdfs:range vocabulary:InvestigationFormVocab ; + rdfs:range [ + a rdfs:Datatype ; + owl:unionOf ( + vocabulary:InvestigationFormVocab + xsd:string + ) ; + ] ; . investigation:investigationStatus From 06544e26396c833dfd7ea30f6ebbebe8a9f2c603 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Fri, 19 Aug 2022 18:27:43 -0400 Subject: [PATCH 04/24] Adapt for UCO files being under different directories This is a preparation for UCO Issue 387, where a third level of subdirectory depth was added. Before the UCO Git submodule pointer is updated to incorporate UCO Issue 387's resolution, the `/bin/ls` command will emit that one of its shell wildcards didn't work, and the command will exit 0. This does not fail the Make process. To avoid complexities with Git merging, the UCO submodule pointer is not updated in this patch. The Makefile shell recipe declines to use `find` due to potentially incorporating CI artifacts. References: * https://github.com/ucoProject/UCO/issues/387 Signed-off-by: Alex Nelson --- tests/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Makefile b/tests/Makefile index 535365e..77a174b 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -18,7 +18,7 @@ top_srcdir := $(shell cd .. ; pwd) PYTHON3 ?= $(shell which python3.9 2>/dev/null || which python3.8 2>/dev/null || which python3.7 2>/dev/null || which python3.6 2>/dev/null || which python3) case_turtle_files := $(shell /bin/ls $(top_srcdir)/ontology/*/*.ttl) -uco_turtle_files := $(shell /bin/ls $(top_srcdir)/dependencies/UCO/ontology/*/*.ttl) +uco_turtle_files := $(shell /bin/ls $(top_srcdir)/dependencies/UCO/ontology/*/*.ttl $(top_srcdir)/dependencies/UCO/ontology/*/*/*.ttl) all: From f8b45272d44dd658a1e9cbb49d6aa37f99d25b4e Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Fri, 19 Aug 2022 20:51:51 -0400 Subject: [PATCH 05/24] Add OWL 2 DL review with SHACL-SPARQL This is a downstream adoption of UCO Issue 406. The Git submodule is updated to the earliest state necessary to make use of the OWL SHACL tests. No effects were observed on Make-managed files. References: * https://github.com/ucoProject/UCO/issues/406 Signed-off-by: Alex Nelson --- dependencies/UCO | 2 +- tests/Makefile | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/dependencies/UCO b/dependencies/UCO index 3165bd6..40e16b0 160000 --- a/dependencies/UCO +++ b/dependencies/UCO @@ -1 +1 @@ -Subproject commit 3165bd62ef14909eac4a9bc2db76e041cbdb185b +Subproject commit 40e16b01bb40219d4dd367ffad9d57a6fec19e96 diff --git a/tests/Makefile b/tests/Makefile index 77a174b..7cd7a05 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -56,6 +56,16 @@ case_monolithic.ttl: \ __$@ \ $(case_turtle_files) \ $(uco_turtle_files) + # Review UCO for OWL 2 DL conformance. + source venv/bin/activate \ + && pyshacl \ + --allow-warnings \ + --data-file-format turtle \ + --format turtle \ + --inference none \ + --shacl $(top_srcdir)/dependencies/UCO/ontology/owl/owl.ttl \ + --shacl-file-format turtle \ + __$@ java -jar $(top_srcdir)/dependencies/UCO/lib/rdf-toolkit.jar \ --infer-base-iri \ --inline-blank-nodes \ From aafd86ef4dcb4e40983cbef54119ff02e595391d Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Fri, 19 Aug 2022 21:01:15 -0400 Subject: [PATCH 06/24] Add explicit format flag Signed-off-by: Alex Nelson --- tests/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/Makefile b/tests/Makefile index c7b6a0f..2acb22f 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -52,6 +52,7 @@ case_monolithic.ttl: \ .venv.done.log source venv/bin/activate \ && rdfpipe \ + --output-format turtle \ $(case_turtle_files) \ $(uco_turtle_files) \ > __$@ From 99bbeae88685faade4c869ce3a93abe3b0e0c219 Mon Sep 17 00:00:00 2001 From: Paul Brandt Date: Sat, 20 Aug 2022 13:07:32 +0200 Subject: [PATCH 07/24] Change minCount to 0 from 1 on `authorizationType` and `authorizationIdentifier` --- ontology/investigation/investigation.ttl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ontology/investigation/investigation.ttl b/ontology/investigation/investigation.ttl index 6e2d233..3dd3a63 100644 --- a/ontology/investigation/investigation.ttl +++ b/ontology/investigation/investigation.ttl @@ -65,13 +65,13 @@ investigation:Authorization [ sh:datatype xsd:string ; sh:maxCount "1"^^xsd:integer ; - sh:minCount "1"^^xsd:integer ; + sh:minCount "0"^^xsd:integer ; sh:nodeKind sh:Literal ; sh:path investigation:authorizationType ; ] , [ sh:datatype xsd:string ; - sh:minCount "1"^^xsd:integer ; + sh:minCount "0"^^xsd:integer ; sh:nodeKind sh:Literal ; sh:path investigation:authorizationIdentifier ; ] From 86b1c2cb885068d23a9ece08cdb6e4d4b2abbde5 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Sun, 21 Aug 2022 14:52:12 -0400 Subject: [PATCH 08/24] Bump UCO pointer to test for new vocabulary form A follow-on patch will fix a realized copy-paste error in the CASE implementation of the new vocabulary form. No effects were observed on Make-managed files. References: * [ONT-467] (CP-43) Vocabulary datatypes are OWL-syntactically incomplete * https://github.com/ucoProject/UCO/issues/435 Signed-off-by: Alex Nelson --- dependencies/UCO | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies/UCO b/dependencies/UCO index 40e16b0..bbd58c1 160000 --- a/dependencies/UCO +++ b/dependencies/UCO @@ -1 +1 @@ -Subproject commit 40e16b01bb40219d4dd367ffad9d57a6fec19e96 +Subproject commit bbd58c1725550cf39e09a1aa977bf6dd66989b22 From 4ab6e458ddf54ffcdc1426f04690e577bd811937 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Sun, 21 Aug 2022 14:54:26 -0400 Subject: [PATCH 09/24] Adopt enumerative datatype syntax update This patch corrects a nesting error in the original application of the syntax form. The syntax form now matches the form implemented in the resolution of UCO Issue 435. No effects were observed on Make-managed files. References: * [ONT-467] (CP-43) Vocabulary datatypes are OWL-syntactically incomplete * https://github.com/ucoProject/UCO/issues/435 Signed-off-by: Alex Nelson --- ontology/vocabulary/vocabulary.ttl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ontology/vocabulary/vocabulary.ttl b/ontology/vocabulary/vocabulary.ttl index 828ad03..10196f9 100644 --- a/ontology/vocabulary/vocabulary.ttl +++ b/ontology/vocabulary/vocabulary.ttl @@ -14,9 +14,11 @@ vocab:InvestigationFormVocab a rdfs:Datatype ; + rdfs:label "Investigation Form Vocabulary"@en-US ; + rdfs:comment "Defines an open-vocabulary of investigation forms."@en-US ; owl:equivalentClass [ - rdfs:label "Investigation Form Vocabulary"@en-US ; - rdfs:comment "Defines an open-vocabulary of investigation forms."@en-US ; + a rdfs:Datatype ; + owl:onDatatype xsd:string ; owl:oneOf ( "case"^^vocab:InvestigationFormVocab "incident"^^vocab:InvestigationFormVocab From c2ec24303e6983f6d5ee3d6a9849379c8f77eec7 Mon Sep 17 00:00:00 2001 From: Paul Brandt Date: Mon, 22 Aug 2022 14:31:00 +0200 Subject: [PATCH 10/24] Change minCount to 0 from 1, i.e., remove minCount line, on investigationForm; --- ontology/investigation/investigation.ttl | 3 --- 1 file changed, 3 deletions(-) diff --git a/ontology/investigation/investigation.ttl b/ontology/investigation/investigation.ttl index 3dd3a63..d6f71fe 100644 --- a/ontology/investigation/investigation.ttl +++ b/ontology/investigation/investigation.ttl @@ -65,13 +65,11 @@ investigation:Authorization [ sh:datatype xsd:string ; sh:maxCount "1"^^xsd:integer ; - sh:minCount "0"^^xsd:integer ; sh:nodeKind sh:Literal ; sh:path investigation:authorizationType ; ] , [ sh:datatype xsd:string ; - sh:minCount "0"^^xsd:integer ; sh:nodeKind sh:Literal ; sh:path investigation:authorizationIdentifier ; ] @@ -141,7 +139,6 @@ investigation:Investigation [ sh:datatype vocabulary:InvestigationFormVocab ; sh:maxCount "1"^^xsd:integer ; - sh:minCount "1"^^xsd:integer ; sh:nodeKind sh:Literal ; sh:path investigation:investigationForm ; ] From 1fca7483d7ba53f23b4c5796f38e5aa4895c00e6 Mon Sep 17 00:00:00 2001 From: Paul Brandt Date: Tue, 30 Aug 2022 17:59:51 +0200 Subject: [PATCH 11/24] Create ChangeLog Added Changes merged at 2022-08-22 & -23, sourced from Merge PR's since 2022-06-17. --- ChangeLog | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ChangeLog b/ChangeLog index b9af3d7..12b0089 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2022-08-23 + * (25bc31e): CASE Issue 98: Change minCount from 1 to 0 on multiple properties on Investigation object + * (8c4322c): ONT-467: Vocabulary datatypes are OWL-syntactically incomplete (Fix OWL syntax of CASE datatype) + +2022-08-22 + * (52834ea): UCO Issue 406: UCO should perform OWL 2 DL review with SHACL-SPARQL + * (cd82078): UCO OC-217, CP-107: Revise ontology IRI to be slash-based and drop IRI base + * (4f4731f): UCO Issue 387: Adapt for UCO files being under different directories + * (a495369): UCO CP-100: Apply semi-open vocabulary patterns + * (2a5af00): UCO Issue 424: Replace UCO glom_graph.py reference with rdfpipe + 2022-06-17 * ONT-476: Release CASE 0.7.0, with release notes at https://caseontology.org/releases/0.7.0/ From 033991ec8bdf46b38fe29454f8029592198e6656 Mon Sep 17 00:00:00 2001 From: kchason Date: Tue, 30 Aug 2022 14:54:28 -0400 Subject: [PATCH 12/24] Remove requirements.txt --- requirements.txt | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 5f3c02f..0000000 --- a/requirements.txt +++ /dev/null @@ -1,8 +0,0 @@ -html5lib==0.999999999 -isodate==0.5.4 -keepalive==0.5 -pyparsing==2.1.10 -rdflib==4.2.1 -six==1.10.0 -SPARQLWrapper==1.7.6 -webencodings==0.5 From 2b8bd56332a84fb6f849e9d45364019c8eca00b4 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Tue, 30 Aug 2022 15:07:37 -0400 Subject: [PATCH 13/24] Log change References: * https://github.com/casework/CASE/issues/106 Signed-off-by: Alex Nelson --- ChangeLog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ChangeLog b/ChangeLog index 12b0089..4628996 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +2022-08-30 + * (d9db048): CASE Issue 106: Removed legacy requirements.txt + 2022-08-23 * (25bc31e): CASE Issue 98: Change minCount from 1 to 0 on multiple properties on Investigation object * (8c4322c): ONT-467: Vocabulary datatypes are OWL-syntactically incomplete (Fix OWL syntax of CASE datatype) From 47837f991a46e107b4eb7421b5d6e0aef68c7545 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 31 Aug 2022 09:51:01 -0400 Subject: [PATCH 14/24] Bump UCO pointer to current state of develop Signed-off-by: Alex Nelson --- dependencies/UCO | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies/UCO b/dependencies/UCO index bbd58c1..a5658ac 160000 --- a/dependencies/UCO +++ b/dependencies/UCO @@ -1 +1 @@ -Subproject commit bbd58c1725550cf39e09a1aa977bf6dd66989b22 +Subproject commit a5658aca114e2d1d3702d269f9c6f408eea337e6 From 05a98a661bf2d3b9fca3615e7113dfe08e54d3ff Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 31 Aug 2022 15:56:40 -0400 Subject: [PATCH 15/24] Bump UCO pointer to branch that bumps version to 1.0.0 This patch intentionally does not bump CASE's version declaration. Instead, the minimum effects on CASE are implemented to get CI to continue to pass: updating UCO version IRI references. References: * https://github.com/ucoProject/UCO/issues/437 Signed-off-by: Alex Nelson --- dependencies/UCO | 2 +- ontology/investigation/investigation.ttl | 8 ++++---- ontology/master/case.ttl | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dependencies/UCO b/dependencies/UCO index 3f26b3e..c64dd0f 160000 --- a/dependencies/UCO +++ b/dependencies/UCO @@ -1 +1 @@ -Subproject commit 3f26b3e1e96c01cb9036fa1c988fba175d0b3f74 +Subproject commit c64dd0f148b824c3333bbd8719c2e404834f22da diff --git a/ontology/investigation/investigation.ttl b/ontology/investigation/investigation.ttl index 47e8da7..a413b03 100644 --- a/ontology/investigation/investigation.ttl +++ b/ontology/investigation/investigation.ttl @@ -1,6 +1,6 @@ # imports: https://ontology.caseontology.org/case/vocabulary/0.7.1 -# imports: https://ontology.unifiedcyberontology.org/uco/action/0.9.1 -# imports: https://ontology.unifiedcyberontology.org/uco/role/0.9.1 +# imports: https://ontology.unifiedcyberontology.org/uco/action/1.0.0 +# imports: https://ontology.unifiedcyberontology.org/uco/role/1.0.0 @prefix investigation: . @prefix owl: . @@ -19,8 +19,8 @@ rdfs:comment "This ontology defines key concepts, and their associated properties and relationships, for characterizing cyber-investigations in the broadest range of contexts, including security incidents, criminal investigations, civil and regulatory matters, intelligence operations, international disputes, accident inquiries, policy violations, and others." ; owl:imports vocabulary:0.7.1 , - uco-action:0.9.1 , - uco-role:0.9.1 + uco-action:1.0.0 , + uco-role:1.0.0 ; owl:ontologyIRI ; owl:versionIRI investigation:0.7.1 ; diff --git a/ontology/master/case.ttl b/ontology/master/case.ttl index 7a9f141..21c0652 100644 --- a/ontology/master/case.ttl +++ b/ontology/master/case.ttl @@ -1,6 +1,6 @@ # imports: https://ontology.caseontology.org/case/investigation/0.7.1 # imports: https://ontology.caseontology.org/case/vocabulary/0.7.1 -# imports: https://ontology.unifiedcyberontology.org/uco/uco/0.9.1 +# imports: https://ontology.unifiedcyberontology.org/uco/uco/1.0.0 @prefix dct: . @prefix owl: . @@ -19,7 +19,7 @@ owl:imports , , - + ; owl:ontologyIRI ; owl:versionIRI ; From 8aa415ad2ecb0b270607742782534439141bc98f Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 31 Aug 2022 16:11:27 -0400 Subject: [PATCH 16/24] Have CASE closure review include imported ontologies References: * https://github.com/ucoProject/UCO/issues/437 Signed-off-by: Alex Nelson --- tests/Makefile | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/tests/Makefile b/tests/Makefile index 3b4f4e1..beb5177 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -20,6 +20,10 @@ PYTHON3 ?= $(shell which python3.9 2>/dev/null || which python3.8 2>/dev/null || case_turtle_files := $(shell /bin/ls $(top_srcdir)/ontology/*/*.ttl) uco_turtle_files := $(shell /bin/ls $(top_srcdir)/dependencies/UCO/ontology/*/*.ttl $(top_srcdir)/dependencies/UCO/ontology/*/*/*.ttl) +uco_imported_ontology_files := \ + $(top_srcdir)/dependencies/UCO/dependencies/collections-ontology/collections.owl \ + $(top_srcdir)/dependencies/UCO/dependencies/error/docs/current/error.owl + all: # Ensure the CASE-internal shapes pass their own tests. @@ -65,7 +69,12 @@ case_monolithic.ttl: \ $(case_turtle_files) \ $(uco_turtle_files) \ > __$@ - # Review CASE for OWL 2 DL versioning conformance. + # Review CASE closure for versioning consistency. + source venv/bin/activate \ + && rdfpipe \ + __$@ \ + $(imported_ontology_files) \ + > ___$@ source venv/bin/activate \ && pyshacl \ --data-file-format turtle \ @@ -73,7 +82,10 @@ case_monolithic.ttl: \ --inference none \ --shacl $(top_srcdir)/dependencies/UCO/tests/shapes/uco-closure-qc.ttl \ --shacl-file-format turtle \ - __$@ + ___$@ + # Test has passed; remove closure file. + rm ___$@ + # Review CASE for practice conformance. source venv/bin/activate \ && pyshacl \ --data-file-format turtle \ From c33d3b75ffe4e6b84c40918e24c20ca53c227343 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 31 Aug 2022 16:16:18 -0400 Subject: [PATCH 17/24] Disallow warnings in CASE-specific reviews This will show when the tests become too stringent. References: * https://github.com/ucoProject/UCO/issues/437 Signed-off-by: Alex Nelson --- tests/Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/Makefile b/tests/Makefile index beb5177..e7d0760 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -105,7 +105,6 @@ case_monolithic.ttl: \ # Review CASE for OWL 2 DL conformance. source venv/bin/activate \ && pyshacl \ - --allow-warnings \ --data-file-format turtle \ --format turtle \ --inference none \ From b44883b1fe76c157d240c0262286cd545ac32fc7 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 31 Aug 2022 16:07:59 -0400 Subject: [PATCH 18/24] Bump CASE version and link each ontology's prior versionIRI References: * https://github.com/ucoProject/UCO/issues/437 Signed-off-by: Alex Nelson --- ontology/investigation/investigation.ttl | 8 +++++--- ontology/master/case.ttl | 14 ++++++++------ ontology/vocabulary/vocabulary.ttl | 4 +++- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/ontology/investigation/investigation.ttl b/ontology/investigation/investigation.ttl index a413b03..4ea2d26 100644 --- a/ontology/investigation/investigation.ttl +++ b/ontology/investigation/investigation.ttl @@ -1,4 +1,4 @@ -# imports: https://ontology.caseontology.org/case/vocabulary/0.7.1 +# imports: https://ontology.caseontology.org/case/vocabulary/1.0.0 # imports: https://ontology.unifiedcyberontology.org/uco/action/1.0.0 # imports: https://ontology.unifiedcyberontology.org/uco/role/1.0.0 @@ -18,12 +18,14 @@ rdfs:label "investigation"@en ; rdfs:comment "This ontology defines key concepts, and their associated properties and relationships, for characterizing cyber-investigations in the broadest range of contexts, including security incidents, criminal investigations, civil and regulatory matters, intelligence operations, international disputes, accident inquiries, policy violations, and others." ; owl:imports - vocabulary:0.7.1 , + vocabulary:1.0.0 , uco-action:1.0.0 , uco-role:1.0.0 ; + owl:incompatibleWith investigation:0.7.1 ; owl:ontologyIRI ; - owl:versionIRI investigation:0.7.1 ; + owl:priorVersion investigation:0.7.1 ; + owl:versionIRI investigation:1.0.0 ; . investigation:Attorney diff --git a/ontology/master/case.ttl b/ontology/master/case.ttl index 21c0652..b44dbb5 100644 --- a/ontology/master/case.ttl +++ b/ontology/master/case.ttl @@ -1,5 +1,5 @@ -# imports: https://ontology.caseontology.org/case/investigation/0.7.1 -# imports: https://ontology.caseontology.org/case/vocabulary/0.7.1 +# imports: https://ontology.caseontology.org/case/investigation/1.0.0 +# imports: https://ontology.caseontology.org/case/vocabulary/1.0.0 # imports: https://ontology.unifiedcyberontology.org/uco/uco/1.0.0 @prefix dct: . @@ -17,12 +17,14 @@ rdfs:comment "The Cyber-investigation Analysis Standard Expression (CASE) ontology is a community-developed standard that defines concepts used in a broad range of cyber-investigation domains, including digital forensic science, incident response, counter-terrorism, criminal justice, forensic intelligence, and situational awareness. CASE includes all aspects of the digital forensic process, from evidence-gathering and chain of custody, to generating a final report. The goal is to increase sharing and interoperability of cyber-investigation information among organizations and between forensic analytic tools. CASE aligns with and extends the Unified Cyber Ontology (UCO). The preferred namespace abbreviation for this ontology is: case-master."@en ; dct:title "Cyber-investigation Analysis Standard Expression (CASE)"@en ; owl:imports - , - , + , + , ; + owl:incompatibleWith ; owl:ontologyIRI ; - owl:versionIRI ; - owl:versionInfo "0.7.1" ; + owl:priorVersion ; + owl:versionIRI ; + owl:versionInfo "1.0.0" ; . diff --git a/ontology/vocabulary/vocabulary.ttl b/ontology/vocabulary/vocabulary.ttl index 51048eb..9a6a19a 100644 --- a/ontology/vocabulary/vocabulary.ttl +++ b/ontology/vocabulary/vocabulary.ttl @@ -7,8 +7,10 @@ a owl:Ontology ; rdfs:label "vocabularies"@en ; + owl:incompatibleWith vocab:0.7.1 ; owl:ontologyIRI ; - owl:versionIRI vocab:0.7.1 ; + owl:priorVersion vocab:0.7.1 ; + owl:versionIRI vocab:1.0.0 ; . vocab:InvestigationFormVocab From 20f8635a79772c834ee093a2c952aa70ec1d5ef7 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 31 Aug 2022 20:53:18 -0400 Subject: [PATCH 19/24] Adopt graph-individual identification using IRI form A follow-on patch will regenerate Make-managed files. References: * https://github.com/ucoProject/UCO/issues/430 Signed-off-by: Alex Nelson --- dependencies/UCO | 2 +- tests/examples/investigative_action_PASS.json | 14 ++++++++------ tests/examples/investigative_action_XFAIL.json | 14 ++++++++------ 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/dependencies/UCO b/dependencies/UCO index a5658ac..24c6065 160000 --- a/dependencies/UCO +++ b/dependencies/UCO @@ -1 +1 @@ -Subproject commit a5658aca114e2d1d3702d269f9c6f408eea337e6 +Subproject commit 24c60655730daed5e5b2e0b231748098b4bed1bf diff --git a/tests/examples/investigative_action_PASS.json b/tests/examples/investigative_action_PASS.json index 522fc64..3ba6263 100644 --- a/tests/examples/investigative_action_PASS.json +++ b/tests/examples/investigative_action_PASS.json @@ -9,7 +9,7 @@ }, "@graph": [ { - "@id": "kb:file-1", + "@id": "kb:file-1ef24857-e713-40ec-b325-b2561a4fcb3a", "@type": [ "uco-observable:File", "uco-observable:RasterPicture" @@ -17,11 +17,13 @@ "uco-core:description": "Screenshot of webpage", "uco-core:hasFacet": [ { + "@id": "kb:file-facet-0e21a61a-3a68-490c-9e93-d456c227d14b", "@type": "uco-observable:FileFacet", "uco-observable:fileName": "screenshot-1.png", "uco-observable:sizeInBytes": 1234567 }, { + "@id": "kb:raster-picture-facet-166f8489-cff6-4405-b977-be46dc4a1a88", "@type": "uco-observable:RasterPictureFacet", "uco-observable:pictureHeight": 1024, "uco-observable:pictureWidth": 768 @@ -29,25 +31,25 @@ ] }, { - "@id": "kb:investigative-action-1", + "@id": "kb:investigative-action-45a85ed1-acd5-45be-aa78-891170bbd9b6", "@type": "case-investigation:InvestigativeAction", "uco-action:result": [ { - "@id": "kb:file-1" + "@id": "kb:file-1ef24857-e713-40ec-b325-b2561a4fcb3a" }, { - "@id": "kb:provenance-record-1" + "@id": "kb:provenance-record-9e807c8c-ad7e-41aa-bd60-1dc98cae25c7" } ], "uco-core:name": "Submit reference graphic" }, { - "@id": "kb:provenance-record-1", + "@id": "kb:provenance-record-9e807c8c-ad7e-41aa-bd60-1dc98cae25c7", "@type": "case-investigation:ProvenanceRecord", "case-investigation:exhibitNumber": "1", "case-investigation:rootExhibitNumber": "1", "uco-core:object": { - "@id": "kb:file-1" + "@id": "kb:file-1ef24857-e713-40ec-b325-b2561a4fcb3a" } } ] diff --git a/tests/examples/investigative_action_XFAIL.json b/tests/examples/investigative_action_XFAIL.json index b65f21e..a40675d 100644 --- a/tests/examples/investigative_action_XFAIL.json +++ b/tests/examples/investigative_action_XFAIL.json @@ -9,7 +9,7 @@ }, "@graph": [ { - "@id": "kb:file-1", + "@id": "kb:file-9c9e20f9-e545-490f-bd3d-1fe230c18c0b", "@type": [ "uco-observable:File", "uco-observable:RasterPicture" @@ -17,10 +17,12 @@ "uco-core:description": "Screenshot of webpage", "uco-core:hasFacet": [ { + "@id": "kb:file-facet-da204016-29ff-4d5e-a36f-ff75a9d3169b", "@type": "uco-observable:FileFacet", "uco-observable:fileName": "screenshot-1.png" }, { + "@id": "kb:raster-picture-facet-022af595-c417-47bf-b5f3-9a19ed3554bc", "@type": "uco-observable:RasterPictureFacet", "rdfs:comment": "The sizeInBytes property does not belong on this Facet.", "uco-observable:pictureHeight": 1024, @@ -30,26 +32,26 @@ ] }, { - "@id": "kb:investigative-action-1", + "@id": "kb:investigative-action-a6b22845-2d81-4d24-ac22-dec5139d027a", "@type": "case-investigation:InvestigativeAction", "uco-action:result": [ { - "@id": "kb:file-1" + "@id": "kb:file-9c9e20f9-e545-490f-bd3d-1fe230c18c0b" }, { - "@id": "kb:provenance-record-1" + "@id": "kb:provenance-record-f54f88ad-2659-4fba-8c3e-d96efa560fdf" } ], "uco-core:name": "Submit reference graphic" }, { - "@id": "kb:provenance-record-1", + "@id": "kb:provenance-record-f54f88ad-2659-4fba-8c3e-d96efa560fdf", "@type": "case-investigation:ProvenanceRecord", "rdfs:comment": "The exhibitNumber and rootExhibitNumber properties are errantly integers here, instead of strings.", "case-investigation:exhibitNumber": 1, "case-investigation:rootExhibitNumber": 1, "uco-core:object": { - "@id": "kb:file-1" + "@id": "kb:file-9c9e20f9-e545-490f-bd3d-1fe230c18c0b" } } ] From de1b6e6e602e3dddabc9196bf55262bd007248ef Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 31 Aug 2022 20:58:08 -0400 Subject: [PATCH 20/24] Regenerate Make-managed files References: * https://github.com/ucoProject/UCO/issues/430 Signed-off-by: Alex Nelson --- tests/examples/investigative_action_XFAIL_validation.ttl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/examples/investigative_action_XFAIL_validation.ttl b/tests/examples/investigative_action_XFAIL_validation.ttl index d930ffa..fd27e06 100644 --- a/tests/examples/investigative_action_XFAIL_validation.ttl +++ b/tests/examples/investigative_action_XFAIL_validation.ttl @@ -11,7 +11,7 @@ sh:result [ a sh:ValidationResult ; - sh:focusNode ; + sh:focusNode ; sh:resultMessage "Value is not Literal with datatype xsd:string" ; sh:resultPath investigation:exhibitNumber ; sh:resultSeverity sh:Violation ; @@ -26,7 +26,7 @@ ] , [ a sh:ValidationResult ; - sh:focusNode ; + sh:focusNode ; sh:resultMessage "Value is not Literal with datatype xsd:string" ; sh:resultPath investigation:rootExhibitNumber ; sh:resultSeverity sh:Violation ; From 7bb52d9bb813d06f76c4a75aa4f3f9875c37132e Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 31 Aug 2022 22:07:28 -0400 Subject: [PATCH 21/24] Bump UCO pointer to adopted state of for-1.0.0 feature branch References: * https://github.com/ucoProject/UCO/issues/437 * https://github.com/ucoProject/UCO/pull/484 Signed-off-by: Alex Nelson --- dependencies/UCO | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies/UCO b/dependencies/UCO index c64dd0f..8162203 160000 --- a/dependencies/UCO +++ b/dependencies/UCO @@ -1 +1 @@ -Subproject commit c64dd0f148b824c3333bbd8719c2e404834f22da +Subproject commit 81622038e2c165c75fe327422529c8468555e7b0 From cde6b7b852f475990409dfc5300d5bbf1217f335 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 31 Aug 2022 22:19:23 -0400 Subject: [PATCH 22/24] Bump UCO pointer to adopted state of 430 feature branch References: * https://github.com/ucoProject/UCO/issues/430 * https://github.com/ucoProject/UCO/pull/467 Signed-off-by: Alex Nelson --- dependencies/UCO | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies/UCO b/dependencies/UCO index 24c6065..c770704 160000 --- a/dependencies/UCO +++ b/dependencies/UCO @@ -1 +1 @@ -Subproject commit 24c60655730daed5e5b2e0b231748098b4bed1bf +Subproject commit c770704acc8d17ff47b905776486e0c33c15abe7 From 761b058dbe8ca1b7f33b106c7c12e4c9b44c83a4 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 31 Aug 2022 23:07:04 -0400 Subject: [PATCH 23/24] Adopt UCO 1.0.0 References: * [OC-44] UCO Version 1.0.0 Signed-off-by: Alex Nelson --- dependencies/UCO | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies/UCO b/dependencies/UCO index c770704..1ffc719 160000 --- a/dependencies/UCO +++ b/dependencies/UCO @@ -1 +1 @@ -Subproject commit c770704acc8d17ff47b905776486e0c33c15abe7 +Subproject commit 1ffc719e06b81a5d521366f11bd247d390fcad6f From ce75e4e8704529e3ac2cde98534be46911bd9e2b Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 31 Aug 2022 23:08:26 -0400 Subject: [PATCH 24/24] Log changes Signed-off-by: Alex Nelson --- ChangeLog | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ChangeLog b/ChangeLog index a169a11..43c39c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,8 @@ 2022-08-31 + * ONT-295: Release CASE 1.0.0, with release notes at https://caseontology.org/releases/1.0.0/ + * (761b058): Adopt UCO 1.0.0 + * (40c4ba1): UCO Issue 430: Require non-blank nodes in graph data + * (33a0c3e): UCO Issue 437: Adopt priorVersion practice prepared for UCO 1.0.0 * ONT-410: Release CASE 0.7.1, with release notes at https://caseontology.org/releases/0.7.1/ * (5b8c03f): UCO Issue 437: Adopt UCO 0.9.1 * (e673017): UCO OC-217, CP-107: Revise ontology IRI to be slash-based and drop IRI base