1.0.0 A collection of SKOS constraints expressed in SPARQL using the SPIN framework. SKOS constraint S36 is defined for class skos:OrderedCollection and the others are defined for class skos:Concept. SKOS Constraints predicate predicate1 predicate2 lang lang nr label subject nr 1 object1 object2 Constraint S27: skos:related is disjoint with the property skos:broaderTransitive. A concept can't have the same value in both a related property and a broader transitive property. Each CONSTRUCT constraint uses language from the SKOS spec in its rdfs:comment and more user-friendly language in the rdfs:label. S13 based on http://www.proxml.be/users/paul/weblog/55d41/Integrity_constraints_in_SKOS_part_2.html. S14 originally based on http://www.proxml.be/users/paul/weblog/aaad2/Integrity_constraints_in_SKOS_part_1_.html but revised since then. S27 based on http://www.proxml.be/users/paul/weblog/bfa21/Integrity_Constraints_in_SKOS_part_3.html. message label1 label2 ). Constraint S14: a resource has no more than one value of skos:prefLabel per language tag (@ exactMatch broadMatch Constraint S46a: skos:exactMatch is disjoint with each of the properties skos:broadMatch and skos:relatedMatch. A concept can't have the same value in both a broader match property and an exact match property. exactMatch relatedMatch Constraint S46b: skos:exactMatch is disjoint with each of the properties skos:broadMatch and skos:relatedMatch. A concept can't have the same value in both a related match property and an exact match property. A helper function for constraint 36 on skos:OrderedCollection. For a given collection (?arg1) and a specific list node (?arg2), this checks whether the rdf:first of that list node is also a value of the collection's skos:member property. If successful, then it moves to the next list item (rdf:rest) and calls itself recursively until the rdf:nil is reached. check members member rest The collection to check. list S36 For any resource, every item in the list given as the value of the skos:memberList property is also a value of the skos:member property. The current rdf:List node in the traversal. message predicate1 label predicate2 message Constraint S13: A concept can't have the same value in the same language in both and - duplicate value: S13: Values of {?predicate1} and {?predicate2} must be pairwise disjoint. The first property to compare (e.g. skos:prefLabel). The second predicate to compare (e.g. skos:altLabel). Constraint S13 Generalization of Constraint S13: skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise disjoint properties. To ensure that Constraint S12: values of predicate must be RDF plain (untyped) literals, but found label The property to check, e.g. skos:prefLabel. S12: Values of {?predicate} must be plain (untyped) RDF literals Constraint S12 A SPIN template that generalizes the various variations of S12 so that only the property needs to be specified.