W3C home > Mailing lists > Public > public-owl-dev@w3.org > January to March 2010

Re: OWL class restriction

From: Alessandro Maccagnan <maccagnan@math.unipd.it>
Date: Thu, 14 Jan 2010 16:21:24 +0100
Message-ID: <a01af6b71001140721v5adcbf02o2314ba375f8c7bca@mail.gmail.com>
To: Uli Sattler <sattler@cs.man.ac.uk>
Cc: Rinke Hoekstra <hoekstra@uva.nl>, Thomas Schneider <schneidt@cs.man.ac.uk>, public-owl-dev <public-owl-dev@w3.org>, Erika Feltrin <erika.feltrin@cribi.unipd.it>
Hello to all,

thank you for suggestions, after a few attempts we elaborate a SWRL rule.
in attach you can find an example of what we would like to do in our
ontology.
We have that:

a1, a2 (individual of Action class)
o1, o2, o3 (individual of Object class)
g1, g2, g3 (individuals of Goal class)

We defined that:
a1 action_has_goal g1
a2 action_has_goal g2
o1 object_has_goal g1
o2 object_has_goal g2
o3 object_has_goal g3, g2
All individuals are different.

Since a2 has a different goal of o1 and so they are incompatible, we would
like to have a "red flag" whne we try to insert the declaration "a2
has_object o1".
So we composed this rule:

*Object(?o) , action_has_goal(?a, ?g_di_a) , is_object_of(?o, ?a) ,
object_has_goal(?o, ?g) -> sameAs(?g, ?g_di_a)*

Applying this rule, we have that:
- declaration "a1 has_object o1" is possible
- declaration "a2 has_object o2" is also possible
because a1,o1 and a2,o2 have respectively the same goal
INSTEAD
- declaration "a1 has_object o2" is NOT possible
- declaration "a2 has_object o1" is NOT possible
because a1,o2 and a2,o1 have different goals
BUT
- declaration "a2 has_object o3" is NOT possible
We do not want this, we want to have this declaration TRUE because o3 has
one of its goal equal to the a2 goal (which is g3).

This is because we would like to use in an action only the object that can
be useful for that action. For example, in the "cut" action you can use a
"scissor" or a "knife" but not a "glue".

How can we say (if possible) that?


On Thu, Jan 14, 2010 at 2:52 PM, Uli Sattler <sattler@cs.man.ac.uk> wrote:

