" In other words, if an ASK constraint evaluates to
true for one instance, then the instance violates the condition.
Optionally, CONSTRUCT queries can create instances of a
spin:ConstraintViolation
class that provide details
on a specific violation."
I took that to mean that CONSTRUCT is just a fancy way of passing more information about the violation, i.e. the spin engine just uses the results to generate a violation, it doesn't insert any triples anywhere. Which makes sense right? the spin engine is just running a query and processing the results. CONSTRUCT returns an RDF graph, what the caller does with that is up to the caller - in and of itself it does not oblige the caller to insert them anywhere. This can be contrasted with DELETE/INSERT spin rules - it is very clear that these explicitly modify triples and don't depend on any behaviour of the caller.
If the poster wants triples to be inserted then they should use a spin:rule instead or as well as.
Hi Mark, others,
I don’t know if you follow StackOverflow at all but there have been a few questions there about our SPIN reasoner. Are you able to take a look and if possible write an answer?
Most recent question:
Cheers,
Jeen