Re: Abstraction in disjoint unions
Matt Williams <mhw <at> doctors.org.uk>
2011-04-02 08:15:29 GMT
Dear Peter,
(cc'd to list)
Your example using number is perhaps purer, and I agree that if we
consider the set of NN 1-100, then I think defining disjoint subsets of
that makes complete sense.
However, I think this because there is something "intrinsic" to the
numbers that allows us to do it, whereas there is nothing intrinsic to
the animals that makes them liked or not. The set of animals liked by me
or you would either be enumerated (i.e. just list your likes/ dislikes)
or defined on the basis of some other property (e.g. I like all 4-legged
mammals), in which case we should use legs/ mammals as the defining
property.
I think the problem with arbitrary assignments to classes is that they
involve a lot of manual work (and repeated work for each person)-
however, that might not be a problem. I would also check that my
solution does work - it might not, as I haven't had chance to check it.
There may be a problem with the functional properties, so if it matters
I would check it with a toy example before going ahead.
HTH,
Matt
On 02/04/2011 08:33, P.B.Chapman <at> brighton.ac.uk wrote:
> Hi Matt
>
> Thanks for that. I think I was misinterpreting what the disjoint union did. I thought that a set/class was
defined, and then the disjoint union just gave us some additional facts about it. For instance, the
natural numbers between 1 and 100 could be defined, and then one could partition this set in many ways (I've
added the labels to make clear that this is not one big disjoint union, but rather three different
partitions which all hold at the same time):
>
> a. divisible_by 2, not_divisible_by 2
> b. divisible_by 3, not_divisible_by 3
> c. divisible_by 4, not_divisible_by 4
>
> and so on. So, each constraint individually partitions the set of N between 1 and 100, but does not affect
the others. For example, a number being divisible_by 2 gives no information as to whether a number is
divisible_by 10.
>
> In my example, suppose there was a cat, a dog, an elephant and a monkey (and only those) in my set of animals,
then my likes and dislikes were anonymous classes (the image of is_liked_by value Peter etc) which could
partition the set as [cat, elephant],[dog, monkey], whereas your likes and dislikes could partition the
set as [elephant],[cat,dog,monkey]. They would both by independent facts about the class of animals: me
liking a cat does not stop you from liking or disliking cats.
>
> Is that interpretation incorrect?
>
> However, the method you suggested seems to do exactly what I require anyway (although I've not tried it
yet, but I can see it should work), so it's a moot point whether or not the other way was feasible.
>
> Thanks
>
> Peter
> ________________________________________
> From: mhw <at> doctors.org.uk [mhw <at> doctors.org.uk]
> Sent: 01 April 2011 15:41
> To: User support for the Protege-OWL editor; Chapman Peter
> Subject: Re: [protege-owl] Abstraction in disjoint unions
>
> Dear Peter,
>
> I'm not sure if I've understood the question properly, and I'm not sure if this answer is correct (I'm on a
train, so it's a little rough).
>
> You can have a class "is liked by Peter" and another "is not liked by Peter" and then define a third class as
being the union of those; however, that causes problems with other people (e.g. liked by Matt). It is also
ontological nonsense - the class of animals is independent of whether they are liked by Peter or not.
>
> Would a better solution be to have a functional property "has_emotion_about animal", whose range is
people and whose domain is animals, with two (functional) sub-properties likes and dislikes? Then for
any person p and animal a, likes(p, a) or dislikes(p,a) holds, but never both at the same time.
>
> Again, I would need to check this with the docs and an example, but I don't have them to hand. If that doesn't
answer, please let me know which bit fails and we can try again.
>
> HTH,
> Matt
> Sent from my BlackBerry® wireless device
>
> -----Original Message-----
> From: P.B.Chapman <at> brighton.ac.uk
> Sender: protege-owl-bounces <at> lists.stanford.edu
> Date: Fri, 01 Apr 2011 09:43:16
> To:<protege-owl <at> lists.stanford.edu>
> Reply-To: User support for the Protege-OWL editor
> <protege-owl <at> lists.stanford.edu>
> Subject: [protege-owl] Abstraction in disjoint unions
>
> Hello
>
> I'm using Protégé 4.1, and the March 24 2011 version (edition 1.3) of
> the Manchester tutorial. I've also checked the Quick and Dirty Tutorial
> for Pizzas on the wiki, and didn't find what I was looking for there.
>
> I can specify that a class (for example animal) is a disjoint union of
> the images of two disjoint relations for a specific individual, using
>
> is_liked_by value Peter, is_disliked_by value Peter
>
> So, every animal is either liked by Peter, or disliked by Peter. I can
> add further constraints for different individuals by hand. However, I
> want to quantify over individuals, so I really want to say
>
> "For any individual a, animal is the disjoint union of is_liked_by a and
> is_disliked_by a."
>
> So, this would give me a set of constraints, which would be instantiated
> for every individual (my set of individuals is finite). Then, the first
> constraint (about Peter) would be an instance of the second.
>
> The following construct is incorrect, or rather, is inadequate for my
> purposes
>
> is_liked_by some Thing, is_disliked_by some Thing
>
> because the two quantified variables may be different.
>
> Is it even possible to do this in Protégé?
>
> Thanks!
>
> Peter
>
>
> ___________________________________________________________
> This email has been scanned by MessageLabs' Email Security
> System on behalf of the University of Brighton.
> For more information see http://www.brighton.ac.uk/is/spam/
> ___________________________________________________________
> _______________________________________________
> protege-owl mailing list
> protege-owl <at> lists.stanford.edu
> https://mailman.stanford.edu/mailman/listinfo/protege-owl
>
> Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
>
> ___________________________________________________________
> This email has been scanned by MessageLabs' Email Security
> System on behalf of the University of Brighton.
> For more information see http://www.brighton.ac.uk/is/spam/
> ___________________________________________________________
>
> ___________________________________________________________
> This email has been scanned by MessageLabs' Email Security
> System on behalf of the University of Brighton.
> For more information see http://www.brighton.ac.uk/is/spam/
> ___________________________________________________________
_______________________________________________
protege-owl mailing list
protege-owl <at> lists.stanford.edu
https://mailman.stanford.edu/mailman/listinfo/protege-owl
Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03