ISSUE-139: Compromise

In the recent meeting, we had a straw poll on ISSUE-139 (Universal 
Applicability) and since I was the person with the strongest opposition 
to the proposed changes Arnaud asked me to talk to Dimitris to change my 
mind. I have meanwhile exchanged emails with him and I still believe 
this change is a major step in the wrong direction. However, in the 
interest of making progress, I would change my -1 to a -0.9 vote for the 
following approach:

- We delete sh:context and related things such as the big table in 
section 4.
- This means that all constraint components can be used for both node 
and property constraints

- For the extension mechanism, we keep the currently specified approach 
(sh:validator etc)
- Extension authors do not have to implement validators for both cases.
    * If a validator is missing for the given context, no violations 
will be produced.
    * A validator may be a blanket instance that always produces 
violations or a failure
       (we can define a reusable instance of sh:SPARQLSelectValidator 
with a URI, e.g.
       ex:MyComponent sh:nodeValidator sh:ViolatedForEachFocusNode)

I believe this approach would give the proponents of universal 
applicability all they had asked for, while reducing the cost for 
extension authors. To indicate where a constraint component can be used, 
I will promote using sh:scopeClass and hope this establishes itself as a 
best practice. (I will simply add these triples to the copy of the SHACL 
vocab used by TopBraid).

Unless I hear otherwise, this would be my PROPOSAL for the next meeting.

Holger

Received on Monday, 18 July 2016 01:03:24 UTC