Search for:




  The development of software agent is the recent trend in both distributed computing research and geographic information science (GIScience). The page will provide background information of software agents and future trends of development. Based on those information, GeoAgent project is to facilitate geo-referenced data searching, mining, filtering and sharing. (Project details please refer to the Project page.)  

The topics the page include:
The development of the software agent.
· The definition of the agent.
· The attributes of the software agent.
The classification of the software agent.
The application of GeoAgent.

Why Software agent?

Advances in technology in the past decade have led to a shift in the performance limitations that previously held back computer systems. For example  communication between geographically distant machines was constrained by the cost and availability of the bandwidth needed to transfer high volumes of data reliably.

Recent technological advances and the widespread adoption of the Internet have ensured that these performance bottlenecks no longer hamper the performance of software applications. As a result there is an increasing performance expectation amongst users and developers of today’s software. Machines are now expected to be able to carry out considerably more complex tasks than ever before, in open environments like the Internet where issues as distribution, dynamism and openness are prevalent.

Driven by the desire to address the issues cited above, some developers are turning to fundamentally new approaches to software development. One increasingly cited alternatives is so-called software agents, which "knows" users' interests, engaged in a cooperative process between the users and other machines to communicate and perform tasks to meet user's goals. (Maes, 1995)


What's software agent? 

There are a lot of discussion on what's agent, and what difference between the software agent and computer program, for instance:

The MuBot Agent [ http://www.crystaliz.com/logicware/mubot.html] "The term agent is used to represent two orthogonal concepts. The first is the agent's ability for autonomous execution. The second is the agent's ability to perform domain oriented reasoning."

The AIMA Agent [Russell and Norvig 1995, page 33] "An agent is anything that can be viewed as perceiving its environment through sensors and acting upon that environment through effectors."

The Maes Agent [Maes 1995, page 108] "Autonomous agents are computational systems that inhabit some complex dynamic environment, sense and act autonomously in this environment, and by doing so realize a set of goals or tasks for which they are designed."

The KidSim Agent [Smith, Cypher and Spohrer 1994] "Let us define an agent as a persistent software entity dedicated to a specific purpose. 'Persistent' distinguishes agents from subroutines; agents have their own ideas about how to accomplish tasks, their own agendas. 'Special purpose' distinguishes them from entire multifunction applications; agents are typically much smaller."

The Hayes-Roth Agent [Hayes-Roth 1995] Intelligent agents continuously perform three functions: perception of dynamic conditions in the environment; action to affect conditions in the environment; and reasoning to interpret perceptions, solve problems, draw inferences, and determine actions.

The IBM Agent [ http://activist.gpl.ibm.com:81/WhitePaper/ptc2.htm] "Intelligent agents are software entities that carry out some set of operations on behalf of a user or another program with some degree of independence or autonomy, and in so doing, employ some knowledge or representation of the user's goals or desires."

The SodaBot Agent [Michael Coen http://www.ai.mit.edu/people/sodabot/slideshow/total/P001.html] "Software agents are programs that engage in dialogs [and] negotiate and coordinate transfer of information."

The Brustoloni Agent [Brustoloni 1991, Franklin 1995, p. 265] "Autonomous agents are systems capable of autonomous, purposeful action in the real world."

As in the Webster’s New World Dictionary, agent is defined as: A person or thing that acts or is capable of acting or is empowered to act, for another. 

Though by far there is no solid definition for software agent, we could describe software agent as: A computing entity that performs user delegated tasks autonomously, which outlines the major characteristics of the agent, one is it does something, the other is it acts on behalf of some one or something.


What's characteristics of intelligent agent?

·  Delegation: The agent could perform a set of tasks on behalf of a user. Of course, the tasked should be approved by the user before it is executed.

· Autonomy: The agent could perform a set of tasks without the user's initiation, notification and confirmation, which could be activated by a fixed the time, such as the nightly backup, or could be activated by a certain event, such as after checked the mail boxed, go to the agenda. 

· Communication: The agent could interoperate with humans, other agents, legacy systems, and information sources. could interact with the users to receive tasks or to specify the instruction through the agent-user interface, and could  collaborate together in communities to achieve common goals.

·  Intelligence: The agent could monitor its environment to response or perform the task autonomously, and could have the ability to inference, reasoning to make appropriate decision of operation, and could sometimes learn from the reactions or interaction with the user to improve itself, could dynamically adapt to and learn about their environment.  They are adaptive to uncertainty and change.

·  Mobility: The agent could transport itself from one machine to the other, across different architectures and platforms, taking advantages of the Internet.


What's the different kinds of agent?

There are lots of different kinds of classifications. Agents can be standalone agents (e.g.,personal assistant like a travel agent, wizard, or chatbot) or members of a multiagent system (MAS). According to Pattie Maes, who is the pioneer in the software agent research, different dimensions decide the characteristics of the agent.

· According to nature of the tasks the agent would fulfill, there are:

User agent: specially designed to assisted user, or some time on behalf of user to act. The agents should be capable of communicating with the user, understanding user's interest, preference and habits, etc. For instance, personal news editor, personal web guide, etc. 

Service agent: apply the tasks in a more general background, such as the operation system agent, information retrieval, web indexed, etc.

· According to the nature of intelligence: there are:

User programmable agent: user provide rules and criteria directly. The rules and criteria could be regarded as the knowledge base for the agent. The approach is very simple, however, would require necessary programming techniques of the user. For instance, the OVAL is the kind of agent, based on the rules specifying actions (create, move, delete, etc.), trigged by the events and could run automatically (OVAL)

AI engineering agent: created by the traditional, knowledge-based techniques. The system is very complex and programmed by a knowledge engineer. For instance: the CHORIS that support emergency management during catastrophes is a knowledge-based agent, which had a model of the users and the tasks that needed to be performed by a specific users based on their role in the emergency management process.

Learning agent: self-programmable. Patterns in user’s actions and among users are detectible and exploitable. It is smart on several key fields which user are concentrated on. Agents of this kind are such as Maxims, which is E-mail filtering application employing agents that collaborate to overcome the problem of having to "learn from scratch.".

· According to the location of the agents, there are:

Stationary agents: embedded into the client computer or server.

Mobile agents: Mobile agents are software abstractions that can migrate across the network (hence mobile) representing users in various tasks (hence agents). This kind of agent could reduce the network traffic, and move to the available dataset, etc. 


What are GeoAgent?

Geographic information is the information or data describe the location, place, which is georeferenced, that is coded to represent the location as well as the spatial relationship between those objects in the real-world. So, compared with other information, geographic information is quite unique. Besides, with the rapid development of the Internet, which allows the distributed services, geographic information services will be further developed  toward or fit into the requirement of distributed and heterogeneous environment. In that case, GeoAgents will be developed deploying the characters of agent and dealing especially with the georeference data in order to facilitate the geographic information retrieval, analysis as well as the promote the geographic information services.



Copyright©2002, All Right Reserved

Department of Geography, San Diego State University