SkosDev/SkosCore/ValidatingData
Validating SKOS Core RDF Data
This page is a development area for describing the checks and tests that can be performed against SKOS Core RDF data to validate it's well-formedness and integrity.
A validation test, if fails, can raise either an ERROR (fatal) or a WARNING (deviation from recommended usage patterns)
1. Basic Syntax Checking:
1.1. (If data in RDF/XML syntax) Check XML Well-formedness
If the data is serialised as an RDF/XML document, confirm XML well-formedness.
How-to: use any decent XML parser (will report XML errors).
Fail: ERROR
1.2. Check RDF Well-formedness
If the data is serialised as an RDF document, confirm that the document contains well-formed RDF according to whatever RDF syntax has been employed.
How-to: use any RDF parser (will report RDF errors).
Fail: ERROR
2. SKOS Data Model Validation
2.1. Check for Unknown URIs in the SKOS Core Namespace
Check for URIs in the SKOS Core namespace (http://www.w3.org/2004/02/skos/core#) that do not exist in the SKOS Core Vocabulary.
Fail: WARNING
2.2. Check for Deprecated SKOS Core Terms
Check the data for deprecated SKOS Core properties or classes.
Fail: WARNING
2.3. Check skos:definition Cardinality Constraint
A concept should have no more than one definition per language.
Fail: WARNING
2.4. Check skos:scopeNote Cardinality Constraint
A concept should have no more than one scope note per language.
Fail: WARNING
2.5. Check the skos:prefLabel Cardinality Constraint
A concept should have no more than one preferred label per language.
Fail: WARNING
2.6. Check the skos:prefLabel Uniqueness Constraint
Every concept within the same concept scheme should have a unique preferred label (i.e. no two concepts may share the same preferred label).
N.B. because the value of a preferred label is an RDF literal, which may include a language tag, a concept with preflabel 'chat'@fr may exist in the same scheme with a concept with preflabel 'chat'@en.
Fail: WARNING
2.7. Check a preferred label is not also alternate
If a literal is declared as a preferred label for a concept, it should not also be declared as an alternative label.
Fail: ERROR
If a literal is declared as a hidden label for a concept, it should not also be declared as a preferred label or an alternative label.
Fail: ERROR
2.9. Check skos:broader/skos:narrower for Circularity
Check that the concept generalisation (broader/narrower) hierarchy includes no circularities.
Fail: ERROR
2.10. Check skos:hasTopConcept Constraint
A concept that is a top concept in a concept scheme should have no broader concepts from the same concept scheme.
N.B. There are thesauri that do not follow this pattern.
A skos:broader/skos:narrower relationship between two concepts is mutually exclusive with a skos:related relationship between those concepts.
Fail: ERROR
2.11. Check skos:Concept skos:ConceptScheme disjoint
A resource cannot be both a concept and a concept scheme.
Fail: ERROR
2.12. Check skos:Concept skos:Collection disjoint
A resource cannot be both a concept and a collection.
N.B. Do we want this?
Fail: ERROR
2.13. Check skos:Collection skos:ConceptScheme disjoint
A resource cannot be both a collection and a concept scheme.
Fail: ERROR