Re: sh:maxCount 0

On 10/02/2015 05:36 AM, Karen Coyle wrote:
> If it is expected that sh:maxCount 0 will be implemented in SHACL
> implementations, the SHACL document must say explicitly that sh:maxCount 0
> means "none". The place to do that is in 3.1.5 where the defaults are discussed.

Right now, SHACL implementations are supposed to implement all of
  sh:maxCount 53845786327198
  sh:maxCount 7
  sh:maxCount 1
  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?

I do agree that 3.1.5 could be made much better.  I think that Arthur signed
on to do this.

> This also means that there are two ways to to say "NOT" in SHACL -
> sh:NotConstraint and sh:maxCount 0, but I don't know if they are equivalent.
> That should be clarified.

A maximum count of 0 for a property is not NOT, except in the very limited
sense of not having any values for the property.  This makes it very different
from sh:NotConstraint.

The inclusion of negation in SHACL means that there are many constraints that
can be said in different ways.  I think that the way of making this clear is
to ensure that the definitions of the various constructs are precise and
clear.  (Note, however, that the reporting of violations would look different
for some different ways of constructing a particular constraint.)


A SHACL primer could explore the various interesting points of the SHACL
constructs, but I don't think that the SHACL definitional document should.


peter

Received on Friday, 2 October 2015 13:00:54 UTC