Re: shapes-ISSUE-159: [Editorial] Eliminate "scope class" from 2.1.n [SHACL Spec]

Thanks, Dimitris. But once again I think this uses too many terms that 
are unclear, and could be simplified. Let's go through this:

"The property scope for a property p is defined as the set of subjects 
that appear in a triple with p as a predicate."

--It is unclear to me what graphs are being talked about here. A scope 
is defined in the shapes graph but it references the data graph -- in 
other words, the scope criteria must be found in the data graph. Some 
set of triples in the data graph a "in scope." So the "set of subjects" 
is in the data graph, right? What is being called "property scope" here 
is a node in the shapes graph. I would say that the shapes graph defines 
a target node (for lack of a better word) in the data graph based on the 
existence of a named predicate.

"Property scopes can be set by linking a shape to a resource r of type 
sh:PropertyScope with the sh:scope property."

--A scope is defined in the shapes graph as a property scope by explicit 
declaration of rdf:type sh:PropertyScope (as per the example, below). 
"can be" means "maybe", and this is definitive -- it *is* defined in 
this way and only this way. I'm not clear on why this says "linking a 
shape to a resource... with the sh:scope property". That seems 
unnecessary to me. In fact, I have trouble in general with referring to 
"linking" - a term that is not used in the RDF documentation (except 
briefly around de-referencing vocabularies). A shape *has* a scope and a 
scope *is an instance of* sh:PropertyScope.

ex:PropertyScopeExampleShape
 a sh:Shape ;
 sh:scope [
  a sh:PropertyScope ;
  sh:predicate ex:knows ;
 ] .


"The property p is linked from r with the property sh:predicate."

Again, I think this is unnecessary.

So after all of this, I would suggest something along the lines of:

A property scope is a scope in the shapes graph that is of rdf:type 
sh:PropertyScope. The object of sh:predicate defines the triples in the 
data shape that are in scope. Triples in the data graph with a predicate 
matching the object of sh:predicate are in scope.

(That could undoubtedly be refined.)
kc

On 5/3/16 7:22 AM, Dimitris Kontokostas wrote:
> Hi Karen,
>
> I tried to reformulate 2.1.3.1 Property scopes (sh:PropertyScope)
> Can you check if this makes it more clear? if it does I will adjust the
> rest of the sections accordingly
> https://github.com/w3c/data-shapes/commit/d2d70f5caa72f7911567d7692b58741fe7481625
> (the edit is also live)
>
> Dimitris
>
> On Mon, May 2, 2016 at 4:40 PM, Karen Coyle <kcoyle@kcoyle.net
> <mailto:kcoyle@kcoyle.net>> wrote:
>
>
>
>     On 5/1/16 6:49 PM, Holger Knublauch wrote:
>
>         Hi Karen,
>
>         yes these are good points. The use of "scope class" here is
>         confusing,
>         also due to the overlap with the unrelated sh:scopeClass
>         property. The
>         proper term for them would be "scope type", which is also used in
>         section 8.2
>
>         Please review my edits:
>
>         https://github.com/w3c/data-shapes/commit/4f74748b0637eeb5406abfce2797335baad6e33a
>
>
>         On 1/05/2016 10:27, RDF Data Shapes Working Group Issue Tracker
>         wrote:
>
>             shapes-ISSUE-159: [Editorial] Eliminate "scope class" from 2.1.n
>             [SHACL Spec]
>
>             http://www.w3.org/2014/data-shapes/track/issues/159
>
>             Raised by: Karen Coyle
>             On product: SHACL Spec
>
>             I would like to clarify 2.1.3 and its subsections by
>             eliminating the
>             phrase "scope class". The current description in the
>             introduction is:
>
>             2.1.3 (sentence 3)
>             "SHACL includes four built-in scope classes:
>             sh:PropertyScope... etc."
>
>             The pattern for each subsections reads:
>
>             2.1.3.1 Property scopes (sh:propertyScope)
>             "The scope class sh:PropertyScope selects all subjects that
>             have at
>             least one value for a given property sh:predicate."
>
>             I would suggest that we replace sentence 3 in 2.1.3 with:
>             "SHACL includes four subclasses of sh:Scope that define the
>             core scope
>             types:...."
>
>             And the pattern first statement for the subsections would be:
>
>             "The class sh:PropertyScope is the class of those subjects
>             that have
>             at least one value for a given property sh:predicate."
>
>
>         In the latter case I diverged a bit from your suggestion to the
>         pattern
>         "represents the class of scopes of XY". I prefer this because a
>         scope
>         does not represent a class of subjects - the term class is already
>         overloaded with different meaning IMHO. Scopes "represent" sets
>         of nodes
>         in my opinion.
>
>
>     For the latter statement you have:
>
>     "The scope type <code>sh:PropertyScope</code> represents the class
>     of scopes of all subjects that have at least one value for a given
>     property <code>sh:predicate</code>."
>
>     This introduces a new concept "scope type" which isn't defined, and
>     includes "class of scopes" which is a grammatical rewording of
>     "scope class". Also, The sentence is too dense to be readable. Let's
>     first talk about what we want it to mean, then we can develop wording.
>
>     -First is sh:PropertyScope a class? I believe that is the case. To
>     what extent that matters here is another matter.
>
>     -Next, what is the "thing" (in the RDF sense) that is a member of
>     that class? First, "class of scopes" is as vague as our original
>     "scope class". What is the thing, and in which graph (shapes graph
>     or data graph) is that thing to be found?
>
>     -What is meant here by "subject"? I believe that this refers to a
>     node in the data graph. Is that the case?
>
>     -Finally, in editorial mode, "represents" should be "is". If there
>     is a type "sh:PropertyScope" it *is* a class.
>
>     If I understand correctly, the shapes graph can have a subject (aka
>     "node") that is defined as being of rdfs:type sh:PropertyScope. That
>     subject has a predicate "sh:predicate" whose value is the predicate
>     in the data graph that is the target of the validation rules that
>     are linked to this shapes graph node.
>
>     Or, to put this in simple English, the shapes graph states (or
>     "indicates") the predicate in the data graph that is the target of
>     validation.
>
>     kc
>
>
>
>         Are these edits addressing your issue?
>
>         Thanks
>         Holger
>
>
>
>             Reasons: this eliminates the vague phrase "scope class", and
>             also does
>             not ascribe agency to the subclasses (subclasses do not SELECT).
>
>
>
>
>
>
>
>     --
>     Karen Coyle
>     kcoyle@kcoyle.net <mailto:kcoyle@kcoyle.net> http://kcoyle.net
>     m: 1-510-435-8234
>     skype: kcoylenet/+1-510-984-3600 <tel:%2B1-510-984-3600>
>
>
>
>
> --
> Dimitris Kontokostas
> Department of Computer Science, University of Leipzig & DBpedia Association
> Projects: http://dbpedia.org, http://rdfunit.aksw.org,
> http://http://aligned-project.eu <http://aligned-project.eu/>
> Homepage:http://aksw.org/DimitrisKontokostas
> Research Group: AKSW/KILT http://aksw.org/Groups/KILT
>

-- 
Karen Coyle
kcoyle@kcoyle.net http://kcoyle.net
m: 1-510-435-8234
skype: kcoylenet/+1-510-984-3600

Received on Tuesday, 3 May 2016 16:41:16 UTC