[Pellet-users] Questions on Modifying the Pellet KB from Jena
Paolo Bussotti
paolo.bussotti at unifi.it
Thu Jun 21 11:40:36 UTC 2007
Dear All,
I'm exploring the incremental reasoning properties of Pellet even if I
cannot use them in my current project.
But I would ask you some question (also related to other mail exchanges
in the list):
I've seen that, if directly use the KB methods to change the KB
(addIndividual, etc..), then when I test the status of the KB via
isChanged() it returns true, as expectable, and when I call getInfo() it
responds correctly with the changes made.
But, in my current project, I change the KB through a Jena Pellet-backed
OntModel (and so I cannot get incremental reasoning) and what I'd like
to know is this:
If I make a change to the model (e.g. add an Individual) through the
Jena methods, then create the PelletInfGraph and prepare it, I think
that the whole graph underlying the model of the ontology and its
imports is sent to the OWLReasoner and KnowledgeBase (correct me if I'm
wrong, please).
When I get the KB by calling the getKB() method on the prepared
PelletInfGraph, and then call getInfo() then the change in the KB (e.g.
a new individual) is shown as happened. But if I call isChanged() it
return false. This, according to me, is due to the fact that a clear()
operation followed by a complete reloading is non considered as a
change, is simply a new knowledgebase content.
In each case I can work with it, cheching consistency after changes and
so on, even if performances are obviously low.
In particular I've understood from the list that the fact that
PelletInfGraph.prepare() clears and reloads everything (and not just add
the differences) is due to the particular implementation of Jena bindings.
Might you, please, correct me If I asserted something wrong and/or
provide some additional details?
Thank you in advance,
Paolo Bussotti
More information about the Pellet-users
mailing list