Programming Paradigms and Engines
Three complementary Programming Paradigms are provided:
Memory-based programming paradigm which is based on Dynamic ontology,
Rule-Based and Pattern-Matching programming paradigm based on PROLOG+CG which is an object based and CG-based extension of Prolog language and
Activation and Propagation Based programming paradigm based on SYNERGY which is a CG-activation and propagation-based language.
In addition to these programming paradigms, Amine offers the following basic ontology-based processes:
§ Elaboration process: a process that enables an incremental elaboration of a given description by adding relevant information from the current ontology,
§ Elicitation process: an interactive process that helps the user to make its description more precise and more explicit,
§ Information retrieval process: a process that enables the retrieval of information from the ontology,
An ontology (and a KB) in Amine is a graph (in general), the above processes represent different ways to explore and interpret the graph structure and components of the ontology: elaboration uses inheritance mechanism and performs upward breadth-first search to get relevant information for a specific type node, elicitation performs downward breadth-first search to get relevant information for a specific type node, dynamic integration propagates the new information via several nodes, and information retrieval calls dynamic integration process to locate and situate the new information in the ontology and to identify its neighbourhood. Figure 1 illustrates this point.
Figure 1: Ontology Basic Processes
In addition to the above basic ontology processes, Amine provides Dynamic Integration Processes and Ontology/KB Based Inference:
§ Dynamic integration (or knowledge acquisition) process: a process that performs a dynamic and incremental integration of new information in the ontology/KB. The integration involves a similarity and generalization based re-organization of the ontology/KB, in order to connect the new information with existent information.
Ontology/KB/Memory Based Inferences
As noted before, an ontology in Amine is a graph where nodes corresponds to different kinds of Conceptual Structures (CS): Concept Type Definition, Relation Type Definition, Canon, Individual description and Situation. Since Amine 5, we introduced a new type of CS: CSRule. An ontology can contain rules of the form CG_Antecedent => CG_Consequence. See Ontology and DynamicOntology for more detail on this new extension of Amine. Amine 5 introduces also a new layer: Knowledge Base Layer. A KB is also a graph of CSs.
With the integration of CSRules in an ontology (or a KB or a memory), we become involved with the very important topic of "Ontology/KB/Memory Based Inferences", i.e. inferences strategies (like Deduction, Induction, Abduction, Analogy) are defined and implemented according to the structure and operations on the (agent/system) ontology/KB/memory. We are starting to explore this very important topic. See Ontology/KB/Memory Based Inferences for more detail on the current status of our research.