- From: Dean Allemang <dallemang@acm.org>
- Date: Wed, 27 Apr 2005 16:22:27 +0000
- To: public-esw-thes@w3.org
We have been looking into using the SKOS RDF vocabulary (http://www.w3.org/2004/02/skos/core.rdf) with RDFS-enabled tools, and have found some anomalies that make it difficult to understand how SKOS is intended to be used. In particular, we have loaded the vocabulary into SWOOP, Protege and RDF Gateway. When we first did this, we thought we must have found bugs in these tools, because of the strange results that we got. But when we looked into core.rdf, it seems that these things are part of SKOS itself. Here's an example. From core.rdf, we see: <rdf:Property rdf:ID="subjectIndicator"> <rdfs:label xml:lang="en">subject indicator</rdfs:label> <rdfs:domain rdf:resource="&skos;Concept"/> <rdfs:range rdf:resource="&foaf;Document"/> ... that is, subjectIndicator has Concept in its domain. Now, in the definition of Concept we see <rdfs:Class rdf:ID="Concept"> <rdfs:label xml:lang="en">Concept</rdfs:label> ... <skos:subjectIndicator rdf:resource="http://www.w3.org/2004/02/skos/core/spec/#Concept"/> ... </rdfs:Class> which means that Concept appears as the subject of a triple whose predicate is subjectIndicator. Now, the rules of RDFS (e.g., http://www.w3.org/TR/rdf-schema/#ch_domain) imply that Concept rdf:type Concept. Now, there is nothing logically wrong with this (well, except in an OWL-DL sense), but it is a bit counter-intuitive. Furthermore, since subjectIndicator is quite commonly used in core.rdf (in fact, it is used for every class and property definition), this implies that every property and every class in SKOS is an instance of Concept. SWOOP is the most widely available tool that shows this; when you set SWOOP to "Pellet" reasoning, you find that all the properties are now instances (as well). * Why is this important? After all, RDFS doesn't disallow properties from beings instances as well (or Classes, for that matter). But if you are writing an application that will do something, say, with all the concepts (e.g., provide a list of them for a user to select from in an annotation), the resulting list (including properties and classes) is not very understandable. Dean *We tried this with Protege as well, but the OWL plugin reported errors while reading it, so we weren't able to make any further headway.
Received on Sunday, 1 May 2005 19:11:58 UTC