This is an archive of an inactive wiki and cannot be modified.

SKOS Simple Knowledge Organization System Reference -- Wiki Draft

N.B. this wiki draft is no longer under active development, see Deliverables#SKOSReference for links to current and previous drafts.


Editors:

Abstract

The Simple Knowledge Organization System (SKOS) is a Semantic Web language.

Semi-formal knowledge organization systems, such as thesauri, taxonomies, classification schemes and subject heading systems, can be represented using SKOS. Because SKOS is based on the Resource Description Framework (RDF), these representations will be machine-readable, and can be exchanged between software applications or published in the Semantic Web.

SKOS has been designed to provide a low-cost migration path for porting existing semi-formal knowledge organisation systems to the Semantic Web. SKOS also provides a light weight, intuitive conceptual modeling language for developing and sharing new knowledge organisation systems. It can be used on its own, or in combination with more formal languages like the Web Ontology Language (OWL).

This document is the normative specification of the SKOS language. It is intended for readers who are involved in the design and implementation of information systems, and who already have a good understanding of Semantic Web technology, especially RDF and OWL.

For an informative guide to using SKOS, see the SKOS Primer.

Synopsis of the Language

Using SKOS, conceptual resources can be identfied using URIs, can be labelled with plain literal strings in one or more natural languages, can be documented with various types of note, can be organized into informal hierarchies (trees) and association networks, can be aggregated into concept schemes and can be linked/mapped to concepual resources in other schemes. In addition, labels can related to each other, and conceptual resources can be grouped into labelled and/or ordered collections.

Status of this Document

This is a wiki draft, for internal use by the W3C Semantic Web Deployment Working Group (SWDWG). It is subject to change without notice, and has no formal status within any W3C process.

Note that each major section of this wiki draft is included from a separate wiki sub-page, e.g. SKOS/Reference/Introduction.

Contents


Section: SKOS/Reference/Introduction

This section last edited on 2010-04-01 12:48:25 is part of the SKOS/Reference wiki draft.

Section: Introduction

@@TODO introduction

How to Read this Document

This document is broken down into sections.

The normative syntax for SKOS is given in section @@TODO-X.

The foundation for the semantics of SKOS is given in section @@TODO-X.

Sections @@TODO-X to @@TODO-Y then define the SKOS language. Each of these sections follows a common structure.

First, some URIs from the SKOS Vocabulary are introduced.

Then, semantic conditions on the interpretation of those URIs are given.

Then, examples of consistent and inconsistent use of those URIs are given.

Then, any entailment rules which follow from the semantic conditions are given.

Finally, any further information is given.

URI Abbrevations

In this document, URIs are given in an abbreviated form. The table below gives the abbreviations used.

Abbreviation

URI

skos:

http://www.w3.org/2004/02/skos/core#

rdf:

http://@@TODO

rdfs:

http://@@TODO

owl:

http://@@TODO

ex:

http://example.com/

For example, skos:prefLabel is an abbreviation of http://www.w3.org/2004/02/skos/core#prefLabel.

SKOS Vocabulary

The SKOS Vocabulary is a set of URIs, given in the table below.

skos:Concept skos:ConceptScheme skos:prefLabel skos:altLabel skos:hiddenLabel skos:semanticRelation skos:broader skos:narrower skos:related skos:LabelRelation skos:labelRelated skos:seeLabelRelation skos:Collection skos:OrderedCollection skos:member skos:memberList

SKOS Syntax

The normative abstract syntax for SKOS is the RDF Abstract Syntax [@@TODO REF].

Examples in this document are given using the Turtle Syntax [@@TODO REF].

SKOS Semantics

The basis for the normative semantics of SKOS is the RDF-compatible model-theoretic semantics of OWL Full.

In sections @@TODO-X to @@TODO-Y below, semantic conditions on the interpretation of the SKOS Vocabulary are given in prose.

