AN INTELLIGENT AGENT FRAMEWORK IN VRML WORLDS

Similar documents
On Design of 3D and Multimedia Extension of Information System Using VRML

A Robot Recognizing Everyday Objects

Category Theory in Ontology Research: Concrete Gain from an Abstract Approach

1.1 Jadex - Engineering Goal-Oriented Agents

INFORMATICS RESEARCH PROPOSAL REALTING LCC TO SEMANTIC WEB STANDARDS. Nor Amizam Jusoh (S ) Supervisor: Dave Robertson

Adaptive Mobile Agents: Modeling and a Case Study

For many years, the creation and dissemination

COMPARING AGENT ORIENTED PROGRAMMING VERSUS OBJECT- ORIENTED PROGRAMMING

The General Variables Concept: A Simple Step from Single- to Multi-user Environment

A Study on Metadata Extraction, Retrieval and 3D Visualization Technologies for Multimedia Data and Its Application to e-learning

Reasoning on Business Processes and Ontologies in a Logic Programming Environment

Visual Construction of Multi-Agent-Systems according to the AgentComponent Approach and the Run-Design-Time Concept

Agent Language Analysis: 3APL

Trust4All: a Trustworthy Middleware Platform for Component Software

Go to contents 16 Smart Objects:

Exploration of Data from Modelling and Simulation through Visualisation

Representing Symbolic Reasoning

An Intelligent Assistant for Computer-Aided Design Extended Abstract

Infrastructure for Autonomous Mobile Robots Communication and Coordination

Implementing BDI-like Systems by Direct Execution

Models, Tools and Transformations for Design and Evaluation of Interactive Applications

Agent Architectures & Languages. Heikki Helin

The Formal Argumentation Libraries of Tweety

A Meta-Model for Fact Extraction from Delphi Source Code

JOURNAL OF OBJECT TECHNOLOGY

An Agent Modeling Language Implementing Protocols through Capabilities

User-Centred Evaluation Criteria for a Mixed Reality Authoring Application

A Concurrency Control for Transactional Mobile Agents

MPEG-4 AUTHORING TOOL FOR THE COMPOSITION OF 3D AUDIOVISUAL SCENES

Automated Cognitive Walkthrough for the Web (AutoCWW)

Cognitive Walkthrough. Francesca Rizzo 24 novembre 2004

Argonaut: Integrating Jason and Jena for context aware computing based on OWL ontologies

Tools for Remote Web Usability Evaluation

A Freely Configurable, Multi-modal Sensor System for Affective Computing

CONTENT MODEL FOR MOBILE ADAPTATION OF MULTIMEDIA INFORMATION

Annotation for the Semantic Web During Website Development

CyberOffice: A Smart Mobile Application for Instant Meetings

Script for Visualization of Algorithms: Framework for Animation Environment and Composite Structures

Implementation of Process Networks in Java

INTERACTIVE ENVIRONMENT FOR INTUITIVE UNDERSTANDING OF 4D DATA. M. Murata and S. Hashimoto Humanoid Robotics Institute, Waseda University, Japan

Agent-Oriented Software Engineering

A GRAPHICAL TABULAR MODEL FOR RULE-BASED LOGIC PROGRAMMING AND VERIFICATION **

CSC8223 Wireless Sensor Networks. Chapter 3 Network Architecture

Agent-Oriented Programming

Which Role for an Ontology of Uncertainty?

Development of an Ontology-Based Portal for Digital Archive Services

Processing Interaction Protocols in Parallel: a Logic Programming implementation for Robotic Soccer

Real-Time Coordination in Distributed Multimedia Systems

Adaptable and Adaptive Web Information Systems. Lecture 1: Introduction

How useful is the UML profile SPT without Semantics? 1

Research on Construction of Road Network Database Based on Video Retrieval Technology

Ad hoc and Sensor Networks Chapter 3: Network architecture

Fault-Tolerance & Paxos

Fausto Giunchiglia and Mattia Fumagalli

Domain Specific Search Engine for Students

MetaData for Database Mining

Bridges To Computing

Experiences with OWL-S, Directions for Service Composition:

Perspectives on User Story Based Visual Transformations

WebBeholder: A Revolution in Tracking and Viewing Changes on The Web by Agent Community

MPML: A Multimodal Presentation Markup Language with Character Agent Control Functions

POMELo: A PML Online Editor

On the Integration of Text Editing and Version Control

Plexil-Like Plan Execution Control in Agent Programming

