On Fri, 2011-06-17 at 09:44 -0400, Chris Spencer wrote: 
> Hi,
> 
> I'm new Jena, and I'm trying to determine if it has certain reasoning
> features for an application I'm researching. Specifically:
> 
> 1. Does Jena's forward-chaining reasoner have the ability to "explain"
> inferred triples, such as by showing the [list of
> triples]->rule->[list of triples]->...->[list of triples] chain?

Yes though not in a sophisticated way. You have to switch on recording
of this information before you do the inference:
http://jena.sourceforge.net/inference/index.html#derivations

> 2. Does Jena store rules in a persistent database, or do rules have to
> be loaded from a text-file upon every request?

Neither. There is no rules database. You can obtain rules from a text
file (or in-line program constants if you really want to) but having
built the reasoner with those rules the compiled rule set is in memory
and you wouldn't normally reload them for each "request". Depending on
what you mean by "request".

> 3. Does Jena's forward-chaining reasoner have any built-in support of
> probability?

No.

> 4. Can Jena store triples that refer to specific graphs? For example,
> if a set of triples in graph A were retrieved from resource X, I'd
> like to create a single triple like (graph_A, retrieved_from,
> resource_X). Some stores cheat by creating such a triple for every
> triple in graph A, which de-normalizes the relation, and doubles the
> size of the graph.

Jena supports DataSets which are collections of named graphs (plus a
default graph) as per the SPARQL model. So you can certainly record
provenance information by talking about the graph names and store that
provenance information in a different graph, and query it all with
SPARQL.

However, beware than the jena rules system pre-dates all that and there
is no direct support for matching graphs in rules. It is possible to
extend the rules with procedural builtins which could in turn query a
DataSet to locate provenance information.

Dave


Reply via email to