[Pellet-users] Expressivity question and InternalReasonerException

Michael Smith msmith at clarkparsia.com
Tue Jan 29 16:31:17 UTC 2008


On Mon, 2008-01-28 at 18:36 +0000, Christiane Telöken wrote:

> I am using Jena and Pellet 1.5 and an Ontology which expressivity is 
> ALCHON (D), also known as SHON (D)). You will be able to find it in the 
> attachment.

> After creating an ontology model and reading from the ontology file 
> Pellet tells me the expressivity of the ontology is ALCHF(D). That is 
> not correct because there are Nominals in it.

I don't see nominals in the ontology you attached.  The hasValue
restrictions on datatype properties are included in the (D) and aren't
considered nominals.  Protege 4 calls this ontology ALCHN(D).  Pellet
notices that the only number restrictions are cardinality=1 (which can
be replicated without full number restrictions) and uses F instead of N,
yielding ALCHF(D).

> I've tried to find more information on it in the pellet.properties 
> file, but unfortunately I was not lucky.
> Could anybody tell me where the problem may be?

Do you mean problem with expressivity identification or another problem?

> Now the next problem arises. I want to retrieve all statements out of 
> the ontology but it aborts in an InternalReasonerException.
> The code looks like:
> 
>      StmtIterator it = ontoModel.listStatements();

Note listStatements() is a very blunt tool.  Unless you are certain that
you want all inferences, you are generally better off with a more
targeted query.

> Exception in thread "main" 
> org.mindswap.pellet.exceptions.InternalReasonerException:
> Adding type to a pruned node "85"^^http://www.w3.org/2001/XMLSchema#int 
> not(value(literal(33,(),http://www.w3.org/2001/XMLSchema#int)))

This is a bug, and I was able to replicate it in the current dev version
as well.  It doesn't appear to be specific to your example - so thanks
for the report!  When I can investigate enough to generate a smaller
test case, I'll open an issue and reply to this message with a link into
the issue tracker.

Its difficult for me to speculate on when it will be resolved, hopefully
in the meantime some additional info lets you find a workaround.

As I said, listStatements() does a lot of work.  This exception is being
triggered while Pellet is calculating the individuals that are different
from NNBismuth212.  If you don't need owl:differentFrom statements,
consider replacing the listStatements() call.

Alternatively, there is a static member on PelletInfGraph that may help.
In your program, prior to calling listStatements, setting

PelletInfGraph.GET_ONLY_PROPERTIES = true

will prevent listStatements() from returning statements about
individuals with rdf:type, owl:sameAs, and owl:differentFrom predicates.
We generally discourage use of this member as its a hack on the
implementation internals, but if it is a suitable workaround for you
until we fix the bug, have at it.

Regards,
-- 
Mike Smith

Clark & Parsia



More information about the Pellet-users mailing list