CRANIS Model

De Assothink Wiki
Aller à la navigation Aller à la recherche

This page is part of the obsolete CRANIS project (2010).

CRANIS is a theory, reflected in a model (described here) and in an implementation of this model.

In this article we describe

  • the CRANIS general requirements
  • the CRANIS 1.0 model (march 2010)

Requirements

Application fields

The CRANIS model should as much as possible meet the likely model of natural (human) intelligence. It should be usable by human beings to describe their own data model, their own think-process-oriented material. 

The CRANIS model should be usable in artificial intelligence (computer based) systems.

But the CRANIS model is NOT a processing engine. It is a data model suitable for processing models.

Concept and language in separated layers

The CRANIS model should allow a complete separation of concepts and words.

This issue has been a major limitation of past valuable works such as wordnet and most (all?) ontology projects.

So the CRANIS model includes two separated layers:

  • the conceptual model (where nothing may be named)
  • the language set anchoring structures (one per language, with a standard structure, but probably extensible to meet specific aspects of very different languages)

Note for the Alex II project. In the structure used for Alex II, 4 levels of structures are defined. (level-1) inflexions and (level-2) words correspond to the language anchoring of CRANIS. (level-3) concepts matches the CRANIS concept layer. And the (level-4) consciousness is the level specific where excitation, resonance, and processing raise...

Data Structures

The CRANIS model should be able to work as an efficient substitute to relational models (RDBMS).

The CRANIS model should be able to work as an efficient substitute to hierarchical models (HDBMS).

The CRANIS model should be usable to describe fuzzy relations.

Assimilation and extensibility

Simple relational data should be easily and dynamically inserted.

Simple hierarchical data should be easily and dynamically inserted.

Most human-understandable data should be easily and dynamically inserted.

Efficiency

The CRANIS model should be translated in structures for fast and efficient usage:

  • current (2010) computer software, thus O-O software running on standard available CPUs
  • new kind of chips with structure dedicated to the simple concept & relation model of CRANIS (chips somewhat similar to some kind of neural network, although the concept nodes of CRANIS do NOT match the neural node of biological nervous organs)

Performance

A CRANIS based system should be able to perform tasks similar to human-performed 'intelligent' tasks:

  • simple quantitative processing (associative computation, see below)
  • game playing
  • pattern recognizing
  • decisions
  • language oriented activities (coding, decoding, translation...)

Associative Computation

Computers perform simple and complex quantitative operations (additions and multiplications, as basic example) in an highly efficient way.

The CRANIS model should be usable to perform similar basic operation, but

  • without any kind of instruction set for additions, multiplications, boolean operators
  • probably significantly slower

This computation process is purely associative. It should replicate the processes used in natural intelligences.

Simplicity

The CRANIS model should be easy

  • to describe and to understand
  • to extend
  • to implement

CRANIS 1.0 model description

Concept layer: concepts

Concepts are organized in categories. New categories may be added, but the following standard categories are present in minimal default CRANIS implementations:

  • concepts describing concept categories
  • concepts describing qualified relations
  • concepts describing quantities
  • noun oriented concepts
  • verb oriented concepts
  • adjective oriented concepts
  • adverb oriented concepts

The 4 last standard categories are similar to equivalent wordnet synset, but without any kind of wording.

A concept per se has no name;  it will receive 0, 1 or many names in the language anchoring layer.

(notes in blue are for software (O-O, java) implementations) All concepts are organized in 1 single large array. The array contains integer values. This array is divided conventionally in areas. An area is an interval of indexes. For instance, index 0 to 999 may be reserved for categories-related concepts; index 1000 to 1999  to relation concepts; index 2000 to 2999 to quantity concepts; index 3000 to 100000 to noun concepts... The software representation of a concept is mainly an index in a table; it also contains a set of pointers to relations.

Regarding Alex II : at the consciousness level, concept nodes will receive scalar property(ies) called excitation level.

