Re: Simplification of scopes section (see also ISSUE-148)

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:
> The naming and syntax issue had been raised before as
> 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:

 a sh:Shape ;
 sh:scopeNode ex:Alice .


 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.


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)
>> Implicit Class Scopes
>> 2.1.3 General scopes (sh:scope)
>> Property scopes (sh:PropertyScope)
>> Inverse property scopes (sh:InversePropertyScope)
>> All subjects scopes (sh:AllSubjectsScope)
>> 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
m: 1-510-435-8234
skype: kcoylenet/+1-510-984-3600

Received on Friday, 13 May 2016 03:23:06 UTC