[Pellet-users] Incremental Reasoning Question
Michael Smith
msmith at clarkparsia.com
Fri Jun 8 20:34:45 UTC 2007
On Fri, 2007-06-08 at 11:40 -0700, Jason Rickwald wrote:
> I looked at the example, and it shows incremental reasoning working with
> additions being made directly to the KnowledgeBase. I am currently
> using Pellet with Jena, using the PelletInfGraph, to do my reasoning.
> Will incremental reasoning still work in this situation?
No. The current implementation of the InfGraph in the Jena bindings
tracks changes at the graph level, not the statement level. A change in
the underlying graph will cause the reasoner to reload the entire graph.
One *should* be able to "batch" some of the reasoning by basing the
InfGraph on a MultiUnion graph and limiting the updates to a single
graph within that (the others won't be reloaded), but the loader in the
current Jena bindings invalidates the reasoner state in most
circumstances, so this approach also fails.
It should be possible to enhance the Jena bindings, but that work hasn't
been done or tasked.
> In other
> words, will an update to the underlying Jean Graph trigger incremental
> reasoning, or does a full validation/reasoning step need to be done?
If you are manipulating the raw graph, not the PelletInfGraph, a call to
rebind() will insure necessary processing occurs. It will not take
advantage of the recent incremental reasoning changes for the reasons
above.
> Bear in mind, currently updates to the Graph do not go through the
> PelletInfGraph to the Jena Graph, but instead go directly to the
> underlying Jena Graph. Is it necessary that I change this to allow
> updates to propagate through the PelletInfGraph in order for incremental
> reasoning to work?
You should change to either using the PelletInfGraph for manipulation or
using rebind() for results to be as expected. Again, neither supports
incremental reasoning at the moment.
--
Mike Smith
Clark & Parsia
More information about the Pellet-users
mailing list