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

Great, thanks, Dimitris. - kc

On 5/4/16 10:12 AM, Dimitris Kontokostas wrote:
> yes, available for review
>
> On Wed, May 4, 2016 at 5:51 PM, Karen Coyle <kcoyle@kcoyle.net
> <mailto: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>
>         <mailto: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>>
>                  <mailto: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>>>
>                           <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 <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>>>
>                           <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 <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>
>                           <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>>
>                  <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

Received on Wednesday, 4 May 2016 19:15:17 UTC