diff --git a/ontology/uco/core/core.ttl b/ontology/uco/core/core.ttl index 6ff703ac..172e7003 100644 --- a/ontology/uco/core/core.ttl +++ b/ontology/uco/core/core.ttl @@ -730,6 +730,12 @@ core:objectStatus rdfs:range core:ObjectStatusVocab ; . +core:objectStatus-subjects-shape + a sh:NodeShape ; + sh:class core:UcoObject ; + sh:targetSubjectsOf core:objectStatus ; + . + core:referenceURL a owl:DatatypeProperty ; rdfs:label "referenceURL"@en ; diff --git a/tests/examples/object_status_XFAIL.json b/tests/examples/object_status_XFAIL.json index 8f8134bd..b827c238 100644 --- a/tests/examples/object_status_XFAIL.json +++ b/tests/examples/object_status_XFAIL.json @@ -10,6 +10,17 @@ "@type": "core:UcoObject", "rdfs:comment": "This will trigger an error from using a value outside of the required vocabulary.", "core:objectStatus": "Initial draft" + }, + { + "@id": "kb:File-c9c36379-8eca-4a85-887c-b51f7721edfd", + "@type": "observable:File", + "core:hasFacet": { + "@id": "kb:ArchiveFileFacet-5884ca1c-2f5e-4e66-bdc6-7d48606f9fbc", + "@type": "observable:ArchiveFileFacet", + "rdfs:comment": "This will trigger an error from using objectStatus on a non-UcoObject thing.", + "core:objectStatus": "Draft", + "observable:archiveType": "Currently-unknown compressing-and-encrypting type seen multiple places, further research needed" + } } ] } diff --git a/tests/examples/test_validation.py b/tests/examples/test_validation.py index 4c1d0c01..609c1b77 100644 --- a/tests/examples/test_validation.py +++ b/tests/examples/test_validation.py @@ -440,6 +440,10 @@ def test_object_status_XFAIL() -> None: "http://example.org/kb/UcoObject-6ae2b245-a8cd-45dc-9f40-5b2738879351", str(NS_SH.Violation) ), + ( + "http://example.org/kb/ArchiveFileFacet-5884ca1c-2f5e-4e66-bdc6-7d48606f9fbc", + str(NS_SH.Violation) + ), } )