Dave,

Thanks for answering the original question. However, I am curious to see where 
the discussion could continue to: 

As you pointed out, the meaning of the 'reasoning' and 'underneath' is actually 
what is confusing here. Meaning of the listSuperClasses(?RESOURCE) term in the 
OntAPIĀ  (from my point of view that we can not distinguish from some other 
possible interpretations?) is interpreted as follows:

SELECT DISTINCT ?sc WHERE { ?RESOURCE rdfs:subClassOff ?sc . }

So, in the RDF language, the listSuperClasses(?RESOURCE) should return 
immediate ancestors of the ?RESOURCE. In my opinion, any additiional 
information returned by the query must be explicitly specified by rules 
encapsulated within a reasoner. Note that meaning of the OntAPI is grounded by 
means of the SPARQL. 

Evidently, a restriction would be represented in the result set by a blank node 
(BN). So, by 'underneath' I mean do not decide about implicit meaning of blank 
nodes that exactly must bu done here if we want to make any further conclusion 
about super-classes. My feeling is that we would be much safer if we do not 
make any further assumptions and say ".. well, we do not know about BNs" - that 
actually is exactly what you did in code. Right?

Milorad




>________________________________
> From: Dave Reynolds <[email protected]>
>To: [email protected] 
>Sent: Tuesday, January 7, 2014 2:52 PM
>Subject: Re: is there reasoning outside a reasoner in Jena?
> 
>
>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
>
>
>
>
>

Reply via email to