Since a concept has no name, what is a concept ? Apart form language anchoring - which should be considered as optional -  a concept is only and fully described by the set of links in which it participates.

This is the key of CRANIS. A concept is something like an empty node, only described and describable by the fact that it is linked preferably to some other nodes. This is to compare to the idea that we have about the structure of the human brain. And since language is mostly a human property, the concept layer of CRANIS 
Si le language est le propre de l'homme, alors la couche conceptuelle du modèle CRANIS est la partie pré-linguistique de cette intelligence.

Concept layer: relations

The CRANIS model accepts 2 kind of relations: qualified relations and fuzzy relations.

Qualified Relations

A qualified relation links 3 concepts: the source concept, the destination concept, and the connecting concept. The connecting concept is a concept describing relations. The two other concepts are any concepts, but generally a connecting concepts connects concepts of a specific category.

For instance, the next concept connects two quantity concepts.
For instance the subclass connects two noun concepts.

A qualified relation may be formally described as   (A,R,B)     where A is the source concept, B is the destination concept and R is the connecting relation concept.

Qualified relations are normally oriented. The source and the destination may not be exchanged. But some relation may be symmetrical, and in this case 2 different relations are present in the CRANIS set of relations.

The <reciprocal> relation concept connects symmetrically two other relation concepts.

For instance,        (<next>,<reciprocal>,<previous>)     Note that english words are used here for the readability of this page, but do NOT exist in the concept layer of CRANIS.   

At primary level, the qualified relations are described by a 2-dimension array of integers. The size in the first dimension is the number ok known qualified relations. The size of the second dimension is 3. The content of the array is integer indexes representing concepts.

At secondary (redundant) level, arrays of qualified relations are defined as attribute for concepts. The OO model defines quantitative half-links, and a qualified relation is loaded in memory as 2 qualified half-links. The half-links of a pair refer to each other, and to the 3 involved concepts.

A half-link being the contact between a link and a concept node, it could possibly be called synapse.

Regarding Alex II : half-links will is the place where excitation signals will be stored, before being propagated across concept nodes.

Fuzzy relations

A fuzzy relation links 2 concepts: the source concept and the destination concept. The link has a variable strength, called permeability, represented by a scalar value between a maximum (1.0, true) and MINIMAL (0.0, false).

Any intermediary (float) value between 0.0 and 1.0 is accepted as permeability.

A fuzzy relation is the base material, the jelly, the glue where an intelligence stores a wide number of fuzzy associations.

Fuzzy associations are suited to represent objective connections, understood ans shared by anyone, but they are also suited to represent subjective associations.

For instance a fuzzy association between <fur> and <soft> would be shared by most intelligence (most people).

And for instance again, but linked specifically to the user experience, <> is associated to <> with a high permeability. Each of us has a number of subjective fuzzy relations.

A fuzzy relation may be formally described as   (A,p,B)     where A is the source concept, B is the destination concept and p is the permeability of the relation.

Fuzzy relations are normally oriented. The source and the destination may not be exchanged. But some relation may be symmetrical, and in this case 2 different relations are present in the CRANIS set of relations, maybe with different permeabilities.

At primary level, the fuzzy relations are described by a 2-dimension array of integer and float values. The size in the first dimension is the number ok known qualified relations. The size of the second dimension is 3. The array contains integer indexes representing concept, and float values representing permeabilities. 

At secondary (redundant) level, arrays of fuzzy relations are defined as attribute for concepts. The OO model defines fuzzy half-links, and a fuzzy relation is loaded in memory as 2 fuzzy half-links. The half-links of a pair refer to each other, and to the 2 involved concepts.

Focus Model

Any focus is built on the following model.

Let C be the set of all concepts. The size of this set is in the magnitude of 105.

Let ck represent the kth concept. This concept is characterized by:

  • an excitation state Ek(t) . This is a scalar positive real value.
  • a global incoming signal Sink(t) . This is a scalar positive real value.
  • a global outgoing signal Soutk(t) . This is a scalar positive real value.

