- From: Karen Coyle <kcoyle@kcoyle.net>
- Date: Tue, 10 Nov 2015 08:02:25 -0800
- To: public-data-shapes-wg@w3.org
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 Tuesday, 10 November 2015 16:02:58 UTC