[Modeling] Modeling an Agent Class- register your opinion
Dr. Hong Zhu
Mon, 16 Jun 2003 11:34:19 +0100
I have read your 2002 paper that compares objects and agents. I found that
the paper is very interesting and I believe that I share the some ideas with
you, and I agree with your conclusions. Please also see my papers below,
where I have also discussed the differences and similarities between them
from a software engineering point of view. In these papers, I discussed the
differences between object orientation and agent orientation in the
encapsulation degree, the concepts of environment, and dynamic execution
 Zhu, H., SLABS: A Formal Specification Language for Agent-Based Systems,
International Journal of Software Engineering and Knowledge Engineering,
vol. 11. No. 5. (2001) 529-558.
 Zhu, H., The role of caste in formal specification of MAS, Proc. of
PRIMA'2001, Springer LNCS 2132, July 2001, pp1~15.
In the email, I quoted you for the property of agents that can say 'go' and
say 'no'; sorry for having not cited your paper in this informal discussion
in the mailing list. On the bases of understanging what does it meant by
agents' saying 'go' and 'no', I would like to make one step further to
distinguish methods from actions. Put it shortly, methods are those that an
entity who owns it cannot say 'no' when received a message to call it, while
actions are that the owner can say 'no' when received a message that
explicitly request the execution of it and can also say 'go' to execute it
without the trig of a message. The consequences of executing a method is
also different from executing an action. Executing a method only changes the
state of the entity, while taking an action will generate an event that
other entity can observe. An action can also be public, which generates an
event that publicly visible by all entities in the environment. A private
action generates an event only visible to the internal entities. In
contrast, the execution of a methods does not generate any events. I believe
that having actions is a key characteristics of agents. Of course, there are
also other differentiation features.
One thing that have botherred me very much for a long time is that what we
actually meant by OO when we discuss the differences and similarities
between OO and agent-orientation. You (and also other peoples) have
challenged me many times when I said something is a feature of OO or not a
feature of OO by saying that this is not true in UML or some particular OO
language. For example, when I assert that OO does not have dynamic
classification, you reminded me that it is not true in UML. I didn't answer
such challenges directly before. Now, I would like to quote your JOT 2002
paper to answer this. When I say OO, I meant 'traditional OO', 'convetional
objects ... (that are) the typical usage and direct support with OO
languages', 'most OO languages ... (that) directly support ...'. I am glad
to see that you have come to the same conclusions in your JOT 2002 paper as
me on many features of OO, such as dynamic classification, passiveness, etc.
In particularly, I noticed that you have gone much further than me in the
discussion of the differences in the philosophy of OO and Agent-oirentation.
In my opinion, OO should be understood from this philosophical level rather
than any stretched and extended way. Moreover, may I say that the change
from OO to agent-orientation is much deeper than just a change of notations?
In my opinion, it is a change to the philosophy of the construction of
computing software systems. This change is consistent with the emerging of
service oriented computng such as web services.
Having said these about OO, the question is: Do we have a choice of
strategies to the design of AUML?
Choice 1: Come back to the simple and nice traditional model of
object-orientation and then add on agents into the model. Of course, we are
not going to throw out the baby (i.e. the traditional OO) with the
Choice 2: Add on top of existing UML 2.0, which have already extended
tranditional OO model very much, with agent concepts.
In my opinion, the choices between such strategies are vital to the outcome
of the AUML and deserves a discussion in this mailing list.
----- Original Message -----
From: "James Odell" <email@example.com>
To: "ModelingTC" <firstname.lastname@example.org>
Sent: Sunday, June 15, 2003 11:12 PM
Subject: Re: [Modeling] Modeling an Agent Class- register your opinion
> On 6/13/03 4:31 AM, "Dr. Hong Zhu" indited:
> > (1) Methods of objects can be called by every entity in the system,
> > objects and agents), but for agents, they have a set of actions, which
> > not to be called by anybody else, it decides when to take an action. It
> > say 'go' to take an action, and it can also say 'no' if someone wants it
> > 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
> 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.
> > have more dynamic interaction relations as in social behaviour. The
> > part-whole relationship between agents are also different, as I have
> > an email the day before yesterday. I paste it below for your
> > 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
> > (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
> > independent. Having two whole-part relations is inadequate for
> > agent-orientation due to agent's autonomous behaviour. For example, we
> > a agent which represents a department in a university, and a number of
> > agents as members of the department. When the department is destroyed,
> > members as individuals still exist, but their class membership as the
> > of the department are lost. This is different from object's agregation,
> > 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
> > Due to the autonomy of agents, this new type of whole-part relationship
> > 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
> > 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
> 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
> objects. Be care that you do not throw out the baby with the bathwater.
> -Jim Odell
> Modeling mailing list