Description of an RDF Schema for thesauri and related knowledge organisation systems

This document is a guide to using the SKOS-Core 1.0 RDF schema for thesauri. The SKOS meta-model is introduced, the features of the SKOS-Core 1.0 schema are described with examples, and guidelines for using SKOS concept schemes for subject-based indexing of web resources are offered.

Status of this document

This section describes the status of this document at the time of its publication. This is a draft document and may be updated, replaced, or obsoleted by other documents at any time. The latest status of this document series is maintained at the W3C.

This document is a public DRAFT for discussion. This guide and the SKOS-Core schema are an output of the research work of the Semantic Web Advanced Development for Europe Project, which is associated with the W3C Semantic Web Activity. This document is made available by W3C for discussion only. Publication of this document by W3C does not imply endorsement by W3C, including the Team and Membership.

This document is a guide to accompany the SKOS-Core 1.0 schema, which can be found under the namespace:

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

SKOS-Core 1.0 is an RDF schema for representing thesauri and similar types of knowledge organisation system (KOS). SKOS-Core can be used for:

Porting existing KOS to the Semantic Web

Building simple concept schemes for the Semantic Web from scratch

SKOS stands for Simple Knowledge Organisation Systems. SKOS-Core is intended as a complement to OWL. It does provide a basic framework for building concept schemes, but it does not carry the strictly defined semantics of OWL. Thus it is ideal for representing those types of KOS, such as thesauri, that connot be mapped directly to an OWL ontology. SKOS is also easier to use, and harder to misuse than OWL, providing an ideal entry point for those wishing to use the Semantic Web for knowledge organisation.

SKOS-Core also provides a framework for linking concepts to the words and phrases that are normally used by people to refer to them. This valuable information, once captured, can be used to support a number of tasks, such as automated classification of web documents, and automated multilingual translation of glossaries.

This guide first describes the SKOS meta-model, and introduces the terminology that will be used throughout. There follows a description of the features of the SKOS-Core 1.0 schema, with examples of how to use them. Finally there are guidelines for using SKOS concept schemes for subject-based indexing of web resources.

SKOS-Core allows you to define concepts and concept schemes. A concept is any unit of thought that can be defined or described. A concept scheme is a collection of concepts.

A concept may have any number of attached labels. A label is any word, phrase or symbol that can be used to refer to the concept by people. A concept may have only one preferred label, and any number of alternative labels.

Relationships may be defined between concepts within the same concept scheme. Any such relationship is referred to here as a semantic relation.

Mappings may be defined between concepts from different concept schemes. Any such mapping is referred to here as a semantic mapping.

The first step is to describe the scheme itself. To allow unambiguous reference to your scheme in the future, give it a URI. Then state that it has type skos:ConceptScheme. To describe the meta-properties of the scheme, you can use e.g. Dublin Core, for example:

For each concept you define, there must be some way for both people and machines to refer to that concept unambiguously in the future. The simplest way to ensure unambiguous global reference is to assign each concept a URI. Then state that the concept has type skos:Concept. For example:

To help other people unambiguously refer to your concepts without having to use URIs, it is strongly recommended that no two concepts in your scheme be given the same preferred label.

The alternative labels can be any set of words or phrases, including alternative spelling variants (and mis-spellings), that could be used to refer to the concept. In the traditional thesaurus sense, this set of labels constitutes the 'entry vocabulary' for your concept. It is there primarily to help other people navigate to the right concept. The better the coverage of possible labels for each concept, the more likely another person is to find the concept they want.

If a concept has already been defined outside the scope of the semantic web, it may have been given an unique identifier that is not a URI. To express this property of a concept, use the skos:externalID property. For example:

