RELEASE OF AMINE 3
January 2005
Adil KABBAJ
Update of Ontology and Lexicon Packages
Update of LexiconsOntology GUI
Addition of New CG Operations and Update of CGOperations GUI
Ontology Processes: Elaboration, Elicitation and Information Retrieval and the associated GUI
Metaphor and metaphor processes
Graph Drawing, CG Drawing and Ontology Drawing
Agents and Multi-Agents Systems
Integration of Amine Components
Amine 3 has been released in January 2005. Figure 1 recalls the architecture of Amine. All the components of Amine 2 (the Kernel and the Algebraic layers as well as the associated GUIs) have been updated (debuged, refined and extended). In addition, Prolog+CG, the Core of Synergy and Dynamic Ontology engines are completely implemented and integrated to Amine 3 with their GUIs. Other aspects of Synergy are being implemented. Graph drawing capabilities have been implemented (but they should be refined further) and a first attempt to integrate Amine with a Java Agent Development Environment has been performed with success, leading to the development of a simple agent-based application. Moreover, the new version of Amine provides three new basic ontology processes: elaboration, elicitation and information retrieval.
This document outlines these updates and provide references to the updated (or the new) documents for more detail.
Figure 1: Amine Architecture
Note: More documentation, on Amine APIs and source codes, will be provided in forthcoming versions of Amine.
Recall
Amine is a multi-layer and open-source platform, implemented in Java and dedicated to the development of intelligent systems and agents. Figure 1 shows the architecture of Amine 3. Amine is composed of four layers:
1. Kernel layer: It concerns the creation and manipulation of multi-lingua ontology. Amine offers a possibility to create, edit and ask an ontology which is defined in terms of Conceptual Structures (definition, canon, individual, situation and context). Several conceptual lexicons can be associated to a conceptual ontology (i.e. lexicons for English, French, Spanish, etc.) allowing the creation and use of multi-lingua conceptual ontology. Users, with different languages, can express knowledge in their languages and still share all knowledge expressed in other languages and integrated in the same ontology.
2. Algebraic layer: It provides several types of structures and operations: elementary data types (AmineInteger, AmineDouble, etc.) and composed types (AmineSet, AmineList, Term, Concept, Relation and Conceptual Graph –CG-). It provides also various matching-based operations (like match, equal, unify, subsume, maximalJoin, generalize, analogy, compare, etc.). Structures can be generic; they can contain variables and the associated operations take into account the binding context and variable binding resolution. Amine provides several Java interfaces to allow the user the addition of other structures and the definition of his own binding context.
3. Programming layer: Three complementary programming paradigms are provided by Amine: a) an ontology or memory-based programming paradigm which is concerned by incremental and automatic integration of knowledge in an ontology (or agent memory) and by information retrieval and other related ontology/memory-based processes, b) a pattern-matching and rule-based programming paradigm, embedded in PROLOG+CG language which is an object based and CG-based extension of PROLOG language and, c) an activation and propagation-based programming paradigm, embedded in SYNERGY language.
4. Agents and Multi-Agents Systems layer: We are using available Java Agent Development Environments (like JADE) to explore the use of Amine components in the development of agent-based applications.
Amine provides also several graphical user interfaces (GUIs), a web site, several samples and a growing documentation and applications. Amine has an “Amine Suite Panel” which provides an access to all GUIs of Amine (Lexicons_Ontology GUI, CG Notations editors GUI, CG Operations GUI, Dynamic Ontology GUI, Ontology processes GUI, Prolog+CG GUI, Synergy GUI), as well as an access to some ontology examples and to several tests that illustrate the use of Amine structures and their APIs.
Amine four layers form a hierarchy: each layer is built on top of and use the lower layers. However, a lower layer can be used by itself without the higher layers: kernel layer can be used directly in any application, algebraic layer can be used directly too, etc. Among the goals (and constraints) that have influenced the design and implementation of Amine was the goal to achieve a higher level of modularity and independence between Amine components.
Yet, Amine Platform is not only a "tool kit", i.e. a set of components with no internal cohesion. Amine can be viewed rather as an Ontology-Based Programming Environment or as a basis for an Intelligent Virtual Machine: the semantic of the categories (types) used by the system/agent is specified in the ontology (thanks to the kernel layer), different structures (AmineList, Term, CG) can be used by the system as well as various matching-based operations (the algebraic layer) and elements of these structures can be categories specified in the ontology. The programming layer provides three ontology-based programming paradigms where the ontology and the various structures and operations can be used. Ontology, structures, matching-based operations and the available programming paradigms are “ingredients” for the formulation and development of many inference strategies (induction, deduction, abduction, analogy) and cognitive processes. They are also “ingredients” for the development of dynamic memory. And, as highlighted by Michalski [10], “Learning = Memory + Inferences” . All the above “ingredients”, with inference strategies, memory and learning capabilities, form the basic components of an Intelligent Virtual Machine.
Our long-term goal is to provide a strong cohesion and complementarity between the four layers of Amine Platform to enable the development of various kinds of intelligent systems and agents with multi-strategy learning (and inferences) capabilities.
Amine is used by the first author to teach an Artificial Intelligence course. Karim Bouzouba is using Amine for the same purpose. In the context of Flexnet project (development of flexible on-line courses), Pr. Peter Ohrstrom, Henrik Scharfe and their team from Human Informatics in Aalborg University, Denmark, are willing to develop on-line courses on Amine Platform.
Figure 2 presents the new composition of Amine Platform and especially the packages (and their organization). Reader can note the new packages that concerns Amine engines, with all its sub-packages: basic Ontology Processes, dynamic ontology, metaphor processes, prologPlusCG (with its sub-packages) and synergy. Also, several GUIs have been added: basicOntologyProcessesGUI, cgDrawingGUI, dynamicOntologyGUI, graphDrawing, ontologyDrawingGUI, PrologPlusCGGUIs (and its sub-packages) and synergyGUI.
Figure 2: The new composition of Amine Project (green are updated packages)
Update of Ontology and Lexicon
The document on Ontology (Ontology) has been updated to consider the addition of new categories of Conceptual Structure nodes (Context and Metaphor nodes). Also a more complete description of Ontology is provided. In Metaphor and Metaphor Processes, we present our current work on metaphor, metaphor resolution and metaphor creation. Metaphor is viewed as a new Conceptual Structure node in ontology/agent_memory.
Update of LexiconsOntology GUI
The document on LexiconsOntologyGUI has been updated to consider modifications and additions that occurred on this GUI.
Addition of New CG Operations and Update of CGOperations GUI
Four CG operations have been added: contraction, analogy, compare and coveredBy CG operations. They are introduced in New CG Operations. CGOperations GUI has been updated to consider the addition of these new operations and the addition of CG drawing possibility and CG operations animation.
Ontology Processes: Elaboration, Elicitation, Information Retrieval and the associated GUI
A new document is added to introduce these ontology processes: ontology processes. The associated GUI is described too.
Metaphor and metaphor processes
Metaphor and metaphor processes are considered in Metaphor and Metaphor Processes.
Graph Drawing, CG Drawing and Ontology Drawing
Amine 3 provides graph drawing possibilities: CG drawing editor, automatic CG drawing, ontology drawing editor and automatic drawing ontology. Implementation of ontology drawing is still in progress (but see Amine 4). CG drawing editor and automatic CG drawing are described in Graph_CG_Drawing. This document presents also the current status of Ontology drawing and its graphic editor.
The document on CGNotations GUI has been updated to consider the addition of CG drawing (and CG Graphic Editor) possibilities.
Dynamic Ontology and its GUI
The previous document is replaced by a new one (Dynamic ontology) which describes in detail this important component of Amine. Dynamic ontology is now fully implemented. The document presents also the GUI of Dynamic Ontology and some examples.
Prolog+CG and its GUIs
The previous document is replaced by a new one (Prolog+CG) which describes in detail this important component of Amine. Prolog+CG is now fully implemented. The document presents also the GUIs of Prolog+CG and some examples. In particular, we illustrate how Prolog+CG can be used to develop easily a natural language processing application. Of course, other rule-based and pattern-based applications can be developed with Prolog+CG.
SYNERGY and its GUI
Synergy is a multi-paradigm visual programming language (in itself). Our re-engineering and re-implantation efforts concerned the Core of Synergy. We present, in the updated document Synergy, the result of this effort. Other aspects of Synergy are being treated.
Agents and Multi-Agents Systems
The document on Multi-Agent Systems layer of Amine is updated to include our work on the integration, to Amine, of a Java Agent Development Environment (like JADE). This integration has been performed with success, leading to the development of a simple agent-based application.
Integration of Amine Components
In Prolog+CG, we show how several components of Amine can be used in concert in a single application. In particular, we show how Ontology, CG, CG operations, Dynamic Ontology and Information Retrieval processes can be called from Prolog+CG programs.
The author, with Kaoutar ElHari and other students, are working on the use of all these components, including Prolog+CG, in the development of a Multi-Agents system that concerns simulation of a child story.