Hi Martynas,
you may know that for SPIN rules it is possible to use sub-properties of
spin:rule. People can define their own properties such as my:prepRule
and my:postRule and use this for grouping. The SPIN API exposes this by
allowing developers to pass in the rule predicate as an argument. The
same mechanism could be used for constraints.
If you look at SPINConstraints, you should see a call to the private method
addConstraintViolations(results, instance, SPIN.constraint,
false, stats, monitor);
where the SPIN.constraint property is hard-coded. In your version, you
could make this method public, or expose alternative versions of check
with an additional parameter for the sub-property, similar to how
SPINInferences does it.
Would this work? I could add such a public method to the next release.
In the absence of this change, the conservative solution is to use
multiple files:
main.ttl
preconstraints.ttl (imports main.ttl)
postconstraints.ttl (imports main.ttl)
and then use the outer control logic to select which union graph to run
over.
Cheers,
Holger
On 10/2/2013 21:26, [email protected] wrote:
Hey,
I'm receiving an RDF model which then goes through the following steps:
1. pre-process SPIN validation (checking for missing properties etc)
2. processing (building URIs for blank nodes, generating hashes from
passwords etc.)
3. post-process SPIN validation (checking for processed properties,
existing resources with same URI etc)
What I need is a way to group constraint templates (or their
instances?), so that some of them would only be executed during
pre-process, and others during post-process.
I've noticed the practice of grouping templates into super-classes,
but it gets complicated as for example dqc:MissingProperties could be
a pre-process constraint in relation to foaf:name, but post-process in
relation to :passwordHash property.
Any ideas on how to go about this? The code I'm currently using to
register and execute constraints is:
getOntModel().add(model);
SPINModuleRegistry.get().registerAll(getOntModel(), null);
List<ConstraintViolation> cvs =
SPINConstraints.check(getOntModel(), null);
Thanks,
Martynas
graphityhq.com
--
-- You received this message because you are subscribed to the Google
Group "TopBraid Suite Users", the topics of which include Enterprise
Vocabulary Network (EVN), TopBraid Composer, TopBraid Live, TopBraid
Insight, SPARQLMotion, SPARQL Web Pages and SPIN.
To post to this group, send email to
[email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/topbraid-users?hl=en
---
You received this message because you are subscribed to the Google
Groups "TopBraid Suite Users" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.
--
-- You received this message because you are subscribed to the Google
Group "TopBraid Suite Users", the topics of which include Enterprise Vocabulary
Network (EVN), TopBraid Composer, TopBraid Live, TopBraid Insight, SPARQLMotion, SPARQL
Web Pages and SPIN.
To post to this group, send email to
[email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/topbraid-users?hl=en
---
You received this message because you are subscribed to the Google Groups "TopBraid Suite Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.