Re: shapes-ISSUE-112 (misuse of RDFS properties): SHACL uses RDFS properties in ways that violate their intended RDFS meaning [SHACL Spec]

I want to note here that I am not (and I don't think anyone else is) 
arguing that we should not have UI labels for properties. My only 
concern is that rdfs:label is being used in a way incompatible with its 
definition. It would make sense to me to define sh:label and any other 
SHACL-specific properties to fulfill UI functions that are desired. We 
should think through the functions needed for forms and UI first, and 
then discuss how they best fit into SHACL. The current implementation of 
this functionality seems a bit haphazard, and is also greatly 
under-specified in our use cases and requirements.

This would allow us to use rdfs:label and rdfs:comment in SHACL graphs 
in a way that is compatible with their use in RDFS. However, we should 
make sure that this is sufficient for the desired documentation 
functionality.

kc

On 11/10/15 8:02 AM, Karen Coyle wrote:
> On 11/9/15 7:02 PM, Holger Knublauch wrote:
>> On 11/10/2015 12:54, Karen Coyle wrote:
>>> Holger, in the case of a more complex example, such as Ex. 11:
>>>
>>> ex:StandAlonePropertyConstraintExampleShape
>>>     a sh:Shape ;
>>>     sh:property ex:StandAloneConstraint .
>>>
>>> ex:StandAloneConstraint
>>>     a sh:PropertyConstraint ;
>>>     sh:predicate ex:someProperty ;
>>>     sh:defaultValue ex:SomeInstance ;
>>>     sh:minCount 1 ;
>>>     sh:valueClass ex:SomeClass .
>>>
>>> What does it mean to include a label in ...
>>>
>>> ex:StandAlonePropertyConstraintExampleShape
>>>     a sh:Shape ;
>>>     sh:property ex:StandAloneConstraint ;
>>>         rdfs:label "something something " .
>>
>> That label is about the Shape.
>>
>>>
>>> ...and if you have ...
>>>
>>> ex:StandAloneConstraint
>>>   a sh:PropertyConstraint ;
>>>   sh:predicate ex:someProperty ;
>>>   sh:defaultValue ex:SomeInstance ;
>>>   sh:minCount 1 ;
>>>   sh:valueClass ex:SomeClass ;
>>>   rdfs:label "label label label" .
>>
>> That label is about the constraint, which is about the use of a property
>> in the context of a shape.
>
> So isn't this the same as your example below?
>
>  >>> ex:MyShape
>  >>>      a sh:Shape ;
>  >>>      sh:property [
>  >>>          sh:predicate ex:firstName ;
>  >>>          sh:maxCount 1 ;
>  >>>          rdfs:label "first name" ;
>  >>>      ] .
>
> and therefore both labels are about the shape, not the property? If so,
> then the text in the draft is misleading, because it says:
>
> "Property constraints may have an rdfs:label to provide a human-readable
> label for the property    in the scope where it appears."
>
> Because the label is on the constraint, and therefore labels the
> constraint regardless of whether it is a property constraint or some
> other type of constraint. I just don't see a situation where "label for
> the property" is valid.
>
> kc
>
>>
>> Holger
>>
>>>
>>> ... does it label ex:someProperty? ex:SomeClass? or
>>> ex:StandAloneConstraint? Note that we require the ability to add human
>>> readable labels and comments to a shapes in general. rdfs:label and
>>> rdfs:comment were cited as the solutions to requirement R4, which
>>> requires human-readable documentation that is associated with SHACL
>>> instances.[1]
>>>
>>> kc
>>> [1]
>>> https://docs.google.com/document/d/1whx2DeJtng-WZXo2DAHc_GZL7ElXNS_B8fBxarGA-0o
>>>
>>>
>>>
>>>
>>> On 11/9/15 2:49 PM, Holger Knublauch wrote:
>>>> Karen,
>>>>
>>>> if we look at
>>>>
>>>> ex:MyShape
>>>>      a sh:Shape ;
>>>>      sh:property [
>>>>          sh:predicate ex:firstName ;
>>>>          sh:maxCount 1 ;
>>>>          rdfs:label "first name" ;
>>>>      ] .
>>>>
>>>> The maxCount does not generally apply to the property ex:firstName, but
>>>> to the *use of ex:firstName in the context of ex:MyShape*. That's the
>>>> same situation with the label. SHACL doesn't talk about the (global)
>>>> label of ex:firstName, but only about the local label. The blank
>>>> node is
>>>> about the use of the property in the shape, so there is nothing wrong
>>>> with reusing rdfs:label here.
>>>>
>>>> Holger
>>>>
>>>>
>>>> On 11/10/15 12:18 AM, Karen Coyle wrote:
>>>>> Well, yes, I think that Peter has pointed out an issue -- that
>>>>> rdfs:label in this:
>>>>>
>>>>> >>>>> ex:InlinePropertyConstraintExampleShape
>>>>> >>>>>      a sh:Shape ;
>>>>> >>>>>      sh:property [
>>>>> >>>>>          sh:predicate ex:someProperty ;
>>>>> >>>>>          sh:minCount 1 ;
>>>>> >>>>>          sh:valueClass ex:SomeClass ;
>>>>> >>>>>          rdfs:label "some property" ;
>>>>> >>>>>          rdfs:comment "This is used for some purpose" ;
>>>>> >>>>>      ] .
>>>>>
>>>>> refers to the blank node, not the ex:someProperty. So it isn't clear
>>>>> to me how any system that adheres to rdfs would display that as the
>>>>> label for the property. This is particularly puzzling because there
>>>>> has been much talk of combining SHACL and instance data, which quite
>>>>> possible makes use of rdfs:label as defined in rdfs.
>>>>>
>>>>> rdfs:label is a label for the subject of the triple.
>>>>>
>>>>> rdfs:comment is shown in Example 10 as:
>>>>>
>>>>> "rdfs:comment "Description of the role of ex:someProperty (in the
>>>>> context of the constraint)" ;"
>>>>>
>>>>> It looks to me that rdfs:comment could be used as a comment on the
>>>>> property constraint represented by the blank node, but again there is
>>>>> nothing in rdfs that connects it to the value ex:someProperty. So in a
>>>>> case where SHACL and instance data are in the same graph, how is it
>>>>> possible that rdfs:label and rdfs:comment will have such different
>>>>> meanings? RDF aside, that's something that I would assume would be
>>>>> discouraged in any programming language.
>>>>>
>>>>> kc
>>>>>
>>>>>
>>>>>
>>>>> On 11/8/15 4:40 PM, Holger Knublauch wrote:
>>>>>> I had seen similar comments in the Twittersphere recently. I
>>>>>> believe the
>>>>>> wording of section 1.1 is unnecessarily dramatic. I had meanwhile
>>>>>> tried
>>>>>> to soften it up a bit, but it could need more work (I welcome
>>>>>> suggestions).
>>>>>>
>>>>>>      http://w3c.github.io/data-shapes/shacl/#shacl-rdfs
>>>>>>
>>>>>> The main rationale was to allow SHACL to be used without requiring
>>>>>> full
>>>>>> RDFS inferencing. But I believe there is no harm in running SHACL
>>>>>> over a
>>>>>> system with RDFS activated. Does anyone see conditions where applying
>>>>>> the RDFS semantics would cause measurable problems (leaving aside the
>>>>>> usual philosophical questions about the distinction between a
>>>>>> representation and the real-world entity that the rdfs:label
>>>>>> discussion
>>>>>> seems to refer to)?
>>>>>>
>>>>>> Holger
>>>>>>
>>>>>>
>>>>>> On 11/9/2015 10:14, Karen Coyle wrote:
>>>>>>> Well, these seems like a non-starter to me, and I don't understand
>>>>>>> why
>>>>>>> there isn't more concern. There is no way to prevent applications
>>>>>>> from
>>>>>>> applying RDFS semantics to the RDFS properties in SHACL. The
>>>>>>> statement
>>>>>>> in the introduction to SHACL that says ...
>>>>>>>
>>>>>>> "SHACL uses RDF and RDFS vocabulary (in particular rdf:type,
>>>>>>> rdfs:Class, rdfs:subClassOf, rdfs:label, rdfs:comment, rdf:Property,
>>>>>>> rdf:List, rdf:langLiteral, and rdfs:Resource) and notions (notably
>>>>>>> classes, instances, and subclasses). However, SHACL does not use
>>>>>>> this
>>>>>>> vocabulary or these notions in the way that they are defined in RDF
>>>>>>> and RDFS [rdf11-mt]." has always struck me as a huge red flag.
>>>>>>>
>>>>>>> kc
>>>>>>>
>>>>>>> On 11/6/15 8:24 PM, Peter F. Patel-Schneider wrote:
>>>>>>>> It would be ex:someProperty, not the [...] that is the value of
>>>>>>>> sh:property.
>>>>>>>>
>>>>>>>> In RDFS, rdfs:label and rdfs:comment are supposed to be about the
>>>>>>>> [...].  The
>>>>>>>> current non-conforming SHACL use is for ex:Property in the
>>>>>>>> context of
>>>>>>>> ex:InLinePropertyConstraintExampleShape.
>>>>>>>>
>>>>>>>> Note that in RDF there is no problem in having properties also be
>>>>>>>> nodes in the
>>>>>>>> graph. In RDFS properties are generally nodes in the graph so that
>>>>>>>> they can be
>>>>>>>> given domains and ranges, etc.
>>>>>>>>
>>>>>>>> peter
>>>>>>>>
>>>>>>>> On 11/06/2015 11:39 AM, Karen Coyle wrote:
>>>>>>>>> Does "for the property in the scope where it appears" refer to
>>>>>>>>> sh:property or
>>>>>>>>> ex:someProperty in the example? It cannot be ex:someProperty
>>>>>>>>> because
>>>>>>>>> that
>>>>>>>>> isn't a rdf:Resource in the graph -- it's never a subject of a
>>>>>>>>> triple. All of
>>>>>>>>> the predicates in the sh:property [...] graph have sh:property as
>>>>>>>>> their subject.
>>>>>>>>>
>>>>>>>>> Now I'm fully confused about the whole sh:property graph and
>>>>>>>>> what the
>>>>>>>>> predicates in the graph mean. I should probably take a walk and
>>>>>>>>> think about it
>>>>>>>>> later.
>>>>>>>>>
>>>>>>>>> kc
>>>>>>>>>
>>>>>>>>> On 11/6/15 9:40 AM, Peter F. Patel-Schneider wrote:
>>>>>>>>>> rdfs:label and rdfs:comment are supposed to be about the resource
>>>>>>>>>> itself,
>>>>>>>>>> which for SHACL is a constraint or shape.  However, the
>>>>>>>>>> wording in
>>>>>>>>>> SHACL says
>>>>>>>>>> to make them about the property, which is different from the
>>>>>>>>>> constraint or
>>>>>>>>>> shape.
>>>>>>>>>>
>>>>>>>>>> For example, the SHACL example is
>>>>>>>>>>
>>>>>>>>>> ex:InlinePropertyConstraintExampleShape
>>>>>>>>>>      a sh:Shape ;
>>>>>>>>>>      sh:property [
>>>>>>>>>>          sh:predicate ex:someProperty ;
>>>>>>>>>>          sh:minCount 1 ;
>>>>>>>>>>          sh:valueClass ex:SomeClass ;
>>>>>>>>>>          rdfs:label "some property" ;
>>>>>>>>>>          rdfs:comment "This is used for some purpose" ;
>>>>>>>>>>      ] .
>>>>>>>>>>
>>>>>>>>>> where as it really should be
>>>>>>>>>>
>>>>>>>>>> ex:InlinePropertyConstraintExampleShape
>>>>>>>>>>      a sh:Shape ;
>>>>>>>>>>      sh:property [
>>>>>>>>>>          sh:predicate ex:someProperty ;
>>>>>>>>>>          sh:minCount 1 ;
>>>>>>>>>>          sh:valueClass ex:SomeClass ;
>>>>>>>>>>          rdfs:label "ex:someProperty constraint in
>>>>>>>>>> ex:InlinePropertyConstraintExampleShape" ;
>>>>>>>>>>          rdfs:comment "This constrains values of
>>>>>>>>>> ex:someProperty to
>>>>>>>>>> belong to
>>>>>>>>>> ex:someClass" ;
>>>>>>>>>>      ] .
>>>>>>>>>>
>>>>>>>>>> peter
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 11/06/2015 07:40 AM, Karen Coyle wrote:
>>>>>>>>>>> Peter, this is a bit overly subtle for me. Can you say what
>>>>>>>>>>> exactly you see as
>>>>>>>>>>> violating RDFS? I'll tell you what I see and you can tell me how
>>>>>>>>>>> I'm wrong ;-)
>>>>>>>>>>> - when a property is itself a resource (X rdfs:label Y) then
>>>>>>>>>>> this
>>>>>>>>>>> has the RDFS
>>>>>>>>>>> meaning. What I see is that the resource that is named with
>>>>>>>>>>> rdfs:label in the
>>>>>>>>>>> case of SHACL is the blank node.
>>>>>>>>>>>
>>>>>>>>>>> Now, what's the real problem? I assume it's not just wording.
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> kc
>>>>>>>>>>>
>>>>>>>>>>> On 11/5/15 3:57 PM, Holger Knublauch wrote:
>>>>>>>>>>>> I had long thought about using new properties such as
>>>>>>>>>>>> sh:label and
>>>>>>>>>>>> sh:definition instead. I decided to prefer rdfs:label and
>>>>>>>>>>>> rdfs:comment,
>>>>>>>>>>>> because these properties are most likely already used as
>>>>>>>>>>>> annotations on
>>>>>>>>>>>> the shapes, classes and other resources in SHACL files. People
>>>>>>>>>>>> will get
>>>>>>>>>>>> confused which property to use in which context, adding just
>>>>>>>>>>>> another
>>>>>>>>>>>> unnecessary complication in the learning curve.
>>>>>>>>>>>>
>>>>>>>>>>>> Since a property constraint resource describes the use of a
>>>>>>>>>>>> property in
>>>>>>>>>>>> the context of a shape scope, I see no reason why using
>>>>>>>>>>>> rdfs:label would
>>>>>>>>>>>> violate the official spec.
>>>>>>>>>>>>
>>>>>>>>>>>> PROPOSAL: Close ISSUE-112 - no change required.
>>>>>>>>>>>>
>>>>>>>>>>>> Holger
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On 11/6/2015 7:55, RDF Data Shapes Working Group Issue Tracker
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>> shapes-ISSUE-112 (misuse of RDFS properties): SHACL uses RDFS
>>>>>>>>>>>>> properties in ways that violate their intended RDFS meaning
>>>>>>>>>>>>> [SHACL Spec]
>>>>>>>>>>>>>
>>>>>>>>>>>>> http://www.w3.org/2014/data-shapes/track/issues/112
>>>>>>>>>>>>>
>>>>>>>>>>>>> Raised by: Peter Patel-Schneider
>>>>>>>>>>>>> On product: SHACL Spec
>>>>>>>>>>>>>
>>>>>>>>>>>>> >From http://w3c.github.io/data-shapes/shacl/:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Property constraints may have an rdfs:label to provide a
>>>>>>>>>>>>> human-readable label for the property in the scope where it
>>>>>>>>>>>>> appears.
>>>>>>>>>>>>>
>>>>>>>>>>>>> >From http://www.w3.org/TR/rdf-schema/
>>>>>>>>>>>>>
>>>>>>>>>>>>> rdfs:label is an instance of rdf:Property that may be used to
>>>>>>>>>>>>> provide
>>>>>>>>>>>>> a human-readable version of a resource's name.  A triple of
>>>>>>>>>>>>> the
>>>>>>>>>>>>> form:
>>>>>>>>>>>>> R rdfs:label L . states that L is a human readable label
>>>>>>>>>>>>> for R.
>>>>>>>>>>>>>
>>>>>>>>>>>>> The SHACL use does not abide by the RDFS meaning. SHACL should
>>>>>>>>>>>>> not
>>>>>>>>>>>>> use RDFS properties in ways that violate their RDFS meaning.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Similarly for rdfs:comment.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> PROPOSAL:  Remove the non-conforming wording for and uses of
>>>>>>>>>>>>> rdfs:label and rdfs:commment.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>>
>

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

Received on Wednesday, 11 November 2015 17:31:16 UTC