[Modeling] Modeling an Agent Class- register your opinion

James Odell email@jamesodell.com
Sun, 15 Jun 2003 18:12:27 -0400

On 6/13/03 4:31 AM, "Dr. Hong Zhu" indited:

> (1) Methods of objects can be called by every entity in the system, (include
> objects and agents), but for agents, they have a set of actions, which is
> not to be called by anybody else, it decides when to take an action. It can
> say 'go' to take an action, and it can also say 'no' if someone wants it to
> take an action. Therefore, the semantics of methods and actions are
> different. If 'Agent Class' inherits 'Class', it will have to supress
> methods, but introduce actions.

I may agree, but the reasons you gave are not compelling for me.  Why can't
an object do the same thing?  If you send a message, the object can say
"no."  Also, "a set of actions, which is not to be called by anybody else"
is called a private method.  For some other arguments, you might want to
look at the following journal article:
> (2) Association relations between agents and objects are different. Agents
> have more dynamic interaction relations as in social behaviour. The
> part-whole relationship between agents are also different, as I have said in
> an email the day before yesterday. I paste it below for your convenience:
> The aggregation relationships between the whole and part is different in
> agent classes from that in object
> class. In object orientation, there are two types of whole-part relations:
> (1) composition, in which the lifespan of the whole and the part is the
> same, and (2) aggregation, in which the lifespan of the whole and part is
> independent. Having two whole-part relations is inadequate for
> agent-orientation due to agent's autonomous behaviour. For example, we have
> a agent which represents a department in a university, and a number of
> agents as members of the department. When the department is destroyed, the
> members as individuals still exist, but their class membership as the member
> of the department are lost. This is different from object's agregation, in
> which an object as a part of agregation exists when the whole object is
> distroyed, however, it the class membership of the object does not change.
> Due to the autonomy of agents, this new type of whole-part relationship will
> be common in agent oriented modelling. Therefore, we need an additional
> whole-part relation for this, which is called 'associate' relation in my
> language CAMLE (Caste centric agent modelling language). Therefore, I think
> we need a new classifier.

Sorry, I'm a bit lost here.  I understand aggregation and composition very
well, but I do not understand why they cannot be used for agents.  If I read
your discussion correctly, it seems to hinge on your assertion that "class
membership of the object does not change."  In UML, this is untrue.  You
might want to start with looking at the definitions for "dynamic
classification" and "multiple classification."  Furthermore, it might be
true for some OO languages and environments, but not all.  I believe that
Kee, Kappa, and CLOS supported both of these notions.

>From your prose, you seem to have an strong desire to distance agents from
objects.  Be care that you do not throw out the baby with the bathwater.

-Jim Odell