- From: Karen Coyle <kcoyle@kcoyle.net>
- Date: Sun, 15 May 2016 14:34:30 -0700
- To: "Peter F. Patel-Schneider" <pfpschneider@gmail.com>, public-data-shapes-wg <public-data-shapes-wg@w3.org>
So this confirms how complex recursion can be. It seems to be that regardless of whether a scope of the whole data graph is implicit or explicit, that the result is the same when embedded. The issue remains whether we will have a "whole data graph" scope. kc On 5/15/16 10:37 AM, Peter F. Patel-Schneider wrote: > SHACL has allowed embedded shapes from the beginning. Initially it allowed > the embedding to be recursive, but this is currently not allowed. One > construct that allows recursive shapes is sh:valueShape. See > http://w3c.github.io/data-shapes/shacl/#constraints-shape for constructs that > allow for embedded shapes, and > http://w3c.github.io/data-shapes/shacl/#ValueShapeConstraintComponent for > details on sh:valueShape. > > It is possible to have something like SHACL that does not do embedding at all. > SPIN works this way, I think. Filters can also be used to get some of the > effects of embedding, but I don't think that they are as expressive as embedding. > > However, there is a difference between filters and embedding in the validation > results that would be returned. Note that the validation results for ex:s1 > below are for a person who has a dependent without a SSN, not for the > dependent. A non-embedding filter solution would produce validation results > for the dependent itself. > > peter > > > > On 05/15/2016 07:42 AM, Karen Coyle wrote: >> >> >> On 5/14/16 1:08 PM, Peter F. Patel-Schneider wrote: >>> One problem with having all shapes initiate validation is that embedded shapes >>> would as well. >>> >>> So in >>> >>> ex:s1 rdf:type sh:Shape ; >>> sh:scopeClass ex:Person ; >>> sh:property [ sh:predicate ex:dependent ; >>> sh:valueShape [ a sh:Shape ; >>> sh:property [ sh:predicate ex:SSN ; >>> sh:minCount 1 ] ] ] . >>> >>> the scope of the embedded shape would be all nodes in the data graph, >>> resulting in validation reports for any node that does not have a value for >>> ex:SSN. >> >> I thought that filter shapes would be used if further refinement of the scope >> is needed. This appears to be using a shape for that purpose (and I don't >> recall this being mentioned before). Even with a defined scope it isn't clear >> to me what the scope in the embedded shape would act on as its initial input, >> since the spec says that a shapes graph is compared to a data graph, but the >> result of scoping \= a new data graph. ? Anyway, is embedding shapes allowed? >> If so, what are the rules for how that is implemented? >> >> kc >> >>> >>> If all shapes are to have scopes then there are ways around this problem. One >>> would be that shapes are not embedded in other shapes. Instead there would be >>> a new kind of SHACL thing that is used when the current effect of embedding >>> shapes in shapes is desired. >>> >>> peter >>> >>> > -- Karen Coyle kcoyle@kcoyle.net http://kcoyle.net m: 1-510-435-8234 skype: kcoylenet/+1-510-984-3600
Received on Sunday, 15 May 2016 21:34:55 UTC