For the most part, this prose has an obvious mapping to RDF triples involving the RDF, RDFS and OWL vocabularies. For example, the statement that "skos:Concept has type Class" maps to the triple skos:Concept rdf:type owl:Class. The complete set of semantic conditions which can be stated in this way is given as a set of RDF triples in appendix @@TODO.

There are some semantic conditions, however, which cannot be expressed as RDF triples using the RDF, RDFS or OWL vocabularies. In these cases, the prose follows standard mathematical terminology, and the intention should be clear.


Section: SKOS/Reference/Concepts

This section last edited on 2010-04-01 12:48:25 is part of the SKOS/Reference wiki draft.

Section: Conceptual Resources

This section defines the vocabulary and formal semantics for the notion of a SKOS Conceptual Resource.

The notion of a SKOS Conceptual Resource is defined informally in the SKOS Primer.

Vocabulary

skos:Concept

Semantic Conditions

skos:Concept has type Class.

Examples

The following graph is Consistent.

ex:foo rdf:type skos:Concept .

Notes

Except for the semantic condition given above, the formal semantics of skos:Concept are undefined.

The decision to leave the formal semantics of skos:Concept undefined has been made to allow different design patterns for using SKOS in combination with more formal languages such as OWL to be explored.

For example, interpreting skos:Concept and owl:Class as disjoint classes would be consistent with the semantics of SKOS. Alternatively, interpreting skos:Concept as a super-class of owl:Class would also be consistent with the semantics of SKOS.

See @@TODO section on SKOS + OWL patterns for recommended design patterns for using SKOS in combination with OWL.


Section: SKOS/Reference/ConceptSchemes

This section last edited on 2010-04-01 12:48:25 is part of the SKOS/Reference wiki draft.

Section: Concept Schemes

This section defines the vocabulary and formal semantics for the notion of a SKOS Concept Scheme.

The notion of a SKOS Concept Scheme is defined informally in the SKOS Primer.

The SKOS Primer also defines recommended practice for using rdfs:isDefinedBy to state a relationship between a SKOS Conceptual Resource and the SKOS Concept Scheme in which it is defined.

Vocabulary

skos:ConceptScheme

Semantic Conditions

skos:ConceptScheme has type Class.

skos:ConceptScheme and skos:Concept are Disjoint Classes.

Examples

The graph below is Consistent.

ex:bar rdf:type skos:ConceptScheme .

Notes

Except for the semantic condition stated above, the formal semantics of skos:ConceptScheme are undefined.

The choice to leave the formal semantics of skos:ConceptScheme undefined has been made to allow different design patterns to be explored for using SKOS in combination with more formal languages such as OWL, and for using SKOS with query languages such as SPARQL.

For example, interpreting skos:ConceptScheme as a sub-class of owl:Ontology would be consistent with the SKOS semantics. This would also be consistent with using owl:imports to make logical import statements between SKOS Concept Schemes.

Interpreting skos:ConceptScheme as a sub-class of the class of named RDF graphs would also be consistent with the SKOS semantics. This would also be consistent with using the name (URI) of a SKOS Concept Scheme in SPARQL queries as the name of an RDF graph, to establish, for example, the provenance of a semantic relationship between two SKOS Conceptual Resources.

However, this interpretation might not be appropriate if, for example, different named RDF graphs were used to express different "states" or "versions" of a SKOS Concept Scheme.

(@@TODO something about how expressing information about changes and versions in SKOS Concept Schemes is a research problem at the time of writing, and has been post-poned by the WG?)

Also, this interpretation might not be appropriate if a SKOS Concept Scheme were interpreted as having different "expressions", e.g. as an RDF graph and an HTML document (in which case separate URIs might be required for the SKOS Concept Scheme, the RDF graph and the HTML document).

(@@TODO something about why this is unresolved/postponed?)

@@TODO this section is missing skos:hasTopConcept

@@TODO say something about deprecation of skos:inScheme


Section: SKOS/Reference/LexicalLabels

This section last edited on 2010-04-01 12:48:25 is part of the SKOS/Reference wiki draft.

Section: Lexical Labels

This section defines the vocabulary and formal semantics for the SKOS Lexical Labelling Properties.

