- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Sat, 20 Dec 2014 16:38:10 -0800
- To: Holger Knublauch <holger@topquadrant.com>, public-data-shapes-wg <public-data-shapes-wg@w3.org>
In RDF all resources can have property values, even literal values. peter On 12/20/2014 02:48 PM, Holger Knublauch wrote: > > 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 Sunday, 21 December 2014 00:38:39 UTC