From 54ea2226c7e540fd29f8cea0a12b3809fa0d900c Mon Sep 17 00:00:00 2001
From: Alex Nelson <alexander.nelson@nist.gov>
Date: Thu, 17 Oct 2024 16:41:33 -0400
Subject: [PATCH] Revise vocabulary pattern for core:ObjectStatusVocab

A follow-on patch will regenerate Make-managed files.

References:
* https://github.com/ucoProject/UCO/issues/549
* https://github.com/ucoProject/UCO/issues/629

Signed-off-by: Alex Nelson <alexander.nelson@nist.gov>
---
 ontology/uco/core/core.ttl             | 28 +++++++++++++-------------
 tests/examples/object_status_PASS.json |  5 +----
 2 files changed, 15 insertions(+), 18 deletions(-)

diff --git a/ontology/uco/core/core.ttl b/ontology/uco/core/core.ttl
index a9010464..9ac562ef 100644
--- a/ontology/uco/core/core.ttl
+++ b/ontology/uco/core/core.ttl
@@ -323,9 +323,9 @@ core:ObjectStatusVocab
 	owl:equivalentClass [
 		a rdfs:Datatype ;
 		owl:oneOf (
-			"Draft"^^core:ObjectStatusVocab
-			"Final"^^core:ObjectStatusVocab
-			"Deprecated"^^core:ObjectStatusVocab
+			"Draft"
+			"Final"
+			"Deprecated"
 		) ;
 	] ;
 	.
@@ -443,6 +443,17 @@ core:UcoObject
 			sh:nodeKind sh:Literal ;
 			sh:path core:modifiedTime ;
 		] ,
+		[
+			sh:datatype xsd:string ;
+			sh:in (
+				"Draft"
+				"Final"
+				"Deprecated"
+			) ;
+			sh:maxCount "1"^^xsd:integer ;
+			sh:nodeKind sh:Literal ;
+			sh:path core:objectStatus ;
+		] ,
 		[
 			sh:datatype xsd:string ;
 			sh:maxCount "1"^^xsd:integer ;
@@ -464,17 +475,6 @@ core:UcoObject
 			sh:datatype xsd:string ;
 			sh:nodeKind sh:Literal ;
 			sh:path core:tag ;
-		] ,
-		[
-			sh:datatype core:ObjectStatusVocab ;
-			sh:in (
-				"Draft"^^core:ObjectStatusVocab
-				"Final"^^core:ObjectStatusVocab
-				"Deprecated"^^core:ObjectStatusVocab
-			) ;
-			sh:maxCount "1"^^xsd:integer ;
-			sh:nodeKind sh:Literal ;
-			sh:path core:objectStatus ;
 		]
 		;
 	sh:targetClass core:UcoObject ;
diff --git a/tests/examples/object_status_PASS.json b/tests/examples/object_status_PASS.json
index 2d10dc40..3f4d1165 100644
--- a/tests/examples/object_status_PASS.json
+++ b/tests/examples/object_status_PASS.json
@@ -7,10 +7,7 @@
         {
             "@id": "kb:UcoObject-f86c567d-374a-4873-b9bc-a746ca2bf360",
             "@type": "core:UcoObject",
-            "core:objectStatus": {
-                "@type": "core:ObjectStatusVocab",
-                "@value": "Draft"
-            }
+            "core:objectStatus": "Draft"
         }
     ]
 }