Re: a view of SPIN constraints

Yeah that looks right. I think we only need to define the semantics of 
the CONSTRUCT case and treat ASK as syntactic sugar with default values 
for the constructed ConstraintViolations.

Holger


On 11/1/14, 4:05 AM, Peter F. Patel-Schneider wrote:
> Here is my reconstruction of how SPIN constraints work, based on my 
> reading
> of various SPIN documents and various presentations about SPIN 
> constraints.
> Please let me know if anything is wrong.
>
> Conceptually a SPIN constraint system takes in two inputs:
> 1/ an RDF graph
> 2/ a set of SPIN constraints
>
> Each SPIN constraint is attached to a class and provides a constraint 
> in the
> form of a SPARQL query fragment plus an optional SPARQL construct clause.
> The surface syntax may not always look like query fragments and construct
> clauses, but the only things that determine the meaning of a SPIN
> constraint are the query fragment and construct clause that can be 
> generated
> from the surface syntax.
>
> A constraint with SPARQL query fragment F on class C is satisfied if the
> SPARQL query
>    ASK {
>      ?this rdf:type/rdfs:subClassOf* C .
>      F }
> returns no bindings for the graph G
>
> If there is a construct clause X then the result of the constraint is the
> result of the SPARQL query
>    CONSTRUCT { X }
>    WHERE {
>     ?this rdf:type/rdfs:subClassOf* C .
>     F }
> evaluated against the graph G.
>
>
> peter
>

Received on Friday, 31 October 2014 20:05:15 UTC