>
> On 14 Jan 2010, at 13:14, Rinke Hoekstra wrote:
>
>  On 14 jan 2010, at 13:30, Uli Sattler wrote:
>>
>>> ...but do you really need (2)? I think having all the rest should do the
>>> trick? Cheers, Uli
>>>
>>
>> For inferring the has_object relation, (1) alone is enough. But you need
>> some form of cardinality constraint (or functional property) if you want to
>> be able to raise a red flag whenever anyone asserts for some action that it
>> has two has_object relations to two distinct objects.
>>
>>
> do you really need to raise this flag? What if an action has 2 goals, say,
> to 'heat water' and 'to boil water'...then this shouldn't matter? I guess
> what you need to check is that an action of a certain kind has a certain
> goal (and that might be implied by virtue of the goals of its sub-actions)
> and that it has no subactions with some other kind of goal (like 'throwing
> the water out')?
>
> Cheers, Uli
>
>
>  Bottom line: it can't really be done in OWL 2.
>>
>> -Rinke
>>
>>
>>> On 14 Jan 2010, at 12:00, Thomas Schneider wrote:
>>>
>>>
>>>> On 14 Jan 2010, at 08:50, Rinke Hoekstra wrote:
>>>>
>>>>  Hi Thomas, Alessandro,
>>>>>
>>>>> Doesn't your (2) violate the global constraints on complex properties?
>>>>> You cannot have cardinality constraints on complex properties (such as
>>>>> chains and transitive properties).
>>>>>
>>>>
>>>> Oops ... *blush*
>>>>
>>>> Sorry
>>>>
>>>> Thomas
>>>>
>>>>  I myself have struggled with these kinds of modelling problems while
>>>>> working on my PhD. Chapter 7 of my dissertation describes ways of 'coping'
>>>>> with the limitations of OWL 2. See [1,2] if you're interested.
>>>>>
>>>>> Best,
>>>>>
>>>>> Rinke
>>>>>
>>>>> [1] http://www.leibnizcenter.org/~hoekstra/wordpress/
>>>>> [2] http://dare.uva.nl/document/144868
>>>>>
>>>>> On 13 jan 2010, at 20:04, Thomas Schneider wrote:
>>>>>
>>>>>  Oh, just now I've read Uli's email properly ... and her suggestion
>>>>>> shows that this three-variable statement might be possible. Would it be
>>>>>> enough for your purposes if you say the following?
>>>>>>
>>>>>> (1) The composition of has_action_goal and inverse(has_object_goal)
>>>>>> implies has_object
>>>>>> (2) Every action can have at most one object (Action subClassOf
>>>>>> has_object max 1 Thing)
>>>>>> (3) All individuals of type object are distinct
>>>>>>
>>>>>> If (2) clashes with your scenario, it seems to me that you will need
>>>>>> closed world reasoning.
>>>>>>
>>>>>> Cheers
>>>>>>
>>>>>> Thomas
>>>>>>
>>>>>>
>>>>>> On 13 Jan 2010, at 17:52, Thomas Schneider wrote:
>>>>>>
>>>>>>  Hi Alessandro,
>>>>>>>
>>>>>>> On 13 Jan 2010, at 11:09, Alessandro Maccagnan wrote:
>>>>>>>
>>>>>>>  Hi Uli,
>>>>>>>>
>>>>>>>> thanks for your reply.
>>>>>>>> We are trying to define a propertyChain but we realize that what we
>>>>>>>> need to say is as follows.
>>>>>>>>
>>>>>>>> defining these properties:
>>>>>>>> Action has_object Some Object
>>>>>>>> Action has_action_goal Some Goal
>>>>>>>> Object has_object_goal Some Goal
>>>>>>>>
>>>>>>>> at the individuals level we would like to say:
>>>>>>>>
>>>>>>>> a1 has_action_goal g1
>>>>>>>> o1 has_object_goal g1
>>>>>>>> o2 has_object_goal g2
>>>>>>>> =>
>>>>>>>> a1 CAN HAVE has_object o1
>>>>>>>>
>>>>>>>> BUT
>>>>>>>> a1 CANNOT HAVE has_object o2
>>>>>>>>
>>>>>>>> So this means that only the objects (o) that have the same goal (g)
>>>>>>>> of the
>>>>>>>> action (a) can be used in that action.
>>>>>>>>
>>>>>>>
>>>>>>> I don't think that this can be said in OWL because you will have to
>>>>>>> say that every individual x that is related to an individual y via
>>>>>>> has_object must also have another link to y via the chain has_action_goal o
>>>>>>> inverse(has_object_goal). This statement requires three variables in
>>>>>>> first-order logic, hence it's unlikely that it can be expressed in OWL. (Or
>>>>>>> does anyone here see a clever trick?) You might be more lucky with a rule
>>>>>>> language, but that is not my domain.
>>>>>>>
>>>>>>> Second, together with the rule you stated in your last sentence, the
>>>>>>> ontology you gave is not sufficient to conclude that a1 cannot have o2 as an
>>>>>>> object: the individuals g1 and g2 can be the same, and actions and objects
>>>>>>> are not prevented from having other goals than the ones stated. You will at
>>>>>>> least have to make all individuals different and close the "some"
>>>>>>> restrictions with corresponding "only" restrictions. Even then, the open
>>>>>>> world assumption might play a trick on you in the cases where you haven't
>>>>>>> said anything about certain individuals, so you might require closed world
>>>>>>> reasoning here.
>>>>>>>
>>>>>>> Cheers
>>>>>>>
>>>>>>> Thomas
>>>>>>>
>>>>>>>  Any suggestions?
>>>>>>>>
>>>>>>>> Cheers
>>>>>>>> Alessandro
>>>>>>>>
>>>>>>>> On Tue, Jan 12, 2010 at 5:51 PM, Uli Sattler <sattler@cs.man.ac.uk>
>>>>>>>> wrote:
>>>>>>>> Hi Alessandro,
>>>>>>>>
>>>>>>>> this is a tricky think to be done. What you can do is use a
>>>>>>>> propertychain to ensure that
>>>>>>>>
>>>>>>>> the composition of  has_object with has_Goal implies has_Goal.
>>>>>>>>
>>>>>>>> This would require the usage of a dedicated 'has_Goal' (rather than
>>>>>>>> a less specific has_information) property, but this shouldn't be a problem
>>>>>>>> (make has_information a superproperty of has_Goal if you like).
>>>>>>>>
>>>>>>>> Does this suffice? Cheers, Uli
>>>>>>>>
>>>>>>>>
>>>>>>>> On 12 Jan 2010, at 14:54, Alessandro Maccagnan wrote:
>>>>>>>>
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> we are developing an ontology for the description of a general
>>>>>>>> Action structure. The Action Structure is composed of:
>>>>>>>>
>>>>>>>> Subject (that performs the action)
>>>>>>>> Object_complement (that undergoes the action)
>>>>>>>> Complement (that helps in the execution of the action)
>>>>>>>> Goal of Action (the effect of the action)
>>>>>>>>
>>>>>>>> We have already defined that:
>>>>>>>>
>>>>>>>> Action has_information one Goal_of_action
>>>>>>>> Action has_object some Object
>>>>>>>> Object is_object_in some Action
>>>>>>>> Object has_information some Goal_of_action (because an object can be
>>>>>>>> used in several distinct actions)
>>>>>>>>
>>>>>>>> Now we would like to say that an Action can have as its objects only
>>>>>>>> those that have the same goal of the related action.
>>>>>>>>
>>>>>>>> Action has_object some Object where Object.Goal=Action.Goal
>>>>>>>>
>>>>>>>> Unfortunately we are stuck because we do not know how to formalize
>>>>>>>> it in OWL. Does anybody have any suggestions to help us?
>>>>>>>>
>>>>>>>>
>>>>>>>> Kind regards,
>>>>>>>>
>>>>>>>> Alessandro Maccagnan
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Alessandro
>>>>>>>> Maccagnan
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> +----------------------------------------------------------------------+
>>>>>>> |  Dr Thomas Schneider                    schneider (at)
>>>>>>> cs.man.ac.uk  |
>>>>>>> |  School of Computer Science
>>>>>>> http://www.cs.man.ac.uk/~schneidt  |
>>>>>>> |  Kilburn Building, Room 2.114                 phone +44 161 2756136
>>>>>>>  |
>>>>>>> |  University of Manchester
>>>>>>>  |
>>>>>>> |  Oxford Road                                             _///_
>>>>>>>   |
>>>>>>> |  Manchester M13 9PL                                      (o~o)
>>>>>>>   |
>>>>>>>
>>>>>>> +-----------------------------------------------------oOOO--(_)--OOOo--+
>>>>>>>
>>>>>>> Jubones (pl.n.)
>>>>>>> Awful things bought in Nairobi which never look good at home.
>>>>>>>
>>>>>>>            Douglas Adams, John Lloyd: The Deeper Meaning of Liff
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> +----------------------------------------------------------------------+
>>>>>> |  Dr Thomas Schneider                    schneider (at) cs.man.ac.uk |
>>>>>> |  School of Computer Science       http://www.cs.man.ac.uk/~schneidt |
>>>>>> |  Kilburn Building, Room 2.114                 phone +44 161 2756136
>>>>>>  |
>>>>>> |  University of Manchester
>>>>>>  |
>>>>>> |  Oxford Road                                             _///_
>>>>>> |
>>>>>> |  Manchester M13 9PL                                      (o~o)
>>>>>> |
>>>>>>
>>>>>> +-----------------------------------------------------oOOO--(_)--OOOo--+
>>>>>>
>>>>>> Jubones (pl.n.)
>>>>>> Awful things bought in Nairobi which never look good at home.
>>>>>>
>>>>>>             Douglas Adams, John Lloyd: The Deeper Meaning of Liff
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>> +----------------------------------------------------------------------+
>>>> |  Dr Thomas Schneider                    schneider (at) cs.man.ac.uk |
>>>> |  School of Computer Science       http://www.cs.man.ac.uk/~schneidt |
>>>> |  Kilburn Building, Room 2.114                 phone +44 161 2756136  |
>>>> |  University of Manchester                                            |
>>>> |  Oxford Road                                             _///_       |
>>>> |  Manchester M13 9PL                                      (o~o)       |
>>>> +-----------------------------------------------------oOOO--(_)--OOOo--+
>>>>
>>>> Jubones (pl.n.)
>>>> Awful things bought in Nairobi which never look good at home.
>>>>
>>>>               Douglas Adams, John Lloyd: The Deeper Meaning of Liff
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>


-- 
Alessandro Maccagnan
Received on Thursday, 14 January 2010 15:21:54 GMT

This archive was generated by hypermail 2.3.1 : Wednesday, 27 March 2013 09:32:57 GMT