Re: Human-readable error messages in an R2RML validator

What we further need to investigate is the different types of messages a
SHACL engine would produce. I see the following possible types of messages:

1) violations of the high level vocabulary facets. e.g. minCount
In this case we can either let each SHACL engine produce the messages they
want i.e. property {x} has less than {y} occurrences in shape {z}
or we can define a message vocabulary where each engine must|should pick up
the template messages to use.
The advantage in the latter approach is that all engines will generate the
same messages to the end user and by accepting outside contributions the
vocabulary will be easily translated to many languages (as Jose also noted).
I don't think there is any reason for an end-user to redefine these
messages since their interpretation is very well defined.

2) messages for a sh:property / sh:Shape
I am not sure what type of messages these should produce if we provide
messages for the facets, maybe some high level comments only?
Also by wanting to display this level of messages we would need to somehow
aggregate errors at the property / shape level and we'd miss the error
details facets provide.


3) messages for sparql queries
if the query does not specify the message in the sparql body how would it
differ from the shape message or a message from another sparql query in the
same shape? If we want this functionality we'd need to put SPARQL queries
in intermediate/blank nodes

4) messages for property templates.
If we define a message vocabulary we can re-use it for defining these types
of messages

Finally, I also don't see any reason to formalize an intermediate node
structure for the creation of messages.
Since a SHACL engine can return sh:root, sh:predicate & sh:value as
results, we don't need anything else for an agent to post-process the
results.
messages are for human consumption only and each engine can create it's
internal intermediate structure for the message generation

Best,
Dimitris


On Mon, Mar 23, 2015 at 3:36 AM, Holger Knublauch <holger@topquadrant.com>
wrote:

> On 3/20/2015 22:01, Richard Cyganiak wrote:
>
>>
>> An advantage of using templates for the validation messages, rather than
>> producing a string message through a SPARQL expression, is that we can
>> format the nodes nicely or make things interactive. For example, the
>> {object} placeholder in the R2RML validator will intelligently pretty-print
>> the node in Turtle style as a prefixed name, full URI, literal, or blank
>> node, using the prefix mapping of the file under validation. And in a
>> hypothetical graphical environment, URI nodes in the rendered message could
>> be rendered using its rdfs:label, and still be made clickable.
>>
>
> Absolutely. Indeed we use SPIN label templates for the same purpose in
> various TopBraid user interfaces.
>
>  Not having thought about it too much, my intuition is that instead of
>> conditional insertion, I’d prefer the option of having multiple template
>> strings on a single constraint. Only those where all placeholders have
>> bound values in the validation data structure would produce a message.
>>
>
> This sounds like a good idea!
>
> I will add some TODO item to the sh:message to make sure we revisit this
> topic once there is time for such details.
>
> Thanks,
> Holger
>
>
>


-- 
Dimitris Kontokostas
Department of Computer Science, University of Leipzig
Research Group: http://aksw.org
Homepage:http://aksw.org/DimitrisKontokostas

Received on Monday, 23 March 2015 07:46:52 UTC