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

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

From: Karen Coyle <kcoyle@kcoyle.net>
Date: Thu, 12 May 2016 20:22:40 -0700
To: public-data-shapes-wg@w3.org
Message-ID: <57354880.2050307@kcoyle.net>


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

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