From 126b05a8230d3c03cbaf2ef778c8664a8cd71a5d Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Tue, 10 May 2022 14:48:43 -0400 Subject: [PATCH 1/2] Update prerelease submodule pointer A follow-on patch will regenerate Make-managed files. References: * https://github.com/ucoProject/UCO/issues/357 * https://github.com/ucoProject/UCO/issues/363 Signed-off-by: Alex Nelson --- dependencies/UCO-unstable | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies/UCO-unstable b/dependencies/UCO-unstable index 296497e1..08ef73c8 160000 --- a/dependencies/UCO-unstable +++ b/dependencies/UCO-unstable @@ -1 +1 @@ -Subproject commit 296497e103b048c44f3376831f675aaa746fc60e +Subproject commit 08ef73c8acc4cf4f105dbfa3c39a82b5241add40 From 7f87b79da6fff61c46b7e0bc1dedbf39f90fc277 Mon Sep 17 00:00:00 2001 From: Alex Nelson Date: Tue, 10 May 2022 14:49:28 -0400 Subject: [PATCH 2/2] Regenerate Make-managed files Signed-off-by: Alex Nelson --- .../urgent_evidence_validation-unstable.ttl | 629 +++++++++++++++++- ontology/CASE-unstable.ttl | 102 ++- 2 files changed, 700 insertions(+), 31 deletions(-) diff --git a/examples/urgent_evidence/src/urgent_evidence_validation-unstable.ttl b/examples/urgent_evidence/src/urgent_evidence_validation-unstable.ttl index e7eba886..2a4fcc58 100644 --- a/examples/urgent_evidence/src/urgent_evidence_validation-unstable.ttl +++ b/examples/urgent_evidence/src/urgent_evidence_validation-unstable.ttl @@ -1,27 +1,628 @@ @prefix action: . @prefix core: . +@prefix dcterms: . +@prefix observable: . @prefix owl: . @prefix rdf: . @prefix rdfs: . @prefix sh: . +@prefix skos: . +@prefix types: . +@prefix vocabulary1: . @prefix xsd: . [] a sh:ValidationReport ; sh:conforms "false"^^xsd:boolean ; - sh:result [ - a sh:ValidationResult ; - sh:focusNode ; - sh:resultMessage "Value does not have class core:UcoObject" ; - sh:resultPath action:object ; - sh:resultSeverity sh:Violation ; - sh:sourceConstraintComponent sh:ClassConstraintComponent ; - sh:sourceShape [ - sh:class core:UcoObject ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:path action:object ; - ] ; - sh:value ; - ] ; + sh:result + [ + a sh:ValidationResult ; + sh:focusNode ; + sh:resultMessage "Value does not have class core:UcoObject" ; + sh:resultPath action:object ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class core:UcoObject ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:path action:object ; + ] ; + sh:value ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode "image/jpeg" ; + sh:resultMessage "The used mimeType value is not a concept with a skos:notation. Some consumers of this data expect a string with the MIME 'type/subtype' format to be supplied with skos:notation. Please either add the skos:notation to your input graph or incorporate the UCO MIME Taxonomy."@en ; + sh:resultPath skos:notation ; + sh:resultSeverity sh:Warning ; + sh:sourceConstraintComponent sh:MinCountConstraintComponent ; + sh:sourceShape observable:mimeType-notation ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "132bfadcc46addedcafcd84653f1a56007eba2f27bfcb15824536cda65a49c9a"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "3777924"^^xsd:integer ; + ] ; + sh:resultMessage "Value does not have class dcterms:FileFormat" ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "132bfadcc46addedcafcd84653f1a56007eba2f27bfcb15824536cda65a49c9a"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "3777924"^^xsd:integer ; + ] ; + sh:resultMessage "Value is not an instance of types:MIMEFormat or one of its subclasses. Please consider using a value having type types:IANAMediaType or types:NonIANAMediaType."@en ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Info ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape observable:mimeType-class-types-MIMEFormat ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "132bfadcc46addedcafcd84653f1a56007eba2f27bfcb15824536cda65a49c9a"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "3777924"^^xsd:integer ; + ] ; + sh:resultMessage "Value is not of Node Kind sh:IRI" ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "1929ec6c6186f43860da7c77c0c65d1b8543a5543572261a1b71084e7bf80a0e"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "5010291"^^xsd:integer ; + ] ; + sh:resultMessage "Value does not have class dcterms:FileFormat" ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "1929ec6c6186f43860da7c77c0c65d1b8543a5543572261a1b71084e7bf80a0e"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "5010291"^^xsd:integer ; + ] ; + sh:resultMessage "Value is not an instance of types:MIMEFormat or one of its subclasses. Please consider using a value having type types:IANAMediaType or types:NonIANAMediaType."@en ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Info ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape observable:mimeType-class-types-MIMEFormat ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "1929ec6c6186f43860da7c77c0c65d1b8543a5543572261a1b71084e7bf80a0e"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "5010291"^^xsd:integer ; + ] ; + sh:resultMessage "Value is not of Node Kind sh:IRI" ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73a43362938b9824"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "3963541"^^xsd:integer ; + ] ; + sh:resultMessage "Value does not have class dcterms:FileFormat" ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73a43362938b9824"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "3963541"^^xsd:integer ; + ] ; + sh:resultMessage "Value is not an instance of types:MIMEFormat or one of its subclasses. Please consider using a value having type types:IANAMediaType or types:NonIANAMediaType."@en ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Info ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape observable:mimeType-class-types-MIMEFormat ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73a43362938b9824"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "3963541"^^xsd:integer ; + ] ; + sh:resultMessage "Value is not of Node Kind sh:IRI" ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "6ba5b138057cca4e737a86083cf28426093f218efbef64967863a6c83138fe89"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "4929041"^^xsd:integer ; + ] ; + sh:resultMessage "Value does not have class dcterms:FileFormat" ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "6ba5b138057cca4e737a86083cf28426093f218efbef64967863a6c83138fe89"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "4929041"^^xsd:integer ; + ] ; + sh:resultMessage "Value is not an instance of types:MIMEFormat or one of its subclasses. Please consider using a value having type types:IANAMediaType or types:NonIANAMediaType."@en ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Info ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape observable:mimeType-class-types-MIMEFormat ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "6ba5b138057cca4e737a86083cf28426093f218efbef64967863a6c83138fe89"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "4929041"^^xsd:integer ; + ] ; + sh:resultMessage "Value is not of Node Kind sh:IRI" ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "9a171853eee9f8162e480b28c36f7619a2db8539ccfee849b8ec0068aef53789"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "4007352"^^xsd:integer ; + ] ; + sh:resultMessage "Value does not have class dcterms:FileFormat" ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "9a171853eee9f8162e480b28c36f7619a2db8539ccfee849b8ec0068aef53789"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "4007352"^^xsd:integer ; + ] ; + sh:resultMessage "Value is not an instance of types:MIMEFormat or one of its subclasses. Please consider using a value having type types:IANAMediaType or types:NonIANAMediaType."@en ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Info ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape observable:mimeType-class-types-MIMEFormat ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "9a171853eee9f8162e480b28c36f7619a2db8539ccfee849b8ec0068aef53789"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "4007352"^^xsd:integer ; + ] ; + sh:resultMessage "Value is not of Node Kind sh:IRI" ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "a49f0716e610bd0f77543b1e7ca7613e9b31bf32509e854c7ba65b79be502a18"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "2964571"^^xsd:integer ; + ] ; + sh:resultMessage "Value does not have class dcterms:FileFormat" ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "a49f0716e610bd0f77543b1e7ca7613e9b31bf32509e854c7ba65b79be502a18"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "2964571"^^xsd:integer ; + ] ; + sh:resultMessage "Value is not an instance of types:MIMEFormat or one of its subclasses. Please consider using a value having type types:IANAMediaType or types:NonIANAMediaType."@en ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Info ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape observable:mimeType-class-types-MIMEFormat ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "a49f0716e610bd0f77543b1e7ca7613e9b31bf32509e854c7ba65b79be502a18"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "2964571"^^xsd:integer ; + ] ; + sh:resultMessage "Value is not of Node Kind sh:IRI" ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "cadc54f42a9d01ecb5ecdc3a9a4824c73301d6ce9857eaa73fc28317ccd5d40f"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "4491816"^^xsd:integer ; + ] ; + sh:resultMessage "Value does not have class dcterms:FileFormat" ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "cadc54f42a9d01ecb5ecdc3a9a4824c73301d6ce9857eaa73fc28317ccd5d40f"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "4491816"^^xsd:integer ; + ] ; + sh:resultMessage "Value is not an instance of types:MIMEFormat or one of its subclasses. Please consider using a value having type types:IANAMediaType or types:NonIANAMediaType."@en ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Info ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape observable:mimeType-class-types-MIMEFormat ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "cadc54f42a9d01ecb5ecdc3a9a4824c73301d6ce9857eaa73fc28317ccd5d40f"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "4491816"^^xsd:integer ; + ] ; + sh:resultMessage "Value is not of Node Kind sh:IRI" ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "ee3657ad73c09098312e71a31ca7ac468c1fb1b998b5d6647ad471dcc89c4141"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "3236101"^^xsd:integer ; + ] ; + sh:resultMessage "Value does not have class dcterms:FileFormat" ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "ee3657ad73c09098312e71a31ca7ac468c1fb1b998b5d6647ad471dcc89c4141"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "3236101"^^xsd:integer ; + ] ; + sh:resultMessage "Value is not an instance of types:MIMEFormat or one of its subclasses. Please consider using a value having type types:IANAMediaType or types:NonIANAMediaType."@en ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Info ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape observable:mimeType-class-types-MIMEFormat ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "ee3657ad73c09098312e71a31ca7ac468c1fb1b998b5d6647ad471dcc89c4141"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "3236101"^^xsd:integer ; + ] ; + sh:resultMessage "Value is not of Node Kind sh:IRI" ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "fc0819ed4dcb2af9c85a041a0da11ea6a146dec0b108c09f5e0d41e8ea3bb041"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "4565505"^^xsd:integer ; + ] ; + sh:resultMessage "Value does not have class dcterms:FileFormat" ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "fc0819ed4dcb2af9c85a041a0da11ea6a146dec0b108c09f5e0d41e8ea3bb041"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "4565505"^^xsd:integer ; + ] ; + sh:resultMessage "Value is not an instance of types:MIMEFormat or one of its subclasses. Please consider using a value having type types:IANAMediaType or types:NonIANAMediaType."@en ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Info ; + sh:sourceConstraintComponent sh:ClassConstraintComponent ; + sh:sourceShape observable:mimeType-class-types-MIMEFormat ; + sh:value "image/jpeg" ; + ] , + [ + a sh:ValidationResult ; + sh:focusNode [ + a observable:ContentDataFacet ; + observable:hash [ + a types:Hash ; + types:hashMethod "SHA256"^^vocabulary1:HashNameVocab ; + types:hashValue "fc0819ed4dcb2af9c85a041a0da11ea6a146dec0b108c09f5e0d41e8ea3bb041"^^xsd:hexBinary ; + ] ; + observable:mimeType "image/jpeg" ; + observable:sizeInBytes "4565505"^^xsd:integer ; + ] ; + sh:resultMessage "Value is not of Node Kind sh:IRI" ; + sh:resultPath observable:mimeType ; + sh:resultSeverity sh:Violation ; + sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; + sh:sourceShape [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] ; + sh:value "image/jpeg" ; + ] + ; . diff --git a/ontology/CASE-unstable.ttl b/ontology/CASE-unstable.ttl index 6a187487..2d9f431b 100644 --- a/ontology/CASE-unstable.ttl +++ b/ontology/CASE-unstable.ttl @@ -1,3 +1,4 @@ +# imports: http://www.w3.org/TR/skos-reference/skos-owl1-dl.rdf # imports: https://ontology.caseontology.org/case/investigation # imports: https://ontology.caseontology.org/case/vocabulary # imports: https://ontology.unifiedcyberontology.org/uco/action @@ -17,7 +18,7 @@ @prefix action: . @prefix core: . -@prefix dct: . +@prefix dcterms: . @prefix identity: . @prefix investigation: . @prefix location: . @@ -29,6 +30,7 @@ @prefix rdfs: . @prefix role: . @prefix sh: . +@prefix skos: . @prefix time1: . @prefix tool: . @prefix types: . @@ -41,7 +43,7 @@ a owl:Ontology ; rdfs:label "case-master"@en ; 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 ; + dcterms:title "Cyber-investigation Analysis Standard Expression (CASE)"@en ; owl:imports , , @@ -88,6 +90,7 @@ a owl:Ontology ; rdfs:label "uco-core"@en ; rdfs:comment "This ontology defines classes and properties that are shared across the various UCO ontologies. At a high-level, the UCO core ontology provides base classes, relationship-oriented classes, content-aggregation classes, and shared classes."@en ; + owl:imports ; . @@ -162,6 +165,7 @@ a owl:Ontology ; rdfs:label "uco-master"@en ; owl:imports + , , , , @@ -193,6 +197,11 @@ rdfs:label "uco-vocabularies"@en ; . +dcterms:FileFormat + a owl:Class ; + rdfs:comment "UCO extends dcterms:FileFormat to be an OWL Class in addition to its native definition of an RDF Class."@en ; + . + investigation:Attorney a owl:Class , @@ -1295,6 +1304,13 @@ core:Relationship sh:targetClass core:Relationship ; . +core:TaxonomicConcept + a owl:Class ; + rdfs:subClassOf skos:Concept ; + rdfs:label "TaxonomicConcept"@en ; + rdfs:comment "Taxonomic Concept is a mix-in class that enables UCO as an OWL ontology to use SKOS taxonomic individuals. [based on https://www.w3.org/2006/07/SWD/SKOS/skos-and-owl/master.html#Hybrids]"@en ; + . + core:UcoObject a owl:Class , @@ -3998,6 +4014,11 @@ observable:ContentDataFacet rdfs:label "ContentDataFacet"@en ; rdfs:comment "A content data facet is a grouping of characteristics unique to a block of digital data."@en ; sh:property + [ + sh:class dcterms:FileFormat ; + sh:nodeKind sh:IRI ; + sh:path observable:mimeType ; + ] , [ sh:class observable:ObservableObject ; sh:maxCount "1"^^xsd:integer ; @@ -4045,11 +4066,6 @@ observable:ContentDataFacet sh:nodeKind sh:Literal ; sh:path observable:mimeClass ; ] , - [ - sh:datatype xsd:string ; - sh:nodeKind sh:Literal ; - sh:path observable:mimeType ; - ] , [ sh:datatype vocabulary1:EndiannessTypeVocab ; sh:message "Value is outside the default vocabulary EndiannessTypeVocab." ; @@ -5137,13 +5153,6 @@ observable:FileFacet rdfs:label "FileFacet"@en ; rdfs:comment "A file facet is a grouping of characteristics unique to the storage of a file (computer resource for recording data discretely in a computer storage device) on a file system (process that manages how and where data on a storage device is stored, accessed and managed). [based on https://en.wikipedia.org/Computer_file and https://www.techopedia.com/definition/5510/file-system]"@en ; sh:property - [ - rdfs:comment "When used to characterize a file the sizeInBytes property conveys the recorded size of a file in a file system."@en ; - sh:datatype xsd:integer ; - sh:maxCount "1"^^xsd:integer ; - sh:nodeKind sh:Literal ; - sh:path observable:sizeInBytes ; - ] , [ sh:datatype xsd:boolean ; sh:nodeKind sh:Literal ; @@ -5173,6 +5182,13 @@ observable:FileFacet sh:nodeKind sh:Literal ; sh:path observable:observableCreatedTime ; ] , + [ + sh:datatype xsd:integer ; + sh:description "When used to characterize a file the sizeInBytes property conveys the recorded size of a file in a file system."@en ; + sh:maxCount "1"^^xsd:integer ; + sh:nodeKind sh:Literal ; + sh:path observable:sizeInBytes ; + ] , [ sh:datatype xsd:string ; sh:maxCount "1"^^xsd:integer ; @@ -13214,10 +13230,37 @@ observable:mimeClass . observable:mimeType - a owl:DatatypeProperty ; + a owl:ObjectProperty ; rdfs:label "mimeType"@en ; - rdfs:comment "MIME type of the data. For example 'text/html' or 'audio/mp3'."@en ; - rdfs:range xsd:string ; + rdfs:comment "MIME type of the data. The text form of '${type}/${subtype}' (for example, 'text/html' or 'audio/mp3') can be used to find a UCO-provisioned set of types from the UCO Media Types Taxonomy. For interoperability with non-UCO resources, dcterms:FileFormat is this property's required range. The more-specific UCO classes types:IANAMediaType or types:NonIANAMediaType should be used when available."@en ; + rdfs:range dcterms:FileFormat ; + rdfs:seeAlso + types:IANAMediaType , + types:NonIANAMediaType , + + ; + . + +observable:mimeType-class-types-MIMEFormat + a sh:PropertyShape ; + rdfs:comment "This shape is given an IRI in order to facilitate deactivation on request."@en ; + rdfs:seeAlso sh:deactivated ; + sh:class types:MIMEFormat ; + sh:message "Value is not an instance of types:MIMEFormat or one of its subclasses. Please consider using a value having type types:IANAMediaType or types:NonIANAMediaType."@en ; + sh:path observable:mimeType ; + sh:severity sh:Info ; + sh:targetSubjectsOf observable:mimeType ; + . + +observable:mimeType-notation + a sh:PropertyShape ; + rdfs:comment "This shape is intended to be deactivated by using overriding shapes in the UCO Mime Taxonomy."@en ; + rdfs:seeAlso ; + sh:message "The used mimeType value is not a concept with a skos:notation. Some consumers of this data expect a string with the MIME 'type/subtype' format to be supplied with skos:notation. Please either add the skos:notation to your input graph or incorporate the UCO MIME Taxonomy."@en ; + sh:minCount "1"^^xsd:integer ; + sh:path skos:notation ; + sh:severity sh:Warning ; + sh:targetObjectsOf observable:mimeType ; . observable:minorImageVersion @@ -15841,16 +15884,41 @@ types:Hash sh:targetClass types:Hash ; . +types:IANAMediaType + a owl:Class ; + rdfs:subClassOf types:MIMEFormat ; + rdfs:label "IANAMediaType"@en ; + owl:disjointWith types:NonIANAMediaType ; + . + types:Identifier a rdfs:Datatype ; rdfs:comment "An identifier is a string conformant to the specified UUID-based format for UCO object identifiers."@en ; . +types:MIMEFormat + a owl:Class ; + rdfs:subClassOf + dcterms:FileFormat , + core:TaxonomicConcept + ; + rdfs:label "MIMEFormat"@en ; + rdfs:comment "This class should be considered an intermediary, 'abstract' class, and should not have individuals defined that are not a member of one of its subclasses. This class has two purposes. First, to encode for interoperability with existing frameworks, without relying on RDFS inference, that a UCO MIMEFormat individual is both a SKOS Concept (via core:TaxonomicConcept) and Dublin Core Terms FileFormat. Second, to guarantee a concept to be used as a UCO MIME type has exactly one skos:notation. Note that strict SHACL enforcement of the skos:notation presence is not within the UCO Types ontology, but is instead a part of the shapes provided by the UCO MIME Taxonomy. The warning about skos:notation in the Observable namespace is deactivated on importing the taxonomy's shapes."@en ; + rdfs:seeAlso observable:mimeType-notation ; + . + types:NativeFormatString a rdfs:Datatype ; rdfs:comment "Specifies data in its native format of some external language. The data may be encoded in Base64 per [RFC4648]. Data encoded in Base64 must be denoted as such using the encoded property."@en ; . +types:NonIANAMediaType + a owl:Class ; + rdfs:subClassOf types:MIMEFormat ; + rdfs:label "NonIANAMediaType"@en ; + owl:disjointWith types:IANAMediaType ; + . + types:StructuredText a rdfs:Datatype ; rdfs:comment "Expresses string-based data in some information structuring format (e.g., HTML5)."@en ;