Copyright ©2005 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
SKOS Core provides a model for expressing the basic structure and content of concept schemes such as thesauri, classification schemes, subject heading lists, taxonomies, 'folksonomies', other types of controlled vocabulary, and also concept schemes embedded in glossaries and terminologies.
The SKOS Core Vocabulary is an application of the Resource Description Framework (RDF), that can be used to express a concept scheme as an RDF graph. Using RDF allows data to be linked to and/or merged with other data, enabling data sources to be distributed across the web, but still be meaningfully composed and integrated.
This document is a guide using the SKOS Core Vocabulary, for readers who already have a basic understanding of RDF concepts.
This edition of the SKOS Core Guide [SKOS Core Guide] is a W3C Public Working Draft. It is the authoritative guide to recommended usage of the SKOS Core Vocabulary at the time of publication.
See also the SKOS Core Vocabulary Specification [SKOS Core Spec].
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
This document is a Working Draft produced by the Semantic Web Best Practices and Deployment Working Group, part of the W3C Semantic Web Activity. The Working Group intends the SKOS Core Guide to become a W3C Working Group Note (see W3C document maturity levels). However, other outcomes are possible within the framework of the W3C process (see W3C Process) and will be considered in response to deployment experience and feedback from the W3C membership. The Working Group has discussed the potential for SKOS Core to evolve into possible future W3C Recommendation Track work items, and would value feedback on the level of formal standardization that is appropriate.
This Working Draft changes the definition of the Documentation Properties per an open issue noted in the previous version. Other changes have been made to the SKOS Core Vocabulary and to recommended usage since the previous (first) W3C Public Working Draft; see the section Release Notes in the SKOS Core Vocabulary Specification for details.
We encourage further public comments on this Working Draft. Please send comments to public-esw-thes@w3.org [archive] and start the subject line of the message with "comment:".
Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
SKOS stands for Simple Knowledge Organisation System. The name SKOS was chosen to emphasise the goal of providing a simple yet powerful framework for expressing knowledge organisation systems in a machine-understandable way.
SKOS Core provides a model for expressing the basic structure and content of concept schemes.
A 'concept scheme' is defined here as: a set of concepts, optionally including statements about semantic relationships between those concepts. Thesauri, classification schemes, subject heading lists, taxonomies, 'folksonomies', and other types of controlled vocabulary are all examples of concept schemes. Concept schemes are also embedded in glossaries and terminologies.
The SKOS Core Vocabulary is a set of RDF properties and RDFS classes, that can be used to express the content and structure of a concept scheme as an RDF graph. For example, below is an extract from the UK Archival Thesaurus (UKAT) [UKAT]:
Term: Economic cooperation Used For: Economic co-operation Broader terms: Economic policy Narrower terms: Economic integration European economic cooperation European industrial cooperation Industrial cooperation Related terms: Interdependence Scope Note: Includes cooperative measures in banking, trade, industry etc., between and among countries.
This extract, expressed as an RDF graph using the SKOS Core Vocabulary, looks like:
Each of the circles represents a concept from the UKAT.
If your controlled vocabulary (concept scheme) has a similar structure, you will be interested in reading this guide, because it will tell you how to express your concept scheme as an RDF graph using the SKOS Core Vocabulary. Using RDF will allow your data to be linked to and/or merged with other RDF data by semantic web applications. In practice, this means that data sources can be distributed across the web in a decentralised way, but still be meaningfully composed and integrated by applications, possibly in novel and unanticipated ways.
SKOS Core is an application of the Resource Description Framework (RDF). RDF provides a simple data formalism for talking about things, their properties, inter-relationships, and categories (classes). See [RDF Concepts] for an overview of RDF, [RDF Semantics] for its formal mathematical basis, and [RDF Syntax] for details of the RDF/XML document format used to exchange RDF data. For more about the relationship between SKOS Core and other RDF applications, see the Relationship to RDFS/OWL Ontologies section below.
This document is a guide to using the SKOS Core Vocabulary, for readers who already have a basic understanding of RDF concepts.
A formal representation of the SKOS Core Vocabulary is maintained in RDF/OWL [latest: http://www.w3.org/2004/02/skos/core]. Historical snapshots of the RDF/OWL description of the SKOS Core Vocabulary can be obtained from [http://www.w3.org/2004/02/skos/core/history/].
See also the SKOS Core Vocabulary Specification [SKOS Core Spec].
Together, the latest versions of this document [SKOS Core Guide] and the SKOS Core Vocabulary Specification [SKOS Core Spec] replace the earlier SKOS Core 1.0 Guide [SKOS Core 1.0] published by the SWAD-Europe Thesaurus Activity. The SKOS Core 1.0 Guide is now deprecated. In a departure from the policy implied by the version number '1.0', the SKOS Core Vocabulary is no longer versioned as a whole. The current versioning policy is described in the SKOS Core Vocabulary Specification.
Most of the examples in this guide are given as a visualisation of the RDF graph, e.g.
An RDF graph can be serialised (i.e. encoded as a series of characters) according to any of three currently defined RDF syntaxes: RDF/XML [RDF Syntax], N3/Turtle [Turtle][N3], N-Triple [N-Triple]. All examples in this guide use the RDF/XML syntax for consistency. Examples serialised as RDF/XML appear in boxes such as:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://www.example.com/eg#"> <rdf:Description rdf:about="http://www.example.com/eg#aResource"> <ex:aProperty rdf:resource="http://www.example.com/eg#anotherResource"/> <ex:anotherProperty>An RDF Literal</ex:anotherProperty> </rdf:Description> </rdf:RDF>
Inference rules are part of SKOS Core. Inference rules are described in prose, and where appropriate are expressed using the Jena 2 rule syntax [Jena Inference], or as RDF statements using the OWL vocabulary [OWL]. Inference rules appear in boxes such as:
An example rule.
(?x ex:p ?y) -> (?x ex:q ?y) prefix ex: <http://www.example.com/eg#>
This document uses the following terminology defined in [RDF Concepts]:
This document uses the following terminology defined in [Willpower Glossary]:
This document uses the following terminology defined in [WEBARCH]:
This document uses the following terminology defined in [DCMIMODEL]:
This document uses the following terminology defined in [OWL]:
The skos:Concept
class allows you to assert that a resource is a conceptual resource.
That is, the resource is itself a concept. For example:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="http://www.example.com/concepts#love"> <rdf:type rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/> </rdf:Description> </rdf:RDF>
Note that, for triples involving the rdf:type
property, the
RDF/XML syntax allows a shortened form:
<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://www.example.com/concepts#love"/> </rdf:RDF>
This shortened form is used throughout this guide, wherever possible.
See also the section HTTP URIs for Concepts.
This section describes the SKOS Core labelling properties: skos:prefLabel
,
skos:altLabel
,
skos:hiddenLabel
,
skos:prefSymbol
and skos:altSymbol
.
Here labelling means assigning some sort of token to a resource,
where the token is intended to be used to denote (label) the
resource in natural language discourse and/or in representations intended for
human consumption.
The skos:prefLabel
and skos:altLabel
properties allow you to assign preferred and alternative lexical labels to a
resource. 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://www.example.com/concepts#animals"> <skos:prefLabel>animals</skos:prefLabel> <skos:altLabel>creatures</skos:altLabel> <skos:altLabel>fauna</skos:altLabel> </skos:Concept> </rdf:RDF>
The labels in the above example, 'animals' 'creatures' and 'fauna', would
under normal circumstances be considered synonyms of each other. However,
when labelling resources of type skos:Concept
,
it is not necessary to restrict preferred and alternative lexical labels to
precise synonyms. The following are all valid:
<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://www.example.com/concepts#wetness"> <skos:prefLabel>wetness</skos:prefLabel> <skos:altLabel>dryness</skos:altLabel> </skos:Concept> <skos:Concept rdf:about="http://www.example.com/concepts#shrubs"> <skos:prefLabel>shrubs</skos:prefLabel> <skos:altLabel>bushes</skos:altLabel> </skos:Concept> <skos:Concept rdf:about="http://www.example.com/concepts#rocks"> <skos:prefLabel>rocks</skos:prefLabel> <skos:altLabel>basalt</skos:altLabel> <skos:altLabel>granite</skos:altLabel> <skos:altLabel>slate</skos:altLabel> </skos:Concept> </rdf:RDF>
Abbreviations and acronyms may also be used to label concepts, and the choice of whether to use them as preferred or alternative terms is unconstrained. However, misspelled words are normally included among the hidden labels (see see hidden labels below).
The properties skos:prefLabel
and skos:altLabel
are both sub-properties of rdfs:label
.
A hidden lexical label is a lexical label for a resource, where
you would like that character string to be accessible to applications
performing text-based indexing and search operations, but you would
not like that label to be visible otherwise. To assign a
hidden lexical label to a resource, use the skos:hiddenLabel
property.
The most common use of hidden labels is to include misspelt variants of other lexical labels. 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://www.example.com/concepts#abattoirs"> <skos:prefLabel>abattoirs</skos:prefLabel> <skos:hiddenLabel>abatoirs</skos:hiddenLabel> <skos:hiddenLabel>abbatoirs</skos:hiddenLabel> <skos:hiddenLabel>abbattoirs</skos:hiddenLabel> </skos:Concept> </rdf:RDF>
The property skos:hiddenLabel
is a sub-property of rdfs:label
.
The value of the properties skos:prefLabel
and skos:altLabel
should be a plain literal. A plain literal is a character string with
optional language tag, and the language tag may be used to restrict the scope
of a lexical label to a particular language, 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://www.example.com/concepts#shrubs"> <skos:prefLabel xml:lang="en">shrubs</skos:prefLabel> <skos:altLabel xml:lang="en">bushes</skos:altLabel> <skos:prefLabel xml:lang="fr">arbuste</skos:prefLabel> <skos:altLabel xml:lang="fr">buisson</skos:altLabel> </skos:Concept> </rdf:RDF>
The values permissable as language tags are given by [XMLLANG].
When labelling a concept in more than one language, bear in mind that subtle differences in the common meaning of translated words or phrases between languages may result in differing interpretations of a concept by different language communities.
A concept should have no more than one preferred lexical label per language.
It is recommended that no two concepts in the same concept scheme be given the same preferred lexical label in any given language.
Symbolic labelling means labelling a concept with an image.
To assign preferred and alternative symbolic labels to a concept, use the
skos:prefSymbol
and skos:altSymbol
properties. 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://www.example.com/concepts#love"> <skos:prefSymbol rdf:resource="http://www.example.com/symbols/love1.jpg"/> <skos:altSymbol rdf:resource="http://www.example.com/symbols/love2.jpg"/> </skos:Concept> </rdf:RDF>
It is recommended that no two concepts in the same concept scheme be given the same preferred symbolic label.
The FOAF [FOAF] vocabulary includes the property
foaf:depiction
.
This property may be used to assert a link between a concept, and an image
depicting that concept, 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#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <skos:Concept rdf:about="http://www.example.org/concepts#spottedbowerbird"> <skos:prefLabel>spotted bowerbird</skos:prefLabel> <skos:altLabel>Chlamydera maculata</skos:altLabel> <foaf:depiction rdf:resource="http://www.mangoverde.com/birdsound/images/00000005589.jpg"/> </skos:Concept> </rdf:RDF>
The properties skos:prefSymbol
and skos:altSymbol
are not sub-properties of foaf:depiction
.
This is because a symbolic label for a concept is not necessarily a
depiction of that concept. For example, the image ...
... is the preferred symbolic label for the concept 'government' in the Blisssymbolics dictionary [BLISS]. However, the image looks like a (highly stylised) depiction of a flag.
N.B. This section has changed since the previous (first) Public Working Draft edition of the SKOS Core Guide, see section Release Notes in [SKOS Core Spec].
This section describes the SKOS Core documentation properties. These are 7 properties you can use to add human-readable documentation to the description of a concept. The properties are:
skos:note
| +--skos:definition
| +--skos:scopeNote
| +--skos:example
| +--skos:historyNote
| +--skos:editorialNote
| +--skos:changeNote
The SKOS Core documentation properties are arranged as a property
hierarchy as shown above. Thus a skos:definition
is also a skos:note
, a
skos:editorialNote
is also a skos:note
and so on.
Use the skos:note
to
supply general documentation for any purpose.
Use the skos:definition
property to supply a complete explanation of the intended meaning of a
concept. For example:
Use the skos:scopeNote
property to supply some, possibly partial, information about the intended
meaning and/or use of a concept, which can be phrased as information about
what is or isn't included within the meaning ('scope') of the concept. For
example:
See also section 'Scope notes' in [BS8723].
Use the skos:example
property to supply an example of the use of a concept.
Use the skos:historyNote
property to give instructions or useful information for users of the scheme,
specifically relating to significant changes to the meaning/form/state of a
concept. For example:
See also section 'History notes' in [BS8723].
Use the skos:editorialNote
property to supply information that is an aid to administrative housekeeping,
such as reminders of editorial work still to be done, or warnings in the
event that future editorial changes might be made. For example:
See also section 'Data management' in [BS8723].
Use the skos:changeNote
property to document fine-grained changes to a concept, for the purposes of
administration and maintenance. (This is a bit like a CVS commit comment.)
For example:
There are three recommended usage patterns for the SKOS Core documentation properties:
The sub-sections below explain these patterns.
This is the simplest pattern for using the SKOS Core documentation properties, where the property value (i.e. the object of the triple) is an RDF literal.
An example of this pattern is below:
<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://www.example.org/concepts#bananarepublic"> <skos:prefLabel>banana republic</skos:prefLabel> <skos:definition>A small country, especially in South and Central America, that is poor and often badly and immorally ruled.</skos:definition> </skos:Concept> </rdf:RDF>
Note that a plain literal may include a language tag. Where a concept is labelled in more than one language, documentation may also be provided in multiple languages, 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://www.example.com/concepts#pineapples"> <skos:prefLabel xml:lang="en">pineapples</skos:prefLabel> <skos:definition xml:lang="en">The fruit of plants of the family Bromeliaceae.</skos:definition> <skos:prefLabel xml:lang="fr">ananas</skos:prefLabel> <skos:definition xml:lang="fr">Le fruit de la plante herbacée de la famille des broméliacées.</skos:definition> </skos:Concept> </rdf:RDF>
In this pattern the documentation is structured as a related resource description. This allows you to represent more complex documentation structures, including properties of the documentation itself, such as the creator(s) of the documentation, a date, or its intended audience.
An example of this pattern is below:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <skos:Concept rdf:about="http://www.example.org/concepts#laptops"> <skos:prefLabel>notebook computers</skos:prefLabel> <skos:changeNote rdf:parseType="Resource"> <rdf:value>The label 'laptop computers' moved from preferred to alternative, the label 'notebook computers' moved from alternative to preferred.</rdf:value> <dc:creator> <foaf:Person> <foaf:name>John Smith</foaf:name> <foaf:mbox rdf:resource="mailto:jsmith@example.org"/> </foaf:Person> </dc:creator> <dc:date>1999-01-23</dc:date> </skos:changeNote> </skos:Concept> </rdf:RDF>
See FOAF [FOAF] and DC [DCMITERMS] specifications for more properties to use with related resource descriptions and usage guidelines.
In particular, the dc:audience
property may be used to add
information about the intended audience of the note, 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#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <skos:Concept rdf:about="http://www.example.org/concepts#pineapples"> <skos:prefLabel>pineapples</skos:prefLabel> <skos:definition rdf:parseType="Resource"> <rdf:value>The fruit of plants of the family Bromeliaceae.</rdf:value> <dc:audience>general user</audience> </skos:definition> <skos:editorialNote rdf:parseType="Resource"> <rdf:value>Consult Dr. Jones regarding the definition of this concept at 2005-09-29 editorial meeting.</rdf:value> <dc:audience>editor</audience> </skos:editorialNote> </skos:Concept> </rdf:RDF>
It is preferable to use some sort of controlled list of values for the
dc:audience
property, such as e.g. 'general user', 'indexer' and
'editor'.
Where the documentation is structured as a related resource description,
you may use the dc:language
property to indicate the language of
the documentation, e.g.:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/"> <skos:Concept rdf:about="http://www.example.com/concepts#botany"> <skos:prefLabel>botany</skos:prefLabel> <skos:note rdf:parseType="Resource"> <rdf:value>The study of plant life.</rdf:value> <dc:creator> <foaf:Person> <foaf:name>John Smith</foaf:name> <foaf:mbox rdf:resource="mailto:jsmith@example.org"/> </foaf:Person> </dc:creator> <dc:language> <dcterms:RFC1766> <rdf:value>EN</rdf:value> <rdfs:label>English</rdfs:label> </dcterms:RFC1766> </dc:language> </skos:note> </skos:Concept> </rdf:RDF>
This pattern allows you to refer to documentation that is itself a document, via the URI of that document.
A specific examples of this pattern is below:
<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://www.example.com/concepts#zoology"> <skos:prefLabel>zoology</skos:prefLabel> <skos:scopeNote rdf:resource="http://www.example.com/notes/zoology.txt"/> </skos:Concept> </rdf:RDF>
Note that it is possible to include metaproperties of this document within the same RDF graph, 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#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <skos:Concept rdf:about="http://www.example.com/concepts#botany"> <skos:prefLabel>botany</skos:prefLabel> <skos:scopeNote> <foaf:Document rdf:about="http://www.example.com/notes/botany.txt"> <dc:creator> <foaf:Person> <foaf:name>John Smith</foaf:name> <foaf:mbox rdf:resource="mailto:jsmith@example.org"/> </foaf:Person> </dc:creator> <dc:language> <dcterms:RFC1766> <rdf:value>EN</rdf:value> <rdfs:label>English</rdfs:label> </dcterms:RFC1766> </dc:language> </foaf:Document> </skos:scopeNote> </skos:Concept> </rdf:RDF>
The SKOS Core Vocabulary includes the following properties for asserting
semantic (paradigmatic) relationships between concepts: skos:semanticRelation
,
skos:broader
,
skos:narrower
and skos:related
.
These properties are arranged in a property hierarchy, as follows:
skos:semanticRelation | +-- skos:broader | +-- skos:narrower | +-- skos:related
The domain and range of the property skos:semanticRelation
is the class skos:Concept
,
therefore the use of any of the SKOS Core semantic relation properties
implies that both the subject and the object of the triple is a resource of
type skos:Concept
.
To assert that one concept is broader in meaning (i.e. more general) than
another, where the scope (meaning) of one falls completely within the scope
of the other, use the skos:broader
property. To assert the inverse, that one concept is narrower in meaning
(i.e. more specific) than another, use the skos:narrower
property. 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://www.example.com/concepts#mammals"> <skos:prefLabel>mammals</skos:prefLabel> <skos:broader rdf:resource="http://www.example.com/concepts#animals"/> </skos:Concept> <skos:Concept rdf:about="http://www.example.com/concepts#animals"> <skos:prefLabel>animals</skos:prefLabel> <skos:narrower rdf:resource="http://www.example.com/concepts#mammals"/> </skos:Concept> </rdf:RDF>
The properties skos:broader
and skos:narrower
are each other's inverse.
Both the properties skos:broader
and skos:narrower
are transitive properties.
See also section on hierarchies in [BS8723].
To assert an associative relationship between two concepts, use the
skos:related
property, 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://www.example.com/concepts#birds"> <skos:prefLabel>birds</skos:prefLabel> <skos:related rdf:resource="http://www.example.com/concepts#ornithology"/> </skos:Concept> <skos:Concept rdf:about="http://www.example.com/concepts#ornithology"> <skos:prefLabel>ornithology</skos:prefLabel> <skos:related rdf:resource="http://www.example.com/concepts#birds"/> </skos:Concept> </rdf:RDF>
The property skos:related
is a symmetric property.
See also the section on associative relationships in [BS8723].
Usually, concepts are defined in relation to other concepts, as part of an internally coherent concept scheme. As mentioned in the introduction, a 'concept scheme' is defined here as: a set of concepts, optionally including statements about semantic relationships between those concepts.
The skos:ConceptScheme
class allows you to assert that a resource is a concept scheme. 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:ConceptScheme rdf:about="http://www.example.com/conceptscheme"/> </rdf:RDF>
Concepts do not have to be a part of a concept scheme, concepts may be
defined and declared as stand-alone resources. However, where you would like
to assert that a concept is a part of a particular concept scheme, use the
skos:inScheme
property, 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://www.example.com/concepts#love"> <skos:inScheme rdf:resource="http://www.example.com/conceptscheme"/> </skos:Concept> </rdf:RDF>
A concept may participate in any number of concept schemes.
For concept schemes where the concepts are arranged in a broader/narrower
generalisation hierarchy, use the skos:hasTopConcept
property to assert a link between the concept scheme and the concepts that
are the top-level concepts in the generalisation hierarchy. 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:ConceptScheme rdf:about="http://www.example.com/conceptscheme"> <skos:hasTopConcept rdf:resource="http://www.example.com/concepts#biology"/> <skos:hasTopConcept rdf:resource="http://www.example.com/concepts#geology"/> <skos:hasTopConcept rdf:resource="http://www.example.com/concepts#agriculture"/> <skos:hasTopConcept rdf:resource="http://www.example.com/concepts#culturalheritage"/> </skos:ConceptScheme> </rdf:RDF>
It is recommended that you use the skos:hasTopConcept
property, as this gives applications an efficient way of locating the top
level concepts for a given scheme.
When declaring a concept scheme you can of course use properties from other RDF vocabularies such as DCMI Terms [DCMITERMS] to describe meta-properties of the scheme, 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#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <skos:ConceptScheme rdf:about="http://www.example.com/conceptscheme"> <skos:hasTopConcept rdf:resource="http://www.example.com/concepts#biology"/> <skos:hasTopConcept rdf:resource="http://www.example.com/concepts#geology"/> <skos:hasTopConcept rdf:resource="http://www.example.com/concepts#agriculture"/> <skos:hasTopConcept rdf:resource="http://www.example.com/concepts#culturalheritage"/> <dc:title>The example.com concept scheme</dc:title> <dc:description>An concept scheme for the SKOS Core guide.</dc:description> <dc:creator> <foaf:Person> <foaf:name>Alistair Miles</foaf:name> <foaf:mbox rdf:resource="mailto:a.j.miles@rl.ac.uk"/> </foaf:Person> </dc:creator> <dc:rights>Free to all.</dc:rights> <dcterms:issued>2004-11-25</dcterms:issued> <dcterms:modified>2005-02-06</dcterms:modified> </skos:ConceptScheme> </rdf:RDF>
Consult the DCMI Terms [DCMITERMS] specification for other useful properties and usage guidelines.
This section introduces the properties skos:subject
,
skos:isSubjectOf
,
skos:primarySubject
and skos:isPrimarySubjectOf
.
These properties can be used for subject indexing of information resources on
the web. Here 'subject indexing' means the same as 'indexing' as defined by
[Willpower Glossary].
To assert that a concept is a subject (i.e. topic) of an
information resource, use the skos:subject
property, 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#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <foaf:Document rdf:about="http://www.publish.csiro.au/paper/MU00039.htm"> <skos:subject rdf:resource="http://www.example.com/concepts#ornithology"/> </foaf:Document> <skos:Concept rdf:about="http://www.example.org/concepts#ornithology"> <skos:prefLabel>ornithology</skos:prefLabel> </skos:Concept> </rdf:RDF>
You can use the skos:isSubjectOf
property to make the same assertion in the other direction, 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#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <foaf:Document rdf:about="http://www.publish.csiro.au/paper/MU00039.htm"/> <skos:Concept rdf:about="http://www.example.org/concepts#ornithology"> <skos:prefLabel>ornithology</skos:prefLabel> <skos:isSubjectOf rdf:resource="http://www.publish.csiro.au/paper/MU00039.htm"/> </skos:Concept> </rdf:RDF>
The properties skos:subject
and skos:isSubjectOf
are each other's inverse.
The property skos:subject
is a sub-property of dc:subject
.
The following rule applies to the interaction of skos:subject
and skos:broader
:
(?i skos:subject ?x) (?x skos:broader ?y) -> (?i skos:subject ?y)
An information resource may have any number of subjects. To state that one
of these subjects is the primary subject of the document, use the
skos:primarySubject
property, 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#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <foaf:Document rdf:about="http://www.publish.csiro.au/paper/MU00039.htm"> <skos:primarySubject rdf:resource="http://www.example.com/concepts#spottedbowerbird"/> </foaf:Document> <skos:Concept rdf:about="http://www.example.org/concepts#spottedbowerbird"> <skos:prefLabel>spotted bowerbird</skos:prefLabel> </skos:Concept> </rdf:RDF>
The property skos:isPrimarySubjectOf
is the inverse of skos:primarySubject
.
The property skos:primarySubject
is the sub-property of skos:subject
.
The property skos:isPrimarySubjectOf
is the sub-propety of skos:isSubjectOf
.
A resource should have no more than one primary subject from any one concept scheme.
This section describes the features of SKOS Core that allow you to define meaningful groupings ('collections') of concepts. Such groupings are normally rendered in thesauri as e.g.
<milk by source animal> .buffalo milk .cow milk .goat milk .sheep milk
In thesaurus terminology, these collections are known as 'arrays', and the term 'milk by source animal' is a 'node label' [Willpower Glossary]. There is consensus that a 'node label' does not represent a label for a concept in its own right, and therefore correctly modelling this kind of structure in RDF requires careful consideration.
SKOS Core has special vocabulary to handle collections, and this is
described below. However, RDF has some generic vocabulary
(rdf:Bag
and rdf:Seq
) to handle ordered/unordered
groups of resources, and there has been extended discussion as to whether
these should be used. The choice has been made provisionally
not to use rdf:Bag
and rdf:Seq
for
this purpose, for reasons outlined in [Collections
and Arrays].
To define a meaningful collection of concepts, use the skos:Collection
class and the skos:member
property. To assign a lexical label to a collection, use the
rdfs:label
property. 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#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <skos:Collection> <rdfs:label>milk by source animal</rdfs:label> <skos:member rdf:resource="http://www.example.com/concepts#buffalomilk"/> <skos:member rdf:resource="http://www.example.com/concepts#cowmilk"/> <skos:member rdf:resource="http://www.example.com/concepts#goatmilk"/> <skos:member rdf:resource="http://www.example.com/concepts#sheepmilk"/> </skos:Collection> <skos:Concept rdf:about="http://www.example.com/concepts#buffalomilk"> <skos:prefLabel>buffalo milk</skos:prefLabel> </skos:Concept> <skos:Concept rdf:about="http://www.example.com/concepts#cowmilk"> <skos:prefLabel>cow milk</skos:prefLabel> </skos:Concept> <skos:Concept rdf:about="http://www.example.com/concepts#goatmilk"> <skos:prefLabel>goat milk</skos:prefLabel> </skos:Concept> <skos:Concept rdf:about="http://www.example.com/concepts#sheepmilk"> <skos:prefLabel>sheep milk</skos:prefLabel> </skos:Concept> </rdf:RDF>
Note that in the example above the collection was defined as a blank node, i.e. no URI was allocated. URIs may be allocated to collections, but usually this is not necessary.
The most common use of a labelled collection such as the above is to enhance a hierarchical display. You can describe narrower and broader relationships between a concept and a collection, 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#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <skos:Concept rdf:about="http://www.example.com/concepts#milk"> <skos:prefLabel>milk</skos:prefLabel> <skos:narrower> <skos:Collection> <rdfs:label>milk by source animal</rdfs:label> <skos:member rdf:resource="http://www.example.com/concepts#buffalomilk"/> <skos:member rdf:resource="http://www.example.com/concepts#cowmilk"/> <skos:member rdf:resource="http://www.example.com/concepts#goatmilk"/> <skos:member rdf:resource="http://www.example.com/concepts#sheepmilk"/> </skos:Collection> </skos:narrower> </skos:Concept> </rdf:RDF>
The usual rendering of this structure in a thesaurus is:
milk .<milk by source animal> ..buffalo milk ..cow milk ..goat milk ..sheep milk
The class skos:CollectableProperty
supports a generic mechanism by which collections can be involved in semantic
relationships (and other sorts of statement). For this class the following
rule applies:
(?x ?p ?c) (?c skos:member ?m) (?p rdf:type skos:CollectableProperty) -> (?x ?p ?m)
The properties skos:narrower
,
skos:broader
and skos:related
are all declared to be collectable properties.
This rule means that the example from the section above implies the following graph:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:skos="http://www.w3.org/2004/02/skos/core#"> <rdf:Description rdf:about="http://www.example.com/concepts#milk"> <skos:narrower rdf:resource="http://www.example.com/concepts#buffalomilk"/> <skos:narrower rdf:resource="http://www.example.com/concepts#cowmilk"/> <skos:narrower rdf:resource="http://www.example.com/concepts#goatmilk"/> <skos:narrower rdf:resource="http://www.example.com/concepts#sheepmilk"/> </rdf:Description> </rdf:RDF>
To define an ordered collection of concepts, use the skos:OrderedCollection
class with the skos:memberList
property. An ordered collection may also have a label (use
rdfs: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#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <skos:OrderedCollection> <rdfs:label>people by age</rdfs:label> <skos:memberList rdf:parseType="Collection"> <skos:Concept rdf:about="http://www.example.com/concepts#infants"/> <skos:Concept rdf:about="http://www.example.com/concepts#children"/> <skos:Concept rdf:about="http://www.example.com/concepts#adults"/> </skos:memberList> </skos:OrderedCollection> <skos:Concept rdf:about="http://www.example.com/concepts#infants"> <skos:prefLabel>infants</skos:prefLabel> </skos:Concept> <skos:Concept rdf:about="http://www.example.com/concepts#children"> <skos:prefLabel>children</skos:prefLabel> </skos:Concept> <skos:Concept rdf:about="http://www.example.com/concepts#adults"> <skos:prefLabel>adults</skos:prefLabel> </skos:Concept> </rdf:RDF>
Ordered collections can be used with semantic relation properties in the
same way as unordered collections (skos:OrderedCollection
is a sub-class of skos:Collection
)
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#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <skos:Concept rdf:about="http://www.example.com/concepts#people"> <skos:prefLabel>people</skos:prefLabel> <skos:narrower> <skos:OrderedCollection> <rdfs:label>people by age</rdfs:label> <skos:memberList rdf:parseType="Collection"> <skos:Concept rdf:about="http://www.example.com/concepts#infants"/> <skos:Concept rdf:about="http://www.example.com/concepts#children"/> <skos:Concept rdf:about="http://www.example.com/concepts#adults"/> </skos:memberList> </skos:OrderedCollection> </skos:narrower> </skos:Concept> </rdf:RDF>
This structure could be rendered for display as:
people .<people by age> ..infants ..children ..adults
For ordered collections the following rule applies:
(?c skos:memberList ?l) elementOfList(?e,?l) -> (?c skos:member ?e)
... where 'elementOfList' is a function that returns true if the first argument is an element of the RDF list for which the second argument is the head.
This rule, in combination with the collectable properties rule, means that the example above implies the following graph:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:skos="http://www.w3.org/2004/02/skos/core#"> <rdf:Description rdf:about="http://www.example.com/concepts#people"> <skos:narrower rdf:resource="http://www.example.com/concepts#infants"/> <skos:narrower rdf:resource="http://www.example.com/concepts#children"/> <skos:narrower rdf:resource="http://www.example.com/concepts#adults"/> </rdf:Description> </rdf:RDF>
Collections may also be nested inside other collections, 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#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <skos:Concept rdf:about="http://www.example.com/concepts#chairs"> <skos:prefLabel>chairs</skos:prefLabel> <skos:narrower> <skos:Collection> <rdfs:label>chairs by form</rdfs:label> <skos:member rdf:resource="http://www.example.com/concepts#armchairs"/> <skos:member rdf:resource="http://www.example.com/concepts#easychairs"/> <skos:member> <skos:Collection> <rdfs:label>chairs by form: back form</rdfs:label> <skos:member rdf:resource="http://www.example.com/concepts#heartbackchairs"/> <skos:member rdf:resource="http://www.example.com/concepts#ovalbackchairs"/> </skos:Collection> </skos:member> </skos:Collection> </skos:narrower> </skos:Concept> <skos:Concept rdf:about="http://www.example.com/concepts#armchairs"> <skos:prefLabel>armchairs</skos:prefLabel> </skos:Concept> <skos:Concept rdf:about="http://www.example.com/concepts#easychairs"> <skos:prefLabel>easy chairs</skos:prefLabel> </skos:Concept> <skos:Concept rdf:about="http://www.example.com/concepts#heartbackchairs"> <skos:prefLabel>heart-back chairs</skos:prefLabel> </skos:Concept> <skos:Concept rdf:about="http://www.example.com/concepts#ovalbackchairs"> <skos:prefLabel>oval-back chairs</skos:prefLabel> </skos:Concept> </rdf:RDF>
This structure could be rendered for display as:
chairs .<chairs by form> ..armchairs ..easy chairs ..<chairs by form: back form> ...heart-back chairs ...oval-back chairs
This example adapted from the AAT [AAT].
Ordered collections may also be nested, 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#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <skos:Concept rdf:about="http://www.example.com/concepts#people"> <skos:prefLabel>people</skos:prefLabel> <skos:narrower> <skos:OrderedCollection> <rdfs:label>people by age</rdfs:label> <skos:memberList rdf:parseType="Collection"> <skos:OrderedCollection> <rdfs:label>infants by age</rdfs:label> <skos:memberList rdf:parseType="Collection"> <skos:Concept rdf:about="http://www.example.com/concepts#babies"/> <skos:Concept rdf:about="http://www.example.com/concepts#toddlers"/> </skos:memberList> </skos:OrderedCollection> <skos:Concept rdf:about="http://www.example.com/concepts#children"/> <skos:Concept rdf:about="http://www.example.com/concepts#adults"/> </skos:memberList> </skos:OrderedCollection> </skos:narrower> </skos:Concept> <skos:Concept rdf:about="http://www.example.com/concepts#babies"> <skos:prefLabel>babies</skos:prefLabel> </skos:Concept> <skos:Concept rdf:about="http://www.example.com/concepts#toddlers"> <skos:prefLabel>toddlers</skos:prefLabel> </skos:Concept> </rdf:RDF>
This structure could be rendered for display as:
people .<people by age> ..<infants by age> ...babies ...toddlers ..children ..adults
Also ordered collections may be nested inside unordered collections, and vice versa.
The property skos:subjectIndicator
allows you to assert a
link between a concept and a human-readable document that provides a complete, definitive
description of that concept. 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> <skos:prefLabel>ornithology</skos:prefLabel> <skos:subjectIndicator rdf:resource="http://www.example.com/psi/ornithology.html"/> </skos:Concept> </rdf:RDF>
The referenced document should conform to the requirements of a published subject indicator as defined by [PSI].
The skos:subjectIndicator
property is an
owl:InverseFunctionalProperty
, which means that if any two nodes
in an RDF graph have the same value for this property, then they are the same
resource [OWL]. Therefore you can use the
skos:subjectIndicator
property to indirectly identify a
concept by reference to the URI of the document that is the published subject
indicator for that concept.
Below is an example of referring to a concept via the value of the
skos:subjectIndicator
property:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <foaf:Document rdf:about="http://www.publish.csiro.au/paper/MU00039.htm"> <skos:primarySubject rdf:parseType="Resource"> <skos:subjectIndicator rdf:resource="http://www.example.com/psi/ornithology.html"/> </skos:primarySubject> </foaf:Document> </rdf:RDF>
This section describes some open issues, where no firm consensus has been reached.
This section attempts to describe the relationship between SKOS Core and other RDF applications such as FOAF.
Here, 'RDFS' refers to the RDF vocabulary description language [RDF Schema] and 'OWL' refers to the Web Ontology Language [OWL].
There is a subtle difference between SKOS Core and other RDF applications like FOAF [FOAF], in terms of what they allow you to model. SKOS Core allows you to model a set of concepts (essentially a set of meanings) as an RDF graph. Other RDF applications, such as FOAF, allow you to model things like people, organisations, places etc. as an RDF graph. Technically, SKOS Core introduces a layer of indirection into the modelling.
To understand this indirection better, consider the following two graphs,
both involving the dc:creator
property:
The above graph describes a relationship between a concept, and the person
who is the creator of that concept. This graph should be interpreted
as saying, "the person named 'Alistair Miles' is the
creator of the concept denoted by the URI
http://www.example.com/concepts#henry8
. This concept was
modified on 2005-02-06." This graph should probably
not be interpreted as saying, "the person named 'Alistair
Miles' is the creator of King Henry VIII," or that, "King Henry VIII was
modified on 2005-02-06".
Contrast this with the graph below:
This second graph should probably be interpreted as saying, "the persons named 'King Henry VII' and 'Elizabeth of York' are the creators of the person named 'King Henry VIII'."
So, for a resource of type skos:Concept
, any properties of
that resource (such as creator, date of modification, source etc.) should be
interpreted as properties of a concept, and not as
properties of some 'real world thing' that that resource may be a
conceptualisation of.
This layer of indirection allows thesaurus-like data to be expressed as an RDF graph. The conceptual content of any thesaurus can of course be remodelled as an RDFS/OWL ontology. However, this remodelling work can be a major undertaking, particularly for large and/or informal thesauri. A SKOS Core representation of a thesaurus maps fairly directly onto the original data structures, and can therefore be created without expensive remodelling and analysis.
SKOS Core is intended to provide both a stable encoding of thesaurus-like data within the RDF graph formalism, as well as a migration path for exploring the costs and benefits of moving from thesaurus-like to RDFS/OWL-like modelling formalisms.
The property owl:sameAs
should not be used
to express the fact that two conceptual resources (i.e. resources of type
skos:Concept
) share the same meaning. The property
owl:sameAs
implies that two resources are identical in every way
(they are in fact the same resource). Although two conceptual resources may
have the same meaning, they may have different owners, different labels,
different documentation, different history, and of course a different
future.
Any party may, however, assert a mapping relationship between any two conceptual resources. The SKOS Mapping vocabulary [SKOSMAP] contains a number of RDF properties for expressing mapping relationships between conceptual resources.
SKOS Core assumes that the meaning of a conceptual resource is not affected by any RDF or natural language statements made about it. The concept's owner determines the meaning of a concept, and statements about the concept serve only to explain the meaning of the concept to others. It is up to the concept's owner to provide an informative set of statements about the concept, to ensure that other people will correctly interpret the meaning, and so share the same understanding.
In practise, this means that a concept may be used in any context, and the meaning of the concept will remain unchanged. However, bear in mind that the set of semantic relationships that a concept is involved in are an important part of the explanation of the meaning of that concept, and will influence the interpretation made by other people. Where a concept has little documentation, people will rely heavily on the semantic context of the concept to form an idea of meaning. Therefore the extent to which the meaning a concept is effectively explained via labels and documentation will determine how usable that concept is outside of the originally anticipated context.
This section suggests how properties from the OWL [OWL] and DCMI Terms [DCMITERMS] vocabularies could be used to assert information about concept scheme versioning.
For example, if I allocated the URI
http://www.example.com/conceptscheme
to a concept scheme (in its
current state), and then allocated the URIs
http://www.example.com/conceptscheme/1
and
http://www.example.com/conceptscheme/2
to specific versions of
the scheme, I could declare that:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:owl="http://www.w3.org/2002/07/owl#"> <skos:ConceptScheme rdf:about="http://www.example.com/conceptscheme"> <dcterms:hasVersion rdf:resource="http://www.example.com/conceptscheme/1"/> <dcterms:hasVersion rdf:resource="http://www.example.com/conceptscheme/2"/> </skos:ConceptScheme> <skos:ConceptScheme rdf:about="http://www.example.com/conceptscheme/1"> <dcterms:isVersionOf rdf:resource="http://www.example.com/conceptscheme"/> </skos:ConceptScheme> <skos:ConceptScheme rdf:about="http://www.example.com/conceptscheme/2"> <dcterms:isVersionOf rdf:resource="http://www.example.com/conceptscheme"/> <owl:priorVersion rdf:resource="http://www.example.com/conceptscheme/1"/> </skos:ConceptScheme> </rdf:RDF>
I could then use the skos:inScheme
property to declare which scheme versions a concept is included in, 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#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:dcterms="http://purl.org/dc/terms/"> <skos:Concept rdf:about="http://www.example.com/concepts#bananas"> <skos:prefLabel>bananas</skos:prefLabel> <skos:altLabel>plantains</skos:altLabel> <skos:inScheme rdf:resource="http://www.example.com/conceptscheme"/> <skos:inScheme rdf:resource="http://www.example.com/conceptscheme/1"/> <skos:inScheme rdf:resource="http://www.example.com/conceptscheme/2"/> <dcterms:replaces rdf:resource="http://www.example.com/plantains#concept"/> <skos:changeNote rdf:parseType="Resource"> <rdf:value>The scope of this concept modified to include plantains also after version 1; 'plantains' added as an altLabel.</rdf:value> <dc:date>2004-11-20</dc:date> </skos:changeNote> </skos:Concept> <skos:Concept rdf:about="http://www.example.com/concepts#plantains"> <skos:prefLabel>plantains</skos:prefLabel> <skos:inScheme rdf:resource="http://www.example.com/conceptscheme"/> <skos:inScheme rdf:resource="http://www.example.com/conceptscheme/1"/> <dcterms:isReplacedBy rdf:resource="http://www.example.com/concepts#bananas"/> </skos:Concept> </rdf:RDF>
Consult the OWL [OWL] and Dublin Core [DCMITERMS] specifications for full usage guidelines with respect to properties in those vocabularies.
The W3C's Technical Architecture Group (TAG) has closed the issue known as httpRange-14 [HTTP Range 14]. This issue considered whether or not it is consistent with the Architecture of the Web (and therefore appropriate) to use HTTP URIs to identify anything other than 'information resources'. The resolution simply states that, if a resource denoted by an HTTP URI returns a 303 ('see other') response code in reply to an HTTP GET request, then the nature of that resource is unknown.
Therefore, the use of any form of HTTP URIs as identifiers for concepts (resources of
type skos:Concept
) is consistent with the Architecture of the Web, provided that any
such resource returns a 303 response code in reply to all HTTP GET requests.
It is hoped that, in subsequent drafts of this document, we will be able to describe more detailed recommendations for setting up web servers to support the use of HTTP URIs as identifiers for concepts.
$Id: Overview.html,v 1.10 2018/10/09 13:30:44 denis Exp $