Re: checking data property on every individual in a transitive object property

On 4 Jul 2011, at 20:23, Jonathan Conrad wrote:

> hello everyone,
>
> I want to model things being connected, ie reachable from each other.
> For this i have a transitive "reachable" property which works fine  
> alone.
>
> For the reachability to be valid in certain cases i must also check  
> if every individual in the transitive chain has a certain  
> dataproperty like "canHoldMaximumWeight > 5".
> Example:
> A -reaches-> B -reaches-> C
> A hasMaximumWeight 3
> B hasMaximumWeight 2
> C hasMaximumWeight 4
>
> So i want to ask all individuals that are reachable from A, but only  
> using individuals that can hold a weight of 3 or greater.
> If i try to write this in DL: hasMaximumWeight some integer [>=3]  
> and reaches some Thing.

what happens if you add a conjunct with 'only'? Because, as you say,  
you want all individuals that are reachable from A, but only using  
individuals that, i.e., as

hasMaximumWeight some integer [>=3] and
hasMaximumWeight only integer [>=3] and reaches some Thing.

now one thing that isn't clear is where the 'A' has gone in your query  
- that might need fixing. If you know about predicate logic, the  
'some' is a (guarded) existential quantifier, and the 'only' a  
(guarded) universal one -- and your query clearly asks for at least  
the universal one.

Cheers, Uli

> I get the answer of C, but the only way to reach C is through B,  
> which i want to exclude from the "transitivity" because of the  
> weight issue
>
> Is this possible in OWL (using Protege?)? Am I going all wrong about  
> the modelling of this?
> I have found property chains, but as far as i see i can only combine  
> object properties this way and not mix them with data properties!?
>
> Thanks,
> Jonathan
>
>

Received on Tuesday, 5 July 2011 16:07:37 UTC