Wednesday, August 8, 2007

The problem of internet

Probably, it is too fast for me to share about the problem of agent-based technology in internet before I explain more detail about agent-based technology itself. However, I have already written :D. So, this is my view about this problem.

Currently, internet is almost entirely driven by human interaction; human decide when to buy something, how much they are willing to pay, and so on. But in principle there is no reason why some internet process can not be automated by intelligent agent as the non-web based application. It means that some decision making of users can be placed in the hands of agents.

An agent is capable of flexible and autonomous action in a dynamic environment. In the sense that the new agent-based technology paradigm causes a re-evaluation of the very nature of computing, computation and computational system through concepts. It means that agents need to be able to engage in interaction, to negotiate, to make pro-active run-time decision and to allocate and schedule resources across the diverse competing demands places on infrastructure and systems. A truly effective internet agent needs to be able to work for the user when the user isn't directly in control. In such systems the internet agent varies its autonomy based on factors like costs, the resources needed, or other variables such as softgoal or non-functional requirements that the user might wish to control.

However, enabling autonomy is a difficult programming task, particularly because it is very dependent on features of the area in which a program is operating. For human agents the level of autonomy is clearly defined, sometimes by law, sometimes by customs that have grown up over many years. For internet agents it is much less clear. It is even unclear whether the variation among tasks will be high or low for internet agents. For example, it seems unlikely that an agent helping find, order and download physics papers would be much different from one in biology.
In the current situation, an internet agent with predetermined pages to visit is quite limited. Thus, a truly useful agent should be able to adapt its behavior based on a combination of user feedback and environmental factors.

For an agent to be capable, it must be able to take action in some sort of world. The difference between an agent and an (internet) advisor, is that the agent not only provides advice, but also provides a service, the ability to do things on the Web without you needing to know the details. Unfortunately, the current state of the art is limited by the need to know much about the specifics of the internet sources the agent will interact with. For example, suppose you want a paper from some particular physics journal, but the journal charges for it. If you want an internet agent to be able to download this paper for you, it would need to know where on the page the price is, where it communicates your credit card number, in what formats the various pieces of information about you need to be put, etc.

Many researches believe that the contents of the websites should be understood by the machine just like we understand how to read the meaning of the websites so then the agent should work in the higher level based on the information that machine understands about the website.Then, I believe that there is no way agent-based technology will work properly if there are no such machines that intelligently be able to reason the knowledge described in the websites.

Tuesday, August 7, 2007

the agent-based technology

Agent-based technology is one of the most vibrant and important areas of research and development to have emerged in information technology in recent years. The prove can be seen in the AgentLink, the Europe community of many major universities and companies in Europe researching about agent-based technology.Alos, among the USA’s 16 “Grand Challenges” are the following relevant to agent technologies: knowledge environments for science and engineering; collaborating intelligence; integrating human with intelligent technologies; and managing knowledge intensive organization in dynamic environment (Interagency working group,2003)

Intelligent agent represents a new way of analyzing, designing and implementing complex software system. For agent-based technologies, the objectives are to create systems situated in dynamic and open environments, able to adapt to these environments and capable of incorporating autonomous and self-interested components. Agent-based systems provides concrete advantages such as :improving operational robustness with intelligent failure recovery, reducing sourcing costs by computing the most beneficial acquisition policies in online market and improving efficiency of manufacturing processes in dynamic environments. In particular, the characteristic of dynamic in which for example, heterogonous systems must interact, span, organizational boundaries and operate effectively within rapidly changing circumstances and with dramatically increasing quantities of available information. .

An agent is simply another kind of software abstraction, an abstraction in the same way that methods, functions, and objects are software abstractions. Let’s compare it, an object is a high-level abstraction that describes methods and attributes of a software component. An agent, however, is an extremely high-level software abstraction which provides a convenient and powerful way to describe a complex software entity. Rather than being defined in terms of methods and attributes, an agent is defined in terms of its behavior. This is important because programming an agent-based system is primarily a matter of specifying agent behavior instead of identifying classes, methods and attributes. It is much easier and more natural to specify behavior than to write code. Below is the explanation on how agents can be distinguished to objects.

