Re: shapes-ISSUE-209 (What is a shape?): What is a shape [SHACL Spec]

RDF 1.1 Semantics, section 9, valid triples:

rdf:_2 rdfs:domain rdfs:Resource .
rdf:_2 rdfs:range rdfs:Resource .

kc

On 12/5/16 4:15 PM, Holger Knublauch wrote:
> RDF 1.1 Concepts and Abstract Syntax, section 1.2:
>
> Any IRI <https://www.w3.org/TR/rdf11-concepts/#dfn-iri> or literal
> <https://www.w3.org/TR/rdf11-concepts/#dfn-literal> denotes something in
> the world (the "universe of discourse"). These things are called resources.
>
> This states that literals *can* refer to resources but blank nodes can
> not. Shapes can be represented by blank nodes in SHACL.
>
> What practical value does the term "resource" add? We are defining a
> syntax (vocabulary) which is parsed by a machine. Of course humans are
> free to link these syntactic structures to some real-world entity (such
> as the concept of a shape) in our heads. Different people will have
> different mental pictures of what this entity could be for them, and
> that's a good topic for tutorials, but is IMHO not necessary to
> formalize the algorithms for the machines.
>
> Holger
>
>
> On 6/12/2016 1:38, Karen Coyle wrote:
>> I like the wording that it is a resource (not just a node or an IRI),
>> and that it is referred to *by means of an IRI*. That is much clearer
>> and corresponds to how it is used in the spec.
>>
>> kc
>>
>> On 12/2/16 12:29 AM, Jan Voskuil wrote:
>>> I agree. To be even more precise: a shape is a resource and can be
>>> referred to by means of an IRI or a blank node. Literals do not refer
>>> to resources. -j
>>>
>>> -----Original Message-----
>>> From: Irene Polikoff [mailto:irene@topquadrant.com]
>>> Sent: 02 December 2016 03:25
>>> To: kcoyle@kcoyle.net
>>> Cc: public-data-shapes-wg@w3.org
>>> Subject: Re: shapes-ISSUE-209 (What is a shape?): What is a shape
>>> [SHACL Spec]
>>>
>>> Shapes can be subjects and objects of triples. A shape can't be a
>>> literal.
>>>
>>>  If it helps, the spec could say that a shape is either an IRI or an
>>> anonymous node.
>>>
>>> Sent from my iPhone
>>>
>>>> On Dec 1, 2016, at 2:27 PM, Karen Coyle <kcoyle@kcoyle.net> wrote:
>>>>
>>>> Uh, yes. But the question is about how shape is defined in SHACL,
>>>> not what node means in RDF. When the document says "a shape is a
>>>> node" is it defining a shape as either a subject, predicate or
>>>> object? and does that also mean that a shape can be a literal?
>>>> Because all of those are possible with the RDF definition of node.
>>>>
>>>> kc
>>>>
>>>>> On 12/1/16 10:20 AM, Irene Polikoff wrote:
>>>>> A node can participate in multiple triples and play a different
>>>>> role in different triples, yet it is the same node and it can be
>>>>> talked about simply as a node in a graph. Talking about a node as a
>>>>> subject, object or a predicate makes sense only in a context of a
>>>>> specific triple.
>>>>>
>>>>>> On Dec 1, 2016, at 12:33 PM, Karen Coyle <kcoyle@kcoyle.net> wrote:
>>>>>>
>>>>>> One more thing - a node can be a subject, predicate or object.
>>>>>> Would a node in predicate or object position define a shape? Can a
>>>>>> shape be a literal?
>>>>>>
>>>>>> Peter pointed this out in an earlier email, which I am still
>>>>>> searching for.
>>>>>>
>>>>>> kc
>>>>>>
>>>>>>> On 11/28/16 9:04 AM, Karen Coyle wrote:
>>>>>>>
>>>>>>>
>>>>>>>> On 11/27/16 4:28 PM, Holger Knublauch wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>> On 28/11/2016 8:33, Karen Coyle wrote:
>>>>>>>>> There is a simple solution to this, and it follows in part the
>>>>>>>>> example of the Annotations Working Group. Their spec defines a :
>>>>>>>>>
>>>>>>>>> ***
>>>>>>>>> An Annotation is a rooted, directed graph that represents a
>>>>>>>>> relationship between resources.
>>>>>>>>> There are two primary types of resource that participate in this
>>>>>>>>> relationship, Bodies and Targets.
>>>>>>>>> Annotations have 0 or more Bodies.
>>>>>>>>> Annotations have 1 or more Targets.
>>>>>>>>> ****
>>>>>>>>>
>>>>>>>>> All that needs to be done is to define "shape" as a graph whose
>>>>>>>>> root is a subject is of type sh:Shape, and has 0 or more targets
>>>>>>>>> and 1 or more constraints.
>>>>>>>>
>>>>>>>> This would not be correct. A shape doesn't need one or more
>>>>>>>> constraints.
>>>>>>>> sh:Shape is a subclass of sh:Constraint (which makes every shape
>>>>>>>> automatically also a constraint), but this doesn't "do" anything
>>>>>>>> by itself. Also the zero or more doesn't add anything. (Shapes may
>>>>>>>> also have labels etc).
>>>>>>>
>>>>>>> So drop the zero or more, but the spec itself says that shapes have
>>>>>>> constraints:
>>>>>>>
>>>>>>> "property constraints of the shape" (3.1.1)
>>>>>>>
>>>>>>> Anyway, I'll take this to DCMI leadership. At this point, I can
>>>>>>> only say that our needs are not being met.
>>>>>>>
>>>>>>> kc
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> As always, the more complexity we are adding here, someone will
>>>>>>>> find problems with it. And pointing out issues is trivial compared
>>>>>>>> to getting everything right. That's why I would leave out anything
>>>>>>>> that isn't formally needed. We can leave such explanatory prose to
>>>>>>>> other documents, and if these other documents prefer to understand
>>>>>>>> a shape as a collection of specific triples then fine.
>>>>>>>>
>>>>>>>> Holger
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Really, that's all that is needed.
>>>>>>>>>
>>>>>>>>> kc
>>>>>>>>> p.s. I like the idea of the shape having a "root" node. I'm not
>>>>>>>>> sure if something needs to be said about targets, which are also
>>>>>>>>> of sh:Shape - is it necessary to say that they are not what is
>>>>>>>>> meant when the spec talks about "shapes"?
>>>>>>>>>
>>>>>>>>>> On 11/27/16 7:16 AM, Karen Coyle wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> On 11/26/16 3:08 PM, Holger Knublauch wrote:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> On 25/11/2016 5:41, Irene Polikoff wrote:
>>>>>>>>>>>> I took the initial question to be "when is a resource (or a
>>>>>>>>>>>> node) a shape?". And not to be "what are all the triples that
>>>>>>>>>>>> describe a shape?".
>>>>>>>>>>>>
>>>>>>>>>>>> To me, these are two completely different questions.
>>>>>>>>>>>> Colloquially speaking, shape may be said to be a set of
>>>>>>>>>>>> triples. But writing a spec requires us to be precise. And
>>>>>>>>>>>> precisely speaking, shape is not a set of triples, it is a
>>>>>>>>>>>> node. Information about it is described/specified/defined
>>>>>>>>>>>> using a set of triples.
>>>>>>>>>>>>
>>>>>>>>>>>> Thus, I would recommend closing the first question as resolved.
>>>>>>>>>>>>
>>>>>>>>>>>> As for the second question, why does it need to be answered? A
>>>>>>>>>>>> more meaningful question may be "when is a shape graph
>>>>>>>>>>>> sufficiently complete to be able to process it and what should
>>>>>>>>>>>> a SHACL processor do when a shapes graph doesn't have all the
>>>>>>>>>>>> necessary information"?
>>>>>>>>>>>>
>>>>>>>>>>>> For example, let's say a shapes graph contains only the
>>>>>>>>>>>> following
>>>>>>>>>>>> triples:
>>>>>>>>>>>>
>>>>>>>>>>>> ex:PersonShape
>>>>>>>>>>>>      a sh:Shape ;
>>>>>>>>>>>>      sh:targetClass ex:Person ;
>>>>>>>>>>>>      sh:property [
>>>>>>>>>>>>          sh:predicate ex:worksFor;
>>>>>>>>>>>>          sh:shape ex:OrganizationShape; ].
>>>>>>>>>>>>
>>>>>>>>>>>> This, to me, would be insufficient to do anything with since
>>>>>>>>>>>> to validate data against it, we need to have a description of
>>>>>>>>>>>> ex:OrganizationShape. What should happen in such cases?
>>>>>>>>>>>
>>>>>>>>>>> This case is covered by the spec. It's simply a shape without
>>>>>>>>>>> constraints, i.e. every node conforms to it. Yet it's
>>>>>>>>>>> syntactically valid because the expected type of sh:shape is
>>>>>>>>>>> sh:Shape.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Other examples mentioned by Karen:
>>>>>>>>>>>>
>>>>>>>>>>>> ex:ExampleShapeWithPropertyConstraints
>>>>>>>>>>>>      a sh:Shape ;
>>>>>>>>>>>>      sh:property [
>>>>>>>>>>>>              sh:predicate ex:email ;
>>>>>>>>>>>>              sh:name "e-mail" ;
>>>>>>>>>>>>              sh:description "We need at least one email
>>>>>>>>>>>> value" ;
>>>>>>>>>>>>              sh:minCount 1 ;
>>>>>>>>>>>>      ] ;
>>>>>>>>>>>>      sh:property [
>>>>>>>>>>>>              sh:path (ex:knows ex:email) ;
>>>>>>>>>>>>              sh:name "Friend's e-mail" ;
>>>>>>>>>>>>              sh:description "We need at least one email for
>>>>>>>>>>>> everyone you know" ;
>>>>>>>>>>>>              sh:minCount 1 ;
>>>>>>>>>>>>      ] .
>>>>>>>>>>>>
>>>>>>>>>>>> There is only one shape -
>>>>>>>>>>>> ex:ExampleShapeWithPropertyConstraints. If this is all the
>>>>>>>>>>>> content of a shapes graph, it is fine. All the information
>>>>>>>>>>>> needed for validation is here.
>>>>>>>>>>>>
>>>>>>>>>>>> ex:MyShape
>>>>>>>>>>>>      a sh:Shape ;
>>>>>>>>>>>>      sh:targetNode ex:MyInstance ;
>>>>>>>>>>>>      sh:property [
>>>>>>>>>>>>              # Violations of sh:minCount and sh:datatype are
>>>>>>>>>>>> produced as warnings
>>>>>>>>>>>>              sh:predicate ex:myProperty ;
>>>>>>>>>>>>              sh:minCount 1 ;
>>>>>>>>>>>>              sh:datatype xsd:string ;
>>>>>>>>>>>>              sh:severity sh:Warning ;
>>>>>>>>>>>>      ] ;
>>>>>>>>>>>>
>>>>>>>>>>>> One shape - ex:MyShape. It refers to a target node. Target
>>>>>>>>>>>> node is not a shape, it identifies a node in a data graph that
>>>>>>>>>>>> is to be validated against a shape, so I am not sure what is
>>>>>>>>>>>> the question.
>>>>>>>>>>>>
>>>>>>>>>>>> ex:PersonShape
>>>>>>>>>>>>      a sh:Shape ;
>>>>>>>>>>>>      sh:targetClass ex:Person ;
>>>>>>>>>>>>      sh:property ex:PersonShape-name .
>>>>>>>>>>>>
>>>>>>>>>>>> ex:PersonShape-name
>>>>>>>>>>>>      a sh:PropertyConstraint ;
>>>>>>>>>>>>      sh:predicate ex:name ;
>>>>>>>>>>>>      sh:minCount 1 ;
>>>>>>>>>>>>      sh:deactivated true .
>>>>>>>>>>>>
>>>>>>>>>>>> There is only one shape - ex:PersonShape. All the information
>>>>>>>>>>>> necessary for validation is present and, in fact, there would
>>>>>>>>>>>> be automatic conformance since the only constraint is
>>>>>>>>>>>> disabled. However, if a shapes graph only contained the
>>>>>>>>>>>> following, validation would not be possible (I think):
>>>>>>>>>>>>
>>>>>>>>>>>> ex:PersonShape
>>>>>>>>>>>>      a sh:Shape ;
>>>>>>>>>>>>      sh:targetClass ex:Person ;
>>>>>>>>>>>>      sh:property ex:PersonShape-name .
>>>>>>>>>>>>
>>>>>>>>>>>> So, again, what should happen in these cases?
>>>>>>>>>>>>
>>>>>>>>>>>> All the examples above are for a single shape. In some of the
>>>>>>>>>>>> examples information about it is complete enough to validate
>>>>>>>>>>>> data against the shape. In others, it is not. We should also
>>>>>>>>>>>> consider the fact that a shapes graph can and often will
>>>>>>>>>>>> contain multiple shapes and some shapes may have sufficient
>>>>>>>>>>>> description to validate against and others may not. Also, some
>>>>>>>>>>>> shapes may have some information that can be checked and some
>>>>>>>>>>>> that can't be. For example, given the shape graph below we
>>>>>>>>>>>> would know enough to check conformance of values of ex:email,
>>>>>>>>>>>> but not know enough to check values of ex:worksFor.
>>>>>>>>>>>>
>>>>>>>>>>>> ex:PersonShape
>>>>>>>>>>>>      a sh:Shape ;
>>>>>>>>>>>>      sh:targetClass ex:Person ;
>>>>>>>>>>>>      sh:property [
>>>>>>>>>>>>          sh:predicate ex:worksFor;
>>>>>>>>>>>>          sh:shape ex:OrganizationShape; ];
>>>>>>>>>>>>
>>>>>>>>>>>>      sh:property [
>>>>>>>>>>>>              sh:path (ex:knows ex:email) ;
>>>>>>>>>>>>              sh:name "Friend's e-mail" ;
>>>>>>>>>>>>              sh:description "We need at least one email for
>>>>>>>>>>>> everyone you know" ;
>>>>>>>>>>>>              sh:minCount 1 ;
>>>>>>>>>>>>      ] .
>>>>>>>>>>>>
>>>>>>>>>>>> So, one proposal may be as follows:
>>>>>>>>>>>>
>>>>>>>>>>>> If a shapes graph contains any shapes that are insufficiently
>>>>>>>>>>>> specified, processing doesn't happen and SHACL engine returns
>>>>>>>>>>>> an error.
>>>>>>>>>>>
>>>>>>>>>>> The spec mentions several conditions under which a shapes graph
>>>>>>>>>>> is invalid. These are typically written as "a shape must ...".
>>>>>>>>>>>
>>>>>>>>>>> On the more general topic of node vs triples, I find this
>>>>>>>>>>> rather philosophical. The spec is pretty clear about what
>>>>>>>>>>> happens in each context. Which triples "belong" to a shape is
>>>>>>>>>>> following from that, but not valuable on its own right.
>>>>>>>>>>
>>>>>>>>>> The spec is not "pretty clear" and this is not "philosophical" -
>>>>>>>>>> it has to be clear *to all* what is being described in the spec.
>>>>>>>>>> Insisting that the spec is ok when others are saying it is not
>>>>>>>>>> is one of the things that is making the progress very slow. It
>>>>>>>>>> is incredibly generous of people to be putting time into trying
>>>>>>>>>> to make it actually clear, but, personally, I'm running out of
>>>>>>>>>> steam. However, note that DCMI will not approve a highly flawed
>>>>>>>>>> spec.
>>>>>>>>>>
>>>>>>>>>> kc
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Holger
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Another proposal may be:
>>>>>>>>>>>>
>>>>>>>>>>>> Data is processed against shapes that are sufficiently
>>>>>>>>>>>> specified.
>>>>>>>>>>>> Warning is issued regarding shapes that are insufficiently
>>>>>>>>>>>> specified and, thus, ignored.
>>>>>>>>>>>>
>>>>>>>>>>>> Yet another proposal may be:
>>>>>>>>>>>>
>>>>>>>>>>>> Data is processed against shapes that are sufficiently
>>>>>>>>>>>> specified.
>>>>>>>>>>>> Warning is issued regarding shapes that are insufficiently
>>>>>>>>>>>> specified.
>>>>>>>>>>>> SHACL processor will perform as much validation as it able to
>>>>>>>>>>>> against insufficiently specified shapes.
>>>>>>>>>>>>
>>>>>>>>>>>> Of course, we would need to define what it means to be
>>>>>>>>>>>> "insufficiently specified".
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Thu, Nov 24, 2016 at 12:29 PM, Karen Coyle
>>>>>>>>>>>> <kcoyle@kcoyle.net <mailto:kcoyle@kcoyle.net>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>  Actually, I don't think this solves the problem that came up
>>>>>>>>>>>> at  the meeting. As we discussed in the meeting, the conflict
>>>>>>>>>>>> is  between a node, which is a single IRI, and a graph, which
>>>>>>>>>>>> is a set  of triples. Throughout the document, the term
>>>>>>>>>>>> "shape" is used to  refer to more than a single IRI.
>>>>>>>>>>>>
>>>>>>>>>>>>  The statement below could be used for how a shape is
>>>>>>>>>>>> identified  (although I think we should discuss that further)
>>>>>>>>>>>> but does not  define how one finds the finite boundaries of
>>>>>>>>>>>> the set of triples  that is used as an instrument to define
>>>>>>>>>>>> the validation rules that  will be applied to a data graph.
>>>>>>>>>>>>
>>>>>>>>>>>>  Something that was said in the meeting made me think that
>>>>>>>>>>>> defining  where a shape ends is as important as defining where
>>>>>>>>>>>> it begins.
>>>>>>>>>>>>  (Note that in this case I am speaking of a shape as a set of
>>>>>>>>>>>> triples, not a node - we know where a node ends, because it is
>>>>>>>>>>>> a  single point.)
>>>>>>>>>>>>
>>>>>>>>>>>>  In an example like this (taken from the spec), I assume that
>>>>>>>>>>>> this  represents a single shape:
>>>>>>>>>>>>
>>>>>>>>>>>>  ex:ExampleShapeWithPropertyConstraints
>>>>>>>>>>>>          a sh:Shape ;
>>>>>>>>>>>>          sh:property [
>>>>>>>>>>>>                  sh:predicate ex:email ;
>>>>>>>>>>>>                  sh:name "e-mail" ;
>>>>>>>>>>>>                  sh:description "We need at least one email
>>>>>>>>>>>> value" ;
>>>>>>>>>>>>                  sh:minCount 1 ;
>>>>>>>>>>>>          ] ;
>>>>>>>>>>>>          sh:property [
>>>>>>>>>>>>                  sh:path (ex:knows ex:email) ;
>>>>>>>>>>>>                  sh:name "Friend's e-mail" ;
>>>>>>>>>>>>                  sh:description "We need at least one email
>>>>>>>>>>>> for  everyone you know" ;
>>>>>>>>>>>>                  sh:minCount 1 ;
>>>>>>>>>>>>          ] .
>>>>>>>>>>>>
>>>>>>>>>>>>  Where there is a target, which is also a shape, is this one
>>>>>>>>>>>> or two  shapes? And if two, what are the boundaries of each?
>>>>>>>>>>>>
>>>>>>>>>>>>  ex:MyShape
>>>>>>>>>>>>          a sh:Shape ;
>>>>>>>>>>>>          sh:targetNode ex:MyInstance ;
>>>>>>>>>>>>          sh:property [
>>>>>>>>>>>>                  # Violations of sh:minCount and sh:datatype
>>>>>>>>>>>> are  produced as warnings
>>>>>>>>>>>>                  sh:predicate ex:myProperty ;
>>>>>>>>>>>>                  sh:minCount 1 ;
>>>>>>>>>>>>                  sh:datatype xsd:string ;
>>>>>>>>>>>>                  sh:severity sh:Warning ;
>>>>>>>>>>>>          ] ;
>>>>>>>>>>>>
>>>>>>>>>>>>  The following is an example of the case that I believe was
>>>>>>>>>>>> intended at the meeting. The question is whether this is one
>>>>>>>>>>>> shape  or two? And if it is two, how is that distinguished
>>>>>>>>>>>> from the shape  immediately above that has a target?
>>>>>>>>>>>>
>>>>>>>>>>>>  ex:PersonShape
>>>>>>>>>>>>          a sh:Shape ;
>>>>>>>>>>>>          sh:targetClass ex:Person ;
>>>>>>>>>>>>          sh:property ex:PersonShape-name .
>>>>>>>>>>>>
>>>>>>>>>>>>  ex:PersonShape-name
>>>>>>>>>>>>          a sh:PropertyConstraint ;
>>>>>>>>>>>>          sh:predicate ex:name ;
>>>>>>>>>>>>          sh:minCount 1 ;
>>>>>>>>>>>>          sh:deactivated true .
>>>>>>>>>>>>
>>>>>>>>>>>>  If this seems petty, remember that throughout, the document
>>>>>>>>>>>> refers  to a thing called "shape" and all of the understanding
>>>>>>>>>>>> of the  document depends on the reader understanding exactly
>>>>>>>>>>>> what that means.
>>>>>>>>>>>>
>>>>>>>>>>>>  kc
>>>>>>>>>>>>
>>>>>>>>>>>>  On 11/23/16 7:34 PM, Holger Knublauch wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>      Done.
>>>>>>>>>>>>
>>>>>>>>>>>>      Thanks,
>>>>>>>>>>>>      Holger
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>      On 24/11/2016 13:32, Irene Polikoff wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>          I suggest changing
>>>>>>>>>>>>
>>>>>>>>>>>>          <A shape can be a node
>>>>>>>>>>>>
>>>>>>>>>>>> <https://mail.google.com/mail/u/0/#m_1017120090268237992_dfn-n
>>>>>>>>>>>> ode
>>>>>>>>>>>>
>>>>>>>>>>>> <https://mail.google.com/mail/u/0/#m_1017120090268237992_dfn-node>>
>>>>>>>>>>>>
>>>>>>>>>>>>          in
>>>>>>>>>>>>          a shapes graph
>>>>>>>>>>>>
>>>>>>>>>>>> <https://mail.google.com/mail/u/0/#m_1017120090268237992_dfn-s
>>>>>>>>>>>> hapes-graph
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> <https://mail.google.com/mail/u/0/#m_1017120090268237992_dfn-shapes-graph>>.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>          A node is a shape if and only if it fulfills either
>>>>>>>>>>>> of the
>>>>>>>>>>>>          following
>>>>>>>>>>>>          conditions in the shapes graph:>
>>>>>>>>>>>>
>>>>>>>>>>>>          to
>>>>>>>>>>>>
>>>>>>>>>>>>          <A shape is a node
>>>>>>>>>>>>
>>>>>>>>>>>> <https://mail.google.com/mail/u/0/#m_1017120090268237992_dfn-n
>>>>>>>>>>>> ode
>>>>>>>>>>>>
>>>>>>>>>>>> <https://mail.google.com/mail/u/0/#m_1017120090268237992_dfn-node>>
>>>>>>>>>>>>
>>>>>>>>>>>>          in
>>>>>>>>>>>>          a shapes graph
>>>>>>>>>>>>
>>>>>>>>>>>> <https://mail.google.com/mail/u/0/#m_1017120090268237992_dfn-s
>>>>>>>>>>>> hapes-graph
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> <https://mail.google.com/mail/u/0/#m_1017120090268237992_dfn-s
>>>>>>>>>>>> hapes-graph>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>          that
>>>>>>>>>>>>          fulfills either of the following conditions:
>>>>>>>>>>>>
>>>>>>>>>>>>          On Wed, Nov 23, 2016 at 7:48 PM, Holger Knublauch
>>>>>>>>>>>>          <holger@topquadrant.com
>>>>>>>>>>>> <mailto:holger@topquadrant.com>
>>>>>>>>>>>>          <mailto:holger@topquadrant.com
>>>>>>>>>>>>          <mailto:holger@topquadrant.com>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>              The current definition in 2.1 reads
>>>>>>>>>>>>
>>>>>>>>>>>>              A shape can be a node
>>>>>>>>>>>> <#m_1017120090268237992_dfn-node> in
>>>>>>>>>>>>              a shapes graph
>>>>>>>>>>>>          <#m_1017120090268237992_dfn-shapes-graph> that is
>>>>>>>>>>>>              a SHACL instance
>>>>>>>>>>>> <#m_1017120090268237992_dfn-shacl-instance> of
>>>>>>>>>>>>          |sh:Shape|; or it
>>>>>>>>>>>>              can be a node so that the expected type
>>>>>>>>>>>> <#m_1017120090268237992_dfn-expected-type> of the node
>>>>>>>>>>>>              is |sh:Shape|, or a node that has a value
>>>>>>>>>>>>              <#m_1017120090268237992_dfn-values> for a target
>>>>>>>>>>>>              <#m_1017120090268237992_dfn-target> property such
>>>>>>>>>>>>              as |sh:targetClass| in the shapes graph
>>>>>>>>>>>> <#m_1017120090268237992_dfn-shapes-graph>.
>>>>>>>>>>>>
>>>>>>>>>>>>              These are all (3) ways of how shapes are
>>>>>>>>>>>> identified. I
>>>>>>>>>>>>          have just
>>>>>>>>>>>>              added some precision based on the newly
>>>>>>>>>>>> introduced term
>>>>>>>>>>>>              shape-expecting constraint parameters, and
>>>>>>>>>>>> explicitly
>>>>>>>>>>>>          enumerated
>>>>>>>>>>>>              the target properties. The definition now reads
>>>>>>>>>>>>
>>>>>>>>>>>>              A shape can be a node
>>>>>>>>>>>> <#m_1017120090268237992_dfn-node> in
>>>>>>>>>>>>              a shapes graph
>>>>>>>>>>>>          <#m_1017120090268237992_dfn-shapes-graph>. A node
>>>>>>>>>>>>              is a shape if and only if it fulfills either of
>>>>>>>>>>>> the
>>>>>>>>>>>>          following
>>>>>>>>>>>>              conditions in the shapes graph:
>>>>>>>>>>>>
>>>>>>>>>>>>                * the node is a SHACL instance
>>>>>>>>>>>> <#m_1017120090268237992_dfn-shacl-instance> of
>>>>>>>>>>>>          |sh:Shape|
>>>>>>>>>>>>                * the node has the expected type
>>>>>>>>>>>> <#m_1017120090268237992_dfn-expected-type>
>>>>>>>>>>>>          |sh:Shape|, which
>>>>>>>>>>>>                  is the case if it is used as a value of
>>>>>>>>>>>>          shape-expecting
>>>>>>>>>>>>                  constraint parameters
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> <#m_1017120090268237992_dfn-shape-expecting-constraint-parameters>
>>>>>>>>>>>>
>>>>>>>>>>>>          such
>>>>>>>>>>>>                  as |sh:shape| (in the case of the list-valued
>>>>>>>>>>>>                  parameters |sh:and|, |sh:or| and
>>>>>>>>>>>> |sh:partition| it
>>>>>>>>>>>>          must be a
>>>>>>>>>>>>                  member of the corresponding lists)
>>>>>>>>>>>>                * the node has a value
>>>>>>>>>>>>          <#m_1017120090268237992_dfn-values> for
>>>>>>>>>>>>                  any of the target
>>>>>>>>>>>> <#m_1017120090268237992_dfn-target> properties
>>>>>>>>>>>>          |sh:targetClass|, |sh:targetNode|,
>>>>>>>>>>>> |sh:targetObjectsOf|,
>>>>>>>>>>>>          |sh:targetSubjectsOf| and |sh:target|
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>              Change:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> https://github.com/w3c/data-shapes/commit/bec7b6852529acc80954
>>>>>>>>>>>> dbc38cf4e435861238a2
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> <https://github.com/w3c/data-shapes/commit/bec7b6852529acc8095
>>>>>>>>>>>> 4dbc38cf4e435861238a2>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> <https://github.com/w3c/data-shapes/commit/bec7b6852529acc8095
>>>>>>>>>>>> 4dbc38cf4e435861238a2
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> <https://github.com/w3c/data-shapes/commit/bec7b6852529acc8095
>>>>>>>>>>>> 4dbc38cf4e435861238a2>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>              I'd appreciate if WG members could double check
>>>>>>>>>>>> this
>>>>>>>>>>>>          definition.
>>>>>>>>>>>>              Meanwhile I have turned the change above into a
>>>>>>>>>>>>          PROPOSAL for a
>>>>>>>>>>>>              future meeting:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> https://www.w3.org/2014/data-shapes/wiki/Proposals#ISSUE-209:_
>>>>>>>>>>>> What_is_a_shape
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> <https://www.w3.org/2014/data-shapes/wiki/Proposals#ISSUE-209:
>>>>>>>>>>>> _What_is_a_shape>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> <https://www.w3.org/2014/data-shapes/wiki/Proposals#ISSUE-209:
>>>>>>>>>>>> _What_is_a_shape
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> <https://www.w3.org/2014/data-shapes/wiki/Proposals#ISSUE-209:
>>>>>>>>>>>> _What_is_a_shape>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>              Thanks,
>>>>>>>>>>>>              Holger
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>              On 24/11/2016 9:49, Irene Polikoff wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>                  I believe the question is "How do I know
>>>>>>>>>>>> that a
>>>>>>>>>>>>              node is a
>>>>>>>>>>>>                  shape?". The spec says that it is
>>>>>>>>>>>> "typically" a
>>>>>>>>>>>>              SHACL instance of
>>>>>>>>>>>>                  sh:Shape. This is one way, but not the
>>>>>>>>>>>> definitive
>>>>>>>>>>>>              way (because of
>>>>>>>>>>>>                  "typically") to determine that something is a
>>>>>>>>>>>> shape.
>>>>>>>>>>>>
>>>>>>>>>>>>                  What are other ways? E.g., any subject of a
>>>>>>>>>>>> triple
>>>>>>>>>>>>              with one of
>>>>>>>>>>>>                  the SHACL target or constraint predicates is
>>>>>>>>>>>> a shape.
>>>>>>>>>>>>
>>>>>>>>>>>>                  On Sun, Nov 20, 2016 at 3:58 PM, RDF Data
>>>>>>>>>>>> Shapes
>>>>>>>>>>>>              Working Group
>>>>>>>>>>>>                  Issue Tracker <sysbot+tracker@w3.org
>>>>>>>>>>>>              <mailto:sysbot%2Btracker@w3.org>
>>>>>>>>>>>>                  <mailto:sysbot+tracker@w3.org
>>>>>>>>>>>> <mailto:sysbot%2Btracker@w3.org>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>                      shapes-ISSUE-209 (What is a shape?): What
>>>>>>>>>>>> is a
>>>>>>>>>>>>              shape [SHACL Spec]
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> http://www.w3.org/2014/data-shapes/track/issues/209
>>>>>>>>>>>> <http://www.w3.org/2014/data-shapes/track/issues/209>
>>>>>>>>>>>>
>>>>>>>>>>>> <http://www.w3.org/2014/data-shapes/track/issues/209
>>>>>>>>>>>> <http://www.w3.org/2014/data-shapes/track/issues/209>>
>>>>>>>>>>>>
>>>>>>>>>>>>                      Raised by: Karen Coyle
>>>>>>>>>>>>                      On product: SHACL Spec
>>>>>>>>>>>>
>>>>>>>>>>>>                      Peter's mail:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> https://lists.w3.org/Archives/Public/public-rdf-shapes/2016Oct
>>>>>>>>>>>> /0029.html
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> <https://lists.w3.org/Archives/Public/public-rdf-shapes/2016Oc
>>>>>>>>>>>> t/0029.html>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> <https://lists.w3.org/Archives/Public/public-rdf-shapes/2016Oc
>>>>>>>>>>>> t/0029.html
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> <https://lists.w3.org/Archives/Public/public-rdf-shapes/2016Oc
>>>>>>>>>>>> t/0029.html>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                      "Just what are shapes?
>>>>>>>>>>>>
>>>>>>>>>>>>                      The terminology section says:
>>>>>>>>>>>>
>>>>>>>>>>>>                      "Shape
>>>>>>>>>>>>                      A shape is a node in a shapes graph
>>>>>>>>>>>> that is
>>>>>>>>>>>>              typically a SHACL
>>>>>>>>>>>>                      instance of
>>>>>>>>>>>>                      sh:Shape. A shape provides a collection of
>>>>>>>>>>>>              targets, filters,
>>>>>>>>>>>>                      constraints and
>>>>>>>>>>>>                      parameters of constraint components that
>>>>>>>>>>>>              specify how a data
>>>>>>>>>>>>                      graph is
>>>>>>>>>>>>                      validated against the shape. Shapes can
>>>>>>>>>>>> also
>>>>>>>>>>>>              provide
>>>>>>>>>>>>                      non-validating
>>>>>>>>>>>>                      information, such as labels and comments."
>>>>>>>>>>>>
>>>>>>>>>>>>                      Section 2 says:
>>>>>>>>>>>>
>>>>>>>>>>>>                      "Shapes define constraints that a set of
>>>>>>>>>>>> focus
>>>>>>>>>>>>              nodes can be
>>>>>>>>>>>>                      validated
>>>>>>>>>>>>                      against."
>>>>>>>>>>>>
>>>>>>>>>>>>                      This doesn't, however, provide guidance in
>>>>>>>>>>>>              determining what
>>>>>>>>>>>>                      the shapes in a
>>>>>>>>>>>>                      shapes graph are."
>>>>>>>>>>>>
>>>>>>>>>>>>                      (more in the email)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>  --
>>>>>>>>>>>>  Karen Coyle
>>>>>>>>>>>>  kcoyle@kcoyle.net <mailto:kcoyle@kcoyle.net>
>>>>>>>>>>>> http://kcoyle.net
>>>>>>>>>>>>  m: 1-510-435-8234 <tel:1-510-435-8234>
>>>>>>>>>>>>  skype: kcoylenet/+1-510-984-3600 <tel:%2B1-510-984-3600>
>>>>>>
>>>>>> --
>>>>>> Karen Coyle
>>>>>> kcoyle@kcoyle.net http://kcoyle.net
>>>>>> m: 1-510-435-8234
>>>>>> skype: kcoylenet/+1-510-984-3600
>>>>
>>>> --
>>>> Karen Coyle
>>>> kcoyle@kcoyle.net http://kcoyle.net
>>>> m: 1-510-435-8234
>>>> skype: kcoylenet/+1-510-984-3600
>>>
>>>
>>
>

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

Received on Wednesday, 7 December 2016 03:09:58 UTC