Skip to content

Commit 9f4b35e

Browse files
committed
Regenerate Make-managed files
References: * ucoProject/UCO#602 Signed-off-by: Alex Nelson <[email protected]>
1 parent 5f8c2ed commit 9f4b35e

File tree

1 file changed

+100
-2
lines changed

1 file changed

+100
-2
lines changed

ontology/CASE-develop.ttl

Lines changed: 100 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17775,17 +17775,48 @@ types:Dictionary
1777517775
;
1777617776
rdfs:subClassOf core:UcoInherentCharacterizationThing ;
1777717777
rdfs:label "Dictionary"@en ;
17778-
rdfs:comment "A dictionary is list of (term/key, value) pairs with each term/key existing no more than once."@en ;
17778+
rdfs:comment "A dictionary is list of (term/key, value) pairs with each term/key having an expectation to exist no more than once. types:Dictionary alone does not validate this expectation, but validation is available. For use cases where this expectation must be validated, the subclass types:ProperDictionary should be used instead of types:Dictionary. For instances where this expectation has been found to be violated, the subclass types:ImproperDictionary should be used instead of types:Dictionary."@en ;
1777917779
rdfs:isDefinedBy <https://ontology.unifiedcyberontology.org/uco/types> ;
1778017780
sh:property [
1778117781
sh:class types:DictionaryEntry ;
17782-
sh:minCount "1"^^xsd:integer ;
1778317782
sh:nodeKind sh:IRI ;
1778417783
sh:path types:entry ;
1778517784
] ;
1778617785
sh:targetClass types:Dictionary ;
1778717786
.
1778817787

17788+
types:Dictionary-keyUniqueness-shape
17789+
a sh:NodeShape ;
17790+
sh:description "This shape is separated from the types:Dictionary class-shape in order to associate a warning-severity SPARQL-based shape."@en ;
17791+
sh:severity sh:Warning ;
17792+
sh:sparql [
17793+
a sh:SPARQLConstraint ;
17794+
sh:message "A key in a dictionary should appear no more than once. The value literal does. Please consider using the types:ImproperDictionary class and types:repeatsKey property."@en ;
17795+
sh:select """
17796+
PREFIX types: <https://ontology.unifiedcyberontology.org/uco/types/>
17797+
SELECT $this ?value
17798+
WHERE {
17799+
$this
17800+
types:entry/types:key ?value ;
17801+
.
17802+
FILTER NOT EXISTS {
17803+
$this
17804+
a types:ImproperDictionary ;
17805+
.
17806+
}
17807+
FILTER NOT EXISTS {
17808+
$this
17809+
a types:ProperDictionary ;
17810+
.
17811+
}
17812+
}
17813+
GROUP BY ?value
17814+
HAVING (COUNT(?value) > 1)
17815+
""" ;
17816+
] ;
17817+
sh:targetClass types:Dictionary ;
17818+
.
17819+
1778917820
types:DictionaryEntry
1779017821
a
1779117822
owl:Class ,
@@ -17884,11 +17915,64 @@ types:Identifier
1788417915
rdfs:comment "An identifier is a string conformant to the specified UUID-based format for UCO object identifiers."@en ;
1788517916
.
1788617917

17918+
types:ImproperDictionary
17919+
a
17920+
owl:Class ,
17921+
sh:NodeShape
17922+
;
17923+
rdfs:subClassOf types:Dictionary ;
17924+
rdfs:label "ImproperDictionary"@en ;
17925+
owl:disjointWith types:ProperDictionary ;
17926+
sh:property [
17927+
sh:datatype xsd:string ;
17928+
sh:nodeKind sh:Literal ;
17929+
sh:path types:repeatsKey ;
17930+
] ;
17931+
sh:targetClass types:ImproperDictionary ;
17932+
.
17933+
17934+
types:ImproperDictionary-disjointWith-ProperDictionary-shape
17935+
a sh:NodeShape ;
17936+
sh:message "types:ImproperDictionary and types:ProperDictionary are disjoint classes."@en ;
17937+
sh:not [
17938+
a sh:NodeShape ;
17939+
sh:class types:ProperDictionary ;
17940+
] ;
17941+
sh:targetClass types:ImproperDictionary ;
17942+
.
17943+
1788717944
types:NativeFormatString
1788817945
a rdfs:Datatype ;
1788917946
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 ;
1789017947
.
1789117948

17949+
types:ProperDictionary
17950+
a
17951+
owl:Class ,
17952+
sh:NodeShape
17953+
;
17954+
rdfs:subClassOf types:Dictionary ;
17955+
rdfs:label "ProperDictionary"@en ;
17956+
rdfs:comment "A proper dictionary is list of (term/key, value) pairs with each term/key existing no more than once."@en ;
17957+
owl:disjointWith types:ImproperDictionary ;
17958+
sh:sparql [
17959+
a sh:SPARQLConstraint ;
17960+
sh:message "A key in a proper dictionary can appear no more than once."@en ;
17961+
sh:select """
17962+
PREFIX types: <https://ontology.unifiedcyberontology.org/uco/types/>
17963+
SELECT $this ?value
17964+
WHERE {
17965+
$this
17966+
types:entry/types:key ?value ;
17967+
.
17968+
}
17969+
GROUP BY ?value
17970+
HAVING (COUNT(?value) > 1)
17971+
""" ;
17972+
] ;
17973+
sh:targetClass types:ProperDictionary ;
17974+
.
17975+
1789217976
types:StructuredText
1789317977
a rdfs:Datatype ;
1789417978
rdfs:comment "Expresses string-based data in some information structuring format (e.g., HTML5)."@en ;
@@ -17986,6 +18070,20 @@ types:key
1798618070
rdfs:range xsd:string ;
1798718071
.
1798818072

18073+
types:repeatsKey
18074+
a owl:DatatypeProperty ;
18075+
rdfs:label "repeatsKey"@en ;
18076+
rdfs:comment "A key found to be repeated in multiple dictionary entries within one dictionary."@en ;
18077+
rdfs:domain types:ImproperDictionary ;
18078+
rdfs:range xsd:string ;
18079+
.
18080+
18081+
types:repeatsKey-subjects-shape
18082+
a sh:NodeShape ;
18083+
sh:class types:ImproperDictionary ;
18084+
sh:targetSubjectsOf types:repeatsKey ;
18085+
.
18086+
1798918087
types:threadNextItem
1799018088
a owl:ObjectProperty ;
1799118089
rdfs:subPropertyOf types:threadSuccessor ;

0 commit comments

Comments
 (0)