- From: Irene Polikoff <irene@topquadrant.com>
- Date: Fri, 11 Mar 2016 15:09:04 -0500
- To: "Peter F. Patel-Schneider" <pfpschneider@gmail.com>, Holger Knublauch <holger@topquadrant.com>, <public-data-shapes-wg@w3.org>
I am not sure what you mean. RDFS is open world and doesn¡¯t have any constraints. There is not really a notion of ¡°in valid¡±. Irene On 3/11/16, 2:43 PM, "Peter F. Patel-Schneider" <pfpschneider@gmail.com> wrote: >These statements are all quite easy to read. They all come from >https://www.w3.org/TR/rdf-schema which is the user-friendly informal >definition of RDFS. > >These statements each show obvious differences between instance in RDFS >and >instance in SHACL. Each of them can be easily used to generate SHACL >shapes >that behave differently when instance is changed from its SHACL meaning >to its >RDFS meaning. > >Consider the following shape (using obvious prefix declarations) > >sh:propertyShape a sh:Shape ; > sh:scopeClass rdf:Property ; > sh:property [ sh:predicate rdfs:label ; > sh:minCount 1 ] . > >The data graph (using obvious prefix declarations) > >rdfs:range ex:label "range" . > >validates against this shape under SHACL instance but not under RDFS >instance. > >peter > > > >On 03/11/2016 10:17 AM, Irene Polikoff wrote: >> Peter, >> >> This is a long list of statements and would require significant time to >> examine each. I don¡¯t have unlimited amounts of time and I doubt that >>many >> people on the working group do. >> >> For this reason, I would like to make sure that all statements are >> relevant. Currently, just glancing at this quickly, I have doubts that >> they are. For example: >> >> """rdfs:range is an instance of rdf:Property""" >> >> Not in SHACL. >> >> >> Does SHACL even use rdfs:range? >> >> Irene >> >> >> >> On 3/11/16, 12:27 PM, "Peter F. Patel-Schneider" >><pfpschneider@gmail.com> >> wrote: >> >>> These quotes appear to be from RDF Schema 1.1, >>> https://www.w3.org/TR/rdf-schema/ >>> >>>From that document: >>> This document is intended to provide a clear specification of RDF >>>Schema >>> to >>> those who find the formal semantics specification [RDF11-MT] daunting. >>> Thus, >>> this document duplicates material also specified in the RDF Semantics >>> specification. Where there is disagreement between this document and >>>the >>> RDF >>> Semantics specification, the RDF Semantics specification should be >>>taken >>> to be >>> correct. >>> >>> But let's stick with this document. >>> >>> """All things described by RDF are called resources, and are instances >>>of >>> the >>> class rdfs:Resource. This is the class of everything. All other classes >>> are >>> subclasses of this class. rdfs:Resource is an instance of >>>rdfs:Class.""" >>> >>> Not in SHACL. >>> >>> """2.2 rdfs:Class >>> This is the class of resources that are RDF classes. rdfs:Class is an >>> instance >>> of rdfs:Class.""" >>> >>> Not in SHACL. >>> >>> """rdfs:Literal is an instance of rdfs:Class. rdfs:Literal is a >>>subclass >>> of >>> rdfs:Resource.""" >>> >>> Not in SHACL. >>> >>> """rdf:Property is an instance of rdfs:Class.""" >>> >>> Not in SHACL. >>> >>> """rdfs:range is an instance of rdf:Property""" >>> >>> Not in SHACL. >>> >>> """The triple >>> P rdfs:range C >>> states that P is an instance of the class rdf:Property, that C is an >>> instance >>> of the class rdfs:Class and that the resources denoted by the objects >>>of >>> triples whose predicate is P are instances of the class C.""" >>> >>> Not in SHACL. >>> >>> """A triple of the form: >>> P rdfs:domain C >>> states that P is an instance of the class rdf:Property, that C is a >>> instance >>> of the class rdfs:Class and that the resources denoted by the subjects >>>of >>> triples whose predicate is P are instances of the class C.""" >>> >>> Not in SHACL. >>> >>> """The property rdfs:subClassOf is an instance of rdf:Property that is >>> used to >>> state that all the instances of one class are instances of another.""" >>> >>> Not in SHACL, partly because SHACL doesn't use this definition of >>> instance. >>> >>> """The property rdfs:subPropertyOf is an instance of rdf:Property that >>>is >>> used >>> to state that all resources related by one property are also related by >>> another.""" >>> >>> Not in SHACL, and this can have large impacts on instance. >>> >>> """A triple of the form: >>> P1 rdfs:subPropertyOf P2 >>> states that P1 is an instance of rdf:Property, P2 is an instance of >>> rdf:Property and P1 is a subproperty of P2. The rdfs:subPropertyOf >>> property is >>> transitive.""" >>> >>> Not in SHACL. >>> >>> """rdfs:label is an instance of rdf:Property""" >>> >>> Not in SHACL. >>> >>> ""rdfs:comment is an instance of rdf:Property""" >>> >>> Not in SHACL. >>> >>> There are quite a few more of these. >>> >>> >>> So, SHACL uses RDF terms from RDFS, particularly rdfs:subClassOf, and >>> notions >>>from RDFS, notably instance, but in a way different from what they mean >>>in >>> RDFS (and RDF). The SHACL specification documents need to distinguish >>> their >>> use of these well-known terms from their dominant meaning. >>> >>> >>> >>> peter >>> >>> >>> >>> >>> >>> On 03/07/2016 03:00 PM, Irene Polikoff wrote: >>>> rdfs:subClassOf is defined as follows: >>>> >>>> "The property rdfs:subClassOf is an instance of rdf:Property that is >>>> used >>>> to state that all the instances of one class are instances of another. >>>> A triple of the form: >>>> >>>> C1 rdfs:subClassOf C2 >>>> >>>> states that C1 is an instance of rdfs:Class, C2 is an instance of >>>> rdfs:Class and C1 is a subclass of C2. The rdfs:subClassOf property is >>>> transitive." >>>> >>>> This definition doesn©öt really require for any inferred triples to be >>>> present. >>>> >>>> >>>> Is there anything in SHACL©ös use of rdfs:subClassOf that is >>>> contradictory >>>> to the above definition? >>>> >>>> The only wording close to the definition of the word ©øinstance©÷ that I >>>> found in the specs is: >>>> >>>> "The members of a class are known as instances of the class.©÷ >>>> >>>> >>>> Finally, rdf:type is described in the RDFS spec as >>>> >>>> "The rdf:type property may be used to state that a resource is an >>>> instance >>>> of a class.©÷ >>>> >>>> RDF specs don©öt talk about rdf:type. >>>> >>>> >>>> Is there anything in SHACL©ös use of the word ©øinstance" or of rdf:type >>>> that contradicts this definition? If so, what is it? >>>> >>>> >>>> >>>> Irene Polikoff >>>> >>>> >>>> >>>> >>>> >>>> >>>> On 3/7/16, 5:36 PM, "Holger Knublauch" <holger@topquadrant.com> wrote: >>>> >>>>> On 8/03/2016 1:51, Peter F. Patel-Schneider wrote: >>>>>> On 03/06/2016 08:46 PM, Holger Knublauch wrote: >>>>>>> Thanks for the feedback, Peter. I have tried to address it here: >>>>>> [...] >>>>>> >>>>>>> On 7/03/2016 6:59, Peter F. Patel-Schneider wrote: >>>>>>>> General >>>>>> [...] >>>>>> >>>>>>>> It is not sufficient to say in 1.1 that SHACL has unique versions >>>>>>>>of >>>>>>>> types >>>>>>>> and instances. These notions are in very widespread use. Each >>>>>>>>time >>>>>>>> that >>>>>>>> SHACL deviates from the common, accepted W3C practice it should be >>>>>>>> called >>>>>>>> out, e.g., "SHACL type" or "SHACL instance". >>>>>>> I hope this doesn't need to be repeated each time as this may >>>>>>>render >>>>>>> the >>>>>>> document harder to read. Furthermore, the terms "SHACL type" and >>>>>>> "SHACL >>>>>>> instance" would first need to be formally defined too. >>>>>>> >>>>>>> Instead, I suggest we should define what "type", "instance" and >>>>>>> "subclass" >>>>>>> mean in the remainder of the document. I have put a corresponding >>>>>>> terminology >>>>>>> block at the end of section 1.1 >>>>>> This is inadequate. >>>>>> >>>>>> SHACL uses RDF graphs and RDFS vocabulary. There are already >>>>>> definitions of >>>>>> type and instance and subclass that come from RDF and RDFS. SHACL >>>>>> needs to >>>>>> differentiate its version of type and instance and subclass from >>>>>>these >>>>>> dominant notions and this can only be reliably done by qualifying >>>>>>them >>>>>> each >>>>>> time they appear in formal SHACL documents. >>>>>> >>>>>> Alternatively the SHACL document could use different words for these >>>>>> relationships or could restrict the inputs that it handles so that >>>>>>it >>>>>> uses the >>>>>> dominant versions of type and instance and subclass. >>>>> >>>>> My interpretation of the situation is >>>>> >>>>> - RDF and RDFS define the IRIs of vocabulary terms rdf:type and >>>>> rdfs:subClassOf >>>>> - terms like subclass, type and instance already existed before RDFS >>>>> and >>>>> carry intuitive meaning >>>>> - there is no need to over-complicate a situation that is already >>>>>clear >>>>> to most readers >>>>> >>>>> The only difference between our definitions of the terms is that you >>>>> think that subclassing must always require inferences (domain, ranges >>>>> etc). I believe these concepts are orthogonal. Some rdfs:subClassOf >>>>> triples may be the result of inferencing, but it doesn't matter to >>>>> SHACL >>>>> where they came from. As long as we make this clear in the >>>>>beginning, I >>>>> hope we can keep the document intuitive and not over-complicate it. >>>>> >>>>> Holger >>>>> >>>>> >>>> >>>> >>>> >> >>
Received on Friday, 11 March 2016 20:09:46 UTC