[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