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 <[email protected]>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
>
>

Reply via email to