From 8f7c87afbfb42a5ac39b736ebc76286be17b0d53 Mon Sep 17 00:00:00 2001 From: Paul Brandt Date: Wed, 20 Oct 2021 18:25:05 +0200 Subject: [PATCH 01/12] Correct rootExhibitNumber definition issues and align with exhibitNumber (CP-36) --- 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 dcebd01..c485428 100644 --- a/ontology/investigation/investigation.ttl +++ b/ontology/investigation/investigation.ttl @@ -191,7 +191,7 @@ investigation:authorizationType investigation:exhibitNumber a owl:DatatypeProperty ; rdfs:label "exhibitNumber"@en ; - rdfs:comment "Specifies a unique identifier assigned to a given object at any stage of an investigation to differentiate it from all other objects."@en ; + rdfs:comment "The exhibit number specifies an identifier assigned to a set of objects, unique within the scope of an investigation."@en ; rdfs:range xsd:string ; . @@ -226,7 +226,7 @@ investigation:relevantAuthorization investigation:rootExhibitNumber a owl:DatatypeProperty ; rdfs:label "rootExhibitNumber"@en ; - rdfs:comment "Specifies a unique identifier assigned to a given object at the start of its treatment as part of an investigation. The first node in a provenance chain, which can be viewed as a heirarchical tree originating from a single root."@en ; + rdfs:comment "The root exhibit number specifies a unique identifier assigned to a set of objects at the start of their treatment as part of an investigation. When found on a provenance record that comes after initial investigative treatment, the root exhibit number is a reference to the initial provenance record."@en ; rdfs:range xsd:string ; . From 0f77c78fdf4210526ec8fcf2f5c1a57411607ed3 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Mon, 14 Feb 2022 14:55:39 -0500 Subject: [PATCH 02/12] Add reflexive sh:targetClass shape application statements References: * [ONT-468] (CP-44) Investigation namespace classes are missing sh:targetShape statements Signed-off-by: Alex Nelson --- ChangeLog | 3 +++ ontology/investigation/investigation.ttl | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/ChangeLog b/ChangeLog index b3b086e..8186921 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +2022-02-14 + * ONT-468, CP-44: Made sh:targetClass shape application statements consistent between CASE and UCO + 2021-10-26 * ONT-437: Release CASE 0.5.0, with release notes at https://caseontology.org/releases/0.5.0/ diff --git a/ontology/investigation/investigation.ttl b/ontology/investigation/investigation.ttl index 841a79a..5d4f553 100644 --- a/ontology/investigation/investigation.ttl +++ b/ontology/investigation/investigation.ttl @@ -38,6 +38,7 @@ investigation:Attorney rdfs:subClassOf uco-role:Role ; rdfs:label "Attorney"@en ; rdfs:comment "Attorney is a role involved in preparing, interpreting, and applying law."@en ; + sh:targetClass investigation:Attorney ; . investigation:Authorization @@ -75,6 +76,7 @@ investigation:Authorization sh:path investigation:authorizationIdentifier ; ] ; + sh:targetClass investigation:Authorization ; . investigation:Examiner @@ -85,6 +87,7 @@ investigation:Examiner rdfs:subClassOf uco-role:Role ; rdfs:label "Examiner"@en ; rdfs:comment "Examiner is a role involved in providing scientific evaluations of evidence that are used to aid law enforcement investigations and court cases."@en ; + sh:targetClass investigation:Examiner ; . investigation:ExaminerActionLifecylce @@ -95,6 +98,7 @@ investigation:ExaminerActionLifecylce rdfs:subClassOf uco-action:ActionLifecycle ; rdfs:label "ExaminerActionLifecylce"@en ; rdfs:comment "An examiner action life cycle is an action pattern consisting of an ordered set of actions or subordinate action-lifecycles performed by an entity acting in a role involved in providing scientific evaluations of evidence that is used to aid law enforcement investigations and court cases."@en ; + sh:targetClass investigation:ExaminerActionLifecylce ; . investigation:Investigation @@ -142,6 +146,7 @@ investigation:Investigation sh:path investigation:investigationForm ; ] ; + sh:targetClass investigation:Investigation ; . investigation:InvestigativeAction @@ -157,6 +162,7 @@ investigation:InvestigativeAction sh:nodeKind sh:BlankNodeOrIRI ; sh:path investigation:wasInformedBy ; ] ; + sh:targetClass investigation:InvestigativeAction ; . investigation:Investigator @@ -167,6 +173,7 @@ investigation:Investigator rdfs:subClassOf uco-role:Role ; rdfs:label "Investigator"@en ; rdfs:comment "Investigator is a role involved in coordinating an investigation."@en ; + sh:targetClass investigation:Investigator ; . investigation:ProvenanceRecord @@ -191,6 +198,7 @@ investigation:ProvenanceRecord sh:path investigation:rootExhibitNumber ; ] ; + sh:targetClass investigation:ProvenanceRecord ; . investigation:Subject @@ -201,6 +209,7 @@ investigation:Subject rdfs:subClassOf uco-role:Role ; rdfs:label "Subject"@en ; rdfs:comment "Subject is a role whose conduct is within the scope of an investigation."@en ; + sh:targetClass investigation:Subject ; . investigation:SubjectActionLifecycle @@ -211,6 +220,7 @@ investigation:SubjectActionLifecycle rdfs:subClassOf uco-action:ActionLifecycle ; rdfs:label "SubjectActionLifecycle"@en ; rdfs:comment "A subject action life cycle is an action pattern consisting of an ordered set of multiple actions or subordinate action-lifecycles performed by an entity acting in a role whose conduct may be within the scope of an investigation."@en ; + sh:targetClass investigation:SubjectActionLifecycle ; . investigation:VictimActionLifecycle @@ -221,6 +231,7 @@ investigation:VictimActionLifecycle rdfs:subClassOf uco-action:ActionLifecycle ; rdfs:label "VictimActionLifecycle"@en ; rdfs:comment "A victim action life cycle is an action pattern consisting of an ordered set of multiple actions or subordinate action-lifecycles performed by an entity acting in a role characterized by its potential to be harmed as a result of a crime, accident, or other event or action."@en ; + sh:targetClass investigation:VictimActionLifecycle ; . investigation:authorizationIdentifier From bc99cf73f61b7b0576456f7014fd90596a37afb6 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Thu, 3 Mar 2022 13:37:08 -0500 Subject: [PATCH 03/12] Adopt UCO 0.8.0 IRI structure revision Note this patch advances the UCO submodule pointer to the minimum necessary patch off of UCO's `develop` that enacts the IRI structure revision. A follow-on patch should advance the pointer again either once that branch is merged, or once UCO 0.8.0 is released. References: * [UCO OC-217] (CP-107) Revise ontology IRI to be slash-based and drop IRI base Signed-off-by: Alex Nelson --- dependencies/UCO | 2 +- ontology/investigation/investigation.ttl | 22 +++++++++---------- ontology/master/case.ttl | 4 ++-- tests/examples/investigative_action_PASS.json | 6 ++--- .../examples/investigative_action_XFAIL.json | 6 ++--- tests/examples/test_validation.py | 8 +++---- 6 files changed, 24 insertions(+), 24 deletions(-) diff --git a/dependencies/UCO b/dependencies/UCO index c83bbca..700d1e6 160000 --- a/dependencies/UCO +++ b/dependencies/UCO @@ -1 +1 @@ -Subproject commit c83bbcaf7841d5b7c1f8183a12d0afaf3806f699 +Subproject commit 700d1e6acc887619f912874e8e9c4851494f389d diff --git a/ontology/investigation/investigation.ttl b/ontology/investigation/investigation.ttl index 5d4f553..56ec260 100644 --- a/ontology/investigation/investigation.ttl +++ b/ontology/investigation/investigation.ttl @@ -1,9 +1,9 @@ # baseURI: https://ontology.caseontology.org/case/investigation # imports: https://ontology.caseontology.org/case/vocabulary -# imports: https://unifiedcyberontology.org/ontology/uco/action -# imports: https://unifiedcyberontology.org/ontology/uco/core -# imports: https://unifiedcyberontology.org/ontology/uco/location -# imports: https://unifiedcyberontology.org/ontology/uco/role +# imports: https://ontology.unifiedcyberontology.org/uco/action +# imports: https://ontology.unifiedcyberontology.org/uco/core +# imports: https://ontology.unifiedcyberontology.org/uco/location +# imports: https://ontology.unifiedcyberontology.org/uco/role @base . @prefix investigation: . @@ -11,9 +11,9 @@ @prefix rdf: . @prefix rdfs: . @prefix sh: . -@prefix uco-action: . -@prefix uco-core: . -@prefix uco-role: . +@prefix uco-action: . +@prefix uco-core: . +@prefix uco-role: . @prefix vocabulary: . @prefix xsd: . @@ -23,10 +23,10 @@ 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 , - , - , - , - + , + , + , + ; . diff --git a/ontology/master/case.ttl b/ontology/master/case.ttl index 972548c..4f5c554 100644 --- a/ontology/master/case.ttl +++ b/ontology/master/case.ttl @@ -1,7 +1,7 @@ # baseURI: https://ontology.caseontology.org/case/case # imports: https://ontology.caseontology.org/case/investigation # imports: https://ontology.caseontology.org/case/vocabulary -# imports: https://unifiedcyberontology.org/ontology/uco/uco +# imports: https://ontology.unifiedcyberontology.org/uco/uco @base . @prefix dct: . @@ -21,7 +21,7 @@ owl:imports , , - + ; owl:incompatibleWith ; owl:ontologyIRI ; diff --git a/tests/examples/investigative_action_PASS.json b/tests/examples/investigative_action_PASS.json index f717ba3..6902037 100644 --- a/tests/examples/investigative_action_PASS.json +++ b/tests/examples/investigative_action_PASS.json @@ -2,9 +2,9 @@ "@context": { "kb": "http://example.org/kb/", "case-investigation": "https://ontology.caseontology.org/case/investigation/", - "uco-action": "https://unifiedcyberontology.org/ontology/uco/action#", - "uco-core": "https://unifiedcyberontology.org/ontology/uco/core#", - "uco-observable": "https://unifiedcyberontology.org/ontology/uco/observable#", + "uco-action": "https://ontology.unifiedcyberontology.org/uco/action/", + "uco-core": "https://ontology.unifiedcyberontology.org/uco/core/", + "uco-observable": "https://ontology.unifiedcyberontology.org/uco/observable/", "xsd": "http://www.w3.org/2001/XMLSchema#" }, "@graph": [ diff --git a/tests/examples/investigative_action_XFAIL.json b/tests/examples/investigative_action_XFAIL.json index 653062d..008d37c 100644 --- a/tests/examples/investigative_action_XFAIL.json +++ b/tests/examples/investigative_action_XFAIL.json @@ -2,9 +2,9 @@ "@context": { "kb": "http://example.org/kb/", "case-investigation": "https://ontology.caseontology.org/case/investigation/", - "uco-action": "https://unifiedcyberontology.org/ontology/uco/action#", - "uco-core": "https://unifiedcyberontology.org/ontology/uco/core#", - "uco-observable": "https://unifiedcyberontology.org/ontology/uco/observable#", + "uco-action": "https://ontology.unifiedcyberontology.org/uco/action/", + "uco-core": "https://ontology.unifiedcyberontology.org/uco/core/", + "uco-observable": "https://ontology.unifiedcyberontology.org/uco/observable/", "xsd": "http://www.w3.org/2001/XMLSchema#" }, "@graph": [ diff --git a/tests/examples/test_validation.py b/tests/examples/test_validation.py index 514c8af..f34c7fb 100644 --- a/tests/examples/test_validation.py +++ b/tests/examples/test_validation.py @@ -29,10 +29,10 @@ NS_CASE_INVESTIGATION = rdflib.Namespace("https://ontology.caseontology.org/case/investigation/") NS_SH = rdflib.SH -NS_UCO_ACTION = rdflib.Namespace("https://unifiedcyberontology.org/ontology/uco/action#") -NS_UCO_CORE = rdflib.Namespace("https://unifiedcyberontology.org/ontology/uco/core#") -NS_UCO_LOCATION = rdflib.Namespace("https://unifiedcyberontology.org/ontology/uco/location#") -NS_UCO_OBSERVABLE = rdflib.Namespace("https://unifiedcyberontology.org/ontology/uco/observable#") +NS_UCO_ACTION = rdflib.Namespace("https://ontology.unifiedcyberontology.org/uco/action/") +NS_UCO_CORE = rdflib.Namespace("https://ontology.unifiedcyberontology.org/uco/core/") +NS_UCO_LOCATION = rdflib.Namespace("https://ontology.unifiedcyberontology.org/uco/location/") +NS_UCO_OBSERVABLE = rdflib.Namespace("https://ontology.unifiedcyberontology.org/uco/observable/") NSDICT = {"sh": NS_SH} From ec9924d8ef46c55453f4250c4486e60547fac882 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Tue, 8 Mar 2022 15:52:12 -0500 Subject: [PATCH 04/12] Bump UCO pointer to 'develop' merge point incorporating UCO CP-107 This pointer intentionally merges the earliest necessary UCO 'develop' state. This pointer update, in effect, resolves CASE CP-34 in the `develop` state. (A future PR will need to apply the same effect for CASE 0.2.1.) References: * [UCO OC-217] (CP-107) Revise ontology IRI to be slash-based and drop IRI base * [ONT-435] (CP-34) Revise ontology IRI to be slash-based and drop resource-type Signed-off-by: Alex Nelson --- dependencies/UCO | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies/UCO b/dependencies/UCO index 700d1e6..4a4bae6 160000 --- a/dependencies/UCO +++ b/dependencies/UCO @@ -1 +1 @@ -Subproject commit 700d1e6acc887619f912874e8e9c4851494f389d +Subproject commit 4a4bae65c36fcac282a42f2fb825385c80451cad From bfc6d02737ecc7411535c787e4dc0b884f8b2a4a Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Tue, 8 Mar 2022 15:57:05 -0500 Subject: [PATCH 05/12] Update UCO ontology file paths References: * [UCO OC-125] (CP-56) Move ontology files under top-level directory /ontology Signed-off-by: Alex Nelson --- tests/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Makefile b/tests/Makefile index febe7d5..b5d36cd 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/uco-*/*.ttl) +uco_turtle_files := $(shell /bin/ls $(top_srcdir)/dependencies/UCO/ontology/*/*.ttl) all: From cc1975615d18b9eb5e0fd58f6c9161b168f5a9d7 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Tue, 8 Mar 2022 16:01:15 -0500 Subject: [PATCH 06/12] Remove ActionReferencesFacet References: * [UCO OC-62] (CP-89) action:Action needs to document why some properties are in the indirect ActionReferences and some are on the Action class Signed-off-by: Alex Nelson --- tests/examples/investigative_action_PASS.json | 19 ++++++++----------- .../examples/investigative_action_XFAIL.json | 19 ++++++++----------- 2 files changed, 16 insertions(+), 22 deletions(-) diff --git a/tests/examples/investigative_action_PASS.json b/tests/examples/investigative_action_PASS.json index 6902037..522fc64 100644 --- a/tests/examples/investigative_action_PASS.json +++ b/tests/examples/investigative_action_PASS.json @@ -31,17 +31,14 @@ { "@id": "kb:investigative-action-1", "@type": "case-investigation:InvestigativeAction", - "uco-core:hasFacet": { - "@type": "uco-action:ActionReferencesFacet", - "uco-action:result": [ - { - "@id": "kb:file-1" - }, - { - "@id": "kb:provenance-record-1" - } - ] - }, + "uco-action:result": [ + { + "@id": "kb:file-1" + }, + { + "@id": "kb:provenance-record-1" + } + ], "uco-core:name": "Submit reference graphic" }, { diff --git a/tests/examples/investigative_action_XFAIL.json b/tests/examples/investigative_action_XFAIL.json index 008d37c..b65f21e 100644 --- a/tests/examples/investigative_action_XFAIL.json +++ b/tests/examples/investigative_action_XFAIL.json @@ -32,17 +32,14 @@ { "@id": "kb:investigative-action-1", "@type": "case-investigation:InvestigativeAction", - "uco-core:hasFacet": { - "@type": "uco-action:ActionReferencesFacet", - "uco-action:result": [ - { - "@id": "kb:file-1" - }, - { - "@id": "kb:provenance-record-1" - } - ] - }, + "uco-action:result": [ + { + "@id": "kb:file-1" + }, + { + "@id": "kb:provenance-record-1" + } + ], "uco-core:name": "Submit reference graphic" }, { From c4abfeb990a1116890e84b7ffd259e351a997cc4 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Tue, 8 Mar 2022 16:06:35 -0500 Subject: [PATCH 07/12] Log changes --- ChangeLog | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ChangeLog b/ChangeLog index 8186921..5e8aacc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2022-03-08 + * (cc19756) UCO OC-62, CP-89: Removed ActionReferencesFacet + * (bfc6d02) UCO OC-125, CP-56: Updated UCO ontology file paths + * UCO OC-217, CP-107: Revised ontology IRI structure as in CASE CP-34 + 2022-02-14 * ONT-468, CP-44: Made sh:targetClass shape application statements consistent between CASE and UCO From 1ec10d2e1b95a28b5d80b545758a0c7d3271edb1 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 23 Mar 2022 16:15:39 -0400 Subject: [PATCH 08/12] Adopt UCO 0.8.0 References: * [UCO OC-113] UCO Version 0.8.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 4a4bae6..8495cd0 160000 --- a/dependencies/UCO +++ b/dependencies/UCO @@ -1 +1 @@ -Subproject commit 4a4bae65c36fcac282a42f2fb825385c80451cad +Subproject commit 8495cd0134f1aeca8b3328d7e4fcdb981ceb5079 From 68a40f1287d98277b4b4759952d8333e95edb20b Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 23 Mar 2022 16:33:48 -0400 Subject: [PATCH 09/12] Log changes Signed-off-by: Alex Nelson --- ChangeLog | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5e8aacc..3134e3b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,10 +1,16 @@ +2022-03-23 + * (a1b5d0b) ONT-471: Adopt UCO 0.8.0 + * (8f7c87a) ONT-438, CP-36: Corrected rootExhibitNumber definition issues and aligned with exhibitNumber + * CP-36: https://drive.google.com/file/d/114XogkDDIqciWuJBJ3oRlMR5HoHCXwU7/view + 2022-03-08 * (cc19756) UCO OC-62, CP-89: Removed ActionReferencesFacet * (bfc6d02) UCO OC-125, CP-56: Updated UCO ontology file paths - * UCO OC-217, CP-107: Revised ontology IRI structure as in CASE CP-34 + * (bc99cf7) UCO OC-217, CP-107: Revised ontology IRI structure as in CASE CP-34 2022-02-14 - * ONT-468, CP-44: Made sh:targetClass shape application statements consistent between CASE and UCO + * (ee4143d) ONT-468, CP-44: Made sh:targetClass shape application statements consistent between CASE and UCO + * CP-44: https://drive.google.com/file/d/1GN9lbqTpWLiU-TGPj53wYQzTQ9AvYb4l/view 2021-10-26 * ONT-437: Release CASE 0.5.0, with release notes at https://caseontology.org/releases/0.5.0/ From 57f0503fbce9559bb046de3fd0e96fd70edce23e Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 23 Mar 2022 16:36:53 -0400 Subject: [PATCH 10/12] Bump version Signed-off-by: Alex Nelson --- ontology/master/case.ttl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ontology/master/case.ttl b/ontology/master/case.ttl index 4f5c554..12947ab 100644 --- a/ontology/master/case.ttl +++ b/ontology/master/case.ttl @@ -26,6 +26,6 @@ owl:incompatibleWith ; owl:ontologyIRI ; owl:priorVersion ; - owl:versionInfo "0.5.0" ; + owl:versionInfo "0.6.0" ; . From 8d2ed50f8589e7fdfccb72b5de39e5c871493c27 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 23 Mar 2022 16:37:30 -0400 Subject: [PATCH 11/12] Log change Signed-off-by: Alex Nelson --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 3134e3b..a357e36 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,5 @@ 2022-03-23 + * ONT-463: Release CASE 0.6.0, with release notes at https://caseontology.org/releases/0.6.0/ * (a1b5d0b) ONT-471: Adopt UCO 0.8.0 * (8f7c87a) ONT-438, CP-36: Corrected rootExhibitNumber definition issues and aligned with exhibitNumber * CP-36: https://drive.google.com/file/d/114XogkDDIqciWuJBJ3oRlMR5HoHCXwU7/view From 34222ab0eb7884457a34610d150a40f18a9bd5b9 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Wed, 23 Mar 2022 17:49:33 -0400 Subject: [PATCH 12/12] Bump date Signed-off-by: Alex Nelson --- ChangeLog | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index a357e36..e6eda74 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ -2022-03-23 +2022-03-24 * ONT-463: Release CASE 0.6.0, with release notes at https://caseontology.org/releases/0.6.0/ + +2022-03-23 * (a1b5d0b) ONT-471: Adopt UCO 0.8.0 * (8f7c87a) ONT-438, CP-36: Corrected rootExhibitNumber definition issues and aligned with exhibitNumber * CP-36: https://drive.google.com/file/d/114XogkDDIqciWuJBJ3oRlMR5HoHCXwU7/view