Re: sh:maxCount 0

OK, I checked with some of my peeps, and they all understand what 
maxCount 0 means, so that's cool. What they don't like, however, is that 
the only way to declare that maxCount is unlimited is to leave it out of 
your shape. (And that you CAN declare minCount = minCount default, so 
this is asymmetrical.) There are concerns about readability, and most 
would rather make all min/max explicit, especially in shared code. There 
were also questions about being able to override a previously declared 
maxCount, but these aren't folks who are familiar with SHACL so I can't 
say if that situation is likely to occur. There was also some concern 
about having both a NOT constraint and the possibility of declaring 
maxCount=0 to mean something similar but possibly not identical.

I suppose we could decide that these "friendliness" issues be resolved 
in the high-level language, or whatever it is that we're calling the 
ShEx addition to SHACL.

kc

On 10/2/15 7:32 AM, Peter F. Patel-Schneider wrote:
> On 10/02/2015 07:13 AM, Karen Coyle wrote:
>>
>>
>> On 10/2/15 6:00 AM, Peter F. Patel-Schneider wrote:
>>>     sh:maxCount 0
>>>     sh:maxCount -1
>>> according to the definition(s) in 3.1.5.  Why single out 0 as needing special
>>> treatment as it is in no way special?
>>
>>
>> Because min 0 means that there is no minimum, but max 0 does not mean that
>> there is no maximum. Now, that may not be the way it works out mathematically,
>> but that's a logical way to say it in words. And I have no idea what should be
>> expected with max -n, but if it doesn't lead to a meaningful operation within
>> the context of SHACL then a user might expect it to be flagged as an error.
>>
>> kc
>
> sh:minCount 0 does mean that there is a minimum.  It is just that this minimum
> is trivially met.
>
> sh:minCount and sh:maxCount are two different properties that may be used with
> property constraints.  They both constrain the number of values of the
> property but are otherwise unrelated.  There is thus no reason that
> sh:minCount 0 and sh:maxCount 0 have to behave in any analogous fashion,
> particularly as sh:minCount is more permissive with smaller arguments in
> contrast with sh:maxCount which is more constraining with smaller arguments.
>
>
> peter
>
>
>
>

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

Received on Friday, 2 October 2015 19:13:12 UTC