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

On Wed, May 4, 2016 at 4:23 AM, Karen Coyle <kcoyle@kcoyle.net> wrote:

> Unless I'm not seeing the right section, this has many of the same
> problems as before. Here's what I see:
>

I think you are looking at the opposite part of the diff, can you read it
from the online version?
http://w3c.github.io/data-shapes/shacl/#PropertyScope


>
> --copy--
>
> "The property scope for a property <code>p</code> is defined as the set of
> subjects that appear in a triple with <code>p</code> as a predicate.
>  -                                                      Property scopes
> can be set by linking a shape to a resource <code>r</code> of type
> <code>sh:PropertyScope</code> with the <code>sh:scope</code> property.
>  -                                                      The property
> <code>p</code> is linked from <code>r</code> with the property
> <code>sh:predicate</code>.
>  +                                                      A property scope
> for property <code>p</code> is defined as the set of subjects in the data
> graph that appear in a triple with <code>p</code> as a predicate."
>
> --/copy--
>
> Comments:
>
> "the set of subjects that appear in a triple..." It is necessary to say
> that this refers to the data graph.
>
> "Property scopes can be set ..." what does it mean to "set" a property
> scope? I don't think they are set, I think they are *defined* in the shapes
> graph. Any 'setting' is done by an application. Graphs don't act.
>
> "... by linking a shape to a resource..." Linking again. I don't think
> that we can talk about linking. And that segment I believe is talking about
> the shapes graph, so these statements have moved back and forth between the
> shapes graph and the data graph.
>
> Let me try to make a few edits to your wording:
>
> The property scope, designated by property <code>p</code>, is defined in
> the shapes graph, and will identify as "in scope' a set of triples in the
> data graph that have <code>p</code> as a predicate.
>  -                                                      Property scopes
> are defined in the shapes graph for a resource <code>r</code> of type
> <code>sh:PropertyScope</code> with the <code>sh:scope</code> property.
>  -                                                      The property
> <code>p</code> is the value of <code>sh:predicate</code>.
>
> (Without the markup... easier to read)
>
> The property scope, designated by property p, is defined in the shapes
> graph, and will identify as "in scope" a set of triples in the data graph
> that have p as a predicate.
> - Property scopes are defined in the shapes graph for a resource r of type
> sh:PropertyScope with the sh:scope property.
> - The property p is the value of sh:predicate.
>
> I hope we're getting closer :-)
>
> kc
>
> On 5/3/16 1:58 PM, Dimitris Kontokostas wrote:
>
>>
>>
>> On Tue, May 3, 2016 at 5:40 PM, Karen Coyle <kcoyle@kcoyle.net
>> <mailto:kcoyle@kcoyle.net>> wrote:
>>
>>     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:
>>
>>
>> Thanks Karen
>>
>>     A property scope is a scope in the shapes graph that is of rdf:type
>>     sh:PropertyScope.
>>
>>
>> I find this sentence a bit unclear unless you read it in combination
>> with the introduction of 2.1.3
>>
>>     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.
>>
>>
>> I made another attempt to incorporate your feedback but with a little
>> more prose, can you check that as well?
>> Otherwise we can switch back to your proposal
>>
>>
>> https://github.com/w3c/data-shapes/commit/d91acf343fd485d99dc69293ddecbd07a771d6c1
>> (also online)
>>
>> Thanks,
>> Dimitris
>>
>>
>>     (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>
>>         <mailto: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>
>>         <mailto: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>
>>         <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 <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
>
>


-- 
Dimitris Kontokostas
Department of Computer Science, University of Leipzig & DBpedia Association
Projects: http://dbpedia.org, http://rdfunit.aksw.org, http://
http://aligned-project.eu
Homepage:http://aksw.org/DimitrisKontokostas
Research Group: AKSW/KILT http://aksw.org/Groups/KILT

Received on Wednesday, 4 May 2016 04:58:25 UTC