- From: Holger Knublauch <holger@topquadrant.com>
- Date: Sun, 21 Dec 2014 08:48:40 +1000
- To: public-data-shapes-wg <public-data-shapes-wg@w3.org>
On 12/21/14, 1:12 AM, Peter F. Patel-Schneider wrote: > > It appears that you are asking for the class whose instances are all > resources excluding literal values. The expressive power required for > this class goes well beyond the bounds of RDFS. This is quite surprising... to have a language that includes rdfs:range but no mechanism to say that all values of a property need to be nodes that can have further properties ("objects" in OO speak). This concept is fundamental, because it includes everything that can be a subject, i.e. have properties of their own. > > This new class cannot be the superclass of all classes. It is not a > superclass of the class that is the fixed meaning of rdfs:Resource, of > course, and it is also not a superclass of class that is the fixed > meaning of rdfs:Literal or of any of the datatype classes. Making > this class a superclass of all classes would break RDFS. I think we need to break RDFS anyway, don't we? RDFS is fundamentally not suited for closed world constraint checking, see the semantics of rdfs:domain and range, the lack of an enforceable identification mechanism for blank nodes and other weird design decisions that were made with good intentions, but different use cases in mind. > > It would also not be the case that the meaning of all IRIs and blank > nodes would belong to this new classes. In RDF the meaning of an IRI > or a blank node can be a literal value. Based on my current understanding, I think we should simply make the following pragmatic assumptions: - if a property has no valueType/range, then it can have IRIs, bnodes or literals - if a property has valueType=rdfs:Resource then it can have IRIs and bnodes - if a property has valueType=rdfs:Literal then it can have a literal of any datatype. This is how it's currently implemented in the systems that I know of (and certainly the tools that I helped developed, and I went through the code for form generation in many iterations). We just cannot introduce another named class for "IRI or bnode" because it breaks the superclass relationships of all existing ontologies. And I want to continue to be able to use something like ?type rdfs:subClassOf* ?valueType . ?instance rdf:type ?type . to find all possible values of a given value type. Anything else seems just not practical given that the foundations of RDFS are what they are, whether we like them or not. Having said this, I am of course OK with avoiding the term "Resource" in the prose of the specs - rdfs:Resource as above is just used as a URI even if it does not fully align with the philosophically inspired meaning of "Resource" in the RDF specs. Holger
Received on Saturday, 20 December 2014 22:49:13 UTC