WP 6 Integration: Platform and Application Scenarios
Introduction
The RASCALLI platform is the runtime environment for RASCALLI
agents. It is designed to support the execution, as well as the
development of multiple agents in a single running instance of the
platform.
Features (SAT)
Multi-agent
The RASCALLI platform can execute multiple agents at the same
time. This includes multiple agents of the same kind
(see Agent Definition Layer)
as well as agents of different kinds, possibly with different
versions of the agents' components. This latter feature is
especially important during the development of an agent.
Multi-architecture
The RASCALLI platform supports the concurrent deployment of
multiple agent architectures
(see Agent Architecture Layer). Individual agents can then be based on either of the
deployed architectures. These agents can be executed concurrently.
Multi-user
The RASCALLI platform provides support for multiple concurrent
users, where each user can define one or more agents.
Component-based
The RASCALLI platform is based on OSGi, which is a technology for
component-based development. The RASCALLI platform itself, as well
as agents developed for that platform are implemented as a set of
small, reusable components. These components can then be combined
to a specific agent definition
(see Agent Definition Layer)
via a configuration interface.
Wide range of technologies
The RASCALLI platform provides support for the intergration of
various technologies, such as different programming languages
(e.g. Perl) or web services. This gives a lot of flexibility for
the development of agents and also allows for the easy integration
of existing services or components into the RASCALLI platform.
Distributed development
Due to its component-based architecture, the RASCALLI platform is
well-suited for distributed development of RASCALLI agents. This
is very important in the context of geographically distributed
research or open source projects.
Software Architecture (SAT)
The RASCALLI platform is based on a layered software
architecture. The following figure gives an overview of these
layers, which will be described in detail below.
Infrastructure Layer (SAT)
The infrastructure layer contains basic technologies and
components used in the RASCALLI platform. Specifically, these ara:
Java
Maven
the Spring Framework
OSGi
This layer also contains development tools and utilities of the
RASCALLI platform.
Framework Layer (SAT)
The framework layer contains general platform services and
components available to all RASCALLI agents.
This includes technology-related services and components, such as:
Networking support (TCP, HTTP)
Synchronization and concurrency support
Logging support
Email support
RDF handling support
Technology integration support (Perl, web services, ...)
Spring support
as well as application layer components, such as:
User management service
Agent management service
Event handling
Agent Architecture Layer (SAT)
This layer is used to define one or more agent architectures (see
this
wikipedia article). An agent architecture defines the
components that make up an agent, including their roles and
interfaces.
For each agent architecture, this layer may contain interfaces
(e.g. Mind, Sensor, Effector) and implementations of these
interfaces and/or supporting components.
Each agent architecture is implemented as one or more separate
OSGi bundles, so that agents of different architectures cannot
interfere with each other.
Agent Component Layer (SAT)
The Agent Components layer contains implementations of the
components/interfaces defined by the Agent Architecture
Layer. Clearly, agent components always depend on one specific
agent architecture (for example, a specific Tool implementation,
such as the MMG Tool, is based on the Tool interface defined in
the MBE agent architecture). They can, of course, also depend on
the framework layer.
Components that are used by multiple agent archituctures are
implemented in the Framework Layer.
Each component implemented on this layer is implemented and
deployed as a separate project/bundle.
Agent Definition Layer (SAT)
An agent configuration is an assembly of specific components of
the Agent Component Layer of a specific architecture.
Example:
An agent configuration for the MBE architecture might include the DUAL-Mind, the MMG-Tool, the IP-Tool and the QA-Tool.
This is what we called RASCALLI applications until now.
Since this is actually just configuration, the goal is to define these agent configurations via some kind of user interface (web or gui) to the platform, either online or offline. For the time being, the agent configurations will be separate maven projects and will be deployed as OSGI bundles containing a factory service that can instantiate agents of a certain configuration.
Agent Layer (SAT)
The agent layer contains the actual individual agents. Each agent
is an instantiation of a specific agent configuration, based on a
set of agent components defined within a specific agent
architecture.
Note that an individual agent might have additional configuration
beyond what is provided on the agent configuration layer. For example,
each agent might be given a name. It will also need to know about its
owner/user, etc. It is not yet clear how this will be achieved. Maybe
each architecture will be required to implement some sort of
configuration interface component, with a minimum set of 'agent name'
and 'user name'. This might be a simple java bean with setters and
getters, allowing us to implement a generic user interface for the
configuration as well as generic serialization. An instance of this
would be instantiated for each individual agent, which can then use it
to access the configuration.
The goal is, again, to create agents via some sort of user interface
(this time only online) to the platform. Until such a service is
available, agents can be defined as very simple maven/spring
configurations, depending only on a specific agent configuration
(in the maven POM) and instantiating it in the spring config. When
this bundle is deployed, the agent instance will be created and
executed.
Visual browser, QUIZ application (DFKI)
DFKI provides two different ways to allow users the access to the gossip information:
Ontology-based navigation:
It is accessbile via the visual browser described in WP2.
Question answering based on the structured data knowledge:
the question answering user interface allows users to submit quiz questions and provide answers based on the
content stored in the
gossip data. The application can be combined with the open-domain
question answering provided by our project partner. We have
worked out even more modular system architecture to deal with question
analysis and mappings between NLP questions to database queries. Our
approach is an extension and modification of the techniques developed
at DFKI in the QUETAL project.
In the following figure, we depict the modelling of the question
patterns together with question or answer foci with respect to the
relation types supported by the database modell.
Back to workpackages
RASCALLI is supported by the European Commission Cognitive Systems
Programme (IST-27596-2004).
|