|
|
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)
[TOP]
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.
[TOP]
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.
[TOP]
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.
[TOP]
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.
[TOP]
|