W3C home > Mailing lists > Public > public-data-shapes-wg@w3.org > May 2016

Re: type and instance and subclass in SHACL documents

From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
Date: Wed, 11 May 2016 06:30:12 -0700
To: Dimitris Kontokostas <kontokostas@informatik.uni-leipzig.de>, Holger Knublauch <holger@topquadrant.com>
Cc: public-data-shapes-wg <public-data-shapes-wg@w3.org>
Message-ID: <20863ae9-f665-e365-ebd8-b3bda07ec984@gmail.com>
But SHACL does do RDFS inferencing in the data graph.  In particular, the
sh:class depends in RDFS inferencing, namely inference rule rdfs11 from
https://www.w3.org/TR/rdf11-mt/#rdfs-entailment.  At one time sh:class also
depended on inference rules rdfs4a and rdfs4b as well as the RDFS axiom
rdf:first rdfs:domain rdf:List .

So saying that SHACL doesn't do RDFS inferencing in the data graph is incorrect.

Simmilarly SHACL does RDFS inferencing in the shapes graph when it accepts
ex:s1 as a shape in

ex:Shape rdfs:subClassOf sh:Shape .
ex:s1 rdf:type ex:Shape ;
 sh:scopeClass ex:Person ;
 sh:constraint [ rdf:type sh:NodeConstraint ;
                 sh:nodeKind sh:IRI ] .

(This appears to be an acceptable SHACL shape, based on the SHACL specification.)

Of course, SHACL does not do *complete* RDFS inferencing.  In particular,
there is no SHACL shape in

ex:subClassOf rdfs:subPropertyOf rdfs:subClassOf .
ex:Shape ex:subClassOf sh:Shape .
ex:s1 rdf:type ex:Shape ;
 sh:scopeClass ex:Person ;
 sh:constraint [ rdf:type sh:NodeConstraint ;
                 sh:nodeKind sh:IRI ] .


On 05/11/2016 01:58 AM, Dimitris Kontokostas wrote:
> I am reopening this old thread which is more related to the other open
> discussions we have atm.
> Looking at Tom Baker's emails and in particular [1] (the first three
> paragraphs under discussion) I was wondering if this can be a way forward
> in particular say that SHACL uses rdf and rdfs terms but a shacl processors
> takes two immutable graphs (shapes & data) and performs no rdfs inferencing on
> the graphs at all
> any inferencing must be performed as a preprocessing step and is out of scope
> for shacl
> In there we define the term "shacl instance" which is used in only two places
> in the spec, in sh:classScope and sh:class and no-where else
> if people believe that we should disallow optional rdf:type statements (e.g.
> for sh:property) I do not mind if this can unblock the current situation
> Peter, would using the terms instance, class or subClassOf be fine under these
> conditions?
> (I am also in favor of dropping sh:entailment btw)
> Any comments on this?
> Best,
> Dimitris
> [1] https://www.jiscmail.ac.uk/cgi-bin/webadmin?A2=ind1605&L=DC-ARCHITECTURE&P=3148
> On Tue, Mar 22, 2016 at 12:56 AM, Holger Knublauch <holger@topquadrant.com
> <mailto:holger@topquadrant.com>> wrote:
>     This is becoming a long long thread about what is an entirely editorial
>     matter. I don't think it deserves the urgency. I also do not agree that we
>     are misusing these terms at all. I believe to make progress we could
>     a) try to find alternative terms (Peter suggested "SHACL instance" etc,
>     but it could also be "is-a")
>     b) follow the lead of what other, similar W3C specs are doing
>     c) define the terms in the beginning and then use them as <span
>     class="term">instance</span> so that the reader knows that we use that
>     definition. That would be my preferred solution.
>     Looking at the OWL 2 spec [1] the term "instance" is used in many
>     different contexts, without even being defined:
>     - "Each OWL 2 ontology represented as an instance of this conceptual
>     structure"
>     - "if an individual /a:Peter/ is an instance of the class /a:Student/,
>     and /a:Student/ is a subclass of /a:Person/, then from the OWL 2 semantics
>     one can derive that /a:Peter/ is also an instance of /a:Person/."
>     - "Instances of the UML classes"
>     - Class expressions represent sets of individuals by formally specifying
>     conditions on the individuals' properties; individuals satisfying these
>     conditions are said to be /instances/ of the respective class expressions"
>     - ...
>     Not only does OWL use the term "instance" inconsistently but even changes
>     the RDF term by applying additional OWL semantics. RDFS does not have the
>     monopoly on these terms.
>     The problem is not our use of these terms but the misleading section 1.1
>     that needs to be replaced. I liked a previous proposal from Dimitris,
>     along the lines of "SHACL is based on pattern matching like SPARQL.
>     Inferencing is not required but there is no harm if inferencing is
>     activated (be it OWL or RDFS inferencing)". Then define the terms similar
>     to what we currently have at the end of section 1.1. And that's it.
>     Holger
>     https://www.w3.org/TR/owl2-syntax/
>     On 22/03/2016 4:15, Peter F. Patel-Schneider wrote:
>>     I don't think that this helps at all.  In fact, all that it does is further
>>     obfuscate the issue.  The issue is that the wording needs to be clear that in
>>       sh:shape rdf:type my:Shape .
>>       my:subClassOf rdfs:subPropertyOf rdfs:subClassOf.
>>       my:Shape my:subClassOf sh:Shape .
>>     my:Shape is not a SHACL shape, but that in
>>       sh:shape rdf:type my:Shape .
>>       my:Shape rdfs:subClassOf sh:Shape .
>>     it is.
>>     There are many cases where the SHACL notion of subclass, instance, typing,
>>     etc., diverges from the common definition of these notions.
>>     peter
>>     On 03/21/2016 02:05 AM, Dimitris Kontokostas wrote:
>>>     Hi Peter, I did some research on other w3c specs regarding the term instance.
>>>     if we changed occurrences of instance from e.g.
>>>     "shapes are the instances of sh:Shape" to
>>>     "sh:Shape is the class of all shapes" 
>>>     would this be fine from your side?
>>>     Some cases like sh:class and sh:classScope would need extra care of course.
>>>     On Mon, Mar 14, 2016 at 12:24 AM, Peter F. Patel-Schneider
>>>     <pfpschneider@gmail.com <mailto:pfpschneider@gmail.com> <mailto:pfpschneider@gmail.com> <mailto:pfpschneider@gmail.com>> wrote:
>>>         Even in this situation I think that "instance" in the rest of the document
>>>         needs to be qualified.  Some readers of the document will know about RDFS
>>>         instance and will need to be continually reminded that the meaning that they
>>>         know for "instance" is not being used in this document.
>>>         peter
> -- 
> Dimitris Kontokostas
> Department of Computer Science, University of Leipzig & DBpedia Association
> Projects: http://dbpedia.org, http://rdfunit.aksw.org,
> http://aligned-project.eu <http://aligned-project.eu/>
> Homepage:http://aksw.org/DimitrisKontokostas
> Research Group: AKSW/KILT http://aksw.org/Groups/KILT
Received on Wednesday, 11 May 2016 13:30:45 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:30:33 UTC