> -----Original Message-----
> From: Joshua TAYLOR [mailto:[email protected]]
> Sent: Friday, February 22, 2013 10:26 AM
> To: [email protected]
> Subject: Re: testing whether an instance could be associated with a class
>
> On Fri, Feb 22, 2013 at 9:38 AM, David Jordan <[email protected]> wrote:
>> I have a question about how to express something in Jena. Assume we have an 
>> individual a that is of type A, where A would actually be a collection of 
>> classes and subclasses. Also assume we have a class B that has been defined. 
>> B may include some class restrictions that place constraints on which 
>> resources can be instances of that class. As a simple case, B may be defined 
>> as disjoint with A. What would be the means of asking whether individual a 
>> can be of class B based on currently defined constraints?
>>
>> Individual.addOntClass returns void and throws no exception, so that would 
>> not seem to work.
>>
>> Would another approach be to get the OntClasses associated with individual a 
>> and then calling OntClass.isDisjointWith?
>
> Even using OntClass#isDisjointWith is unlikely to work except in the case of 
> explicit disjointness declarations, unless you have a reasoner running.  With 
> a reasoner running, you could ask whether B is disjoint from A.  Even so, it 
> might not be consistent for *some particular* instance of B to be an instance 
> of A, even if A and B aren't, in general disjoint.
>
> Once you've got a reasoner running:
>
> * You could check whether A and B are disjoint.
> * You could check whether a *some particular instance* of B is an instance of 
> *the complement of A* (i.e., not A).  If the reasoner can guarantee that it 
> is, then (since it can't be an instance of A and of not A), then that 
> instance can't be an instance of A.
>
> I know the Jena rule-based reasoners aren't complete for OWL, so I don't know 
> whether they'll cover these cases or not.  Others (e.g.,
> Pellet) are available that should cover these cases.

On Fri, Feb 22, 2013 at 11:04 AM, David Jordan <[email protected]> wrote:
>
> Suppose class B includes a restriction that states that a property cannot 
> include a particular value x. An individual a may have that property with the 
> value x. I don't understand how your suggestions would cover that case. And 
> assume there is a reasoned involved.

Forgive me, but I don't understand how that case relates to the
original question, which I think had two possible interpretations:
* check whether "Some B's could be A's"
* check whether "some particular B, say, b34, could be an A"

Suppose "B includes a restriction that states that a property cannot
include a particular value x".

If some individual a23 has x as a value for that property, then a23
cannot be a B.  A reasoner could confirm that.

That doesn't say anything about whether "some B's could be A's".
It doesn't say anything about whether "some particular B, say, b34,
could be an A"

Do you have a particular example at hand that you can share?

//JT

-- 
Joshua Taylor, http://www.cs.rpi.edu/~tayloj/

Reply via email to