ALIAS Integrates Amzi! and Java
in an Intelligent Application
for Using Distributed Knowledge
Imagine a pool of robots in a factory. The production manager
prefers to assign the robots high-level tasks and let them decide the
best way to fulfill them. That is, the production manager wants the job
done, without concerning himself with the details of how the job is done.
Since each robot has its own intelligence and knowledge base, one can
think of the knowledge as being distributed among the robots. By leaving
the execution to the robots, they have to combine their knowledge to agree
upon the best way to do the job.
Putting this concept to work, the AI group in the Computer Science Dept.
at the University of Bolongna, has developed ALIAS (Abductive LogIc Agent
ALIAS leverages the power of Amzi! Prolog + Logic Server, integrated
with Java, to implement an architecture for creating robot-like intelligence
that is distributed.
Taking the robot example further, suppose that the task is to diagnose
a problem in the factory. Using the AI method of abductive reasoning,
in which the cause of a problem is determined based on symptoms or observations,
the robots could diagnose the problem. But they have to work together
to do so, sharing their knowledge.
Robots, in the AI world, are called agents. These agents, like robots,
could perform the abductive reasoning on their distributed knowledge base
to solve the problem.
ALIAS is an architecture for intelligent agents that have abductive
reasoning capabilities. The ALIAS architecture supports these agents so
that they can perform distributed diagnosis.
- An Architecture for both a single agent and for the entire agent
system (all the agents acting as a whole)
- A formally defined language with syntax and semantics
- An environment for testing the implemented algorithms and programs
for distributed abduction.
The ability of Amzi! Prolog + Logic Server to integrate with Java
gives ALIAS the benefits of both.
Typically, an intelligent agent application could take advantage of two
types of programming language paradigms:
- Declarative (like Prolog)
- Imperative (like Java)
A declarative language like Prolog handles the business rules and logic.
An imperative language like Java is well suited to GUI applications and
agent-to-agent communication issues.
Therefore, ALIAS was implemented with both Prolog and Java to leverage
the best attributes of both languages. Specifically, the implementation
of ALIAS consists of a set of Java classes that define ALIAS agents along
with other classes, such as a blackboard class that defines a place where
agents can put the knowledge they want to share and use for coordination
The Java application calls Amzi! Prolog + LogicServer which in turn implements
the Prolog engine that the agents use to perform abductive reasoning.
Featuring the ability to allow multiple Prolog engines to run within
a Java process, Amzi! Prolog + Logic Server fits the bill for ALIAS.
One of the most important reasons that convinced University of Bolongna's
computer scientists to select Amzi! Prolog + Logic Server is that it allows
more than one Prolog engine to run within a Java process. In other words,
Amzi! Prolog permits the creation and management of multiple reasoning
threads at the same time within a single agent.
DEIS-LIA - Università di Bologna
Viale Risorgimento 2, I-40136 BOLOGNA
tel +39 051 209 3087; fax +39 051 209 3073
Contact: Paolo Torroni
Copyright ©1995-2006 Amzi!
Amzi!, KnowledgeWright and WebLS are registered
trademarks and Adventure in Prolog, Logic Server, Logic Explorer, Adventure
in Prolog and Subscription Plus are trademarks of Amzi! inc.