On 07/01/14 13:28, Milorad Tosic wrote:
Hi,
I'm reading the Jena paper [1] (which is very nice and useful, BTW), where I
found the following:
"Prior to this release, Jena used a heuristic method to attempt to
associate restriction properties with the classes sub-classing that
restriction. Since there were problems with precisely defining the
heuristic, and ensuring correct behaviour (especially with
inference models), we have dropped the use of this heuristic from
Jena 2.2 onwards."
Do I misinterpret the statement when I conclude that Jena API does underneath
some reasoning independently on the existing reasoner embedding mechanism?
Depends what you mean by "reasoning" and "underneath".
There are parts of the OntAPI where you are explicitly asking for things
which a reasoner might have already worked out. For example
listSuperClasses. The implementation for those checks if there is a
reasoner present and if so just queries directly knowing that the
super-class closure is available from the reasoner. If there is no
reasoner then listSuperClasses has to manually iterate over the super
class tree to fulfil its contract. I wouldn't call that reasoning
underneath though - it is just explicit in the API call what is being
returned.
Generally the OntAPI design tries to leave reasoning to the reasoner and
minimize the number of places like listSuperClasses where there API has
to bridge the gap in the absence of a reasoner.
Dave