Re: Formalizing PROV-Constraints in OWL?

On Tue, Aug 7, 2012 at 11:36 AM, Ivan Herman <ivan@w3.org> wrote:

> The reason I am asking myself is because (again, I may be proven wrong) I have the impression that the translation of the Prov-Constraints into rules is way more natural (and it seems that a bunch of you guys have already made work on this). Whether we use RIF Core for this (essentially Datalog, if my understanding is correct), SPIN, or simply a set of SPARQL CONSTRUCT/ASK statements (much like Daniel & co. did for the Dublin core document) is a matter of choice, but all these are rule statements. If we have such a set of rules, those would be really useful; I am not sure what we would gain in practice by using OWL here.
>
> (My personal preference would be to take the last alternative, ie, a set of SPARQL statements; the advantage is that it can be executed using any SPARQL processor whereas SPIN needs a particular, company specific implementation. But that is only me.)


I agree that many of the constraints would fit much better in a rule
system, in particular the inferences. It depends on what is the
purpose of the whole thing. The rules would help find all inferences
and violations of constraints, and would in particular be valuable for
a validator.

This 'constraints OWL' should not do that, but would be more of a
"fill in the blanks" ontology that can express those bits of PROV
Constraints that can easily be formulated as OWL, but which we did not
include in PROV-O as it would prevent "sloppy provenance".

If I am coming from the OWL community, and I pick up PROV-O, read the
PROV Constraints document, and I see that prov:wasGeneratedBy is
functional and prov:Usage and prov:Invalidation are disjoint, then I
would find it a bit odd that this is not expressed anywhere in OWL.


For instance, I used Elmo (Sesame's Java binding for OWL/RDFS) with
PROV-O's OWL, and the generated API would seem to encourage me to add
multiple generations. What would be the outcome of this effort would
be a kind of 'restricted' or 'strict' OWL that you can choose to use
if you know you are generating . It won't guarantee that you are not
making invalid PROV statements, and the OWL reasoner might not give
you all the inferences that PROV Constraints defines, but it would
give you as a user of the ontology better guidance. In particular for
anyone specializing the ontology (such as myself), I think this could
be worthwhile.

Before we try, we don't know how good job it can do. If it turns out
it can barely do 10% of the rules, then it might not be worth it. I
would not suggest putting loads of effort into this - doing a
validator would be something that should get more attention in the
long run.


As for the making rules, I would go for the pure SPARQL approach for
inferences, and something like SPIN for constraints; like Paul has
started in his Github project.

Although I am not native with SPIN, I don't think SPIN rules [1] are
necessarily restricted to a particular product, it is based on SPARQL,
just generating new 'Invalid' statements when something is wrong.
Could you not just run a SPARQL query to find validations afterwards?
Paul?

[1] http://www.w3.org/Submission/spin-modeling/

-- 
Stian Soiland-Reyes, myGrid team
School of Computer Science
The University of Manchester

Received on Tuesday, 7 August 2012 13:22:31 UTC