Re: OWL class restriction

ops..

forgot the attachment in last mail..

On Thu, Jan 14, 2010 at 4:21 PM, Alessandro Maccagnan <
maccagnan@math.unipd.it> wrote:

> 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
>



-- 
Alessandro Maccagnan

Received on Thursday, 14 January 2010 15:24:38 UTC