Re: personal review of SKOS Reference for WG consideration

I have updated my personal review slightly to make its points clearer.
I have also added a bit on the perils of using extra datatypes.

peter


Review of SKOS Reference last call document
http://www.w3.org/TR/2008/WD-skos-reference-20080829/

I would much prefer to have more formality in this reference document.
I feel that it is important to have at least those parts of the SKOS
model that fit into RDF or OWL be prominently mentioned.  It is true
that there is a RDF/XML document that has the OWL 1 portion of SKOS, but
this is only mentioned at the very end of the reference document.  I
feel that it would be much better to mention this RDF/XML document at
the beginning of the reference document.  I also note that the reference
document mentions an outdated version of the RDF/XML document.

I think that it would be very useful if there was a version of SKOS that
used OWL 2.  I understand that it is problematic for a recommendation to
point to something that is not (yet) a recommendation.  However, I think
that an informative document would be useful, even just a version of the
RDF/XML document that used the new OWL 2 features.  I think
that it would be even more useful to have this information in another
format, such as the OWL 2 reference syntax.

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 is likely to cause difficulties in some
tools, which may just reject SKOS documents that have these datatypes.

I would very much have liked more of SKOS to fit within OWL 2 DL.  I
believe that many of the parts of SKOS that do not fit within OWL 2 DL
are modelling errors.  To show what could be changed I have performed an
analysis (from the reference document, not from the RDF document) of the
bits of SKOS that are not in OWL 1 DL.  For those bits that are not in
OWL 2 DL, I have suggestions on how SKOS could be changed to make it fit
within OWL 2 DL, where I could figure this out.  I believe that having
as much of SKOS in OWL 2 DL would be of benefit to SKOS.  I note that
many of the bits that are not OWL 2 DL are in examples, indicating to me
that they are not so central to SKOS.

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, although I haven't checked all the details.

Declare( ObjectProperty(skos:firstMember) )
Declare( ObjectProperty(skos:nextMembers) )
Declare( ObjectProperty(skos:otherMembers) )
FunctionalProperty(skos:firstMember)
FunctionalProperty(skos:nextMembers)

Domain( skos:firstMember skos:OrderedCollection )
Range( skos:firstMember UnionOf(skos:Concept skos:ConceptScheme) ) ??

Domain( skos:nextMembers skos:OrderedCollection )
Domain( skos:nextMembers skos:OrderedCollection )
Domain( skos:otherMembers skos:OrderedCollection )
Domain( 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 )



Specific comments:

The introduction uses some sophisticated Turtle constructs without even
any mention of the syntax being used.  At least a pointer is required
here.

Nits:

"data are" vs "data does"

counter-intuitive meaning -> counter-intuitive feeling

Received on Wednesday, 1 October 2008 11:30:00 UTC