Mon objectif pour cet exercice est de créer un petit robot pouvant enseigner des notions très générales de géographie (avec l'exemple de la Jamaïque), et ce grâce aux expressions régulières.
L'apprentissage par un dialogue de type socratique peut s'avérer bénéfique, et il est possible de le médiatiser par l'ordinateur. L'automatisation du dialogue socratique comme dans SCHOLAR (Carbonnell cf. Wenger, 1987) qui permettait l'apprentissage de la géographie fut un exemple important de l'apport de l'IA au champs émergent de l'EAO. Les travaux de personnes telles que Vygotsky on aussi mis en avant l'importance du dialogue avec un tuteur. Dans notre cas, il s'agit bien entendu de dialogue beaucoup plus simple : le traitement de la langue naturelle ne s'effectue qu'avec les expressions régulières et il n'y a pas de réseau sémantique organisant le domaine. Nous avons cependant essayé, tout en constuisant un dispositif très simple et minimal, de garder en mémoire le fait que l'on veut que l'apprenant découvre un domaine en discutant.
En regardant les travaux des années précédentes, j'ai noté qu'il y avait globalement deux types de dispositif :
- Soit un dispositif de type dialogue avec des expressions
régulières variées permettant de simuler une discussion (du genre "ca
va ?", "oui et vous", "bien, décrivez vous..."). Il y avait alors peu
de fond, le cadre était très vague, on ne pouvait pas parler de
quelque chose de précis. On a donc l'impression au bout d'un certain
temps de tourner en rond, même si c'est très "user-friendly" de
dicuter avec un bot dans une interface.
- Soit un dispositif de
type éducatif, où le cadre est restreint et l'on ne peut s'en
éloigner.
J'ai donc choisit de dévelloper quelque chose dans cette seconde voie
qui me semblait plus efficace. Je me suis efforcé de trouver un
domaine où les connaissances ne sont pas procédurales (pas apprendre à
faire de la planche à voile par exemple). Le tuteur doit pouvoir
transmettre des connaissances déclaratives. Cela pourrait notemment
être intéressant dans le cadre d'un système d'aide pour un
logiciel. J'ai ainsi choisi la géographie (peut être l'influence de
Scholar ;) Les notions à découvrir sont extrémement
rudimentaires. Mais, intuitivement, je trouve que c'est plus
sympathique de poser les questions à un tuteur robot que de lire un
simple descriptif (c'est par contre plus lent :).
Idéalement, le rôle de mon tuteur est d'engager un
dialogue avec l'élève afin de l'amener à acquérir des connaissances en
élaborant et en enchaînant les questions de telle sorte que l'élève
les découvre par lui-même.
Bien entendu, atteindre un tel objectif est difficile. Prévoir le
comportement d'un individu qui dialogue avec le tuteur est
complexe. Prendre du recul (en tant que concepteur) par rapport à ce
qu'on lui dit de dire est impératif ! La solution réside dans la
contrainte : il faut provoquer les questions de l'apprenant en le
guidant le mieux possible car s'il dévie trop, on sort du cadre et la
discussion devient du pure nonsense. C'est d'ailleurs pour cela que je
n'ai pas rajouté de commandes fun à mon bot (telle que lui demander
comment il va, s'il écoute du reggae ou joue de la guitare, s'il
s'embête...). J'ai fait un bot plus fun dans le moo et je gardes
celui-ci pour l'exercice.
J'ai utilisé emacs (comme d'habitude ;) et vérifié mon code javascript avec la console de netscape. J'ai un peu modifié le script pour pouvoir garder une trace de toute la conversation (pour ne pas que les phrases disparaissent à chaque fois). Comme je voulais rajouter une petite touche d'originalité à ce travail et pas seulement écrire le code des expressions régulières, j'ai mis :
- Une boucle switch qui regarde la ponctuation : si l'apprenant pose une question, il sera écrit "Vous demandez" et s'il s'exclame avec un "!", il sera écrit "Vous vous exclamez". Cela pour "customiser" un peu la conversation.
- Des if qui font apparaitres des popup windows pour montrer le drapeau de la jamaïque et une carte de l'île.
Au niveau des expressions régulières, j'ai utilisé surtout des .* et peu récupéré le contenu des questions posées par l'apprenant, c'est moins "fun" mais c'est justifié par l'apprentissage du domaine. J'ai également essayé de prendre en compte les erreurs d'accents.