Context Management Agent (CMA)
The context management agent is the administrator of the system, responsible
for monitoring on-going context-based sessions and managing the environment
resources. The CMA also has the authority to cancel, modify and renegotiate
context specifications according to changes that might occur in the environment,
or if agents violate the tasks assigned to them during negotiation. Agents
register with the CMA both to project their presence to other agents in
the environment and to obtain the authorization needed to use and negotiate
context information. The CMA stores relevant information in a knowledge
base repository for inference, consistency, and knowledge sharing. This
repository is used to retrieve information about entities in the environment,
and for the temporary storage of session information. The CMA accepts
subscription requests from user, service, and context provider agents
to be added to the agent directory facilitator. This subscription phase
allows the CMA to search and select the best available context that will
satisfy the agreements required by applications and users. In addition,
the CMA binds the CPA to applications according to their context agreement.
It stores this information in the system knowledge base for future use,
so that resources can be reconfigured as the context changes.
Ontology Agent (OA)
The ontology agent provides the semantic capability of ACAI. Implemented
using OWL, it uses ontology engineering to model context and system information.
At negotiation time, it formulates context specifications from agents’
requests and profiles according to the previously-designed ontology constructs,
axioms and rules of composition. This information is then provided to
the CMA for further processing. The OA also provides searching and browsing
interfaces so that registered agents can look up and use available ontologies.
In addition, the OA is responsible for the conversion of raw context data
to their OWL representation. This is subject to further processing such
as validation, consistency checking, and modification according to ACAI
policies. ACAI provides every client’s device with a compact cloned
version of the OA, called the personal ontology agent (POA). The POA has
built-in behavior that generates a semantic representation of user information.
Every POA registers with the main OA in the ACAI server for reasons of
reliability and presence. If ontology constructs are needed, such as the
modeling of new capabilities or the preferences of a device, the POA requests
the constructs from the main OA, achieving interoperability and context
provisioning on demand.
Inference Agent (IA)
The IA contains a new hybrid inference system that integrates logical
reasoning, fuzzy reasoning and semantic rule representation into one system.
In the context inference process, context captured from sensors and from
users’ and services’ profiles is treated as a series of facts.
The reasoner agent uses these facts (stored in the system knowledge base
repository) to deduce new context information and to trigger actions.
The reasoner agent uses logic-reasoning mechanisms to ensure that instances
of captured context are consistent both with each other and with arguments
defined in the ontology. This allows the construction of an inferred hierarchy
of contextual information based on the ontology classes. A priority resolution
mechanism is used to deal with conflicts and inconsistencies that may
arise from firing rules and triggering actions.
System Knowledge Base Agent (SKBA)
The use of ontologies requires a storage facility and a facility manager.
This management role is taken by the SKBA. More precisely, it acts as
the interface to the repository where queries for stored information are
sent, and responses are returned. The repository also includes tables
for storing the information that links context providers and the entities
requesting the information. These tables record response time, the number
of messages exchanged in open sessions, lists of registered agents, and
their roles. All these tables are managed and manipulated through the
SKBA.
Context provider agent (CPA)
Each context source is wrapped with a context provider agent that is
responsible for capturing raw data from the source and interpreting it.
The CPA involves the OA in the mapping between the raw context format
and its corresponding OWL ontology. This information is stored in the
system knowledge base so that other agents can use the look-up service
provided. Furthermore, the CPA is responsible for negotiating context
specifications acquired by the context source under its control, and for
monitoring ACAI sessions it is currently involved in.