### Description Logic

I've been having some issues with description logic recently. I can't tell the difference between value restriction (∀*R.C*) and role restriction (

*R|*). These have the semantics of:

_{C}∀

*R.C*{

*x*∈ ∆

^{I}| ∀

*y*.(

*x*,

*y*) ∈

*R*

^{I}→

*y*∈

*C*

^{I}}

*R|*{(

_{C}*x*,

*y*) ∈ ∆

^{I}× ∆

^{I}| (

*x*,

*y*) ∈

*R*

^{I}∧

*y*∈

*C*

^{I}}

Value restriction (∀

*R.C*) uses an "implies" operator (→) to say that any use of the role will refer to an instance of the class

*C*. Implication means that there can be values for

*y*which are not part of the role description, and are still instances of

*C*. However, since we also have a universal qualifier for

*y*when used in the role, then we have no need to consider elements of

*C*which are not used in the role.

Role restriction says that for any use of the role, then the value in that role (

*y*here) will also be an element of

*C*.

Given that value restriction has the universal quantifier on

*y*, I don't see the difference between the implication here, and the conjunction used in role restriction.

So to me, value restriction defines a class where all uses of a role refer to elements of a specified class (

*C*), and role restriction refers to a role that can only refer to elements of a class. They means slightly different things, but then I don't understand how (∀(

*R|*).

_{C}*A*) is any different to (∀(

*R*).(

*A*⊓

*C*))

Maybe I'm reading it wrong.

Anyway, I think it's because I don't understanding this difference that I can't get the following property:

(∀(

*R|*).

_{C}*A*) ⊓ (∀(

*R|*).

_{D}*A*) ≡ ∀(

*R*|

_{(C ⊔ D)}).

*A*

My reading of it says that the right hand side should include an intersection of (

*C*⊓

*D*) and not the union (

*C*⊔

*D*).

I know I'm wrong here, but I just don't see it. Unfortunately, I don't know where to ask either. Can anyone help?

## 2 comments:

is it too late? :)

ok, so, the restriction R|C gives back a ROLE, i.e. a set of pairs x,y such that Rxy and y is a C, while the AR.C quantifier gives back a CONCEPT, i.e. the set of "things" which are only related via R to C.

Loves|Dog gives you back the subset of the "loves" relation which refers to dogs being loved, while A Loves.Dog returns those things which only love dogs.

hth

It is a little late, yes, but I appreciate the note all the same. :-)

I finally got it for myself, blogging about it helped me think it through. It's also nice to be able to come back some time after the event and see what my thought processes had been.

Which reminds me... I need to blog some more. My excuse of being too busy doesn't cut it, since I need to blog in order to keep so much stuff under control!

Post a Comment