diff --git a/dependencies/CASE-unstable b/dependencies/CASE-unstable
index 01cce6c0..6dd49198 160000
--- a/dependencies/CASE-unstable
+++ b/dependencies/CASE-unstable
@@ -1 +1 @@
-Subproject commit 01cce6c0f40cf850b508f64eb174ea729033c5d2
+Subproject commit 6dd49198d4f594e98a0f42736573127c0084aa44
diff --git a/dependencies/UCO-unstable b/dependencies/UCO-unstable
index 6da1f003..c72fdafe 160000
--- a/dependencies/UCO-unstable
+++ b/dependencies/UCO-unstable
@@ -1 +1 @@
-Subproject commit 6da1f003bbb448c6387354a7443a390f6836d4e3
+Subproject commit c72fdafe1bd82951e99affe46d3dd34c7e6f97c7
diff --git a/examples/urgent_evidence/src/urgent_evidence_validation-unstable.ttl b/examples/urgent_evidence/src/urgent_evidence_validation-unstable.ttl
index bd07cdac..e7eba886 100644
--- a/examples/urgent_evidence/src/urgent_evidence_validation-unstable.ttl
+++ b/examples/urgent_evidence/src/urgent_evidence_validation-unstable.ttl
@@ -1,628 +1,27 @@
@prefix action: .
@prefix core: .
-@prefix dcterms: .
-@prefix observable: .
@prefix owl: .
@prefix rdf: .
@prefix rdfs: .
@prefix sh: .
-@prefix skos: .
-@prefix types: .
-@prefix vocabulary: .
@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 ;
- ] ,
- [
- 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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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"^^vocabulary: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" ;
- ]
- ;
+ 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 ;
+ ] ;
.
diff --git a/ontology/CASE-unstable.ttl b/ontology/CASE-unstable.ttl
index 54bff181..a2972564 100644
--- a/ontology/CASE-unstable.ttl
+++ b/ontology/CASE-unstable.ttl
@@ -1,5 +1,4 @@
# imports: http://purl.org/co
-# 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/co
@@ -24,7 +23,7 @@
@prefix co: .
@prefix configuration: .
@prefix core: .
-@prefix dcterms: .
+@prefix dct: .
@prefix identity: .
@prefix investigation: .
@prefix location: .
@@ -36,7 +35,6 @@
@prefix rdfs: .
@prefix role: .
@prefix sh: .
-@prefix skos: .
@prefix time: .
@prefix tool: .
@prefix types: .
@@ -51,7 +49,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 ;
- dcterms:title "Cyber-investigation Analysis Standard Expression (CASE)"@en ;
+ dct:title "Cyber-investigation Analysis Standard Expression (CASE)"@en ;
owl:imports
,
,
@@ -118,7 +116,6 @@
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 ;
.
@@ -198,7 +195,6 @@
a owl:Ontology ;
rdfs:label "uco-master"@en ;
owl:imports
- ,
,
,
,
@@ -236,11 +232,6 @@ co:ListItem
rdfs:subClassOf co:Item ;
.
-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 ,
@@ -2017,13 +2008,6 @@ 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 ,
@@ -4967,11 +4951,6 @@ 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 ;
@@ -5019,6 +4998,11 @@ observable:ContentDataFacet
sh:nodeKind sh:Literal ;
sh:path observable:mimeClass ;
] ,
+ [
+ sh:datatype xsd:string ;
+ sh:nodeKind sh:Literal ;
+ sh:path observable:mimeType ;
+ ] ,
[
sh:datatype vocabulary:EndiannessTypeVocab ;
sh:message "Value is outside the default vocabulary EndiannessTypeVocab." ;
@@ -14441,37 +14425,10 @@ observable:mimeClass
.
observable:mimeType
- a owl:ObjectProperty ;
+ a owl:DatatypeProperty ;
rdfs:label "mimeType"@en ;
- 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 ;
+ rdfs:comment "MIME type of the data. For example 'text/html' or 'audio/mp3'."@en ;
+ rdfs:range xsd:string ;
.
observable:minorImageVersion
@@ -17015,41 +16972,16 @@ 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 ;