[Modeling] An Agent UML Profile

James Odell email@jamesodell.com
Tue, 24 Jun 2003 09:21:06 -0400

On 6/24/03 4:07 AM, "Dr. Hong Zhu" indited:

> It seems that you have already had a 'core UML 2.0', while I am trying to
> figure out what people in this mailing list would define the core.

One of the primary philosophies of the FIPA Modeling TC is: "Instead of
reliance on the OMG's UML, we intend to reuse of UML
wherever it makes sense. We do not want to be restricted by UML;
we only want to capitalize on it where we can. The general philosophy,
then, is: When it makes sense to reuse portions of UML, then do it;
when it doesn't make sense to use UML, use something else or
create something new."

After twenty-five years of metamodeling engineering, my experience is that
you don't want to continue to throw the whole thing up in the air and start
again.  Based on the experience of other TC members, this is why the
Modeling TC decided to use the UML 2.0 metamodel "wherever it makes sense."
It was also the sense of the TC in Palermo that the following approach would
be used:

1) Specify those metamodel constructs that are needed to support agents,
reusing what makes sense from the UML 2.0 metamodel.

2) Define an AUML profile on UML 2.0.  A Profile enables metaclasses from
existing metamodels to be extended to adapt them for different purposes.
This includes the ability to tailor the UML metamodel for different
platforms or domains.  The profiles mechanism does not allow for modifying
existing metamodels.  Rather, the intention of profiles is to give a
straightforward mechanism for adapting an existing metamodel
with constructs that are specific to a particular domain, platform, or
method. Each such adaption is grouped in a profile.  It is not possible to
take away any of the constraints that apply to a metamodel such as UML using
a profile, but it is possible to add new constraints that are specific to
the profile. The only other restrictions are those inherent in the
profiles mechanism; there is nothing else that is intended to limit the way
in which a metamodel is customized.

The result, then, would be an Agent UML Profile.  Such an approach would
enable us to reuse/extend already-existing mechanisms available in UML
development tools -- which will hopefully make our task easier, better, and
So, this is the approach we thought made sense in Palermo.  The Modeling TC
can change this at any time.  But, until then, I think we should proceed in
this matter.  If any of you would like to change this approach, then let's
discuss it now before we get much further.  Any thoughts?