Re: shapes-ISSUE-79 (Validation functions): Cleaner separation between value checking and property iteration [SHACL Spec]

On 8/13/2015 15:46, Simon Steyskal wrote:
> Hi!
>
> At a first glance I definitly see the benefits of your proposed 
> approach. However, I've two questions:
>
> 1) You've implemented those sh:ValidationFunctions as ASK queries 
> instead of SELECTs -> don't we lose important information for creating 
> violation messages (e.g. this (?this AS ?subject) ?predicate ?object 
> ?datatype).

The message is defined by the surrounding template, using sh:message. I 
cannot think of other important information that could not be generalized.

> 2) Is there a particular reason why 
> "sh:AbstractArgumentMaxCountConstraint" isn't using such a validation 
> function? (Probably because you just wanted to exemplify the approach 
> on a handful of examples?)

sh:minCount, sh:maxCount and their equivalents for Arguments work 
differently. The sh:PropertyValueConstraintTemplates all iterate over 
all values and then check each value one by one. Min/max count however 
just look at the total number of values. Also, sh:hasValue is different. 
However, sh:datatype, sh:allowedValues, sh:valueClass, 
sh:directValueType, sh:nodeKind (as well as the misc XSD inspired 
facets) all follow the pattern that I am trying to generalize. So 
anything that uses

WHERE {
     ?this ?predicate ?value .
     doSomeThingWith(?value)
}

fits into the scheme.

Thanks,
Holger

Received on Thursday, 13 August 2015 05:55:25 UTC