The first difference between agents and objects is in the degree to which agents and objects are autonomous. They decide for themselves whether or not to perform an action on request from another entity. An object must make methods available to other objects to invoke, then they can do whenever they wish so then the object has no control over whether or not that method is executed. An object has to make methods available to other objects, or else we would be unable to build a system out of them. It means that if we build a system then we design an object and this object makes method available for other then we assumed that they share a “common goal”. However, in agent-based system no such common goal can be assumed. We can not say that because agent j execute action a then agent i will also execute action a because of the action of agent j – a may not be in the best interest of i. One must think that agent is more like requesting actions to be perform. If j request I to perform a, then I may perform the action or it may not. In object-orientation, the decision lies with the object that invokes the method where in the agent case the decision lies with the agent that receives the request. So, it can be summarized in the following slogan : Object do it for free; agents do it for money.

The second difference is with respect to the notion of flexible autonomous behavior such as reactive, pro-active, and social. The standard object-oriented programming model does not integrate about how to build system that combine these types of behavior. The third distinction is that agents are each considered to have their own thread of control where in the standard object model there is a single thread of control in the system. The standard object oriented programming do not include the idea of autonomous entities such as agent.

For the usage of its usage in the application, the agent-based technology can be grouped into three categories, according to the scale which they apply :

- organizational-level : The technologies and techniques relates to agent societies as a whole and also the issues of the organizational structure, trust, norms and obligations and self-organization.

- Interaction-level : technologies and techniques that concern the communications between agents for example communication language, interaction protocol, coordination, negotiation and resource allocation mechanism

- Agent-level : The technologies and techniques concerned only with individual agents for example procedures for agent reasoning and learning. In detail, the concern relates to heterogeneity of agents, failure handling and recovery and societal change.

Sophisticated software agents can be very difficult to build if we are building them from scratch. One will need specialized skills and knowledge in a variety of areas including agent architecture, communications technology, reasoning systems, knowledge representation, agent communication languages and protocols. If we want to add machine learning or machine planning capabilities, we will also need skill in these areas as well. If we don't possess these specialized skills and knowledge, we should use an agent construction toolkit. Agent construction toolkits allow software developers without agent expertise to quickly and easily build software agents. With the agent-based approach, we can implement agents with sophisticated intellectual capabilities such as the ability to reason, learn, or plan. In addition, intelligent software agents can utilize extensive amounts of knowledge about their problem domain. This means that the underlying agent architecture must support sophisticated reasoning, learning, planning, and knowledge representation.

Monday, August 6, 2007

Agent versus Object

Hi, everybody.

I read about how the impact of the agent-based technology probably will be not as much as the impact in the object orientation in the terms of the mainstream. The article with the title "Agent Technology: Computing as Interaction" described the challanging problems that agent-based technology will have to handle. This article was written by Michael Luck, Peter McBurney, Onn Shehory, Steve Willmott and the agentlink community . Below is what they said about the problems.

In attempting to understand the likely future development of agent-based computing, and its pathway to adoption, one might usefully consider the history of object-oriented technologies. It started from the Simula languages in 1962 when the term of "object oriented" itself was introduced by Alan Kay in 1970. Then there came the development of Smalltalk in 1973 and C++ in 1983. Furthermore, the developments were followed with the Object Management Group being formed in 1989, then the Java was announced in 1991, CORBA in 1991, UML in 1994 and ANSI C++ in 1998. This is an extended period over which the technologies and techniques involved came to maturity and to wide scale adoption.

Agent and object technologies are both essentially disruptive technologies that provide more effective and flexible techniques for software and its development. To understand how the future of agent-based technology may progress, we need to look to the differences between these technologies. Firstly, object technology began in an era in which computing as a discipline and as an industry was relatively immature, and limited in scope. The techniques, technologies, and standard were still not common for the development of the software as is the case now. The changes required for the object to be existed was far less substantial and challenging than it is now for agent technologies.

Secondly, while there are still many problems to be tackled in computing, the degree of improvement, in terms of productivity or efficiency, to be realized from specific advances decreases as the general level of maturity in computing increases. Thus, while there was no step change arising through object orientation, the gradual improvement in the state of software is likely to be even less marked with agent technologies. Thirdly, the current environment is much more heterogeneous also more distributed and diverse than at any point in the previous software development, and it will continue to more evolve in this manner. The result is a further development of standards, techniques, methodologies and multiple vested interests and corporate initiatives that must be integrated, overcome or otherwise addressed for broad acceptance of new paradigms. Investment in new technologies at this point of the IT adoption cycle presents a much more challenging problem than ever before. For all these reasons, it is likely that no technology in the near future will have anything like the impact of object orientation.