SKOS-Core 1.0 has three properties to help you establish exactly what each concept is intended to mean. Use skos:scopeNote to attach any piece of text that helps to further elucidate the intended meaning of a concept. Use skos:definition to attach a formal (dictionary-style) definition to a concept. Use skos:example to attach a contextual example of the use of one of the labels (usually the preferred label). For example:

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:skos="http://www.w3.org/2004/02/skos/core#">
<skos:Concept rdf:about="http:/example.com/Concept/0012">
<skos:prefLabel>Liquid crystal</skos:prefLabel>
<skos:inScheme rdf:resource="http:/example.com/thesaurus"/>
<skos:definition>A substance which flows like a liquid but has some
degree of ordering in the arrangement of its molecules.</skos:definition>
</skos:Concept>
</rdf:RDF>

SKOS-Core contains a family of properties for expressing simple relationships between concepts within a concept scheme. The top-level property of this family is the skos:semanticRelation property. Below this are the skos:broader, skos:narrower and skos:related properties.

3.7.1. Broader / Narrower

The skos:broader and skos:narrower properties allow you to create a hierarchy of concepts. The properties themselves carry weak semantics - they should be used to express the fact that a concept is in some way more or less general than another. I.e. they imply that the concepts involved may reasonably be arranged into a hierarchy, without being too strict about the exact meaning of the hierarchical relationship. A concept may have any number of broader concepts: poly-hierarchies are allowed.

3.7.2. Related

skos:related property hierarchy

skos:semanticRelation
|
+--skos:related

The skos:related property allows you to create associative links between concepts. Again, this property carries weak semantics - it expresses the fact that two concepts are in some way related, and that the relationship should NOT be used to create a hierarchy. Essentially, this property allows you to create links between branches of a hierarchy of concepts.

A concept may be given labels from different languages. To specify the language of a label, use the language attribute of the RDF literal (see RDF specs). For each language, a concept may have one preferred label and any number of alternative labels. For example:

The SKOS-Core property set is designed to be extensible. The skos:semanticRelation property is the top-level property for all properties linking concepts within the same concept scheme. The first level extension of this property is the three properties already mentioned, skos:broaderskos:narrower and skos:related. These may in turn be extended, to create properties that carry more precise semantics. This structure provides a framework for interoperability between concept schemes with different levels of precision in the semantics of their concept-to-concept relations.

A number of extensions are built in to the SKOS-Core 1.0 schema, and these are described below.

This extension of the skos:broader/skos:narrower property pair may only be used to specify a class subsumption relationship between two concepts. The semantics of these properties are inherited from the rdfs:subClassOf property.

Use these properties to express a partitive (part-of) relationship between two concepts, where you would like such relationships to be organised as part of a hierarchical structure. The semantics of these properties are inherited from the dcterms:isPartof/dcterms:hasPart property pair [see ref].

Use these properties to express a partitive (part-of) relationship between two concepts, where you would like such relationships to be organised as part of an associative structure. These properties carry the same semantics as the skos:broaderPartitive/skos:narrowerPartitive property pair. These two options exist to provide a framework for interoperability between thesauri that treat the partitive relationship in different ways.

Many thesauri contain the notion of high-level grouping of concepts. This is done by arranging concepts in hierarchies under special concepts, these special concepts often referred to as 'fundamental facets' or 'fundamental categories'.

To represent the fact that a concept is intended to sit at the top of the concept hierarchy in a scheme, use the skos:TopConcept class.

4. Using SKOS-Core with Dublin Core for subject-based indexing [back to contents]

One of the main purposes of creating a concept scheme is to use it to help organise a set of resources e.g. a collection of web documents. When metadata about resources is enriched to include some statement about the 'subject' or 'topic' of the resource, and the 'subject' or 'topic' is a concept in some concept scheme, we can use that concept scheme to help search and browse around the collection of resources.

To use SKOS-Core with Dublin Core, make concepts the objects of statements using the dc:subject property. For example:

That's the end of this guide. Development of SKOS-Core, and the sister vocabulary SKOS-Mapping (which allows you to assert mappings between concepts from different schemes), is ongoing. Latest news and updates can be found on the website for the SWAD-Europe Thesaurus Activity. You can also track the work via the public mailing list public-esw-thes@w3.org - all contributions are very welcome, and an archive of previous mails is also available.