SkosDev/SkosCore/ValidatingData

From W3C Wiki

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

2.8. Check a hidden label is not also declared as preferred or alternative

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.

2.10. Check skos:broader/skos:narrower cf. skos:related

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