The SKOS Lexical Labelling Properties are informally defined in the SKOS Primer.

Vocabulary

skos:prefLabel skos:altLabel skos:hiddenLabel

Semantic Conditions

skos:prefLabel, skos:altLabel and skos:hiddenLabel have type Datatype Property.

The Range of skos:prefLabel, skos:altLabel and skos:hiddenLabel is the Class of RDF Plain Literals.

skos:prefLabel, skos:altLabel and skos:hiddenLabel are Sub-Properties of rdfs:label.

skos:prefLabel, skos:altLabel and skos:hiddenLabel are Disjoint Properties.

A Resource has no more than one value of skos:prefLabel per Language.

If a Resource has a value for skos:altLabel in some Language, then it also has a value for skos:prefLabel in that Language.

Note the definition of "Language" here assumes that each distinct language tag allowed by RFC 4646 denotes a distinct "Language". E.g. "en-GB" and "en-US" denote different Languages. E.g. @@TODO Japanese hiragana and katakana tags denote different Languages.

Examples

The graph below is Consistent.

ex:foo skos:prefLabel "animals"@en .
ex:foo skos:altLabel "fauna"@en .
ex:foo skos:hiddenLabel "aminals"@en .
ex:foo skos:prefLabel "animaux"@fr .
ex:foo skos:altLabel "faune"@fr .

The graph below is Inconsistent, because skos:prefLabel and skos:altLabel are Disjoint Properties.

ex:bar skos:prefLabel "bar"@en .
ex:bar skos:altLabel "bar"@en .

The graph below is Inconsistent, because skos:prefLabel and skos:hiddenLabel are Disjoint Properties.

ex:bar skos:prefLabel "bar"@en .
ex:bar skos:hiddenLabel "bar"@en .

The graph below is Inconsistent, because skos:altLabel and skos:hiddenLabel are Disjoint Properties.

ex:bar skos:altLabel "bar"@en .
ex:bar skos:hiddenLabel "bar"@en .

The graph below is Inconsistent, because a resource cannot have more than one value of skos:prefLabel per Language.

ex:foo skos:prefLabel "animals"@en .
ex:foo skos:prefLabel "fauna"@en .

Notes

Note that the graph below is Consistent. However, the graph also implies that the resource ex:foo has a value of skos:prefLabel in English. Because this value is not given in the graph, some information is missing. This missing information might be given elsewhere (i.e. in another graph) or not at all.

ex:bar skos:altLabel "bar"@en .

Note that the graph below is Consistent, because "en-GB" and "en-US" are assumed to denote different Languages.

ex:baz skos:prefLabel "colour"@en-GB .
ex:baz skos:prefLabel "color"@en-US .


Section: SKOS/Reference/Documentation

This section last edited on 2010-04-01 12:48:25 is part of the SKOS/Reference wiki draft.

Section: Documentation

This section defines the vocabulary and formal semantics for the SKOS documentation (note) properties.

The three recommended design patterns for using the SKOS documentation properties are given in the SKOS Primer.

Vocabulary

skos:note skos:changeNote skos:definition skos:editorialNote skos:example skos:historyNote skos:scopeNote

Semantic Conditions

skos:note, skos:changeNote, skos:definition, skos:editorialNote, skos:example, skos:historyNote and skos:scopeNote have type Object Property.

skos:changeNote, skos:definition, skos:editorialNote, skos:example, skos:historyNote and skos:scopeNote are each Sub-Properties of skos:note.

Examples

The graph below gives a consistent example of the "documentation as an RDF literal" pattern.

ex:a skos:note "foo bar"@en.

The graph below gives a consistent example of the "documentation as a related resource description" pattern.

ex:a skos:note [rdf:value "foo bar"@en].

The graph below gives a consistent example of the "documentation as a document reference" pattern.

ex:a skos:note ex:b.

Notes