It is a also caracterized by an (unnamable) content, by a set of link to words and by a set of link with other concepts. The content and the links to words are not discussed here.

Let Ljk be the link between ck and cj. This link is characterized by:

  • pkj (and pjk), the permeability of signals emitted by concept k towards concept j. These 2 values are real value in the [0,1] range, and may differ: the permeability is not symmetrical. The pkj values may be seen as a large matrix, but most pjk have zero value, so the matrix is a sparse matrix. It is then more reasonable and convenient to think the links and the permeability as a signal-flow graph or as a graph.
  • skj(t), the signal transiting from ck to cj, and sjk(t) transiting from cj to ck.

The model is represented by the following equations:

  • Sink(t) = Soutk(t)                                                                                          (1)
  • d/dt (Ek(t)) = kexcite Sink(t) + kexternal Z(t) -kerosion Ek(t)                             (2)
  • sink(t) = klinear Sumj (sjk(t)) + kquadra Sumij sik(t) sjk(t)                              (3)

[ note : the publication of formula in a wiki is a problem - this will be detailed in an external document ]


Language anchoring layer

The language anchoring layer is widely inspired by existing models used in linguistic research, with a significant weight from wordnet.

The anchoring links 3 kind of objects.

  • concepts (unnameable), defined in the concept layer.
  • percepts (lemma words)
  • variants (inflexions words)

In this article, percepts and variants are used rather than lemma and inflexions, because the language anchoring is just one of many possible sense-driven anchoring channels.

Besides language anchoring, an AI application would possibly use the CRANIS concept layer combined with

  • visual anchoring layer (fed by vision sense)
  • sound anchoring system (fed by audition sense)

Links in the language anchoring layer

  • A concept is linked to zero, one or many percepts

for instance the concept having <sibling> as percept in the English language anchor has zero percept in the french language

  • A percept is linked to one or many concepts
  • A percept is linked to one or many variants
  • A variant is linked to one or many percepts

Besides that, and for the purpose of exhaustivity, the CRANIS model states that

  • links between variants do not exist
  • links between concepts are described at another level, and are not linked to any kind of language anchoring
  • links between percepts should not exist

This last point however is subject to some discussion. Wordnet for instance defines an <antonym> relationship operating at the percept (word) level. This is obviously relevant within a language, but is it relevant across language ? If the answer is yes, then the antonymy should be defined at the concept level. If the answer is no, the antonymy is a language specific feature, which implies that is not suitable for a trans-language model as CRANIS. In both case, the conclusion is similar: CRANIS does not allow inter-percept relations.

Software implementations

This is a straightforward question. Many solutions exist. Given the size and cost of memory of current computers, loading all language data in a Java client/server system is fast and easy. A full set of prepared language anchor files may be loaded in less than 2 seconds, including all arrays, hashing sets and maps.

The solution preferred for the Alex II deployment involves

  • array of percepts
  • array of variants
  • map joining any percept to its array index
  • map joining any variant to its array index
  • for any variant, set of indexes pointing in the percept array
  • for any percept, set of indexes pointing in the variant array
  • for any percept, set of indexes pointing in the concept array
  • for any concept, set of indexes pointing in the percept array
  • array of concepts worded definitions

Evocation and manifestation

Since concept are intrinsically unnamed, how is it possible to access them ?

Evocation is the process of activating a concept from one or many percepts (or variants). It is based on the links between concepts and percepts.

Manifestation is the process used by a system to share its current activation of concepts. This sharing is only achievable through percepts (or variants). It is based on the links between concepts and percepts.

Improvements

A more complete solution for language anchoring should handle the nature of the links between variants and percepts. This has already been realized for various languages, but it seems to be language dependant, at least to some extent.

Obviously this improvement would be necessary for

  • accurate input (text processing, language decoding)
  • accurate output (textual expression of thoughts)
  • translation tasks