- From: Alessandro Maccagnan <maccagnan@math.unipd.it>
- Date: Thu, 14 Jan 2010 16:24:08 +0100
- 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>
- Message-ID: <a01af6b71001140724u605be5fdgb70ca1deee0610b9@mail.gmail.com>
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
Attachments
- application/octet-stream attachment: Ontology1263311897281.owl
Received on Thursday, 14 January 2010 15:24:38 UTC