\documentclass[french,a4paper]{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[frenchb]{babel} \usepackage{tikz} \usetikzlibrary{shapes,positioning,snakes,calc,chains} \usepackage{hyperref} \hypersetup{% colorlinks,% citecolor=black,% filecolor=black,% linkcolor=black,% urlcolor=black% } \title{FMIN327 Cognition individuelle et collective\\Protocoles artificiels entre agents naturels} \author{BONAVERO Yoann \and DUPÉRON Georges} \begin{document} \maketitle \begin{abstract} Dans cet article, nous effecteuons une étude comparative de différents protocoles de communication utilisés par les humains susceptibles d'être utilisés dans la communication homme-machine, sans grand apprentissage de la part des humains. Nous montrons qu'en général, le niveau d'expressivité d'une langue est inversément proportionnel à son niveau de formalisme. Nous montrons aussi que les langages centrés sur un domaine d'application peuvent être à la fois expressifs dans ce domaine et avoir un haut niveau de formalisme. \end{abstract} \tableofcontents \newpage \section{Introduction} \subsection{Approche générale} Tout individu quel qu'il soit, privé de toutes formes de communication, d'émotions et de sensations, ne peut en aucune manière évoluer et former de groupes cohérents. L'intégrité et la cohérence d'un groupe passent majoritairement par un échange d'informations entre les individus. Celles-ci ne peuvent pas être transmises n'importe comment, les individus constituant le groupe doivent être en mesure de les comprendre. Le formatage de l'information devient essentiel, tout comme le support qui va être utilisé pour la transmettre. Au fil du temps les individus ont appris à échanger des idées et des concepts de diverses manières. Que ce soit par le biais de gestes, de dessin, de rictus ou bien d'autres, les hommes ont petit à petit mis en place un moyen de communication efficace. Toutes ces façons de transmettre l'information ont sans cesse évolué pour répondre en permanance aux besoins. Dans la communication il est possible de regrouper en deux grandes catégorie les protocoles de communication. Il y a ceux qui sont "naturels", qui ont évolués de manière organique au fil des années, et ceux qui sont inventés par un «individu» dit artificiels. \subsection{But de l'étude} Le but de cette étude est de trouver un ou des protocoles de communication entre agents qui seraient facilement appris par des agents naturels (les humains), qui pourraient de préférence être utilisés dans la communication de tous les jours (cela assurerait que les humains maîtriseraient bien le protocole), et qui seraient facilement «compris» par une machine. Comme un tel protocole n'existe probablement pas, nous étudierons la facilité d'apprentissage par les humains, l'expressivité et la facilité de compréhension par une machine de plusieurs protocoles, afin de trouver les caractéristiques du protocole qui semblent lui permettre de satisfaire ces trois critères. % TODO : nettoyer un peu ça vis-à-vis du paragraphe ci-dessus. Nous nous intéresserons donc principalement aux protocoles artificiels. En effet, les protocoles naturels, de part leur évolution non contrôlée au fil du temps ont tendance à être très ambigus, et avoir une grammaire comportant beaucoup d'exceptions (donc difficile à interpréter), et une syntaxe approximative, qui accepte différents ordres pour les mots d'une phrase, mais souvent avec une différence dans la sémantique. Nous chercherons aussi à ce que les protocoles étudiés soient formels. En d'autre termes ceux qui ont des normes, des règles bien définies, qui permettent de définir le protocole de manière unique et sans ambigüités, ce qui facilite leur interprétation par la machine. La plupart des protocoles artificiels ont une syntaxe et une grammaire plutôt rigoureuse. Nous considérerons les protocoles parlés couramment par un gand nombre d'agents naturels (des humains). Nous n'explorerons pas la possibilité d'utiliser ces mêmes protocoles entre des agents artificiels comme des robots ou des ordinateurs, ni des protocoles prévus dans ce but (car ils sont en général inadaptés à l'apprentissage par les humains). \subsection{Critères} Pour chaque protocole de communication, nous étudierons plusieurs critères~: \begin{itemize} \item La facilité d'apprentissage par un individu. \item L'ambigüité de son vocabulaire, sa grammaire et sa syntaxe, autrement dit la difficulté qu'une machine aura à comprendre le protocole. \item L'expressivité du protocole, autrement dit la facilité avec laquelle un humain pourra exprimer des concepts et relations complexes. \end{itemize} \section{Les langues naturelles} Les langues naturelles sont les protocoles de communication les mieux maîtrisés par les humains. Cependant, le vocabulaire est source d'ambigüité, d'une part à cause des multiples définitions d'un mot, et des connotations qu'il peut acquérir selon son contexte, et d'autre part à cause des néologismes qui ne seraient pas encore répertoriés dans un dictionnaire, dont le sens est difficile à déterminer de manière certaine en utilisant seulement leur étymologie. De même, comme expliqué précédemment, leur grammaire est irrégulière et bien qu'elle permette souvent de faciliter la compréhension de la phrase (on pourra rattacher un adjectif au féminin seulement aux substantifs féminins de la phrase, ce qui élimine des combinaisons possibles), les mots invariables et autres exceptions apparaissent trop souvent pour que l'on puisse compter dessus. La syntaxe de ces langues est elle aussi une grande source d'ambigüité puisque changer l'ordre des mots d'une phrase peut résulter en une autre phrase correcte, mais avec un sens plus ou moins différent de la première, sans qu'il y ait vraiment de règles formelles décrivant cela. L'expressivité des langues naturelles est très grande, bien que pas illimitée, car il est parfois difficile de décrire des formes et images, ou encore des sons, des odeurs ou d'autres sensations. Les langues naturelles sont donc faciles à apprendre, disposent d'une grande expressivité, mais sont très ambigues. Il est possible de réduire un peu l'ambiguité en s'imposant des contraines (uniquement des phrases «sujet verbe objet» par exemple), auquel cas on perd en expressivité. % TODO : pilud-ml "english (even controlled) for programming". \section{Une langue construite : L'Espéranto} L'espéranto est une langue construite, créée par Ludwik Lejzer Zamenhof en 1887, dans le but de créer une langue universelle facilitant la communication entre peuples. L'espéranto compte à ce jour environ deux millions de locuteurs. Ce n'est pas la seule langue construite, parmi les autres on compte le lojban, créé pour permettre une expression puissante de la logique, ainsi que les diverses langues créées par J.R.R Tolkien. Nous prendrons l'espéranto comme exemple parmi les langues construites car c'est l'une des plus connues. Bien que peu de gens parlent l'espéranto, c'est une langue qui est facile à apprendre. On estime qu'il faut compter 150 heures d'étude pour pouvoir suivre une conversation courante enespéranto. L'espéranto est donc relativement facile à apprendre, même pour les gens ne le parlant pas encore. Le vocabulaire de l'espéranto, comme celui de la plupart des langues naturelles, contient des ambigüités, certains mots sont polysémiques, et peuvent acquérir un nouveau sens en fonction du contexte. Cependant, comme l'espéranto est une langue agglutinante, on peut construire un large vocabulaire avec peu de racines. Cependant, l'espéranto dispose d'un grammaire régulière, c'est à dire sans exceptions. Cela permet donc de facilement faire une relation ente l'orthographe d'un mot et sa fonction dans la phrase, en analysant ses préfixes et suffixes. Cette association entre une langue agglutinante et une grammaire régulière nous permet de penser qu'il «suffit» pour un programme de comprendre la sémantique des racines et des différents préfixes et suffixes pour maîtriser une grande partie du vocabulaire, et «comprendre» des concepts complexes. Par exemple, à partir de la racine \emph{vid}, qui concerne la vue, on peut facilement comprendre le verbe voir (\emph{vid}i), le substantif vue (\emph{vid}o), et même des concepts plus complexes comme le visible et l'invisible (\emph{vid}ebla kaj ne\emph{vid}ebla). La syntaxe de l'espéranto n'est pas beaucoup fixée, comme en latin, l'ordre des mots importe peu, même s'il permet de mettre l'accent sur certains mots. Pour qu'une machine produise des phrases, c'est un avantage, car cela permet de ne pas trop se soucier de l'ordre des mots sans parler «petit nègre». Pour qu'une machine comprenne les humains, cela signifie que l'on peut imposer à l'utilisateur d'écrire ses phrases sous une certaine forme, pour faciliter l'analyse, sans que cela réduise grandement l'expressivité. En ce qui concerne l'expressivité justement, bien que l'espéranto ait fait l'objet de plusieurs critiques considérant que puisque l'espéranto était une langue construite il ne pouvait pas avoir la richesse d'une langue naturelle, il est communément admis par les espérantistes que l'expressivité de l'espéranto est aussi grande que celle des langues naturelles. On trouve en espéranto de la poésie, des discours politiques, des contes pour enfants et même des articles encyclopédiques (il existe une version de wikipedia en espéranto). L'espéranto est donc un protocole de communication relativement facile à apprendre, disposant d'une grande expressivité, assez ambigu mais moins que la plupart des langues naturelles. On peut imposer des contraintes sur la syntaxe (et le vocabulaire, en fixant une sémantique précises pour les racines) pour le rendre moins ambigu sans perdre beaucoup en expressivité. \section{Logogrammes} \subsection{Phonogrammes et syllabaires} Les phonogrammes sont des caractères utilisés pour représenter un phonème dans l'écriture d'une langue. Les syllabaires représentent, eux, une syllabe entière. Ces caractères peuvent être utilisés pour transcrire la pensée de l'utilisateur. Les alphabets utilisant des phonogrammes comportent en général un faible nombre de caractères et sont donc faciles à apprendre. Les alphabets syllabaires comportent souvent un nombre de caractères beaucoup plus grand, car en combinant plusieurs phonèmes, l'espace des possibilités devient vite vaste. Ces notations peuvent être utilisées pour communiquer avec la machine, soit avec un clavier, soit par reconnaissance de caractères. Excepté une certaine ambigüité lors de la reconnaissance d'une écriture mal formée dans le second cas, il n'y a pas beaucoup de place à l'interprétation. Cependant, cette facilité de compréhension par une machine vient au dépens de l'expressivité, puisque ces protocole ne permet d'encoder que des phonèmes ou syllabes, et ne dit rien de leur signification. Les phonogrammes et syllabaires sont donc faciles à apprendre, avec une très faible expressivité et peu d'ambigüité. \subsection{Idéogrammes et pictogrammes} Les pictogrammes sont des caractères représentant des concepts concrets, en les dessinant, ou avec une forte analogie. Les idéogrammes sont la combinaison de plusieurs pictogrammes pour représenter quelque chose d'abstrait. Ces notations sont relativement difficiles à apprendre, puisqu'il faut environ un symbole par concept, et le nombre de caractères est donc très grand. Par ailleurs, l'expressivité des idéogrammes et pictogrammes est supérieure à celle des phonogrammes et syllabaires. Les idéogrammes et pictogrammes peuvent être assez ambigus, puisqu'un caractère représentera un concept général, mais sa sémantique précise viendra du contexte, tout comme le vocabulaire d'une langue. Ces écritures peuvent toutefois être utilisées dans la communication homme-machine, comme le jeu Captain Blood l'a montré, dans lequel le joueur communique avec différentes races d'extraterrestres au moyen d'une vingtaine de pictogrammes. Les idéogrammes et pictogrammes sont donc plus difficiles à apprendre que phonogrammes et syllabaires, avec une expressivité plus forte et une plus grande ambigüité. \subsection{Codages et systèmes d'écriture} \subsubsection{Le morse} Le code Morse est généralement attribué à Samuel Morse. Ce code à été inventé pour la télégraphie en 1835. Il consiste en une série d'impulsions. Les lettres, chiffres et signes de ponctuation sont représentés par des séries d'impulsions. Seulement deux types d'impulsions sont nécessaires pour tout coder, une impulsion courte que l'on appelle généralement «Point» et une impulsion longue appellée «Trait». Ce protocole est facile à apprendre pour les humains (une liste de quelques séries d'impulsions à associer à chaque lettre), mais il est difficile à utiliser. Bien qu'il ait été utilisé pour la communication entre humains par l'intermédiaire d'une machine, il s'agit réellement d'une forme de communication primitive avec cette machine, qui transmettait l'information à une autre via une ligne télégraphique ou par ondes radio. Ce protocole de communication possède un vocabulaire très restreint (le point et le trait, soit un bit, qui assemblés forment les lettres de l'alphabet, chiffres et ponctuation). Il n'y a pas à proprement parler de grammaire ni de syntaxe, mis à part que l'assemblage des points et des traits fait émerger des symboles plus «gros» (lettres, chiffres et ponctuation, puis des mots), que l'on sépare par des espaces (ou silences). Il est donc très facile à comprendre pour une machine, car il suffit de transcrire les points et traits en bits 0 et 1, et un simple automate à états finis permettra de décoder ces séquences de bits en une suite de lettres. Cependant, cette compréhension s'arrêtera à une suite de symboles sans sémantique, car le morse possède une très faible expressivité~: Il s'agit simplement d'un encodage de l'alphabet, qui lui-même, comme vu précédemment, nécessite un protocole de plus haut niveau (une langue, un langage de programmation…) pour transmettre un message sémantique. Son expressivité est donc comparable à celle du braille (voir ci-dessous). Les militaires ont utilisé ce code pour effectuer des transmissions codées, et même si un spectre de fréquence radio est toujours réservé pour les seules émissions en morse, il s'agit réellement de la couche physique de la communication selon le modèle OSI, soit la couche la plus basse. Ce code n'apporte pas de grand intérêt en terme de communication homme-machine~: difficile à manipuler pour les humains, un vocabulaire très restreint (juste des symboles) et par conséquent une expressivité faible. \subsubsection{Le braille} Le braille est une manière de représenter l'alphabet. il consiste en une représentation en relief de l'ensemble des lettres, chiffres, ponctuation, et autres symboles en relief. Il a été étudié pour permettre la lecture simplement avec les doigts. Le braille a été mis au point par Louis Braille en 1824 et reste aujourd'hui après une série de réformes et normalisations toujours très utilisé. Ce protocole est assez facile à apprendre, bien qu'il faille une certaine habitude pour lire le braille avec les doigts. Son utilité dans l'échange homme-machine reste, comme pour le Morse, très faible, et seuls les malvoyants et aveugles ont un intérêt à l'utiliser pour saisir ou lire du texte sur une plage braille, comme on utiliserait un clavier et un écran. \subsubsection{La langue des signes} Les différentes langues des signes ont été créées pour permettre la communication entre personnes muettes et malentendantes. Elle permet aussi à ces personnes de dialoguer avec les entendants qui ont appris leur langue des signes. La Langue des Signes Française (LSF) permet entre autres l'encodage des lettres (on peut épeler un mot français en LSF), mais comme ce ne serait vraiment pas pratique d'épeler une conversation entière, la LSF possède un grand nombre de signes permettant d'exprimer la plupart des concepts que la langue française sait exprimer, et les relations entre ces concepts. La Langue des Signes Française est donc aussi expressive que les langues parlées. Elle se présente comme un «système d'écriture» basé sur des pictogrammes et idéogrammes, car beaucoup de signes sont une sorte de mime du concept concret qu'ils expriment, et les autres signes suffisent à eux seuls à représenter un mot entier. La LSF est aussi difficile à apprendre qu'une langue parlée, mais elle est déjà parlée par un grand nombre de muets, sourds et malentendants. Elle présente beaucoup d'ambigüité sur la sémantique des signes (son vocabulaire), qui peut varier en fonction de la direction ou la vitesse. La grammaire et la syntaxe de la LSF sont différentes de celle du français (lorsqu'on utilise les signes mais en utilisant l'ordre des mots du français, on parle de «français signé»). On peut parfois composer plusieurs signes simultanément pour exprimer directement une relation entre ces deux signes, par exemple les expressions du visage sont souvent utilisées pour exprimer une émotion en même temps qu'un autre signe. Un projet, nommé SiSi (Say It Sign It\footnote{Dites-le, signez-le}), a été lancé par IBM visant à offrir une traduction voix vers langue des signes. Les machines peuvent donc signer, mais cette langue semble difficile à interpréter pour une machine, principalement à cause de la difficulté à comprendre quel signe est effectué à partir d'un flux d'images. Les langues des signes sont donc des protocoles de communication adaptés à un groupe d'individus, les sourds, malentendants et muets, mais peu utilisés par les autres personnes. Leur apprentissage nécessite un assez grand effort, bien que le résultat soit très intéressant (il permet de communiquer avec une partie de la population qui est par ailleurs plutôt exclue de la communication entre humains). Les langues des signes disposent d'une grande expressivité, mais sont au moins aussi ambigües que les langues parlées, voire plus. Leur compréhension par la machine est assez difficile, mais leur expression est possible (et déjà réalisée dans le cadre du projet SiSi). Leur utilisation en tant que protocole de communication entre l'homme et la machine n'a pas grand intérêt, par contre, leur compréhension par la machine à des fins éducatives ou de traduction est très prometteuse. \section{Notations spécifiques à un domaine} \subsection{Documents techniques et formules mathémathiques} % TODO Les documents techniques, parmi lesquels on peut trouver différentes vues d'objets (vue en perspective, d'ensemble, de coupe, éclatée…), sont des représentation très formelle d'objets ou de concepts. Leur forme est en général assez facile à apprendre pour les humains, car il s'agit simplement d'un certain nombre de règles à respecter. Ces documents techniques sont normalisés et laissent place à très peu, voire aucune ambigüité dans les représentations. Les formules mathémathiques forment un autre protocole similaire aux documents techniques, très formel, bien que beaucoup de personnes aient tendance à être laxistes sur la syntaxe. L'expressivité de ces protocoles est toutefois relative : Tant que l'on considère uniquement leur domaine d'application, ils restent très expressifs (quoi de mieux qu'une formule mathémathique pour parler d'algèbre ?), cependant ces protocoles ne formalisent pas la relation entre les choses exprimées et leur contexte. En effet il est très difficile de retrouver la sémantique d'une formule lorsque celle-ci est déjà écrite et isolée, et si nous comprenons à quoi se réfèrent les formes dessinées dans une vue éclatée, c'est uniquement par analogie avec les objets physiques que nous connaissons déjà. De plus, ces protocoles ne sont expressifs que dans une discipline particulière. Il est assez simple de stocker sur une machine des documents techniques ou des formules mathémathiques et même de les restituer, par exemple sous forme visuelle (sur un écran). Ces protocoles sont relativement faciles à apprendre, et compréhensibles pour une machine, sont très expressifs mais seulement dans leur domaine. Ils peuvent donc être adaptés à la communication homme-machine dans un domaine particulier, mais pour une communication généralisée, il faudra les utiliser conjointement avec d'autres protocoles. \subsection{Langages de programmation spécifiques à un domaine} Les langages de programmation spécifiques à un domaine (DSL) sont des langages artificiels utilisés en informatique pour exprimer des concepts et relations dans une discipline particulière. De tels langages ont aussi été utilisés pour une communication entre humains, par exemple le langage BCL (Buisness Contract Language) permet de formaliser des contrats, et permet de s'assurer via un programme informatique que tous les cas possibles ont été réglementés par le contrat, et que les clauses du contrat ne sont pas incompatibles. Ces langages sont assez difficiles à apprendre, mais pas trop, et être un expert du domaine aide beaucoup. Ils présentent une faible ambigüité, puisqu'ils ont été spécialement conçus pour représenter de manière claire et concise les concepts et relations propres à leur domaine. Ils présentent une forte expressivité, mais seulement dans la discipline qui les concerne, et souvent présentent de graves lacunes dans tout ce qui ne touche pas directement à leur domaine. \section{Conclusion} \begin{figure}[h] \centering \begin{tikzpicture}[scale=0.5,node distance=0.5cm,font=\footnotesize] \node at (12,10) {}; \draw[->] (0,0) -- (11cm,0); \draw[->] (0,0) -- (0,11cm); \node[anchor=north] at (10cm,0) {Expressivité}; \node[anchor=south,xshift=0.5cm] at (0,11cm) {Formalisme}; \node[fill=red, fill opacity=0.5,circle, minimum width=0.5cm,minimum height=0.5cm,inner sep=1mm,rotate=0] (mb) at (1cm,10cm) {}; \node[right=of mb,text width=2cm] (mbtext) {Morse\\Braille}; \draw[draw=red,draw opacity=0.5,thick] (mbtext.170) -- (mb); \node[fill=orange, fill opacity=0.5,ellipse,minimum width=1cm,minimum height=0.5cm,inner sep=1mm,rotate=-90] (sph) at (1cm,9.4cm) {}; \node[anchor=west,at=(sph.30),xshift=1.5cm,yshift=-0.8cm,text width=2cm] (s) {Syllabaires\\Phonogrammes}; \draw[draw=orange,draw opacity=0.5,thick] (s.170) -- (sph); \node[fill=yellow!80!black, fill opacity=0.5,ellipse,minimum width=3cm,minimum height=0.7cm,inner sep=1mm,rotate=-65] (ipi) at (2cm,8cm) {}; \node[anchor=north,at=(ipi.south),yshift=-1.5cm,xshift=5mm,text width=2cm,text centered] (i) {Idéogrammes\\Pictogramme\\LSF}; \draw[draw=yellow!80!black,draw opacity=0.5,thick] (i) -- (ipi.-15); \node[fill=green,fill opacity=0.5,ellipse,minimum width=2.8cm,minimum height=0.8cm,inner sep=1mm,rotate=-45] at (8.5cm,2.5cm) {Espéranto}; \node[fill=blue, fill opacity=0.5,ellipse,minimum width=2.3cm,minimum height=0.7cm,inner sep=1mm,rotate=-20] at (8.5cm,1.5cm) {Français}; \node[fill=brown, fill opacity=0.5,circle, minimum width=0.5cm,minimum height=0.5cm,inner sep=1mm,rotate=0] (no) at (6cm,10cm) {}; \node[right=of no,text width=2cm] (notext) {Notations}; \draw[draw=brown,draw opacity=0.5,thick] (notext) -- (no); \node[fill=none,circle, minimum width=0.5cm,minimum height=0.5cm,inner sep=1mm,rotate=0] (bcl) at (6cm,9cm) {}; \node[right=of bcl,text width=2cm] (bcltext) {DSL}; \draw[draw=brown,draw opacity=0.5,thick] (bcltext.west) -- (no); \draw[draw=black,line width=1mm,draw opacity=0.5] (0.2,10.8) -- (10.8,0.2); \end{tikzpicture} \caption{Comparaison de l'expressivité et du formalisme des différents protocoles.} \end{figure} Dans le graphique ci-dessus, le protocole de communication homme-machine idéal serait situé dans le coin supérieur droit, avec une forte expressivité et un formalisme élevé. L'étude des protocoles existant montre qu'en général, le niveau de formalisme est inversément proportionnel à l'expressivité. Le graphique représentant le formalisme en fonction de la facilité d'apprentissage est sensiblement le même, et n'a donc pas été représenté ici. Bien que l'espéranto présente des avantages par rapport à la plupart des langues naturelles, il présente beaucoup d'ambigüité. Les protocoles qui semblent réellement faire exception sont les notations spécifiques à un domaine (DSL, notations mathémathiques, vues normalisées…). Cette apparente supériorité résulte du fait que ces protocoles sont très expressifs dans leur spécialité, et uniquement celle-là, ce qui leur permet d'atteindre un haut niveau de formalisme en sacrifiant leur expressivité dans d'autres domaines. Il serait donc envisageable d'utiliser pour la communication homme-machine une collection de langages spécifiques à un domaine : Un protocole pour le déroulement global de la conversation, un ou plusieurs permettant de faire la liaison entre les concepts et relations exprimés dans différents protocoles, puis un pour chaque domaine pour lequel on veut converser avec la machine. Cela exigerait un effort d'apprentissage plus élevé pour l'agent naturel, car il faudrait qu'il apprenne un nouveau protocole pour chaque dicipline. Cependant, cet effort d'apprentissage serait morcelé : l'utilisateur pourrait commencer par apprendre seulement quelques protocoles, converser avec la machine, puis au fil des besoins apprendre de nouveaux protocoles au fur et à mesure. Cette technique serait la contraposée de l'hypothèse de Sapir-Whorf~: Plutôt que de supposer que la langue utilisée conditionne la pensée du locuteur, le locuteur utiliserait la «langue» adaptée aux pensées qu'il veut véhiculer. Pour résumer, l'utilisateur dialoguerait avec la machine en utilisant une multitude de «jargons» adaptés à une communication efficace et sans ambigüités dans leur domaine, et quelques protocoles transversaux pour articuler la discussion et relier entre eux les fragments de conversation rédigés dans des langages différents. \end{document}