You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Mark Fischer <mr...@gmail.com> on 2012/10/01 18:03:19 UTC

Documentation for Jena reasoners?

Can anybody point me toward any documentation for the various Jena
reasoners?
I'm using the Owl Ontology Model Spec OWL_MEM_RULE_INF. When I validate()
and get a report, the type string and extension object are both reasoner
dependant.

I'd like to know what the list of possible 'types' are.

So far I've discovered through trial and error that the extension object
seems to be a resource
representing the '*culprit*' of the validation error/warning. I'm not sure,
other then parsing the
description, how I would gain access to '*implicated nodes'*, etc...

This link: http://jena.apache.org/documentation/inference/
Is the closest I've come to documentation talking about the different model
specs.

--
Mark Fischer

Re: Documentation for Jena reasoners?

Posted by Mark Fischer <fi...@cs.queensu.ca>.
Hello again!

In order to 'setFunctorFiltering to false', I need a reasoner that
implements ForwardRuleInfGraphI correct?

ForwardRuleInfGraphI seems to be the first place in the graph interface
heiarchy where I see functors come into play. I've been creating my
reasoner-backed OntModel using either OntModelSpec.OWL_MEM_RULE_INF and the
ModelFactory, or ReasonerRegistry.getOWLReasoner(). I'm missing where the
FBRuleInfGraph (Which does implement ForwardRuleInfGraphI) gets used. How
do I get a hold of it in order to setFunctorFiltering to false? I think my
understanding of how Jena structures it's reasoners is sort of lacking. I'm
sure it will come with time.

Thanks in advance for any insight you can offer!

--
Mark Fischer
Modeling & Analysis in Software Engineering Group
School of Computing
Queen's University



On Mon, Oct 1, 2012 at 6:43 PM, Dave Reynolds <da...@gmail.com>wrote:

> On 01/10/12 17:03, Mark Fischer wrote:
>
>> Can anybody point me toward any documentation for the various Jena
>> reasoners?
>>
>
> There is no documentation beyond the reference manual you have already
> seen, the javadoc, the code and this list :)
>
>
>  I'm using the Owl Ontology Model Spec OWL_MEM_RULE_INF. When I validate()
>> and get a report, the type string and extension object are both reasoner
>> dependant.
>>
>> I'd like to know what the list of possible 'types' are.
>>
>
> The validation for the various OWL flavours are defined in the
> corresponding rule sets included in the distribution. In your case see
> /etc/owl-fb.rules or just go to:
>
> http://svn.apache.org/repos/**asf/jena/trunk/jena-core/etc/**owl-fb.rules<http://svn.apache.org/repos/asf/jena/trunk/jena-core/etc/owl-fb.rules>
>
> If you look at the bottom of that file there are a set of validation
> rules. Each creates a triple of the form:
>
>   ?culprit rb:violation F .
>
> Where F is a functor, either "warn" or "error". The arguments to those
> functors are:
>     - the culprit
>     - an error message
>     - the implicated nodes
>
> The validation code in FBRuleInfGraph extracts the implicated nodes to
> formulate the report string.
>
> If you need to access to these programatically you would need to trigger
> validation yourself outside of the FBRuleInfGraph framework. This should be
> possible. You'll need to:
>
> (1) setFunctorFiltering to false.
>
> (2) Create a trigger triple to switch on the validation rules:
>
>  Triple validateOn = new Triple(Node.createAnon(),
>                       ReasonerVocabulary.RB_**VALIDATION.asNode(),
>                       Functor.makeFunctorNode("on", new Node[] {}));
>
>  Add it to the graph and call prepare().
>
> (3) List all triples of the form:
>       * ReasonerVocabulary.RB_**VALIDATION_REPORT *
>
> The value of each result will be a Functor (normally hidden from view but
> the setFunctorFIltering will have disabled that hiding) from which you can
> then extract the raw arguments.
>
> Dave
>
>

Re: Documentation for Jena reasoners?

Posted by Dave Reynolds <da...@gmail.com>.
On 01/10/12 17:03, Mark Fischer wrote:
> Can anybody point me toward any documentation for the various Jena
> reasoners?

There is no documentation beyond the reference manual you have already 
seen, the javadoc, the code and this list :)

> I'm using the Owl Ontology Model Spec OWL_MEM_RULE_INF. When I validate()
> and get a report, the type string and extension object are both reasoner
> dependant.
>
> I'd like to know what the list of possible 'types' are.

The validation for the various OWL flavours are defined in the 
corresponding rule sets included in the distribution. In your case see 
/etc/owl-fb.rules or just go to:

http://svn.apache.org/repos/asf/jena/trunk/jena-core/etc/owl-fb.rules

If you look at the bottom of that file there are a set of validation 
rules. Each creates a triple of the form:

   ?culprit rb:violation F .

Where F is a functor, either "warn" or "error". The arguments to those 
functors are:
     - the culprit
     - an error message
     - the implicated nodes

The validation code in FBRuleInfGraph extracts the implicated nodes to 
formulate the report string.

If you need to access to these programatically you would need to trigger 
validation yourself outside of the FBRuleInfGraph framework. This should 
be possible. You'll need to:

(1) setFunctorFiltering to false.

(2) Create a trigger triple to switch on the validation rules:

  Triple validateOn = new Triple(Node.createAnon(),
                       ReasonerVocabulary.RB_VALIDATION.asNode(),
                       Functor.makeFunctorNode("on", new Node[] {}));

  Add it to the graph and call prepare().

(3) List all triples of the form:
       * ReasonerVocabulary.RB_VALIDATION_REPORT *

The value of each result will be a Functor (normally hidden from view 
but the setFunctorFIltering will have disabled that hiding) from which 
you can then extract the raw arguments.

Dave