6.871 Expert System: WDS Web Design Assistant System

Generic and Domain Specific Ontology Collaboration Analysis

CLAN: A Tool for Contract Analysis and Conflict Discovery

Implementing Software Connectors through First-Class Methods

Honours Project Proposal. Luke Ross Supervisor: Dr. Karen Bradshaw Department of Computer Science, Rhodes University

Framework for replica selection in fault-tolerant distributed systems

Competitive Intelligence and Web Mining:

MaDViWorld Objects Examples and Classification

3.4 Data-Centric workflow

A Learning Based and Vision Guided Robotic Agent Replanning Framework and a Case Study

DYNAMIC CONFIGURATION OF COLLABORATION IN NETWORKED ORGANISATIONS

Inductive Logic Programming in Clementine

FedX: A Federation Layer for Distributed Query Processing on Linked Open Data

Multi-Layered Architecture of Middleware for Ubiquitous Robot

Middleware Mediated Transactions & Conditional Messaging

DEFINITION OF OPERATIONS ON NETWORK-BASED SPACE LAYOUTS

AN OVERVIEW OF SEARCHING AND DISCOVERING WEB BASED INFORMATION RESOURCES

EFFICIENT CLUSTERING WITH FUZZY ANTS

A Web Based Registration system for Higher Educational Institutions in Greece: the case of Energy Technology Department-TEI of Athens

LECTURE 4: DEDUCTIVE REASONING AGENTS. An Introduction to Multiagent Systems CIS 716.5, Spring 2006

