- From: Holger Knublauch <holger@topquadrant.com>
- Date: Fri, 07 Nov 2014 09:15:35 +1000
- To: public-data-shapes-wg@w3.org
On 11/7/2014 0:20, Eric Prud'hommeaux wrote:
> Try the exercise of validating this data:
> _:IssueA :submittedBy _:Bob ; :assignedTo _:Bob .
> against this schema:
> OWL:
> Class: x:NewIssueShape
> SubClassOf:
> :submittedBy some x:SubmitterShape,
> :assignedTo some x:AssigneeShape
> ShExC:
> x:NewIssueShape {
> :submittedBy @x:SubmitterShape,
> :assignedTo @x:AssigneeShape
> }
>
> In OWL, Resource Shapes, ShExC (DC Application Profiles, …), the
> validator is testing _:Bob against two shapes, one for submitters
> and one for assignees. In SPIN, one would have to first infer that
> _:Bob a x:SubmitterShape, x:AssigneeShape .
> via e.g. some OWL RL inference in order to trigger the associated
> SPIN constraints.
As stated elsewhere, there is no need to introduce extra types here and
the constraint can be attached to :Issue directly.
I believe if people really insist on it, SPIN could be extended with
syntactic sugar: a specific template that applies another template "one
hop away". For example, the following should work
:Issue
spin:constraint [
a spin:ContextSensitiveConstraint ;
spin:context :assignedTo ;
spin:childConstraint [ // This gets executed for the Assignees
a spl:RequiredPropertyConstraint ;
spl:property foaf:mbox
]
]
where spin:ContextSensitiveConstraint would be a meta-template that
executes another template with different bindings of ?this. It would
require an extension to the (currently simple) execution engine. So we
have a trade-off between keeping the language simple and the usability
for those specific scenarios. But I see no technical reason why SPIN
couldn't be extended for this. In the end we need to agree how important
those use cases are.
Holger
Received on Thursday, 6 November 2014 23:18:11 UTC