[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