Does the article above just tell us that agent-based technology will fail in the future? From what I believe , it will definetely not true. Agent-based technology will bring us to the more efficient and more machine readable system. It will make the less intervention of human in processing a problem in order to achieve its certain goals. However, the article above told us that it will be more challenging problem to be solved when we want to have our system with agent-based capabilities in it. One obvious example is by imagining how huge and the semi-structured data in the internet will be processed using the agent-based technology. It will be a very challenging work to do that. Later, I will discuss also about many researchers who also think about how to include the agent in the internet.


Monday, May 14, 2007

When Object Orientation is not enough

Object orientation is such a powerful paradigm for software engineering. With this technique, one is able to rely heavily on the modeling of processes such as activity diagrams, event sequence charts, etc. It means that there would be a model of conditions that we would or should know what will happen through the processes. If we look on more detail, the paradigm of object oriented is concerning a development strategy based on the concept that systems should be built from a collection of reusable components called objects. Another explanation about how powerful OO is described by wikipedia. Object-oriented analysis and design (OAD) applies object-modeling techniques to analyze the requirements for a context — for example, a system, a set of system modules, an organization, or a business unit — and to design a solution. Most modern object-oriented analysis and design methodologies are use case driven across requirement, design, implementation, testing, and deployment.


As mentioned above, current technique relies heavily on the modeling of processes. Eric Yu describes that the emphasis of the current model (ex. Object oriented) has been on the capture, analysis and specification of what users and clients want in a system [1]. Consistency, completeness, and validation of requirements have been the dominant objectives. However, real-life is not as simple as that. The nature, characteristic and interaction of today’s and tomorrow’s systems and their environment have become more varied ,dynamic, initiative, complex- distributed, unpredictable, heterogenous, and highly interactive. If I may resume all of above words , it would be : to be much more FLEXIBLE. Also when a system or environment will only have little control and knowledge, it is hard to anticipate all contingencies and be able to know in advance what responses are appropriate. If we look an example in supply chain management, unexpected events can cause delays, wastages, and loss of revenue or customer


[2] explains that current system (ex : OO) produces outputs from inputs, either as pre-defined processes or as reactive responses to control signal or events. Complexity and scalability is primarily dealt with by composition or decomposition, with the behavior of the whole being determined by behavior of the parts together with compositional rules. Those aspects could be seen as a drawback when a system and its environments require autonomy, then above assumptions no longer hold. With autonomy, a entity can choose to cooperate, or not, to varying degrees, and on their own terms or again… can be more flexible J. Thus, a social paradigm is needed to cover the much richer kinds of relationships that exist in such settings rather than sticking with producing outputs from processes based on the simplified entities and environments.


Now, let's play with words :).
The current modeling encapsulates identity (“who”), state (“what entities exist, what activities occur, and what relationships hold”), and passive behavior (“how, if invoked”). Sometimes, those aspects are not enough because it is also important to encapsulate multiple degree of freedom in activity and interaction to know about the “why” aspect. Furthermore, realizing why the entities exist, occur or hold will extend the quality of the business process or, more specialized, the social organizational setting which is made of social actors having (mostly different) goals, abilities, belief, commitment and interests [1]. It can be said that an entity knows why he performs an action and even the “motivation” of an action will be provided based on his goals and beliefs. However, it will also allow having a wrong belief about the world. For example, when we model a business process, we will describe how work entities progress from a process activity to other process activities. In this new model, new aspect is included which is to describe how the actor performing these step relate to each other intentionally, such as in terms of goals, belief, ability and commitment.


I referred to the words flexibility several times.
So, what is flexibility ? (in the terms of the limitation of OO)
[3] define the notion of flexibility is further expanded to incorporate:
- responsiveness : respond to the changes of the environments
- pro-active : do not simply act in response to their environment, they are able to exhibit goal-directed behavior by taking the initiative
- social : should be able to interact in order to complete their own problems and help others with their activities
- autonomy : operate without the direct intervention of humans or others and can not all be assumed to be fully controllable in their behavior due to confilicting interests and non- public individual preferences


