- From: Holger Knublauch <holger@topquadrant.com>
- Date: Mon, 14 Sep 2015 10:43:56 +1000
- To: public-data-shapes-wg@w3.org
On 9/13/2015 16:43, Karen Coyle wrote: > Holger, my basic reaction is that the term "Constraint" on all of them > is awkward, and the constraints should just be: > > Equal, NotEqual, LessThan, LessThanOrEqual > > That's because the question is whether the values are equal, not > whether the constraints are equal. We could do that, and drop the suffix "Constraint" from most of the built-in constraint types. Examples include sh:And, sh:ClosedShape etc, which would then look like ex:MyShape sh:constraint [ a sh:And ; sh:shapes ( ex:Shape1 ex:Shape2 ) ] . I have no strong opinion. The suffix "Constraint" can indeed be deduced from the context of being a value of sh:constraint. Also, in a sense most things in the SHACL namespace are constraints. Yet, having "Constraint" at the end of each name makes it more formally consistent. Note that we also have sh:PropertyConstraint where shortening it to sh:Property would be confusing to people with an RDF background where rdf:Property means something very different. Having "Constraint" at the end also makes it clearer when constraint instances are IRIs, and the sh:constraint context is less clear. > > However, I'm curious how the latter two will be implemented since they > imply an order between the two values. In my current work they look like ex:MyShape a sh:Shape ; sh:constraint [ a sh:LessThanConstraint ; sh:predicate1 ex:property1 ; sh:predicate2 ex:property2 ; ] . i.e. the ordering is defined by being predicate1 or predicate2. > > It also seems that this mechanism assumes that there will always be > two different predicates to compare, and I'm not sure that this is the > case. For example, for the SKOS-related case, where you want to say > that you cannot have two skos:prefLabels with the same value > (including language code), a common instance example is: > > > <skos:prefLabel xml:lang="fr">sabliers</skos:prefLabel> > <skos:prefLabel xml:lang="en">sandglasses</skos:prefLabel> > <skos:prefLabel xml:lang="es">reloj de arena</skos:prefLabel> > <skos:prefLabel xml:lang="nl">zandlopers</skos:prefLabel> > > and more often having many more languages. How will this be handled? The unique language case is different because it's about a single property only. Its syntax could simply be ex:MyShape sh:property [ sh:predicate skos:prefLabel ; sh:uniqueLang true ; ] . We have ISSUE-82 open for this topic. Holger
Received on Monday, 14 September 2015 00:44:29 UTC