Re: SHACL syntax and metamodel complexity

On 03/03/2016 01:42 PM, Arnaud Le Hors wrote:
> "Peter F. Patel-Schneider" <pfpschneider@gmail.com> wrote on 03/03/2016
> 12:14:55 PM:
> 
>> From: "Peter F. Patel-Schneider" <pfpschneider@gmail.com>
>> To: kcoyle@kcoyle.net, public-data-shapes-wg@w3.org
>> Date: 03/03/2016 12:16 PM
>> Subject: Re: SHACL syntax and metamodel complexity
>>
>> On 03/01/2016 09:20 PM, Karen Coyle wrote:
>> >
>> >
>> > On 3/1/16 10:11 AM, Peter F. Patel-Schneider wrote:
>> >> in a simple extension of the current SHACL RDF syntax this would be
>> >>
>> >>       [ a sh:propertyConstraint ;
>> >>         sh:predicate ex:p ;
>> >>         sh:minCount 1 ;
>> >>         sh:class ex:c ;
>> >>         sh:maxCount 5 ;
>> >>         sh:class ex:d ;
>> >>         sh:minCount 3 ]
>> >
>> > Doesn't this require that there be order among the triples?
>> Otherwise, how do
>> > the two minCount's apply to the correct sh:Class triple?
>> >
>> > kc
>>
>> No.  This is not a qualified cardinality.  What this says is that
>> there is at least one value for ex:p, that all values for ex:p belong to ex:c,
>> that there are at most 5 values for ex:p, that all values for ex:p belong to
>> ex:d, and that there are at least three values for ex:p.
> 
> Ok, but the two minCounts are confusing. The first one (sh:minCount 1) is
> essentially overridden by the second (sh:minCount 3), right? So, why did you
> choose to have them both? What's the significance?
> --
> Arnaud  Le Hors - Senior Technical Staff Member, Open Web Technologies - IBM
> Software Group

Right now, the SHACL syntax does not allow multiple minCounts, or multiple
sh:class, or multiple anything.  Multiple minCounts are not useful.  Multiple
sh:class values are, however, and I view this as something that is going to be
a pain point.

Why are multiple sh:class values not allowed?  Well, multiples are hard to
deal with if they are like the current design of qualified cardinality, where
there are two property values that need to be combined.  So to permit the
useful multiples one has to find a way to get around the combinations.

The combinations are also problematic from a syntax viewpoint, as it may be
hard to see the combination.  Thus my proposal is to refactor these syntactic
constructs.  The result allows for repetition where useful and permits it even
when it is not (very) useful.  Will users ever have multiple minCounts (on
purpose)?  Probably not, but forbidding them doesn't seem like a good idea.

peter

Received on Thursday, 3 March 2016 22:46:27 UTC