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

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

From: Dimitris Kontokostas <kontokostas@informatik.uni-leipzig.de>
Date: Wed, 4 May 2016 20:12:13 +0300
Message-ID: <CA+u4+a33qDbVi2m4L0sSnFokHoU4AoyPPkjkRjzTWjX9AkDnUw@mail.gmail.com>
To: Karen Coyle <kcoyle@kcoyle.net>
Cc: "public-data-shapes-wg@w3.org" <public-data-shapes-wg@w3.org>
yes, available for review

On Wed, May 4, 2016 at 5:51 PM, Karen Coyle <kcoyle@kcoyle.net> wrote:

> Ah, yes. That's it! Thanks. So, can we now extend this to the other scopes?
>
> kc
>
> On 5/3/16 9:57 PM, Dimitris Kontokostas wrote:
>
>>
>>
>> On Wed, May 4, 2016 at 4:23 AM, Karen Coyle <kcoyle@kcoyle.net
>> <mailto: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>
>>         <mailto: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>>
>>                  <mailto: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>>
>>                  <mailto: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>
>>                  <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>
>>         <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 17:13:10 UTC

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