Let me try another definition:
Conjecture #2:
If o1 is-like o2 then
1- o1 and o2 are of the same class (necessary condition)
2- For all NON-PART, IS-LIKE attributes (att)
value(o2.att) = value(o1.att) unless o2.att was explicitly assigned
3- FOR all PART, IS-LIKE, SINGLE-VALUE attributes (att)
if o2.att is an object
then value(o2.att) plays-role value(o1.att)
if o2.att is NOT an object
then case 2- applies.
Note that nothing is said about the is-like of the values.
4- FOR all PART, IS-LIKE, MULTIPLE-VALUE attributes (att)
FOR-EACH (val-1) in o1.att
EXISTS (val-2) in o2.att
SUCH-THAT val-2 plays-role val-1
Hmm, I guess 3- is just a special case of 4-, which is good, because it is
what I intended.
>
> >Now, if we used named values, and p4 happened to have the same name as p3,
> >then the diagram should look like this:
> >
> >foo1 -- pos --> p1, p2 p4
> > | ^ ^ ^
> > | ^ ^ ^
> >foo2 -- pos --> p11 p21 p3
>
>
> This completely blows my mind :-) In fact, it sounds like more of a behavior
> in the current implementation than something that one would consciously do.
> Why does it establish the plays-role relationship only? Are there any examples
> of when one would want to do this?
>
This is so that the order in which operations are done does not affect the end
result. I think it is important that the system be order-independent, and so
the above statement must be true.
Pedro Szekely
USC/ISI, 4676 Admiralty Way, Marina del Rey, CA 90292
Phone: 310/822-1511, Fax: 310/823-6714
URL: http://www.isi.edu/isd/szekely.html