- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Fri, 19 Dec 2014 06:06:31 -0800
- To: Holger Knublauch <holger@topquadrant.com>, public-data-shapes-wg@w3.org
RDF provides formal mechanisms for giving meaning to IRIs and literals. This meaning is based on several notions in RDF, including that of resources. In RDF and generally on the web a resource is anything, including things like Dick Cheney, my left foot, Smaug, and a square circle. Some IRIs and literals have a fixed meaning, provided by the RDF specification. This is divided into RDF and RDFS portions. As some of the IRIs used here are given meaning in the RDFS portion of RDF, I'll use the RDFS meaning throughout. (I'm ignoring here some of the technical details required to make the formal semantics of RDF work, including dealing with the annoying fact that the universal set is a problematic notion.) The fixed meaning of rdfs:Resource (actually the IRI that rdfs:Resource is common shorthand for) is the class that contains all resources. So Dick Cheney, my left foot, Smaug, and a square circle are all instances of the class that is the meaning of rdfs:Resource. As resources are supposed to encompass everything, the set of instances of any other class will, of necessity, be a subset of the set of instances of the class that is the fixed meaning of rdfs:Resource. The fixed meaning of rdfs:Class is the class that contains all classes. Some resources, but not (necessarily) all, are classes, so the set of instances of the class that is the fixed meaning of rdfs:Class is a subset (normally a proper subset) of the set of instances of the class that is the fixed meaning of rdfs:Resource. In RDFS this is acknowledged by making all classes be subclasses of the class that is the meaning of rdfs:Resource. Similarly for rdf:Property, whose meaning is fixed as the class of all properties. Similarly for rdfs:Literal, whose meaning is fixed as the class of all literal *values* (not literals, which makes the name rdfs:Literal a bit misleading). There is no fixed meaning provided for rdfs:Node in RDFS. However, no matter what meaning could possibly be provided for rdfs:Node, the set of instances of the meaning of rdfs:Node would necessarily be a subset of the set of instances of the fixed meaning of rdfs:Resource, never a proper superset and almost certainly a proper subset. I would hope that this is a good enough reason to not have a triple of the form rdfs:Resource rdfs:subClassOf rdfs:Node . be valid in RDFS. peter On 12/19/2014 12:10 AM, Holger Knublauch wrote: > > On 12/18/14, 10:50 AM, Peter F. Patel-Schneider wrote: >> In RDF, nodes, and literals, and blank nodes denote resources. The section >> you reference is from the introduction, which is well before blank nodes are >> introduced. Throughout the RDF documentation resource should only be used >> when talking about things in the world, i.e., what is denoted by IRIs, >> literals, and blank nodes in RDF graphs. This use of resource is consistent >> with common web parlance - URI (Uniform Resource *Identifier*) and IRI >> (Internationalized *Resource* Identifier). I think that this working group >> should freely use resource with this meaning. >> >> The Jena documentation https://jena.apache.org/documentation/rdf/index.html >> mirrors this setup, more or less. (See the section "Nodes:...".) However, >> Jena then goes on to stupidly use Resource to identify the union of IRIs and >> blank nodes and, even worse, to use resource when talking about nodes in an >> RDF graph. That's a problem with Jena, not RDF or W3C or the web. This >> working group should never use resource or Resource to identify components >> of RDF graphs. > > Well, then Sesame was also "stupid" to use Resource like that? > > http://rdf4j.org/sesame/2.7/apidocs/org/openrdf/model/package-summary.html > > Resource := The supertype of all RDF resources (URIs and blank nodes). Indeed. > > The two most widely used RDF APIs are using this terminology. Every developer > looking at this stuff will use and understand this interpretation. Why doesn't > RDF Schema have the root classes > > rdfs:Node > rdfs:Literal > rdfs:Resource > rdfs:Class > rdf:Property > > and the terminology would follow much more naturally? I am sure the RDF > working group had good reasons for its current design, yet I admit I cannot > reverse engineer those good reasons right now. Can anyone explain? > > Thanks, > Holger
Received on Friday, 19 December 2014 14:07:00 UTC