Review of SKOS Reference last call document from the OWL WG
http://www.w3.org/TR/2008/WD-skos-reference-20080829/
The OWL WG generally likes the SKOS Reference document.
However, it is the opinion of the WG that there should be more formality
in this reference document. It would be best to have those parts of the
SKOS model that fit into RDF or OWL be prominently mentioned throughout
the reference document and, moreover, that the RDF/XML document that has
the OWL 1 portion of SKOS be mentioned at the beginning of the reference
document. At this late stage, however, the OWL WG would be satisfied
with only the second half of this change.
The OWL WG notes that the reference document mentions an outdated
version of the RDF/XML document and expects that this will be fixed.
The OWL WG notes that the RDF/XML document is *not* normative with
respect to the SKOS vocabulary even if it is located at the "root" of
the SKOS vocabulary. The OWL WG suggests that reference document
indicate that the RDF/XML document is a normative subset of the SKOS
specification.
The OWL WG notes that one portion of SKOS (Notations) uses custom
datatypes. Although these seem to be benign, because RDF and OWL allow
extra datatypes, the use of these datatypes is not likely to be
supported by many tools. The presence of extra datatypes may cause
difficulties in some tools, which may just reject SKOS documents that
have these datatypes.
The OWL WG believes that it would be very useful if there was a version
of SKOS that used OWL 2. The WG understands that it is problematic for
a recommendation to point to something that is not (yet) a
recommendation and that further delay to SKOS is probably not warranted.
However, the OWL WG believes that publishing, at some point in the
future, a document (eg, a WG Note) describing how SKOS could be defined
in an OWL 2 environment would be useful. The OWL WG has produced an OWL
2 version of the SKOS specification and would be happy to help SKOS
experts in producing a descriptive note explaining how this OWL 2
ontology related to SKOS. This note could be published as a joint WG
note of the two WGs.
The OWL WG notes that some parts of the SKOS specification and some
examples in the reference document do not fit within OWL 2 DL and that
thus may not be fully supported by Semantic Web tools. The OWL WG
presents the following analysis of the SKOS specification and examples,
to indicate where representation capabilities beyond OWL 1 DL are used.
The OWL WG further notes that in many cases the SKOS specification fits
within OWL 2 DL, but that the examples do not. The OWL WG suggests
removing those examples that do not fit within OWL 2 DL.
Section Language What bit / Suggestions to put into OWL 2 DL
skos:Concept OWL 2 DL individual/class/property punning (examples)
Concept Schemes OWL 2 DL individual/ontology "punning" (example)
Lexical Labels OWL 2 Full subproperty of rdfs:label
suggestion: don't use rdfs:label
OWL 2 DL property disjointness
not OWL axiom schema for unique prefLabel
suggestion: include qualified
cardinality restrictions only
for languages used (defined using
datatype restrictions)
OWL 2 DL individual / class punning (example)
OWL 2 Full objects as values of data property (example)
suggestion: don't do this
Notations extra datatypes various extra datatypes
suggestion: sort of in OWL 1 DL
already, but unlikely to be supported
by many tools
Documentation OWL 2 Full using literal in object property (examples)
suggestion: don't do this
OWL 2 Full use of rdf:value (example)
suggestion: don't use rdf:value
OWL 2 DL individual/class punning (example)
Semantic Rel's OWL 2 DL disjoint properties
Concept Coll'ns OWL 2 Full ordering with typing
suggestion: see below
Mapping Props OWL 2 DL disjoint properties
SKOS X OWL 2 Full data property chains
suggestion: ??
Here is a way of handling typed ordering that should fit within OWL 2
DL.
Declaration( ObjectProperty(skos:firstMember) )
Declaration( ObjectProperty(skos:nextMembers) )
Declaration( ObjectProperty(skos:otherMembers) )
FunctionalProperty(skos:firstMember)
FunctionalProperty(skos:nextMembers)
PropertyDomain( skos:firstMember skos:OrderedCollection )
PropertyRange( skos:firstMember UnionOf(skos:Concept skos:ConceptScheme) ) ??
PropertyDomain( skos:nextMembers skos:OrderedCollection )
PropertyDomain( skos:nextMembers skos:OrderedCollection )
PropertyDomain( skos:otherMembers skos:OrderedCollection )
PropertyDomain( skos:otherMembers skos:OrderedCollection )
SubPropertyOf( skos:nextMembers skos:otherMembers )
SubPropertyOf( PropertyChain(skos:otherMembers skos:nextMembers) skos:otherMembers )
SubPropertyOf( skos:firstMember skos:member )
SubpropertyOf( PropertyChain(skos:otherMembers skos:firstMember) skos:member )