- From: Karen Coyle <kcoyle@kcoyle.net>
- Date: Thu, 12 May 2016 20:22:40 -0700
- To: public-data-shapes-wg@w3.org
On 5/12/16 5:51 PM, Holger Knublauch wrote: > I agree the editorial arrangement of these subsections is unhelpful, and > I have aligned the nesting with this commit: > > https://github.com/w3c/data-shapes/commit/fd044c834960c791cc1740509224057d03057567 > > > The naming and syntax issue had been raised before as > > https://www.w3.org/2014/data-shapes/track/issues/148 > > I would find it very unfortunate if we switched to another syntax that > hard-codes these few scope types and then requires a completely > different syntax for the general scope mechanism of the extension > mechanism. Such decisions drive up implementation costs significantly, > and also require the reader of SHACL to look at a rather arbitrary > collection of predicates. Yet the current design takes a very different approach between node and class-based scopes, which are "hard coded", and the remaining scopes, which are subclasses of sh:Shape. We have: ex:PersonShape a sh:Shape ; sh:scopeNode ex:Alice . and ex:PropertyScopeExampleShape a sh:Shape ; sh:scope [ a sh:PropertyScope ; sh:predicate ex:knows ; ] . So the inconsistency is already there, to the inconvenience of the user. Also, what would be the object of ex:MyShape > sh:allObjectsScope triples? I'd like to think more about the "all objects" "all subjects" -- I'm having trouble thinking of them as scopes in this same sense; I almost think they'd fit into the constraints functional area. Do we have use cases for those? that would help. Thanks, kc So I would vote for keeping the current > syntax. But I do appreciate you pointing out the editorial inconsistency. > > Thanks > Holger > > > On 13/05/2016 10:16, Karen Coyle wrote: >> Going over the document, it seems to me that this area is problematic: >> >> 2.1.1 Node scopes (sh:scopeNode) >> 2.1.2 Class-based Scopes (sh:scopeClass) >> 2.1.2.1 Implicit Class Scopes >> 2.1.3 General scopes (sh:scope) >> 2.1.3.1 Property scopes (sh:PropertyScope) >> 2.1.3.2 Inverse property scopes (sh:InversePropertyScope) >> 2.1.3.3 All subjects scopes (sh:AllSubjectsScope) >> 2.1.3.4 All objects scopes (sh:AllObjectsScope) >> >> There are a number of problems with this, but the main ones are the >> difference in treatment between the first two scope types (which are >> defined as properties) and the "General scopes" section (which defines >> subclasses of sh:Scope). Not to mention that these general scopes are >> actually quite specific, so called them "general scopes" isn't helpful. >> >> The designation of these as "General Scopes" seems to come from an >> implementation decision: >> >> "SHACL includes a general mechanism to select focus nodes. A shape can >> point to one or more instances of sh:Scope using the sh:scope >> predicate. SHACL includes four subclasses of sh:Scope that define the >> core scope types: sh:PropertyScope, sh:InversePropertyScope, >> sh:AllSubjectsScope and sh:AllObjectsScope. The SHACL language also >> defines a general scoping mechanism based on SPARQL." >> >> I don't think this belongs here. This section should be a description >> of the scopes themselves, not of the general scoping mechanism, which >> should be in part 2 of the document. I also don't think that we should >> require or imply that these scopes are created using the general >> scoping mechanism -- this is the section on the Core and these scopes >> must be core. I don't believe that any other areas in core are tied to >> a specific implementation method. >> It would make more sense as: >> >> 2.1.1 Node scopes (sh:scopeNode) >> 2.1.2 Class-based Scopes (sh:scopeClass) >> 2.1.3 Property scopes (sh:propertyScope) >> 2.1.4 Inverse property scopes (sh:inversePropertyScope) >> 2.1.5 All subjects scopes (sh:allSubjectsScope) >> 2.1.6 All objects scopes (sh:allObjectsScope) >> >> giving the properties for all of the scopes defined in the core. >> >> kc >> >> >> > > > -- Karen Coyle kcoyle@kcoyle.net http://kcoyle.net m: 1-510-435-8234 skype: kcoylenet/+1-510-984-3600
Received on Friday, 13 May 2016 03:23:06 UTC