Note that, under the RDF-compatible OWL Full semantics [@@TODO REF], the class of OWL Object Properties is equivalent to the class of RDF properties, and that owl:DatatypeProperty is a sub-class of owl:ObjectProperty. Therefore, the "documentation as an RDF literal" pattern is consistent with the SKOS documentation properties having type OWL Object Property.

However, note that this flexibility is not compatible with the OWL DL language. See @@TODO section on SKOS + OWL patterns for recommended design patterns for using SKOS in combination with OWL.


Section: SKOS/Reference/SemanticRelations

This section last edited on 2010-04-01 12:48:26 is part of the SKOS/Reference wiki draft.

Section: Semantic (Paradigmatic) Relations

This section defines the vocabulary and formal semantics for the SKOS Semantic Relation Properties.

The SKOS Semantic Relation Properties are defined informally in the SKOS Primer.

Vocabulary

skos:semanticRelation skos:broader skos:narrower skos:related

Semantic Conditions

skos:semanticRelation, skos:broader, skos:narrower and skos:related have type Object Property.

The Domain and Range of skos:semanticRelation is skos:Concept.

skos:broader, skos:narrower and skos:related are Sub-Properties of skos:semanticRelation.

skos:broader and skos:narrower are Inverse Properties.

skos:related is a Symmetric Property.

skos:related is disjoint with the transitive closure of skos:broader.

Examples

The graph below is Consistent.

ex:foo skos:broader ex:bar .
ex:foo skos:related ex:baz .

The graph below is Inconsistent, because there is a "clash" between skos:related and skos:broader.

ex:foo skos:broader ex:bar .
ex:foo skos:related ex:bar .

The graph below is Inconsistent, because there is a "clash" between skos:related and the transitive closure of skos:broader.

ex:foo skos:broader ex:bar .
ex:bar skos:broader ex:baz .
ex:foo skos:related ex:baz .

The graph below is Inconsistent, again because there is a "clash" between skos:related and the transitive closure of skos:broader, which can be inferred from the semantic conditions stating that skos:broader and skos:narrower are Inverse Properties, and that skos:related is a Symmetric Property.

ex:foo skos:narrower ex:bar .
ex:bar skos:narrower ex:baz .
ex:foo skos:related ex:baz .

Notes

Note that no semantic conditions are given concerning the transitivity of skos:broader. Interpreting skos:broader as a Transitive Property would be consistent with the SKOS semantics. Alternatively, interpreting skos:broader as an Intransitive Property would also be consistent with the SKOS semantics.

Note that no semantic conditions are given concerning the reflexivity of skos:broader. Interpreting skos:broader as a Reflexive Property (every SKOS Conceptual Resource is broader than itself) would be Consistent with the SKOS semantics. Alternatively, Interpreting skos:broader as an Irreflexive Property (no SKOS Conceptual Resource is broader than itself) would also be Consistent with the SKOS semantics.

Note that no semantic condition is given concerning the reflexivity of the transitive closure of skos:broader. This means that a graph containing a cycle involving skos:broader is not Inconsistent with the SKOS semantics. However, interpreting the same graph as an Inconsistency is not prohibited by the SKOS semantics either, and might be useful in many situations.

This flexibility in the formal interpretation of the SKOS Semantic Relation Properties has been chosen to allow different design patterns to be explored for using SKOS in combination with more formal languages such as OWL, and for using SKOS with different query expansion algorithms in information retrieval systems.


Section: SKOS/Reference/LabelRelations

This section last edited on 2010-04-01 12:48:26 is part of the SKOS/Reference wiki draft.

Section: Label Relations

This section defines the vocabulary and formal semantics for the SKOS Label Relation features.

SKOS Label Relations are defined informally in the SKOS Primer.

Vocabulary

skos:LabelRelation skos:labelRelated skos:seeLabelRelation

Semantic Conditions

skos:LabelRelation has type Class.

skos:labelRelated has type Datatype Property.

skos:seeLabelRelation has type Object Property.

The Domain of skos:labelRelated is skos:LabelRelation.

The Range of skos:labelRelated is the class of RDF Plain Literals.

The Range of skos:seeLabelRelation is skos:LabelRelation.

