Copyright © 2008 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
This note defines an extension for the Simple Knowledge Organization
System, providing additional support for describing and linking lexical
entities. A special class of lexical entities, called xl:Label
,
is defined such that each instance of this class has a single RDF plain
literal form, but two instances this class are not necessarily the same
individual if they share the same literal form. Three alternate patterns for
linking lexical entities are defined, being (1) n-ary relations between RDF
plain literals, (2) binary relations between instances of
xl:Label
, and (3) n-ary relations between instances of
xl:Label
. These three patterns are presented as equally valid
alternatives, in the hope that further implementation experience will shed
light on which patterns are best suited to which situations, which will feed
into future standardization work.
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 an editor's draft produced by the Semantic Web Deployment Working Group for internal review purposes only. It has no formal status whatsoever within any W3C process.
Editors' note: Anything marked in the document with an "@@" indicates something still to be done or fixed. For example, "@@TODO" indicates an outstanding task, "@@REF" indicates a reference that needs to be properly cited, and "@@X" indicates numbering that needs to be completed.
Table of Contents
The XL vocabulary is the set of URIs given in the left-hand column in the table below.
URI | Definition |
---|---|
xl:Label |
@@TODO |
xl:literalForm |
@@TODO |
xl:prefLabel |
@@TODO |
xl:altLabel |
@@TODO |
xl:hiddenLabel |
@@TODO |
xl:NaryLiteralRelation |
@@TODO |
xl:literalRelated |
@@TODO |
xl:NaryLabelRelation |
@@TODO |
xl:labelRelated |
@@TODO |
xl:binaryLabelRelation |
@@TODO |
xl:seeRelation |
@@TODO |
Here, "the SKOS+XL vocabulary" refers to the union of the SKOS vocabulary and the XL vocabulary. "The SKOS+XL data model" refers to the union of the data model defined in the SKOS Reference [@@REF] and the class and property definitions stated in this document.
xl:Label
ClassThe class xl:Label
is a special class of lexical entities.
An instance of the class xl:Label
is a resource and may be
named with a URI.
An instance of the class xl:Label
has a single literal form.
This literal form is an RDF plain literal, which is a string of UNICODE
characters and an optional language tag. The property
xl:literalForm
is used to give the literal form of an
xl:Label
.
If two instances of the class xl:Label
have the same literal
form, they are not necessarily the same resource.
@@X | xl:Label is an instance of owl:Class . |
@@X | xl:Label is disjoint with each of the classes
skos:Concept , skos:ConceptScheme ,
skos:Collection . |
@@X | xl:literalForm is an instance of
owl:DatatypeProperty . |
@@X | The rdfs:domain of xl:literalForm is the
class xl:Label . |
@@X | The rdfs:range of xl:literalForm is the
class of RDF plain literals. |
@@X | xl:literalForm is an instance of
owl:FunctionalProperty . |
The example below describes an xl:Label
named with the URI
<http://example.com/A>
, with the literal form "foo" in
English. This example is consistent with the XL data model.
Example @@X |
---|
<A> rdf:type xl:Label ; xl:literalForm "foo"@en .
|
The three examples below are each not consistent with the
XL data model, because an xl:Label
is described with two
different literal forms.
Example @@X |
---|
<B> rdf:type xl:Label ; xl:literalForm "foo" ; xl:literalForm
"bar" .
|
Example @@X |
---|
<B> rdf:type xl:Label ; xl:literalForm "foo"@en ;
xl:literalForm "foo"@fr .
|
Example @@X |
---|
<B> rdf:type xl:Label ; xl:literalForm "foo"@en-GB ;
xl:literalForm "foo"@en-US .
|
As stated above, each instance of the class xl:Label has one and only one literal form. In other words, there is a function mapping the extension of xl:Label to the set of RDF plain literals. This function is, in fact, defined by the property extension of xl:literalForm. Note especially two facts about this function.
First, the function is not injective. In other words, there is not a one-to-one mapping from instances of xl:Label to the set of RDF plain literals. This means that two instances of xl:Label which have the same literal form are not necessarily the same individual.
This means that, for example, the entailment illustrated below is not supported by the XL data model.
Example @@X |
---|
<A> xl:literalForm "foo"@en .
<B> xl:literalForm "foo"@en . does not entail
<A> owl:sameAs <B> .
|
Second, the function is not surjective. In other words, there may be no instances of xl:Label with a given literal form.
For some knowledge organization systems, it could be useful to assert the membership of an instance of xl:Label within a SKOS concept scheme. Currently, the property skos:inScheme has a domain which is incompatible with its use for this purpose. No alternative is provided in this specification. Whether to relax the domain of skos:inScheme so it could be used for this purpose is an open issue.
@@TODO raise a SWD issue to consider relaxing domain of skos:inScheme?
xl:Label
sThe three properties xl:prefLabel
, xl:altLabel
and xl:hiddenLabel
are used to assign the preferred, alternate
and hidden labels of a resource respectively, where those labels are
instances of the class xl:Label
. These properties are analogous
to the properties of the same local name defined in the SKOS vocabulary, and
there are logical dependencies between these two sets of properties defined
below.
@@X | xl:prefLabel, xl:altLabel, xl:hiddenLabel and xl:labelRelated are each instances of owl:ObjectProperty. |
@@X | The rdfs:range of each of xl:prefLabel, xl:altLabel xl:hiddenLabel and xl:labelRelated is the class xl:Label. |
@@X | For any R, L, V, if <R, L> is in IEXT(I(xl:prefLabel)) and <L, V> is in IEXT(I(xl:literalForm)) then <R, V> is in IEXT(I(skos:prefLabel)). |
@@X | For any R, L, V, if <R, L> is in IEXT(I(xl:altLabel)) and <L, V> is in IEXT(I(xl:literalForm)) then <R, V> is in IEXT(I(skos:altLabel)). |
@@X | For any R, L, V, if <R, L> is in IEXT(I(xl:hiddenLabel)) and <L, V> is in IEXT(I(xl:literalForm)) then <R, V> is in IEXT(I(skos:hiddenLabel)). |
The example below illustrates the use of all three XL labeling properties, and is consistent with the SKOS+XL data model.
Example @@X |
---|
<foo>
xl:prefLabel <bar> ; xl:altLabel <baz> ; xl:hiddenLabel <qux> . <bar> rdf:type xl:Label ; xl:literalForm "bar"@en . <baz> rdf:type xl:Label ; xl:literalForm "baz"@en . <qux> rdf:type xl:Label ; xl:literalForm "qux"@en . |
The following table illustrates some inference patterns which capture the entailments relating the XL labeling properties with the SKOS labeling properties.
@@TODO explain notation conventions
If graph contains | then add |
---|---|
uuu xl:prefLabel vvv . vvv xl:literalForm xxx . |
uuu skos:prefLabel xxx . |
uuu xl:altLabel vvv . vvv xl:literalForm xxx . |
uuu skos:altLabel xxx . |
uuu xl:hiddenLabel vvv . vvv xl:literalForm xxx . |
uuu skos:hiddenLabel xxx . |
These rules can be used to "dumb-down" a graph using the XL vocabulary for labeling to a simpler graph using only the SKOS vocabulary for labeling. This is illustrated in the example below.
Example @@X |
---|
<foo>
xl:prefLabel <bar> ; xl:altLabel <baz> ; xl:hiddenLabel <qux> . <bar> rdf:type xl:Label ; xl:literalForm "bar"@en . <baz> rdf:type xl:Label ; xl:literalForm "baz"@en . <qux> rdf:type xl:Label ; xl:literalForm "qux"@en . entails
<foo>
skos:prefLabel "bar"@en ; skos:altLabel "baz"@en ; skos:hiddenLabel "qux"@en . |
Note that there are two important integrity conditions on the SKOS labeling properties defined in the SKOS data model. First, the properties skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise disjoint. Second, a resource has no more than one value of skos:prefLabel per language [@@REF]. Because of the logical dependency between the XL labeling vocabulary and the SKOS vocabulary defined above, the following four examples, whilst consistent w.r.t. the XL data model alone, are not consistent with the SKOS+XL data model.
Example @@X |
---|
<foo> xl:prefLabel <A> ; xl:prefLabel <B> .
<A> xl:literalForm "foo"@en . <B> xl:literalForm "bar"@en . |
Example @@X |
---|
<foo> xl:prefLabel <A> ; xl:altLabel <B> .
<A> xl:literalForm "foo"@en . <B> xl:literalForm "foo"@en . |
Example @@X |
---|
<foo> xl:altLabel <A> ; xl:hiddenLabel <B> .
<A> xl:literalForm "foo"@en . <B> xl:literalForm "foo"@en . |
Example @@X |
---|
<foo> xl:prefLabel <A> ; xl:hiddenLabel <B> .
<A> xl:literalForm "foo"@en . <B> xl:literalForm "foo"@en . |
This section defines a pattern for representing n-ary relations between RDF plain literals.
Note that the vocabulary defined in this section is not intended to be used directly, but rather as the basis for a design pattern which can be refined for more specific labeling scenarios.
@@TODO explain how this feature was moved out of SKOS, because wanted alternate patterns
@@X | xl:NaryLiteralRelation is an instance of
owl:Class . |
@@X | xl:literalRelated is an instance of owl:DatatypeProperty. |
@@X | The rdfs:domain of xl:literalRelated is the class xl:NaryLiteralRelation. |
@@X | The rdfs:range of xl:literalRelated is the class of RDF plain literals. |
The example below illustrates an n-ary literal relation between the literals "bar", "baz" and "qux", and is constistent with the XL data model.
Example @@X |
---|
<foo> rdf:type xl:NaryLiteralRelation ;
xl:literalRelated "bar" , "baz" , "qux" . |
As mentioned above, the vocabulary provided in this section serves as a basis for a design pattern, which can be refined for more specific labeling scenarios.
@@TODO example of refinement
xl:Label
This section defines a pattern for representing binary ("direct")
relations between instances of the class xl:Label
.
Note that the vocabulary defined in this section is not intended to be used directly, but rather as the basis for a design pattern which can be refined for more specific labeling scenarios.
@@X | xl:binaryLabelRelation is an instance of
owl:ObjectProperty . |
@@X | The rdfs:domain and the rdfs:range of xl:binaryLabelRelation is the class xl:Label. |
The example below illustrates a binary relation between two instances of the class xl:Label, and is consistent with the XL data model.
Example @@X |
---|
<A> rdf:type xl:Label ; xl:literalForm "foo" .
<B> rdf:type xl:Label ; xl:literalForm "bar" . <A> xl:binaryLabelRelation <B> . |
As mentioned above, the vocabulary provided in this section serves as a basis for a design pattern, which can be refined for more specific labeling scenarios.
@@TODO example of refinement
There are no logical dependencies between this pattern and either of the other two patterns defined in this document for representing relations between lexical entities.
So, for example, the entailments illustrated in the two examples below are not supported by the XL data model.
Example @@X |
---|
<A> rdf:type xl:Label ; xl:literalForm "foo" .
<B> rdf:type xl:Label ; xl:literalForm "bar" . <A> xl:binaryLabelRelation <B> . does not entail
[] rdf:type xl:NaryLiteralRelation ; xl:literalRelated "foo" , "bar"
.
|
Example @@X |
---|
<A> xl:binaryLabelRelation <B> .
does not entail
[] rdf:type xl:NaryLabelRelation ; xl:labelRelated <A> ,
<B> .
|
xl:Label
This section defines a pattern for representing n-ary relations between
instances of the class xl:Label
.
Note that, as with the other two alternatives for representing relations between lexical entities defined above, the vocabulary defined in this section is not intended to be used directly, but rather as the basis for a design pattern which can be refined for more specific labeling scenarios.
@@X | xl:NaryLabelRelation is an instance of
owl:Class . |
@@X | xl:labelRelated is an instance of owl:ObjectProperty. |
@@X | The rdfs:domain of xl:labelRelated is the class xl:NaryLabelRelation. |
@@X | The rdfs:range of xl:labelRelated is the class xl:Label. |
The example below illustrates a relation between three instances of the class xl:Label, and is consistent with the XL data model.
Example @@X |
---|
<A> rdf:type xl:Label ; xl:literalForm "foo" .
<B> rdf:type xl:Label ; xl:literalForm "bar" . <C> rdf:type xl:Label ; xl:literalForm "baz" . <foo> rdf:type xl:NaryLabelRelation ; xl:labelRelated <A> , <B> , <C> . |
As mentioned above, the vocabulary provided in this section serves as a basis for a design pattern, which can be refined for more specific labeling scenarios.
@@TODO example of refinement
There are no logical dependencies between this pattern and either of the other two patterns defined in this document for representing relations between lexical entities.
So, for example, the entailments illustrated in the example below is not supported by the XL data model.
Example @@X |
---|
<A> rdf:type xl:Label ; xl:literalForm "foo" .
<B> rdf:type xl:Label ; xl:literalForm "bar" . <C> rdf:type xl:Label ; xl:literalForm "baz" . <foo> rdf:type xl:NaryLabelRelation ; xl:labelRelated <A> , <B> , <C> . does not entail
[] rdf:type xl:NaryLiteralRelation ; xl:literalRelated "foo" , "bar"
, "baz"
|
In some situations it is useful to assert links from
other types of resource (e.g. instances of the class skos:Concept)
to n-ary relations between literals or
xl:Labels
.
This section defines a general purpose property for asserting such links.
@@X | xl:seeRelation is an instance of
owl:ObjectProperty . |
In the example below, xl:seeRelation is used to assert a link between a SKOS concept and an n-ary literal relation.
@@TODO
In the example below, xl:seeRelation is used to assert a link between a SKOS concept and an n-ary label relation.
@@TODO
There are no integrity conditions on the property xl:seeRelation. This means that there does not necessarily have to be any correspondence whatsoever between the SKOS lexical labels of a resource, and the labels involved in an associated XL literal or label relation. The example below, which is consistent with the SKOS+XL data model, illustrates this.
Example @@X |
---|
<foo>
skos:prefLabel "foo"@en ; skos:altLabel "bar"@en ; xl:seeRelation [ xl:literalRelated "baz"@en , "quux"@en ] . |
Refinements of the xl:seeRelation property are free to define stricter integrity conditions for label correspondance.
—- Change Log —- $Log: 20080414.html,v $ Revision 1.2 2008/04/14 16:00:13 ajm65 Fixed links. Revision 1.1 2008/04/14 15:58:39 ajm65 Copied from master.html, revision 1.4.