- From: Holger Knublauch <holger@topquadrant.com>
- Date: Tue, 10 May 2016 09:25:35 +1000
- To: public-data-shapes-wg@w3.org
On 10/05/2016 5:23, Karen Coyle wrote:
> The problem that I have with this is "apply":
>
> "sh:PropertyConstraint is the class of all property constraints. Property
> constraints apply on the value of a property on the focus node. "
>
> First, the class here doesn't seem to be used within the shapes graph
> - as I've mentioned elsewhere, in many cases the classes don't seem to
> have a function in SHACL, so their purpose needs to be made clear. Why
> have a PropertyConstraint class?
We have classes such as sh:PropertyConstraint because the syntax
instantiates them, via rdf:type:
ex:MyShape
a sh:Shape ; # You may ask why have sh:Shape as a class
sh:property [
a sh:PropertyConstraint ; # This is optional, but still "there"
sh:predicate ex:someThing ;
sh:minCount 1 ;
] .
Having classes is a perfectly normal and well-established practice in
model and metamodel design. Classes allow to associate properties (e.g.
with rdfs:domain), define a group of instances, have inheritance etc.
All these features are used in the metamodel of SHACL.
Holger
>
> Peter asks:
> >> What does it mean to be a class of something? Even the new
> terminology
> >> section does not help, as it just opens up the question of how a class
> >> represents anything and how nodes can exist independent of any RDF
> graph.
>
> I think I am asking the same question.
>
> Next, property constraints are *definitions* that may be *applied* to
> properties in the focus node of the data graph during validation. The
> shapes graph is descriptive, but does not *do* anything. We have two
> sets of triples that are essentially inert; a
> program/application/implementation can use the rules/constraints in
> the shapes graph to test or validation whether the data graph meets
> those rules.
>
> I don't know if this is what Peter means with:
>
> >> However, sh:minCount does not work this way, as it is about the set of
> >> values
> >> of a property.
>
> kc
>
>
> On 5/8/16 3:58 PM, Holger Knublauch wrote:
>> On 7/05/2016 23:32, Peter F. Patel-Schneider wrote:
>>> The wording in 2.3 is still problematic. From that section:
>>>
>>> sh:PropertyConstraint is the class of all property constraints.
>>> Property
>>> constraints apply on the value of a property on the focus node.
>>>
>>> However, sh:minCount does not work this way, as it is about the set of
>>> values
>>> of a property.
>>>
>>> What does it mean to be a class of something? Even the new terminology
>>> section does not help, as it just opens up the question of how a class
>>> represents anything and how nodes can exist independent of any RDF
>>> graph.
>>>
>>> How do default value types interact with the terminology section?
>>>
>>>
>>> What I am seeing here is a bunch of attempts to patch up something
>>> that is a
>>> poor design from the start. It is thus no surprise that each attempt
>>> only
>>> exposes more and more problems and requires more and more machinery.
>>
>> I disagree completely. Anyway, we are currently starting bottom-up, with
>> proper and official definitions of the basic terminology. Once we apply
>> consistent terminology throughout the document, things will become
>> clearer and cleaner.
>>
>> Holger
>>
>>
>>
>
Received on Monday, 9 May 2016 23:26:08 UTC