\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 peuvent en aucune manière évoluer et former de groupes cohérents. L'intégrité et la cohérence d'un groupe passe 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 apris à é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'autre, 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îtriserait 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 normes, des règles bien définies, qui permettent de définir le protocole de manière unique et sans ambiguïtées, 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 couremment 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{Criètres} 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 parnant 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éduisse 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 naturele, 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 expressivié, 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} % Différences entre idéogrammes…. Expliquer brièvement leurs propriétés. \subsection{Phonogrammes et syllabaires} \subsection{Idéogrammes et pictogrammes} \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é par des séries d'impulsions. Seulement deux types d'impulsions son nécessaires pour tout coder, une impulsion courrte 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éhensions s'arrêtrera à 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 transmission codées, et même si un spectre de fréquence radio et toujours réservé pour les seules émission 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 toujourstrè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'utilisera 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 épeller un mot français en LSF), mais comme ce ne serait vraiment pas pratique d'épeller 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 ambigus 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{Langages spécifiques à un domaine} \subsection{Documents techniques et formules mathémathiques} % TODO Les documents techniques, parmi lesquels ont 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ées 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} Difficiles à apprendre, mais pas trop, et être un expert du domaine aide beaucoup. Ambigüité faible. Expressivité forte, mais seulement dans le domaine. Exemples : BCL, … \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=brown, fill opacity=0.5,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) {BCL}; \draw[draw=brown,draw opacity=0.5,thick] (bcltext) -- (bcl); \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} % TODO : même graphique pour expressivité vs. facilité % d'apprentissage, et facilité d'apprentissage vs formalisme. Ouverture : une collection de langages spécifiques à un domaine : Un 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 exige un effort d'apprentissage plus élevé pour l'agent naturel, car il faut qu'il apprenne un nouveau protocole pour chaque dicipline. Cependant, cet effort d'apprentissage est morcelé : l'utilisateur peut commencer par apprendre seulement quelques protocoles, converser avec la machine, puis au fil des besoins apprendre de nouveaux protocoles au fur et à mesure. 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. %schéma montrant cette architecture. \end{document}