In conclusion, Object oriented are inadequate to handle the intentional of the entities and social dimensions, to sense in the incomplete environments and to operate with less intervention from human. Many researchers studied about the limitation of the object orientation and came with new ideas concerning "software agent". They claimed that The software agent can handle many of the problem which OO suffers. They came with the name of distributed artificial technology, agent-based system, multi-agent system, and so on.

For me, the question remains : How powerful is the agent?

Source :

[1] E. S. K. Yu and J. Mylopoulus, From E-R to "A-R" - Modelling Strategic Actor Relationships for Business Process Reengineering

[2] E. Yu, Agent-Oriented Modelling, Software Versus the World

[3] B. Henderson-Sellers and I. Gorton, Agent-based Software Methodologies




Friday, April 27, 2007

the abstract

Before I start to talk about the agent-based technology stuff, let's talk about my project in the thesis. I will explain it via the abstract of my thesis. Here it is.

"SNet is a prototype environment supporting the representation and dynamic evaluation of designs for inter-organizational networks by integrating an extended version of the i* formalism for static network modeling with ConGolog, a logic based action language. The previous work of SNet has the limitation to model agents evolving over time in the simulation run time. The assignment of roles to agent is statically implemented in the design of the system. This work proposes an additional feature for an agent to allow agents to dynamically perform in different levels of his state during simulation by specifying the evolution through roles and the dependencies towards other network members in the simulation. Furthermore, this model will be translated to the ConGolog framework for the implementation of agent evolution in the simulation. In this study, examples of the application domains will be derived from real world application domains such as stages of entrepreneurs, e-democracy and software process modeling."


As you can see above, I added a new feature of SNet. SNet is developed by my supervisor Dominik Schmitz from informatik 5 faculty Informatik RWTH Aachen university Germany. My thesis work was about how agents are able to have dynamic assignment of roles. It means that there should be a model, agent evolution model, to build how an agent may acquire/lose roles, what is required to make an agent have the capability to evolve through roles, and to which roles an agent may acquire a new roles. And the next important step is how the simulation is added by the capability of agent evolving during simulation based on the agent evolution model.


Then, what is the difference from the previous SNet. The simple answer is that with this new feature, a user doesn't have to stop the simulation, change the role of the agent like it is intended and finally continue the simulation without any guilty feeling :).

So, the user just have to build the agent evolution model as described above, and implement the simulation based on the model, so then an agent in the simulation will change roles automatically based on the requirement in the model.

Does it mean there is no human interference for the decision of agent to evolve during simulation. MMhhh.... If you look to above reason... yes, there is no human interference during simulation. But, there are some special cases where human will also interfere in the decision of agent evolving.

But, I will not discuss it now because you will get bored with this. I will discuss it later when I write about a related method in the agent-based technology. So, Let's talk about agent!! and their contributions. Let's the quest begin.

Wednesday, April 25, 2007

Introduction

Hi everybody,

My name is Aristama Purna Wisoka Roesli. I recently graduated from RWTH Aachen university Germany for master of science. I have terrific time in Aachen when studying in my master degree, espcially when working for the master thesis.

I gained a lot of knowledge in the area of agent-based technology or multi-agent system when researching data during my thesis. Too many data, probably, so that many of the related works that I read were not really related to my topic of the theses. There were many valuable knowledge that I did not be able to write in my thesis because it's not match with the project of my thesis

Oops... Did I say something redundant above. Please remind me. Because that is my bad habit :).

OK, then.... I want to know more detail about those not-really-related related works because I am sure I will get some ideas from those concepts. Mmmhh... what about try the same way like when researching the materials of my thesis. Writing!!! Yap, that seems the easiest way to do.... escpecially in the blogspot... :). Sorry, not to have the own website for this... because my concern now is to know more detail about the approaches in the agent-based technology area. Probably , later, I will build a website for this... I hope.

And, it will be very nice if you as the reviewer don't hesitate to give comments or even critics. If you can give me new ideas. I will be very appreciate it.

So, enjoy your stay.