Programmation de la conscience

Tout le monde aura sa petite idée sur ce qu'il manque à l'ordinateur pour comprendre le langage humain, ce que nous considérons comme l'indice ultime que l'ordinateur serait conscient. Alors, pour ne pas être en reste, je vais moi aussi émettre mon opinion sur le sujet. En fait, ce n'est pas ce qui manque aux logiciels modernes mais plutôt ce qu'il y a en trop. Il y a beaucoup d'éléments sémantiques dans les logiciels, ils sont même essentiels au bon fonctionnement des programmes, mais à mon humble avis, il ne devrait pas y avoir de sémantique dans un programme, ou le moins possible. La sémantique est ce qui donne le sens à toute la masse de données que traite un ordinateur. C'est ce qu'on appelle la logique du programme. C'est généralement la tâche du programmeur que d'entrer la logique de traitement de l'information dans le logiciel, selon les besoins de l'utilisateur. Il en a toujours été ainsi car cela demande une certaine expertise pour programmer un logiciel et les programmeurs sont les experts dans ce domaine. Cependant, l'utilisateur est souvent lui-même un expert dans le domaine d'application du logiciel et il doit communiquer cette expertise au programmeur afin que ce dernier code la connaissance du domaine sous forme de logique informatique. Deux êtres humain avec des points de vues différents savez-vous ce que ça donne? À tout le moins, une communication laborieuse et incomplète. L'idéal ici serait que l'expert utilisateur soit lui-même programmeur ou que le programmeur soit un expert dans le domaine d'application du logiciel développé.

Mais observons bien en quoi consiste un programme informatique. Si on enlève la logique spécifique au domaine d'application, tous les programme modernes se ressemblent plus ou moins. Il y toujours des menus, des options à choisir, des zones de saisies de texte, des bouton à peser pour que s'éxécute une action ou des zones de pointage ou de déplacement d'objets. Ces objets sont aujourd'hui le plus souvent représentés par de petits dessins (les icones) mais peuvent l'être aussi par du texte ou un aperçu de l'information représentée. La seule chose qui distingue vraiment les logiciels entre eux aujourd'hui est la logique propre au domaine d'application. Si nous avions aujourd'hui, un standard de logique aussi répandu et complet que le sont les standards d'interfaces graphiques, les experts-utilisateurs seraient beaucoup plus en mesure d'insuffler eux-même leurs connaissances à l'ordinateur.

Voila pourquoi je suis en train de développer ETS. Plus qu'un simple logiciel, ETS est aussi un protocole de données, un système de programmation en langage naturel, mais surtout une théorie de la conscience. Selon cette théorie, on peut être conscient de quelque chose selon 3 dimensions soit l'énergie (E), le temps (T) et l'espace (S). La conscience (C), qui devient la quatrième dimension, s'obtient alors par des mesures dans ces trois dimensions et on peut inscrire ce principe de la façon suivante:

C = ETS