Examples

The graph below is Consistent.

ex:foo skos:seeLabelRelation _:aaa .
_:aaa rdf:type skos:LabelRelation .
_:aaa skos:labelRelated "foo"@en .
_:aaa skos:labelRelated "bar"@en .

Notes

Note that the formal semantics of skos:seeLabelRelation are undefined. This means that the graph below is not Inconsistent with the SKOS semantics, even though there is no correspondance between the lexical labels given for ex:foo and the labels involved in the associated label relation; neither does the graph have any formal entailments other than those which follow under RDFS and OWL Full entailment.

ex:foo skos:prefLabel "foo"@en .
ex:foo skos:altLabel "bar"@en .
ex:foo skos:seeLabelRelation _:aaa .
_:aaa rdf:type skos:LabelRelation .
_:aaa skos:labelRelated "baz"@en .
_:aaa skos:labelRelated "qux"@en .


Section: SKOS/Reference/Collections

This section last edited on 2010-04-01 12:48:26 is part of the SKOS/Reference wiki draft.

Section: Grouping Constructs (Collections)

This section defines the vocabulary and formal semantics for the SKOS Conceptual Grouping features, also known as SKOS Collections.

SKOS Conceptual Grouping is defined informally in the SKOS Primer.

Vocabulary

skos:Collection skos:OrderedCollection skos:member skos:memberList

Semantic Conditions

skos:Collection and skos:OrderedCollection have type Class.

skos:OrderedCollection is a Sub-Class of skos:Collection.

skos:member and skos:memberList have type Object Property.

The Domain of skos:member is skos:Collection.

The Domain of skos:memberList is skos:OrderedCollection.

The Range of skos:memberList is rdf:List.

An ordered collection has exactly one value for skos:memberList.

skos:Collection is Disjoint with skos:Concept, and with skos:ConceptScheme.

For ordered collections, every member of the list given as the value of skos:memberList is also a value of skos:member.

Examples

The graph below is Consistent.

_:aaa rdf:type skos:Collection .
_:aaa skos:member ex:foo .
_:aaa skos:member ex:bar .
_:aaa skos:member ex:baz .

The graph below is Consistent.

_:bbb rdf:type skos:OrderedCollection .
_:bbb skos:memberList _:nnn .
_:n1 rdf:type rdf:List .
_:n1 rdf:first ex:foo .
_:n1 rdf:rest _:n2 .
_:n2 rdf:first ex:bar .
_:n2 rdf:rest _:n3 .
_:n3 rdf:first ex:baz .
_:n3 rdf:rest rdf:nil .
ex:a ex:foo "bar"@en.

The graph below is Inconsistent, because skos:Concept and skos:Collection are Disjoint Classes, and because skos:narrower is a Sub-Property of skos:semanticRelation, which has Domain and Range skos:Concept.

ex:foo skos:narrower _:aaa .
_:aaa rdf:type skos:Collection .

Entailment Rules

If graph contains

then add

u skos:memberList v .
v rdf:first x .

u skos:member x .

u skos:memberList v1 .
v1 rdf:rest v2 . ... vi-1 rdf:rest vi .
vi rdf:first x .

u skos:member x .

Notes

@@TODO


Appendix: SKOS/Reference/RulesOfThumb

This appendix last edited on 2010-04-01 12:48:26 is part of the SKOS/Reference wiki draft.

Appendix: Rules of Thumb

@@TODO appendix content


Appendix: SKOS/Reference/SemanticsAsTriples

This appendix last edited on 2010-04-01 12:48:26 is part of the SKOS/Reference wiki draft.

Appendix: SKOS Semantics as RDF Triples

This appendix is a set of RDF triples, stating those semantic conditions for SKOS which can be expressed as RDF triples using the RDF, RDFS and OWL vocabularies.

Note that a significant number of semantic conditions cannot be stated in this way, and therefore this appendix is an incomplete specification of the SKOS semantics.

# Section: Conceptual Resources
@@TODO

# Section: Concept Schemes
@@TODO

@@TODO all others