You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Steve Vestal <st...@adventiumlabs.com> on 2020/12/27 14:13:26 UTC
How to getDerivation from Openllet?
When I create an OntModel using OntModelSpec.OWL_DL_MEM_RULE_INF,
InfGraph#getDerivation returns a derivation. When I switch to
PelletReasonerFactory.THE_SPEC (the only choice), I get a null result.
I have tried setDerivationLogging(true) on both the Reasoner and the
InfGraph. Reasoner#getReasonerCapabilities() result doesn't seem to say
anything about the ability to provide a derivation in either case. The
openllet github site says it can explain inferences. Does anyone know
how to turn that on?
Re: How to getDerivation from Openllet?
Posted by Steve Vestal <st...@adventiumlabs.com>.
I'm getting a size==0 explanation model.
PelletInfGraph pelletGraph = (PelletInfGraph)
queryModel.getGraph();
Statement why =
queryModel.createStatement(member.asResource(), rdfType,
clazz.asResource());
boolean containsStatement =
queryModel.contains(why);
Model because = pelletGraph.explain(why);
containsStatement is true.
On 12/28/2020 1:46 AM, Lorenz Buehmann wrote:
> The method getDerivation() is not implemented in Pellet resp. Openllet.
>
> You can cast the InfGraph to PelletInfGraph and then call explain() or
> explainTriple() with the corresponding arguments.
>
> For example
>
> InfGraph g = ...
> Statement stmt = ...
> Model explanation = ((PelletInfGraph)g).explain(stmt);
>
> You can also check if the current model/graph entails a triple with
>
> Triple t = ...
> boolean isEntailed = ((PelletInfGraph)g).entails(t);
>
> On 27.12.20 15:13, Steve Vestal wrote:
>> When I create an OntModel using OntModelSpec.OWL_DL_MEM_RULE_INF,
>> InfGraph#getDerivation returns a derivation. When I switch to
>> PelletReasonerFactory.THE_SPEC (the only choice), I get a null
>> result. I have tried setDerivationLogging(true) on both the Reasoner
>> and the InfGraph. Reasoner#getReasonerCapabilities() result doesn't
>> seem to say anything about the ability to provide a derivation in
>> either case. The openllet github site says it can explain
>> inferences. Does anyone know how to turn that on?
>>
>>
>>
Re: How to getDerivation from Openllet?
Posted by Lorenz Buehmann <bu...@informatik.uni-leipzig.de>.
The method getDerivation() is not implemented in Pellet resp. Openllet.
You can cast the InfGraph to PelletInfGraph and then call explain() or
explainTriple() with the corresponding arguments.
For example
InfGraph g = ...
Statement stmt = ...
Model explanation = ((PelletInfGraph)g).explain(stmt);
You can also check if the current model/graph entails a triple with
Triple t = ...
boolean isEntailed = ((PelletInfGraph)g).entails(t);
On 27.12.20 15:13, Steve Vestal wrote:
> When I create an OntModel using OntModelSpec.OWL_DL_MEM_RULE_INF,
> InfGraph#getDerivation returns a derivation. When I switch to
> PelletReasonerFactory.THE_SPEC (the only choice), I get a null
> result. I have tried setDerivationLogging(true) on both the Reasoner
> and the InfGraph. Reasoner#getReasonerCapabilities() result doesn't
> seem to say anything about the ability to provide a derivation in
> either case. The openllet github site says it can explain
> inferences. Does anyone know how to turn that on?
>
>
>