Chaque combinaision primaire (E seul, T seul ou S seul) est un type de conscience en soi. Lorsqu'aucune de ces trois dimensions n'est active, cela crée une quatrième combinaison correspondant à la conscience pure (abstraction sans réalité. Nous pouvons aussi avoir des combinaisons comme ET, ES, S/T, ETT/SS, E/SSS, etc... Voici un tableau des trois principales combinaisons secondaires:

codecombinaisonpsychologiesensorielrapport (X/Y)
ETénergie-tempsmentalsonpuissance (E/T)
ESénergie-espaceaffectifimageforce (E/S)
STespace-tempsphysiquemouvementvitesse (S/T)
inertie (T/S)

La conscience est donc une mesure de la réalité selon trois dimensions mais chaque dimension peut être mesurée de différentes façons. J'ai dénoté trois types de mesure qui sont la position (p), la direction (d) et la quantité (q). J'utilise également un quatrième concept, l'identité (i) pour indiquer un objet dont le type de mesure est plus ou moins clair, soit parce qu'il est indéfini ou parce qu'il en contient plusieurs. En combinant les 4 dimensions avec les 4 mesures, nous obtenons un tableau de 16 types de conscience, que je considère comme les racines de la description de la réalité telle que nous pouvons la percevoir.

dimension identité position direction quantité (unité de mesure)
conscience mot type, catégorie action, changement
cause - effet
valeur, mesure (objets)
peu - beaucoup
énergie substance activité, vitalité
inerte actif
excitation
calme - excité
travail, effort (joules)
facile - difficile
temps période moment, instant
début fin
attention
passé - futur
durée, age (secondes, années)
court,jeune - long,vieux
espace forme lieu, endroit
intérieur extérieur
orientation
gauche - droite
arrière - avant
bas - haut
distance, surface, volume (mètres)
court,mince,petit - long,large,gros

Ce tableau contient une soixantaine de mots, identifiés selon leur état de conscience CETS-ipdq. Les concepts derrière ces mots sont les données fondamentales du système ETS. Outre ceux-cis, une autre catégorie de concepts est nécessaire pour faire fonctionner ETS. Il s'agit des relations, mieux connu en programmation en tant qu'opérateurs ou fonctions. Le langage courant les dénomme aussi verbes, actions, conjonctions, prépositions. En notation ETS, j'utilise la lettre r(relation) pour identifier ce type de concept. Voici le tableau des relations de base:

variation identié
(logique)
position direction quantité mathématique
indéfinie percevoir (perceive) étre (be) faire (do) avoir (have) calculer
positive et (and) dans (in) vers (to) plus (more) additionner, multiplier, exposant
nulle ou (or) sur (on) à, en (at) égal (same) assigner
négative non (not) hors (out) de (from) moins (less) soustraire, diviser, racine

Il faut noter que j'ai mis entre parenthèses la traduction anglaise afin de mieux cerner le concept sous-jacent à chaque case, ces mots pouvant souvent prendre d'autres sens qui rendent ambigu la description de ces concepts. Maintenant que nous avons environ 80 mots qui sont définis, nous pourrions tenter de les combiner afin d'en définir de nouveaux. Par example, le verbe placer, pouvant se comprendre comme modifier la position spatiale d'un objet pourrait se lire comme suit:

placer _rp _rd _pS _rd-

Dans l'expression ci-haut, le souligné (_) indique que c'est un code ETS, r = relation, p = position, d = direction, S = espace et le moins (-) indique une relation de variation négative. Nous pouvons traduire cette expression en français ainsi:

placer est faire lieu de

Petite note pour ceux qui aiment la précision. Pour que le programme arrive à comprendre la phrase ci-dessus, il faudrait lui donner quelques autres expressions auparavant:

est _rp _rp

faire est _rd

lieu est _pS

de est _rd-

Lorsque nous appliquons le verbe placer à une situation concrète, par example Jean, chaise et salon, nous aurions:

Jean place chaise dans salon est Jean faire lieu de chaise dans salon

Peut-être n'est-ce pas trop compréhensible et que quelques parenthèses augmenteraient la lisibilité de l'expression. Normalement, elles ne devraient pas être nécessaires pour le programme en définissant un ordre de précédence pour les opérateurs.

(Jean place chaise dans salon) est (Jean faire (lieu de chaise) dans salon)

Ce petit exercice a pour but de démontrer comment nous pouvons définir des concepts plus complexes à partir de concepts simples. Le but ultime serait de pouvoir éventuellement avoir suffisamment de concepts définis manuellement pour ensuite faire lire un dictionnaire au programme afin qu'il définisse le reste des mots. Le dictionnaire Longman prétend pouvoir définir tous les mots de la langue anglaise avec seulement 2000 mots de base. Moi, j'en suis à une centaine, donc je suis encore loin du but. Vous pouvez cependant constater ce que cela donne en suivant le lien ci-dessous.

Démo de programmation en langage naturel