Search-Based Software Engineering: 7th International Symposium, SSBSE 2015, Bergamo, Italy, September 5-7, 2015, Proceedings (Lecture Notes In

RATCOP: Relational Analysis Tool for Concurrent Programs

Mining High Order Decision Rules

Dynamic Ontological Support for Qualitative Reasoning in The Knowledge Collective (TKC)

1-1. Switching Networks (Fall 2010) EE 586 Communication and. September Lecture 10

Advances in Databases and Information Systems 1997

WWW Applications for an Internet Integrated Service Architecture

Enhanced Communication Services through Context Integration

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages

Ad hoc and Sensor Networks Chapter 3: Network architecture

Pattern-Oriented Development with Rational Rose

Coursework Master s Thesis Proposal

Ad hoc and Sensor Networks Chapter 3: Network architecture

Offering Access to Personalized Interactive Video

ABSTRACT 1. INTRODUCTION

Creating Virtual Reality Applications on a Parallel Architecture

Transcription:

AN INTELLIGENT AGENT FRAMEWORK IN VRML WORLDS T.Panayiotopoulos, G.Katsirelos, S.Vosinakis, S.Kousidou Department of Computer Science, University of Piraeus, 80 Karaoli & Dimitriou str., 18535 Piraeus, Greece themisp@unipi.gr,{gkatsi,spyrosv,nova}@erato.cs.unipi.gr 1. Introduction Agent-based technologies have been rapidly emerging since the beginning of the 1990s [1-5]. J.P.Muller, [4], states that Agents are autonomous or semi-autonomous hardware or software systems that perform tasks in complex, dynamically changing environments. This means that Intelligent Agents observe the environment, maintain an internal representation of the world, make decisions and perform tasks (executing actions). Planning is also a key issue in many Intelligent Agent architectures. This is reasonable, as planning provides the means for achieving goals given the definition of certain actions. Planning systems view the problem-solving behavior of agents as a sense-plan-act cycle [4]. As B. Hayes-Roth et.al. state, An intelligent agent is a versatile and adaptive system that performs diverse behaviors in its efforts to achieve multiple goals in a dynamic, uncertain environment [6]. Moreover, Intelligent agents technology has presented many applications so far, starting from smart e-mail clients to software for robotics applications [7-9]. On the other hand, the area of Virtual Reality seems to be appropriate for the development of Intelligent Agents applications. VRML, the Virtual Reality Modelling Language, [10], appears very promising as it has abandoned its static modelling style of its first version and moves towards more dynamic modelling techniques with the help of external programming languages like JAVA. As a result, Virtual Reality technology is capable of performing complex behavior [11].

Quite recently an attempt has been made to analyse the role of the underlying model-based semantics for VR modelling and relate it to the behavioural multi-agent architectures [12]. However, this attempt approaches the integration of Virtual Reality with Artificial Intelligence from a theoretical point of view. There have also been remarkable attempts to put an intelligent front-end to Internet applications, such as intelligent interactive systems which are usually implemented with Java applets [13,14]. Therefore it seems that the time has come to integrate the Virtual Reality technology with Intelligent Agents architectures. The experience gained from the areas of temporal reasoning systems [15], temporal planning systems [16] and experimental VRML programming has motivated us towards the area of developing an Intelligent Agent which could observe, decide and act in virtual environments. In this chapter we present an Intelligent Agent architecture which consists of a logical core, i.e. the Logical Agent, as well as a virtual representative, i.e. its Avatar. The chapter is structured as follows : In Section 2 we present the overall architecture of the system. Section 3 introduces the architecture of the Logical Agent, discusses the categories of knowledge represented by the agent as well as its reasoning capabilities. It also explains how the Virtual Reality Management Unit communicates with the Logical Agent and executes the commands posted by it. In section 4 we discuss some implementation issues and section 5 presents a toy example from the maze world. Finally, concluding remarks summarize the main characteristics of the framework. 2. The overall architecture of the Intelligent Agent The Intelligent Agent framework consists of two main layers : the Logical Agent layer and the Virtual World layer. These two modules while they can be viewed as layers at the conceptual level of analysis, they have been implemented as different processes which may be running at two different machines. In fact, the system uses a 2-tier Client/Server architecture, with the Virtual World module on the client side and the Logical Agent on the server side. This has been done to permit the development of network based machine independent applications. The Logical Agent is a composite module consisting of the Logical Core, the Knowledge Bases supporting the logical core and the Agent-to-Environment Communication unit, (AEC). On the other hand, the Virtual World module is also composite consisting of the Static Virtual World, the Dynamic Virtual Objects Library, containing also the agent s Virtual Representative, the Virtual Reality Management Unit, (VRMU), as well as an Environment-to-Agent Communication unit, (EAC). The Logical Core provides the agent with reasoning capabilities. Reasoning is supported by a number of knowledge bases which store various types of knowledge such as static and dynamic knowledge, domain knowledge, knowledge about the agent s capabilities, spatial knowledge about the virtual space, etc. The virtual world is represented as a mental structure in the agent s knowledge base, which is in fact an abstraction maintaining only the important information about it. The Logical Core reasons about the current world situation and according to its goals it sets some

abstract actions which must be immediately executed at the virtual layer. Knowledge Bases Logical Core Virtual Space Abstraction Agent-to-Environment Communication Unit Environment-to- Agent Communication Unit Dynamic Virtual Objects and Avatar Virtual Reality Management Unit Virtual Space Figure 1. The Overall Virtual Intelligent Agent Architecture The AEC module serves a twofold purpose : Its bottom level takes care of the process communication between the Logical Agent and the Virtual World module. Its top level takes care of information transfer between the Logical Core and the EAC module. Abstract actions, e.g. move to next room, are received by it and consequently send to the EAC. Finally, the abstract action arrives at the Virtual Reality Management Unit that specifies in detail the received actions. It provides specific values concerning the orientation and position of the avatar, e.g. it specifies the coordinates, orientation and path so that it can successfully move to the next room, and sends them as commands to the Virtual Reality World Browser. The browser executes the command by altering the virtual environment appropriately. When changes have been performed the AEC unit notifies the logical core that the action has been successfully executed and the logical core goes on by updating its internal and external state. Consequently, the agent looks around into the virtual space, gathers any additional information and decides the next step it should take to satisfy its goals. 3. The Structure and Functionality of the Logical Core The logic part of the agent is a partial implementation of a BDI (Belief-Desire- Intention) intelligent agent architecture. In the heart of the logic part is a look-decide-

act loop, which manipulates the internal and external states of the agent and produces the actions of the agent as a result. The Logical Core maintains many Knowledge Bases which are used to describe the environment, the agent itself, its goals, its mental capabilities, its behavioural capabilities, etc. 3.1. LOOK : LOGICAL REPRESENTATION OF THE VIRTUAL WORLD AND OBSERVATION Observation is an advanced functionality which in a real situation would require sensors and image understanding. In the situation of Virtual Reality it would require parsing and understanding of Virtual Reality files, i.e. the implementation of a subset of a VR browser. Since this was not our goal we have followed another approach : For each experiment with the Virtual Agent we define the virtual world (objects, positions, orientations, etc.) and using a preprocessor we produce two files, the VR file to be processed by the VR browser and the World Description Knowledge Base, (WD), which is an abstarct but complete description of the virtual world in terms of logical assertions. In this sense WD is not part of the agent s knowledge. Given WD, observation is defined as a look function which gathers the basic elements of WD observed from a position in it. Therefore, observation has been defined in terms of a visible spatial accessibility relation that has been also asserted into WD. Reasoning on WD results on acquiring all the entities and their observable attributes which compose the Virtual Reality Knowledge Base, (VR), which is part of the agent s knowledge. In other words, the look function is a transfer of knowledge from the world to the agent. For example, if the agent stands in the middle of a room r he can observe the surroundings, say a table t, a computer co on the table, a chair ch, and two hallways leading to rooms s and t. In this case the VR would be updated by the following elements : {rooms([r,s,t]), table(t), computer(co), chair(ch), is_at(t,r), is_on(co,t), is_at(ch,r), hallway(r,s), hallway(r,t)} While the agent moves around the virtual world VR is updated with new information concerning an abstract spatial description which will be further used for planning the agent s actions. 3.2. AGENT S KNOWLEDGE The agent maintains knowledge about its position, e.g. is_at(myself, r), and possessions, e.g. holding(myself, [key, pocket_computer]), which is dynamic as it changes over time. It also maintains static knowledge of its behavioural abilities in the form of actions : able( action(unlock(l),

precond(locked(l), is_at(p,l), lockskey(l,k), is_at(myself,p), ihold(k)), effects(unlocked(l))) Beliefs of an agent express its expectations about the current state of the world and its change according to the agents actions [4]. In particular, B is the set that is known to the agent, either through observation, embedded knowledge, or inference. Given that the architecture is so far limited to a single agent and all agent s actions are successful, B is an objective but not complete representation of the world, i.e. Belief is partial Knowledge. In a multi agent system, belief would include assumptions and knowledge about other agents as well and an agent s beliefs might be subjective and sometimes erroneous. Finally, the agent keeps track of all actions performed by it. The architecture can use this history to decide based on past actions. 3.3. DESIRES, GOALS AND INTENTIONS Desire is an abstract notion that specifies preferences over future world states or courses of action. A consistent subset of desires that an agent might pursue compose its Goals. Selection of one of these goals and commitment to it is a process that is called the formation of Intentions. Plans, on the other hand, are very important for the pragmatic implementation of intentions. It is possible to structure intentions into larger plans and define an agent s intentions as the plans it has currently adopted [4]. In the Virtual Agent Architecture all these are part of the Mental Structure of the agent. There are two basic desires of the agent : First, to satisfy its top level goals and second to explore the virtual world. In fact, the agent knows nothing of the virtual world when it first enters it. It therefore does some exploration first, trying always to learn something new about it, and when the time comes and has selected sufficient knowledge to satisfy the goals it starts doing so. Exploration is also tried later on when some goals have been satisfied but lack of knowldege prohibits the agent from satisfying the rest of its goals. A top level goal is defined by the action that must be executed to achieve it and the assumptions that must hold before the action can be executed. Moreover, top goals are partially ordered, so that the prerequisites of each goal are provided in terms of other goals, in a kind of a higher level assumption expressed as an abstract temporal description. This further means that some top goals take priority to become top level intentions. Commitment to a top level intention, i.e. the current active goal, activates a planning mechanism which produces a plan to achieve the goal. Of course, a plan contains intermediate goals and intentions and defines actions to be executed. These actions are part of the behavioural abilities previously mentioned. Each time the first action is selected and sent to the Virtual module for execution as a Virtual Act. 3.4. PLAN AND DECIDE The decide function manipulates the state of the agent. Since the decide part of the loop is in the middle of it, it has to check the information that has been presented by

the last act and look steps of the loop. This is what the check_previous_info function does. The check_goal_removal function is one that checks if the course of actions taken by the agent has lead to the achievement of its current_goal. If so, it removes the goal from its Top Goal list. decide: check_previous_info; deep_thinking; check_previous_info: check_goal_removal; deep_thinking: if( validate_previous_plan ) execute_previous_plan; else actual_decide; actual_decide: choose_goal; make_plan; Figure 2. A sketch of the decide algorithm. The produced plans are based on partial knowledge. As the agent executes a virtual act it may visit unexplored places of the virtual world and acquire in this way new pieces of information. Each time new information arrives, the current plan goes under reevaluation, in order to check its suitability to achieve the goal, given the new data. This enables the virtual intelligent agent to be capable of adjusting to a dynamic world. The deep_thinking function is the one that does this work. First, it validates the existing plan. It has to check whether the information that was collected by act and look affects the previous plan. If not, it just keeps that plan and goes on. Otherwise, it starts the plan-making process all over again. This consist of two high-level steps. First, it chooses one of the available goals to be the current goal. This process involves estimation of the goals that are feasible at the current point in time. In the case where more than one such goals are available, the estimation concerns the selection of a goal which is more efficient to pursue. This check usually involves some domain-specific estimation. After a goal has been chosen, a plan has to be figured out. The planning mechanism provides it, the agent commits to the first action of the plan and sends it as a command to the Virtual Reality module. 3.5. ACT : ACTION ABILITY VIRTUAL ACT The act function is a transformation of the World. Based on the agent s last decision,

it manipulates the world, in such a way that the effects of the action are carried out. act, as look, determines whether this action is feasible by making use of the function able previously mentioned. This function is the second place where a designer might choose to implement properties of the world or the agent, such as difficulties on applying an action in a given world, or modelling disabilities of the agent. Notice that the roles of the visible, accessibility relation mentioned above, and able are quite alike. visible mainly refers to the information that the world allows to reach the agent s sensors. Of course one could easily model some kind of sensor disabilities by reducing the accessibility of the function visible. During communication, the Virtual Reality Management Unit (client) receives commands to perform certain actions. We call these actions Virtual Acts as they must be executed on the Virtual World. Virtual acts can be of any kind: from changing the position and the orientation of the objects in the world, to deleting them or replacing them with other objects. They may also take parameters that define them (i.e. move object, destination). 4. Implementation Issues The system uses a 2-tier Client/Server architecture, with Java/VRML on the client side and C++/Prolog on the server side. The C++ program is used as a gateway to a Prolog meta-interpreter which reasons and determines the actions of the agent. Subsequently these actions are sent as commands to a Java applet. Finally, the Java applet hosts a VRML world where the agent exists as an avatar. Communication between these two processes takes place by using a standard stream socket over TCP/IP. This arrangement also takes care of the need to be able to run an application on multiple machines. Since TCP/IP sockets are used to decouple the logic component from the VR component, they can also be used for the communication of a multiple agent architecture. The client side of the architecture consists of a VRML GUI as well as a Java applet that acts as an intermediate medium between the server and the VRML world. The communication between VRML and Java is achieved with the use of EAI (External Authoring Interface). EAI acts as an interface between the two of them and provides a number of functions on the VRML browser that Java can perform in order to affect it. This interaction is interpreted as a change of attributes in the VRML world geometry. Each time a command is executed, the Java applet sends a verifying message to the C++ server, and the server sends the next string to process. At the end of the logical process, the server sends a signal to stop data transmission. 5. A Maze Example In this example, the intelligent agent finds his way out of a maze after having to discover some key-information in the maze, and its virtual representative (avatar) is directed through the VRML world following the agent s orders.

The maze consists of several rooms, which are connected to each other through hallways. Some rooms contain objects like locks and keys, used by the agent in order to exit the maze. The sequence of the agent s actions should be to find the blue key, unlock the blue lock, find the red key, unlock the red lock and go to the exit. The initial scene consists of the maze and by pressing the Start button, the agent, the locks and the keys are instantly loaded. The button Continue sets the agent in motion to start its quest for the exit. During its travel from room to room, the agent perceives these objects but does not interact with them unless the particular action follows the correct sequence (i.e. although it finds itself in the same room with the red key, it cannot pick it up unless it unlocks the blue lock). The agent stores the information it collects about the environment in its knowledge base. It then uses this gained knowledge in order to accomplish certain tasks like finding the keys, the locks or the exit. Moreover, the agent s actions change the environment (i.e. when it picks up a key, it automatically no longer exists in the virtual world). The protocol that is followed in the particular application is as follows: commence the server asks for permission to transmit data. ok the client declares it is ready for receiving data. move this action takes two parameters : the object that is about to be moved (in this particular case, the agent) and the destination. The server decides that the object should be moved to the particular destination. delete this action takes one parameter : the object that is about to be deleted. The server decides that the particular object should be deleted (either if the agent finds the correct key or if he unlocks a door). end this message is sent by the server to the client to declare the end of data transmission.

Figure 3. The maze When the agent is ordered to change room, Java calculates the new avatar orientation according to the target position. Then it starts a thread that rotates the avatar until it reaches the expected orientation and moves it with constant speed to the target room. The delete action is implemented by removing the VRML nodes that represent the objects. These nodes were loaded by pressing the Start button at the beginning, with use of the Inline command in VRML. Figure 4. The Virtual representative finds the blue key 6. Conclusion and future work. Our aim in this chapter was to present an intelligent agent architecture that combines reasoning abilities, effective GUI and networking extensions. In order to bring such kind if applications closer to reality, we have made use of VRML (Virtual Reality Modelling Language). In our future plans we intend to put the agent in a more complex VRML world, where he would be able to interact with additional objects. We soon expect to extend the reasoning abilities of the agent and the Virtual Reality metaphor will help towards this direction. It is also in our plans to develop an inter-agent protocol that will enable the agents to communicate with each other and exchange information and knowledge bases, in order to accomplish given tasks. Both in the industry and in the academic society there is a growing demand for GroupWare and co-operative distributed-work applications, such as video conferencing, remote work, remote people training and education, the needs of which are far beyond simple document exchange as they should be supported by intelligent systems. An intelligent virtual agent could provide its services in such applications.

Acknowledgement This work was partially funded by the Greek General Secretariat of Research and Technology under the project TimeLogic of ΠΕΝΕ 95, contract no 1134. References [1]. Y. Shoham, Agent-oriented programming, Artificial Intelligence, Vol. 60, pp.51-92, 1993 [2]. M. Wooldridge, N. Jennings, Intelligent agents: Theory and practice, Knowledge Engineering Review, Vol. 10(2), pp.115-152, 1995. [3]. M. Wooldridge, J. Muller, and M. Tambe, editors. Intelligent Agents II, Agent Theories, Architectures and Languages, volume 1037 of Lecture Notes in Artificial Intelligence, Springer-Verlag, 1996. [4]. J. Muller, The Design of Intelligent Agents, A Layered Approach, volume 1177 of Lecture Notes in Artificial Intelligence, Springer-Verlag, 1996. [5]. J. Muller, M. Wooldridge, and N. Jennings, editors. Intelligent Agents III, Agent Theories, Architectures and Languages, volume 1193 of Lecture Notes in Artificial Intelligence, Springer-Verlag, 1997. [6]. B. Hayes-Roth, K. Pfleger, P. Morinot, P. Lalanda, Plans and Behavior in Intelligent Agents, ftp://ksl.stanford.edu/pub/ksl-reports/ksl-95-35.ps [7]. L. Cavedon, A Rao, and W. Wobcke, editors. Intelligent Agent Systems, Theoretical and Practical Issues, volume 1209 of Lecture Notes in Artificial Intelligence, Springer-Verlag, 1997. [8]. J. Bradshaw, editor, Software Agents, AAAI Press / The MIT Press, 1997. [9]. B.A.Nardi, J.R.Miller, D.J.Wright, Collaborative, Programmable Intelligent Agents, Communications of the ACM, Vol.41, no.3, pp.96-104, March 1998. [10]. ISO/IEC 14772-1:1997, VRML97 International Standard, The VRML Consortium, http://www.vrml.org [11]. B. Roehl, Some thoughts on Behavior in VR Systems (Second Draft : August 1995), URL: http://sunee.uwaterloo.ca/~broehl/behav.html [12]. M. Prokopenko, V. Jauregui, Reasoning about Actions in Virtual Reality, IJCAI-97, Workshop on Nonmonotonic Reasoning, Action and Change, 1997 [13]. E. Denti, A. Natali, A. Omicini. Merging Logic Programming into Web-based technology : a Coordination-based approach. Proceedings of 2nd International Workshop on Logic Programming Tools for Internet Applications, Leuven, Belgium, July 1997. [14]. S.R. El-Beltagy, M. Rafea, and A. Rafea, Practical Development of Internet Prolog Applications using a Java Front End, appearing in [13]. [15]. T.Panayiotopoulos, M.Gergatsoulis, Intelligent Information Processing using TRLi, 6th International Conference and Workshop on Database and Expert Systems Applications, DEXA'95, London, U.K., September, 4-8, 1995, appears in Proceedings, N.Revell, A. M. Tjoa (Eds.), pp.494-501, 1995. [16]. C.C.Marinagi, T.Panayiotopoulos, G.A.Vouros, C.D.Spyropoulos, Advisor : A knowledge-based planning system, International Journal of Expert Systems, Research and Applications, Vol.9, No.3, pp.319-355, 1996.