- From: Christopher Welty <welty@us.ibm.com>
- Date: Mon, 22 Aug 2005 15:09:26 -0400
- To: public-swbp-wg@w3.org
This came up in the context of the ODM work to develop what is basically a UML data model for RDF, RDFS, and OWL. The issue was a simple modeling one: there is a class intended to represent rdfs:Resource, which is defined to be "everything", we need a class of "Statements" or "triples", whose instances would be individual statements or triples in some RDF graph. The question is, should the latter class be a subclass of the former, implying that all triples are resources? The issue generated a lot of discussion and revealed some widespread misconceptions. Here's a quick summary: Many people believe that "triples" are NOT rdfs:Resources because they cannot have a URI. Pat Hayes, however, argued quite strongly that there is nowhere in the RDF specs that say this, and that the intention is that a triple is a rdfs:Resource. Pat is certainly correct, as far as we can tell, that the spec doesn't say that a triple isn't an rdfs:Resource, but it doesn't say it is, either. In fact, it is vague on the subject. The closest documentation we coudl find is in the RDF Primer [http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#reification]: "The lack of a built-in means for assigning URIrefs to statements does not mean that "provenance" information of this kind cannot be expressed in RDF, just that it cannot be done using only the meaning RDF associates with the reification vocabulary. For example, if an RDF document (say, a Web page) has a URI, statements could be made about the resource identified by that URI and, based on some application-dependent understanding of how those statements should be interpreted, an application could act as if those statements "distribute" over (apply equally to) all the statements in the document. Also, if some mechanism exists (outside of RDF) to assign URIs to individual RDF statements, then statements could certainly be made about those individual statements, using their URIs to identify them. However, in these cases, it would also not be strictly necessary to use the reification vocabulary in the conventional way." The Jena documentation is a little less vauge. In [http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/graph/Triple.html] we see that a Triple is not a Resource (or a node), and in [http://jena.sourceforge.net/javadoc/com/hp/hpl/jena/rdf/model/Statement.html] it specifically says "A Statement is not a Resource". While Dave Reynolds corrected us on interpreting the Jena class/interface names as being formal representations of their namesakes in the RDF specs, such a caveat will not prevent people from doing so, as Jena is very widley used by people writing RDF software, and it has become a defacto standard. In fact, before copying Dave, this documentation was used as evidence to support the position that triples are not resources. I doubt it is the first or last time that will happen. After some more research, here are some further points: triples and statements: The terms "triple" and "statement" are used almost interchangeably in several of the RDF documents, but not in the RDF semantics. With only one or two exceptions that may have been oversights, the RDF semantics talks about triples exclusively. The RDF Concepts document defines triples to be a S, P, O that "hold". The RDF semantics adopts this definition. Statements are only used in the context of the reification vocabulary. The RDF semantics give an INFORMATIVE description of that that vocabulary is intended to mean, but leaves it open "to accomodate variations in existing RDF usage...". Further, the semantics for reification [http://www.w3.org/TR/rdf-mt/#ReifAndCont] use a blank node to represent the "reified triple" that is considered "to be a particular token or instance of a triple in a (real or notional) RDF document, rather than an 'abstract' triple considered as a grammatical form." The non-normative status of this section may have led to its oversight, but it is a little more direct wrt the intention that triples be int he domain, and thus that they are rdfs:Resources, Resources and URIs: It is an often heard belief that an rdfs:Resource is antyhing that can have a URI. Since the RDF syntax did not provide a way to give a URI to a triple, many people (myself included) have concluded that triples are not rdfs:Resources. So, here are the issues: 1) The belief that triples are not resources is widespread. If the intention is indeed that triples are resources, we need to get the word out somehow. Software is being written today that will fail to interoperate with other RDF software, as each implementation appears to use a different out-of-standard way of referring to triples. 2) There is still no defined or recommended "mechanism" for assigning a triple a URI. Despite this, the specs seem to be telling us they are intended to be resources. Perhaps it is time to at least recommend something. 3) I believe the correct data model here is to make the ODM "RDF Triple" class a subclass of "RDFS Resource". Does anyone see a problem with that? -Chris Dr. Christopher A. Welty, Knowledge Structures Group IBM Watson Research Center, 19 Skyline Dr., Hawthorne, NY 10532 Voice: +1 914.784.7055, IBM T/L: 863.7055, Fax: +1 914.784.7455 Email: welty@watson.ibm.com Web: http://www.research.ibm.com/people/w/welty/
Received on Monday, 22 August 2005 19:15:15 UTC