- From: Holger Knublauch <holger@topquadrant.com>
- Date: Tue, 10 May 2016 13:18:34 +1000
- To: RDF Data Shapes Working Group <public-data-shapes-wg@w3.org>
- Message-ID: <ee71aa51-8c3c-0436-75ca-cfe299eafa7b@topquadrant.com>
On 10/05/2016 12:30, Tom Johnson wrote:
>
>
> On Mon, May 9, 2016 at 5:29 PM, Holger Knublauch
> <holger@topquadrant.com <mailto:holger@topquadrant.com>> wrote:
>
>
>
> On 10/05/2016 10:11, Tom Johnson wrote:
>> Irene, you say:
>>
>> >"Doing more" doesn't create a problem, but, on the other hand, it
>> is not required.
>>
>> I'm really uncertain about this. Couldn't inferring further class
>> relations (e.g., by using the entailment mechanism included in
>> the spec) cause different results for basically every operation
>> in SHACL?
>
> Can you think of a specific example? sh:entailment would
> potentially produce additional triples. But this is the user's
> choice, and then the user may expect to see additional validation
> results...
>
>
> We seem to be in agreement that inferring additional triples will
> change results. Examples seem obvious; adding a `subClassOf` statement
> whose subject is any class referenced in a shape will do the trick,
> but that's far from the only example.
>
> This seems like a problem to me because I don't see that it's clear
> where triples like `subClassOf` must appear (data graph? shapes graph?
> any graph?) for a resource to count as a shape, or to match various
> constraint components.
To have an effect on sh:scopeClass and sh:class, the subClassOf triples
must be in the data graph.
> Note that adding a `subClassOf` triple to a shapes graph to effect
> validation could be considered a feature; I'm unsure whether that
> feature is supported.
Currently the spec only looks at the data graph.
>
> Additionally, `sh:entailment` seems generally under/un-defined. Can
> inference effect data graphs only? or also shapes graphs? Which
> triples can be considered by a reasoner and how are inferred triples
> used by the SHACL semantics?
I have just clarified this to the sh:entailment section:
https://github.com/w3c/data-shapes/commit/71a9eeaff0317de0cdca6b36500412dabc922f78
I am unsure how many people will actually use sh:entailment, so any
feedback/requirement may help us add missing details. It is very brief
right now, indeed.
Holger
>
> Some of my other concerns about the specifics of `class` and
> `instance` definitions seem to be in the process of being fixed up;
> from a quick reading of the latest editor's draft, this is looking
> promising.
>
> - Tom
>
> Thanks, i
> Holger
>
>
>
>>
>> In lieu of a repeat of previous conversations, I'll just say: For
>> me, as an implementer in waiting, this is a huge problem. On last
>> reading, very little seemed unambiguously defined.
>>
>> - Tom
>>
>> On Mon, May 9, 2016 at 12:14 PM, Irene Polikoff
>> <irene@topquadrant.com <mailto:irene@topquadrant.com>> wrote:
>>
>> Karen,
>>
>> As I understand it, RDFS inferencing is one way to address
>> this. However,
>> RDFS inferencing would do more than what is specified here.
>> "Doing more²
>> doesn¹t create a problem, but, on the other hand, it is not
>> required.
>>
>> Another way to address this is to run a query as follows:
>>
>> SELECT ?resource
>> WHERE {
>>
>> ?class rdfs:subClassOf* example:Class1 .
>> ?resource a ?class .
>>
>> }
>>
>> Running this query would not change any graphs. As an aside, RDFS
>> inferencing is also often done without modifying any graphs.
>> Inferences
>> are calculated on the fly when users/systems query data
>> without any
>> materialization of inferred triples. At least, this is how
>> triple stores
>> that support RDFS inferencing typically work.
>>
>> Does your concern have to do with where the rdfs:subClassOf
>> triples come
>> from - would they exist in the data graph, would they exist
>> in the shapes
>> graph? They could be in either. If no subclass triples are
>> there, then the
>> first triple match simply binds ?class to example:Class1 and
>> the query
>> result is the same as if we were only looking for nodes that
>> are connected
>> to example:Class1 via rdf:type link.
>>
>> It doesn¹t seem to be a role of SHACL to mandate where these
>> triples
>> should be located. If they are available in either of the
>> graphs, a SHACL
>> engine should take them into account. If they are not
>> available, than it
>> doesn¹t take them into account.
>>
>> In our experience, users typically put the subclass triples
>> into the
>> shapes graph. At the same time, they need flexibility to do
>> whatever fits
>> their architecture and processes.
>>
>>
>> Irene Polikoff
>>
>>
>> On 5/9/16, 1:47 PM, "Karen Coyle" <kcoyle@kcoyle.net
>> <mailto:kcoyle@kcoyle.net>> wrote:
>>
>> >Type
>> >The types of a node are its values of rdf:type as well as the
>> >superclasses of these values.
>> >
>> >This conflates two different relationships: the relationship
>> of a
>> >subject to a class (as defined in RDF/RDFS), defining the
>> subject as an
>> >instance of the class; and the sub-/super-class
>> relationships between
>> >classes. I dont' see how this can be achieved without
>> inferencing.
>> >
>> >If we assume some pre-processing of the data graph to
>> include the
>> >superclasses, then type is precisely as it is defined in RDF
>> - there are
>> >just more type statements in the graph.
>> >
>> >As stated, this is quite an expansion of the meaning of type. In
>> >addition, it appears to require modifications to the data
>> graph to
>> >include the super classes of each class (presumably up to
>> and including
>> >rdfs:Resource).
>> >
>> >I think it would be best if SHACL defined the shape and data
>> graphs as
>> >immutable, thus expecting that all operations read but do
>> not modify the
>> >graphs. I thought we had come to that conclusion.
>> >
>> >kc
>>
>>
>>
>>
>>
>>
>> --
>> -Tom Johnson
>
>
>
>
> --
> -Tom Johnson
Received on Tuesday, 10 May 2016 03:25:47 UTC