on ISSUE-196

"RESOLUTION: Close ISSUE-196, deleting filter shape and instead, adding a
boolean flag sh:disabled which (if true) means that a shape or constraint is
ignored (i.e., any node is considered conforming/valid)."


Ignoring a shape/constraint is different from treating it as if "any node is
considered conforming/valid".

Consider, for example

se:s1 rdf:type sh:Shape ;
  sh:targetClass ex:Person ;
  sh:not se:s2 .

se:s2 rdf:type sh:Shape ;
  sh:nodeType sh:IRI ;
  sh:disabled true .

Ignoring se:s2 would probably result in se:s1 being uniformly valid.
Treating se:s2 as uniformly valid would result in se:s1 being uniformly
invalid.  Which result is desired?



Although it is true that filters can be replaced by OR/NOT, filters served a
useful purpose.  Removing filters makes it harder to write many useful SHACL
constructs.  I thus don't see why filters are being removed.  Removing them
does not appreciably simplify SHACL.

Disabling a shape is not a replacement for filters.  The resolution thus
seems ill-formed.  If filters are to be removed and a new feature is to be
added, there should be two resolutions.


Peter F. Patel-Schneider
Nuance Communications

Received on Tuesday, 22 November 2016 13:05:54 UTC