Vers une approche générique pour l interprétation de commandes en langage naturel



Documents pareils
Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Formula Negator, Outil de négation de formule.

Cours 1 : La compilation

Utilisation des tableaux sémantiques dans les logiques de description

Chapitre VI- La validation de la composition.

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Structuration des décisions de jurisprudence basée sur une ontologie juridique en langue arabe

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Programmation d'agents intelligents Vers une refonte des fils de raisonnement. Stage de fin d'études Master IAD 2006

Problématiques de recherche. Figure Research Agenda for service-oriented computing

Intelligence Artificielle Planification

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

4. SERVICES WEB REST 46

INTRODUCTION AUX TECHNOLOGIES D INGENIERIE DES DONNEES DIRIGEE PAR LES MODELES

Les indices à surplus constant

Apprentissage Automatique

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Principes d AdWords. Quelques mots de présentation. Une audience large : les réseaux de ciblage. Réseau de recherche

COR-E : un modèle pour la simulation d agents affectifs fondé sur la théorie COR

Le langage SQL Rappels

Big Data et Graphes : Quelques pistes de recherche

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Rappel sur les bases de données

LIVRE BLANC Décembre 2014

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

chapitre 4 Nombres de Catalan

Notes de lecture : Dan SPERBER & Deirdre WILSON, La pertinence

Cours de Master Recherche

Haka : un langage orienté réseaux et sécurité

Principe de symétrisation pour la construction d un test adaptatif

OCL - Object Constraint Language

M1 : Ingénierie du Logiciel

BIG Data et R: opportunités et perspectives

Big Data et Graphes : Quelques pistes de recherche

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Université Paris-Dauphine DUMI2E 1ère année, Applications

IFT2255 : Génie logiciel

Linked Open Data. Le Web de données Réseau, usages, perspectives. Eric Charton. Eric Charton

Devenez un véritable développeur web en 3 mois!

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

INTRODUCTION AUX METHODES D INGENIERIE DES DONNEES DIRIGEE PAR LES MODELES

1 Introduction et installation

Eclipse Process Framework et Telelogic Harmony/ITSW

Chapitre 1. L intérêt. 2. Concept d intérêt. 1. Mise en situation. Au terme de ce chapitre, vous serez en mesure de :

Encryptions, compression et partitionnement des données

Dafoe Présentation de la plate-forme UIMA

TP1 : Initiation à Java et Eclipse

Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Modélisation des données

Une méthode d apprentissage pour la composition de services web

Resolution limit in community detection

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal

Créer le schéma relationnel d une base de données ACCESS

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

Retour d expériences avec UML

plate-forme PaaS (Audit)

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Ingénierie et gestion des connaissances

Les diagrammes de modélisation

Chapitre 2 Le problème de l unicité des solutions

L import massif introduit plusieurs nouvelles fonctionnalités, selon que l on importe un thésaurus, un ensemble de valeurs contrôlées ou un corpus.

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Les nombres entiers. Durée suggérée: 3 semaines

CONSEILS POUR LA REDACTION DU RAPPORT DE RECHERCHE. Information importante : Ces conseils ne sont pas exhaustifs!

Problèmes de Mathématiques Filtres et ultrafiltres

Chapitre 1 Qu est-ce qu une expression régulière?

Techniques d analyse et de conception d outils pour la gestion du processus de segmentation des abonnés des entreprises de télécommunication

Manuel de System Monitor

Tâche complexe produite par l académie de Clermont-Ferrand. Mai 2012 LE TIR A L ARC. (d après une idée du collège des Portes du Midi de Maurs)

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

CCNA Discovery Travailler dans une PME ou chez un fournisseur de services Internet

Évaluation et implémentation des langages

Didacticiel Études de cas. Description succincte de Pentaho Data Integration Community Edition (Kettle).

Bien architecturer une application REST

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Le pilotage des collaborations et l interopérabilité des systèmes d information Vers une démarche intégrée

données en connaissance et en actions?

Programmation Web. Madalina Croitoru IUT Montpellier

Plan 1/9/2013. Génération et exploitation de données. CEP et applications. Flux de données et notifications. Traitement des flux Implémentation

TUTORIEL Qualit Eval. Introduction :

Cours 1 : Qu est-ce que la programmation?

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Probabilités sur un univers fini

BABEL LEXIS : UN SYSTÈME ÉVOLUTIF PERMETTANT LA CRÉATION, LE STOCKAGE ET LA CONSULTATION D OBJETS HYPERMÉDIAS

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

IBM Tivoli Monitoring, version 6.1

Entraînement, consolidation, structuration... Que mettre derrière ces expressions?

Nom de l application

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Transcription:

Vers une approche générique pour l interprétation de commandes en langage naturel Laurent Mazuel, Nicolas Sabouret Laboratoire d Informatique de Paris 6 (LIP6) 104 av du Président Kennedy 75016 Paris FRANCE laurent.mazuel@lip6.fr http ://www-poleia.lip6.fr/ mazuel Résumé : Dans cet article, nous nous intéressons à l interprétation des commandes en langue naturelle d un utilisateur à un agent artificiel. Nous proposons une architecture générique pour le traitement de ces commandes, c est-àdire adaptable à différents types d applications. Les algorithmes de traitement dépendent uniquement du code de l agent et de l ontologie de domaine associée à cet agent. Nous présentons ensuite une évaluation comparative de trois approches : l approche descendante, reposant sur les contraintes syntaxique du langage de description de l application, l approche ascendante, reposant sur l utilisation de connaissances sur l ensemble des actions possibles de l agent et finalement une approche combinée alliant une base ascendante avec le principe de gestion des contraintes de l approche descendante. Mots-clés : Communication humain-agent, introspection, ontologie de domaine, approche ascendante et descendante, evaluation comparative 1 Introduction 1.1 Présentation du problème La communauté des Systèmes Multi-Agent (SMA) s intéressent particulièrement et depuis longtemps à la résolution de problèmes par des agents cognitifs autonomes (Ferber, 1995). A ce titre, elle étudie les protocoles et modèles d interaction formels entre agents. Ainsi, il n existait initialement que peu de travaux sur la communication humain-agent qui reste une problématique très ouverte. On assiste de plus récemment à un regain d intérêt dans ce sens, avec les récentes applications des SMAs pour l intelligence ambiante (Gárate et al., 2005) et les services web (Paurobally et al., 2005). D autre part, la communauté Agents Conversationnels Animés s intéresse particulièrement à l interaction en langue naturel entre un utilisateur humain et un agent artificiel. Elle obtient de très bon résultats dans le domaine de l interaction multi-modale

RJCIA 2007 (Bickmore, 2004) et des expressions d émotions (Pelachaud, 2003). Cependant, au niveau compréhension des langues, ces approches s appuient essentiellement sur des algorithmes de pattern-matching ad-hoc sans réelle analyse sémantique Abrilian et al. (2002). D autre part, la communauté des systèmes de dialogues utilise les ontologies pour s approcher d une architecture plus générique (Dzikovska et al., 2003; Milward & Beveridge, 2003). L idée importante sous-jacente à l utilisation d ontologies est de pouvoir généraliser les algorithmes de traitement sémantique afin de les faire dépendre uniquement de son formalisme. Ainsi, ces applications ne sont plus dépendantes que de l ontologie et du résolveur de problème spécifique de la tache à accomplir. Par exemple, certains systèmes utilisent ainsi l ontologie pour paramétrer un parseur générique (Dzikovska et al., 2003; Paraiso et al., 2004). Cependant, pour obtenir de bons résultats, ils imposent un formalisme de description d ontologie très contraint, efficace pour un sous-ensemble d application, mais loin des modèles ouvert classiques (concepts relations). De plus, ce type d ontologie décrit le modèle de l application et non le domaine de travail de l application. D autre part, les systèmes de dialogues reposant sur un formalisme ouvert d ontologie (e.g. (Milward & Beveridge, 2003)) utilisent alors la structure de l ontologie pour comprendre (par exemple) des commandes trop spécifiques (recherche de concepts plus généraux que ceux employés par l utilisateur) ou à l inverse trop générales. La phrase switch the light on est un exemple de commande trop générale où le système doit proposer les différentes lampes possibles à allumer. Malheureusement, les modules de traitements des langues sont alors spécifiques de l application. Nous pensons qu il est possible d extraire la sémantique des actions du code de l application directement. L ontologie ne serait plus alors une deuxième description de l application, mais une description des liens sémantiques entre les différents concepts présents dans le domaine de l application (ce qui constitue le rôle initial d une ontologie). 1.2 Plan de l article Cet article s intéresse particulièrement à l interprétation de commandes en langue naturel (LN) pour les agents cognitifs. Nous allons essayer de montrer qu il est possible de définir un système de compréhension de LN basé uniquement sur une ontologie de domaine et des agents capables d introspection. En d autres mots, les algorithmes de TAL reste les mêmes quelque soit le domaine ou l agent utilisé. Nous proposons pour cela trois strategies, les approches descendante, ascendante et combiné. De plus, nous définissons un gestionnaire de dialogue (proche de celui proposé par P. Maes (Maes, 1994)) qui permet de lancer des dialogues de désambiguïsations pour les commandes mal comprises ou incomplètes. Dans la seconde section, nous donnerons une description générale de notre modèle d agent. La section 3 présente la chaîne de base de TAL et le gestionnaire de dialogue qui sont les parties de l architecture commune aux trois algorithmes. Dans la section 4, nous introduisons les trois algorithmes génériques différents pour l interprétation de commandes. La section 5 présente une évaluation préliminaire de ces algorithmes. La section 6 conclue l article.

Approche générique pour LN 2 Aperçu de notre modèle d agent Notre objectif est d être capable d écrire des agents cognitifs contrôlables par des commandes en langues naturel et capable de raisonner sur leurs actions, afin de répondre aux questions sur leur comportement et leur activité. Pour ce faire, nous utilisons un langage agent spécifique qui autorise l accès à l exécution à la description de l état interne de l agent et de ses actions. 2.1 Le modèle VDL Nos agents sont programmés en utilisant le langage VDL (View Design Language) 1. Le modèle VDL est basé sur la réécriture d arbre XML : la description de l agent est un arbre dont les noeuds représentent ses données ou ses actions. L agent réécrit l arbre à chaque étape de l exécution suivant un certain nombre de mots-clés du langage présent dans les noeuds. Ce modèle permet aux agents d accéder à l exécution à la description de leurs actions afin de raisonner dessus pour de la planification, pour répondre à des questions d états formelles (Sabouret & Sansonnet, 2001), pour modéliser son comportement, etc. Le modèle VDL peut être aussi utilisé pour la composition de service web, l écriture d Agents Conversationnels Animés (Sabouret et al., 2005), des simulations de comportements sociaux... Dans le modèle VDL, chaque agent est nanti d une ontologie OWL. Cette ontologie doit contenir au minimum tout les concepts utilisés par l agent (i.e. les concepts VDL). Ces concepts sont présents dans le code XML de l agent soit comme étiquette (i.e. tag), comme attributs ou contenu texte. Nous noterons C V DL l ensemble de tous les concepts VDL et C OW L l ensemble des concepts OWL. Il existe donc une fonction injective, que nous noterons map V DL, de l ensemble des concepts VDL C V DL de l agent vers l ensemble des concepts C OW L définis dans l ontologie. 2.2 Modèle d actions Cet article traitant de la compréhension de l utilisateur, nous nous limiterons aux réactions (par opposition au comportement proactif d un agent). En VDL, les réactions sont activées par des évènements, i.e. noeuds XML envoyés à l agent en guise de commande. Ils sont la représentation formelle (i.e. en VDL) des commandes. Les réactions décrivent comment ces messages (envoyés par un utilisateur ou même un autre agent) doivent être traités. L objectif du système décrit ici est de construire des évènements VDL à partir d une commande utilisateur en LN. En VDL, comme dans la plupart des modèles de représentation des actions, nous représentons une action par un tuple r = nom, P, E où nom est le nom de l action, P l ensemble des préconditions de l action et E son ensemble d effets. Nous pouvons définir quatre types de préconditions pour une réaction r de R, l ensemble des réactions possible : P e (r) est l ensemble des préconditions d évènement. Elles sont utilisées pour aiguiller une certaine forme d évènement vers une certaine classe de réactions, ou 1 http://www-poleia.lip6.fr/~sabouret/demos

RJCIA 2007 <action> <name>prendre un objet</name> <event><take><object/></take></event> <guard><not> <equals><get><battery/></get><value>0</value></equals> </not></guard> <guard><exists><evt-get><object/></evt-get></exists></guard> <guard><near><evt-get><object/></evt-get></near></guard> <put> <path><robot-hand/></path> <evt-get><object/></evt-get> </put> </action> FIG. 1 Exemple de code d action en VDL. Les différents ensembles de préconditions sont calculés en fonction de la présence de certains mots clefs dans la précondition. pour rejeter les évènements globalement mal formés. Leur interprétation dans le cadre des arbres XML utilise la subsumption pour savoir si l évènement peut être correct pour au moins une réaction. P s (r) est l ensemble des préconditions de structure. Elles sont utilisées pour vérifier la syntaxe précise d un message et assurer que la réaction a toutes les informations nécessaires pour s exécuter sans erreurs. Les préconditions de P s (r) ne dépendent donc pas de l état courant de l agent, mais uniquement de la structure détaillée de l évènement. P c (r) est l ensemble des préconditions de contexte. Ces préconditions ne dépendent que du contexte courant de l agent (e.g. un robot ne prendra pas l objet demandé si sa batterie est vide, même si l objet existe et est à portée, figure 1). P cs (r) est l ensemble des préconditions contextuelles-structurelles, i.e. préconditions dépendante de l évènement et du contexte courant de l agent. Pour exemple, un robot ne peut pas attraper un objet, spécifié dans l environnement de l agent et en paramètre dans le message, si celui-ci n est pas à portée. Nous noterons P e = r R P e (r). Pour tout e P e, nous noterons R e (e) = {r R e P e (r)} l ensemble des réactions qui peuvent être traité (i.e. dont l exécution donnera lieu à des effets) par l évènement e. 3 Architecture globale Cette section présente les modules de LN communs aux trois algorithmes d interprétation. 3.1 Outils de base de TAL Dans notre projet (figure 2), le module lexical de base est celui du projet Open Source OpenNLP 2. Ce module contient un étiqueteur, un lemmatiseur (simple lien vers 2 http://opennlp.sourceforge.net/

Approche générique pour LN FIG. 2 Architecture générale le lemmatiseur WordNet contenu dans JWNL 3 ). L utilisation d un lemmatiseur basé sur WordNet permet la détection des mots composés (e.g. dark red, extra large ). Comme déjà constaté par Milward (Milward, 2000) et dans une de nos précédentes évaluations (Sabouret & Mazuel, 2005), l utilisation d un analyseur syntaxique (par opposition avec un simple chunker 4 ) n est pas efficace pour les commandes en langue naturelle. En effet, les utilisateurs emploient plus souvent des mots clefs que des phrases bien structurées (e.g. drop object low ou "take blue ). Les récents travaux du domaine proposent d utiliser une modélisation logique de la commande basée sur un ensemble de contraintes logiques et non des règles strictes de grammaire (Milward, 2000; Shapiro, 2000). Ce type d approche a l avantage d être plus robuste aux formulations grammaticalement incorrectes de l utilisateur. Ainsi, nous utilisons aussi une représentation logique de la commande, basée sur un appariement des relations de l ontologie dans la commande (Mazuel, 2007). Notre algorithme cherche à modéliser les relations de la commande et ses paramètres, en fonction de la définition de cette relation dans l ontologie et des chunks de la phrase. Néanmoins, cette modélisation n intervient réellement que lors d interprétations de relations complexes (e.g. the biggest triangle ) ou dans le cas de commandes non symétriques (e.g. from London to Boston a le même sac de mots que from Boston to London ). De plus, la résolution des relations a un impact comparable sur les trois algorithmes d interprétation. Pour ces deux raisons, et par clarté dans la présentation des algorithmes, nous supposerons dans cet article que le modèle de phrase de l utilisateur est un simple sac de mots (que nous noterons S). Le lecteur intéressé trouvera dans (Mazuel, 2007) plus de précision sur notre modélisation et ses implications sur l interprétation. Le premier point important avant l interprétation sémantique est de convertir le sac de mots S en un ensemble de concepts C tiré de l ontologie et en relation avec le code VDL de l agent (i.e. de faire un appariement entre les concepts énoncés par l utilisateur et les concepts manipulés par l agent contenu dans C V DL ). Les systèmes de dialogue actuels reposent, implicitement ou explicitement, sur l hypothèse de Sadek (Sadek et al., 1997) : 3 Java WordNet Library : http://sourceforge.net/projects/jwordnet 4 Le chunker permet de découper la phrase en groupes nominaux et groupes verbaux.

RJCIA 2007 Le contenu sémantique d une phrase correspond à un chemin dans le réseau sémantique décrivant les connaissances du domaine de l application 5 Autrement dit, cela signifie que tous les mots d une commande quelconque doivent avoir une correspondance dans l ontologie. Afin de respecter cette hypothèse, nous avons défini une distance sémantique simple sur notre ontologie. Soit un couple (c 1, c 2 ) COW 2 L, la distance entre les concepts c 1 et c 2 par rapport à la synonymie est : { 0 si c1 = c dist ONT (c 1, c 2 ) = 2 ou c 1 owl :sameas c 2 1 sinon avec owl :sameas la relation transitive et réflexive de la synonymie en OWL. Cette formule simple utilise au maximum la synonymie pour relier les concepts de l utilisateur à ceux de l agent. Ainsi, nous pouvons réécrire l hypothèse de Sadek pour notre système comme : Chaque concept qui apparaît dans une commande significative est soit directement lié à un concept VDL, soit lié à un concept étant au plus à une relation sameas d un concept VDL Nous avons récemment défini dans (Mazuel & Sabouret, 2007) une nouvelle mesure de distance sémantique sur les ontologies basée sur une généralisation de la distance classique de Jiang & Conrath (Jiang & Conrath, 1997). Notre mesure considère toutes les relations présentes dans l ontologie (et pas uniquement sameas). Nous sommes actuellement en cours d évaluation parallèle de l amélioration que cette mesure provoque sur le niveau global de compréhension. Cette mesure n as pas non plus d impacts sur les résultats des trois algorithmes comparés dans cet article, puisque la construction de C est la même (l impact est global, mais non distribué sur l un des trois algorithmes). Néanmoins, lors de l évaluation comparative, les mauvais résultats induit par une mauvaise compréhension de terme complexe ont été retiré, afin de ne garder que ce qui permet d évaluer correctement la différence entre les trois algorithmes d interprétation. Finalement, nous pouvons construire l ensemble C des concepts reconnus dans la commande : C = {v C V DL s S.dist ONT (map V DL (v), s) = 0} avec map V DL la fonction injective d association des concepts de l ontologie avec les concepts de l agent (section 2.1). C contient ainsi tous les concepts VDL qui apparaissent dans la commande utilisateur. Remarquons que la construction de C n est que l étape initiale des algorithmes présentés dans la section 4. Ces algorithmes utilisent tous C comme de départ pour leur interprétation sémantique. La dernière partie de notre chaîne est un générateur d anglais qui transforme un noeud VDL en une phrase anglaise, en concaténant la traduction des concepts obtenus par une analyse en profondeur du noeud XML. Cet algorithme récursif écrit l étiquette du noeud, puis ces attributs sous la forme attribut is value, son contenu texte (si il existe) puis finalement récursivement sur ses fils. Par exemple : 5 the semantic content of the utterance corresponds to a path in a semantic network describing the application domain knowledge.

Approche générique pour LN <take position="out"> <shape>square</shape> </take> deviendra take position is out shape is square. De plus un certain nombre de règles spécifique sont définie pour les mots-clés du langage. Le résultat est horrible syntaxiquement, mais suffisant pour que les utilisateurs comprennent les propositions du système dans notre évaluation. Il est possible d améliorer le résultat avec les travaux de générateurs basés sur XML Bateman (1997). 3.2 Le gestionnaire de dialogue Le gestionnaire de dialogue (GD) est responsable des dialogues avec l utilisateur pour l acceptation d une commande, mais aussi pour la gestion des commandes incomplètes ou imprécises. Notre système n est pas un système de dialogue, néanmoins ce module mérite ce titre car il peut déclencher de courtes phases de dialogue quand il estime que la compréhension des commandes est limitée. Le paramètre d entrée de notre GD est l ensemble d évènements créé par l un des trois algorithmes que nous détaillerons dans la section 4 (approche descendante, ascendante, combinaison des deux). Les trois algorithmes ont la même interface en entrée et en sortie, afin de simplifier l intégration au milieu des modules communs. 3.2.1 Évènements possibles et impossibles Notre GD récupère ainsi un ensemble d évènements, que nous noterons G, proposé par les algorithmes d interprétation sémantique. Sa première étape est de découper cet ensemble en deux sous-ensembles disjoints : L ensemble E des évènements possibles dans le contexte courant de l agent. L ensemble F des évènements impossibles. Ils ne correspondent pas forcement à une mauvaise modélisation par l un des trois algorithmes, l utilisateur pouvant parfaitement poser une commande impossible à réaliser par l agent (impossible de manière générale ou de manière contextuelle). Pour construire ces ensembles, posons P(r) = P c (r) P s (r) P cs (r) l ensemble des préconditions utiles pour décider si un évènement peut être utilisé par la réaction r 6. Notons Υ l ensemble (infini) de tout les noeuds VDL possibles. Soit eval : Υ 2 {, } la fonction d évaluation booléenne d une précondition : p P(r), eval(p, e) = ssi la précondition p est valide par rapport à l évènement e et à l état courant de l agent. L ensemble E est calculé de la façon suivante, E = {e G r R e (e), p P(r), eval(p, e) = } L ensemble F est l ensemble des évènements restant, soit F = G\E. Remarquons que E et F ne contiennent pas forcement tous les évènements possibles ou impossibles, ils représentent seulement un partitionnement des propositions faites par l algorithme d interprétation en cours. De plus, pour tout e F, nous notons np(e) r R e(e) P(r) l ensemble des préconditions fausses empêchant l évènement d être possible. Comme F est l ensemble 6 L ensemble P e(r) n est pas utilisé car il décide si l évènement est correctement construit, ce qui est l hypothèse de travail minimal des trois algorithmes.

RJCIA 2007 des évènements impossibles, e F, np(e). L ensemble est calculé de la façon suivante : np(e) = {p P(r) eval(p, e) = } r R e(e) Le GD calcule ensuite le score d appariement entre chacun des évènements de E et F et la commande utilisateur. Pour tout noeud n Υ et pour tout concept reconnus c C (C est l ensemble des concepts reconnus dans la commande, section 3.1), nous notons contains(n, c) la fonction permettant de déterminer si l évènement e contient le concept c : contains(n, c) = x sub(n) c {tag(x), attributes(x), content(x)} avec sub(n) l ensemble de tout les sous-ensembles de n Υ. En d autre mot, la fonction contains(n, c) est vraie ssi c apparaît quelque part dans l arbre associé au noeud n. Le degré d appariement pour e E ou e F est alors définie par : p(e) = card({c C contains(e, c)}) card(c) Avec l aide de ce score, nous construisons maintenant E max et F max les sous-ensembles d évènements à score maximaux. Soit les scores p E = max({p(e), e E}) et p F = max({p(e), e F}), alors : { si pe = 0 E max = {e E p(e) = p E } sinon et F max est construit de manière analogue. p E et p F sont les scores d appariement des éléments de E max and F max. En d autres mots, le GD ne prend en considération que les meilleurs évènements comparativement à la commande utilisateur parmi ceux générés par l interprétation. 3.2.2 Réponse à l utilisateur Pour l exploitation de ces deux sous-ensembles, nous définissons deux seuils de compréhension : p min est la limite séparant les commandes incomprises des commandes comprises sans certitude et p max est le score séparant les commandes comprises sans certitude des commandes parfaitement comprises. Ces seuils correspondent, dans le principe, aux seuils tell me et do it de Patty Maes dans (Maes, 1994). Elles proposent empiriquement les valeurs : p min = 0.3 et p max = 0.8, valeurs que nous avons gardé pour notre évaluation. Le retour à l utilisateur donné par le GD est dépendant de la position relative des deux scores p E et p F entre eux et par rapport aux deux seuils p min et p max : 1. Si p E p max, la commande est considérée comme correctement comprise par le système. Le GD envoie l évènement à l agent (si E max = 1) ou informe l utilisateur d une ambiguïté (si E max > 1). Par exemple 7 : U : Take something red 7 Tous les exemples viennent des traces collectées pendant l évaluation section 5

Approche générique pour LN S : I can either take object square red, take object triangle red. 2. Si p min < p E < p max et p E < p F, l interprétation la mieux notée n est pas possible dans l état courant (p F > p E ), mais un évènement proche est possible et a reçu un bon score (p E > p min ). Le GD demande à l utilisateur de reformuler. Il affiche la liste des préconditions fausses empêchant l action ( e Fmax np(e)) et la liste des évènements possibles proches E max. U : Put it on the upper left cell (alors que la case en haut à gauche est déjà occupée) S : I can t because : the content of upper left cell is not empty. Therefore, i can either : - drop object in the upper middle, in the upper right, in the center left or in the lower left 3. Si p min < p E < p max et p F < p E, les évènements impossible peuvent être ignorés, mais le système n est pas sûr d avoir compris la commande de l utilisateur (p E < p max ). Il demande une confirmation et affiche les évènements e E max. U : Take the blue or red triangle form (alors qu il n existe pas de triangle bleu) S : Do you mean take object triangle red? 4. Si p E p min et p max p F, le système a correctement compris une commande impossible. Il prévient l utilisateur que cette commande n est pas possible et lui donne la liste des préconditions fausses np(e), e F max. U : Take the blue red figure (main déjà pleine) S : I can t because : the content of hand is not empty. 5. Si p E p min et p min < p F < p max, le système a peut-être reconnu une commande, mais elle est impossible. Le GD demande confirmation à l utilisateur. 6. Si p E p min et p F p min, le système n a pas compris la commande. 4 Algorithmes d interprétation Cette section présente les algorithmes construisant l ensemble d évènements G à partir de la commande et du code de l agent. Comme souligné par Allen (Allen et al., 1996), deux méthodes sont applicables pour l interprétation : la descendante et l ascendante. Nous proposons d abord une implémentation générique de ces deux approches. Par générique, nous entendons indépendant de l application et uniquement dépendant du formalisme de l ontologie et de la sémantique opérationnelle du langage VDL. Nous proposons finalement une tentative de combinaison des deux, basé sur une évaluation préliminaire faite sur les deux premiers algorithmes.

RJCIA 2007 4.1 L approche descendante L approche descendante (i.e. top-down) consiste à construire une commande formelle (i.e. évènement en VDL) à partir de la commande en LN en considérant uniquement les contraintes structurelles imposées par le modèle formel du langage (e.g. (Sadek et al., 1997; Shapiro, 2000)). Elle est couramment utilisée en dialogue, en situation où il est difficile de prévoir à l avance l étendue des commandes ou de déterminer ce qu il est possible d effectuer à l instant courant. Le principal défaut de cette approche est lié à la difficulté de définir des règles génériques de transformation dans le système. Ainsi, les systèmes actuels définissent un grand nombre de règles spécifiques de l application, afin de réduire au maximum la création d évènements impossibles (évènements ne donnant lieu à aucune action car une des préconditions de P e, P c ou P s est fausse). Par exemple, Shapiro (Shapiro, 2000) utilise ces évènements impossibles pour construire des nouvelles préconditions et les ajouter à la base de connaissance. Dans la plupart des autres systèmes, les évènements impossibles ne sont pas traités et les réponses engendrées par le système se résument à je ne comprend pas votre commande. Au contraire, la capacité d introspection de VDL peut être utilisée pour générer des explications sur les fautes empêchant l exécution 8. La production de ces explications est faite à partir des préconditions fausses attachées à un évènement (l ensemble np(e) calculé lors de la section précédente). Ceci nous permet de définir pour notre architecture une implémentation de l approche ascendante générique, sans se soucier du traitement des évènements impossibles. Ainsi, dans notre implémentation, nous nous affranchissons des règles d interprétation liées à l application. C est pourquoi nous n utilisons que les préconditions de subsomption (P e ) et l état courant de l agent pour construire l évènement VDL à partir des concepts compris de l utilisateur (C). Les préconditions de P e permettent de définir le squelette des évènements possibles pour un concept donné. Une analyse plus profonde de l état interne de l agent permet d enrichir le squelette avec les concepts possibles. Plutôt que d utiliser des règles strictes de grammaire, nous proposons de définir une méthode de construction d évènements basée sur la syntaxe VDL et d appliquer des heuristiques pour contraindre la construction selon la sémantique opérationnelle VDL. Soit E = {e P e tag(e) C} et e E, soit C e = C\{tag(e)}. Pour chaque e E, notre algorithme considère l ensemble des feuilles L e de e et cherche à l intérieur du code les noeuds t L e qui contiennent au moins un concept c C e dans leurs souséléments. e E, nous notons Γ e l ensemble de ces noeuds et Γ = e E Γ e. Puis, nous appliquons un algorithme de fusion qui permet de lier les différentes parties instanciées d un même squelette de Γ (correspondant à différents concepts de la commande) en un seul évènement. Cet algorithme construit le noeud maximisant les subsomptions : pour chaque ensemble de noeud N, soit fusion(n) = max {x Υ n N, x n}. L idée de cet implementation pour calculer G est de construire les fusions les plus larges possibles de sous-ensemble de Γ, i.e. les évènements qui s apparient le mieux à la commande utilisateur. Soit Γ l ensemble des parties de l ensemble Γ. G = fusion(n) N max card Γ 8 Exemple 4, section 3.2.2

Approche générique pour LN Remarquons bien que l approche descendante ne garantit pas que les évènements soient possibles ou non : elle construit simplement l ensemble d évènements qui s apparie le mieux à la commande. Ainsi, E = E max et F = F max. Cependant, du fait que Γ peut être très grand et que le calcul de fusion est NP- Difficile, nous réduisons Γ par l utilisation d une heuristique de profondeur minimale : pour un couple donné (e, c ) E C e, nous ne gardons dans Γ e que les noeuds dont la profondeur depth(c j ) est minimale. L heuristique est basée sur l interprétation future des évènements (selon la sémantique opérationnelle VDL). Elle n a aucun impact sur les évènements résultats : l algorithme construira l ensemble complet des meilleurs évènements. 4.2 L approche ascendante L approche ascendante (i.e. bottom-up) classique utilise une liste préétablie de compétences et essaye de relier la commande en LN à une de ces compétences (e.g. (Paraiso et al., 2004; Dzikovska et al., 2003)). Cette approche permet au développeur d écrire des algorithmes génériques, au sens dépendant uniquement du formalisme de la liste de compétences. Cependant, ces listes sont définies de manière statique, le système n a aucune conscience de ce qu il est possible ou non de faire dans l état courant. En pratique, ces listes doivent décrire toutes les situations de dialogues possibles (en tenant compte des erreurs possibles de l utilisateur) ainsi que la traduction en requête formelle. De plus, cette quantité d information est clairement redondante avec la définition du code de l agent et du solveur de problème. Pour éviter ce problème, de récents travaux proposent d utiliser une méthode ascendante dynamique (e.g. Eliasson (2007)). Dans ces travaux, seul un ensemble minimal de compétences est fourni à l avance. Si une commande de l utilisateur ne s apparie pas directement ou complètement à une des compétences existantes, le système tente de décrire une nouvelle compétence en se basant sur les éléments présents dans les compétences proches. Nous proposons d aller encore plus loin, et d adopter une approche ascendante constructive basée sur l analyse des préconditions. Toutes les compétences sont alors calculées dynamiquement suivant un ensemble d actions primaires réalisables par le système (les actions de l agent VDL). Notre approche utilise les informations contextuelles (obtenues de l agent à l exécution) pour déterminer quels évènements peuvent être acceptés par l agent dans l état courant. Ce problème a été longuement étudié pour la validation de logiciel (e.g. (Botella et al., 2002)) et montre des résultats intéressants pour la génération de cas de test. Ces travaux peuvent être adaptés à la génération d évènements si nous considérons qu une précondition a pour rôle de tester les messages. Ainsi, notre système construit la liste des évènements possibles, d un point de vue agent, sans chercher à utiliser la commande de l utilisateur. L approche ascendante utilise les préconditions d évènement (P e ) pour fournir les squelettes initiaux (comme dans l approche descendante). Puisque notre objectif est de construire les évènements possibles (correspondant à la liste de compétences dans les approches classiques), nous retirons de la liste des squelettes P e tout ceux qui sont liés à une action impossible dans l état courant (c est-à-dire pour lesquels une précondition de contexte rend l exécution de l action impossible). Nous obtenons alors l ensemble

RJCIA 2007 P e+c = e P e p r R e(e) P c (r), eval(p, e) = P e+c est l ensemble des squelettes qui seront forcement acceptés par l agent dans l état courant. C est à partir de cet ensemble que nous allons construire l ensemble d événements G. L idée de l approche ascendante constructive est d utiliser les préconditions structurelles (P s et P cs ) comme un ensemble de contraintes sur les évènements pour compléter les squelettes. Pour tout e P e+c, nous noterons refine(e, r) Υ l évènement obtenu à partir du squelette e et de la réaction r R e (e) (en n analysant donc que P s et P cs ) par l utilisation de notre algorithme de génération des cas de test. L algorithme complet pour la méthode refine est trop long pour être présenté ici. Il repose fortement sur la sémantique opérationnelle du modèle VDL. Il est basé sur une interprétation récursive des termes VDL associé à un certain nombre de règle pour chaque mot-clé du langage. L ensemble G est ainsi calculé : G = {refine(e, r), e P e+c, r R e (e) p P s (r) P cs (r), eval(p) = } Remarquons que G est l ensemble des évènements possibles 9 : tous les évènements de G sont possibles pour l agent et tous les évènements possibles de l agent sont dans G. Comme conséquence, nous aurons pour le GD que E =G et F =. 4.3 L algorithme combiné L approche ascendante constructive possède néanmoins une limitation : le système n est pas capable de comprendre les commandes impossibles (au contraire de l approche descendante). Pour résoudre ce problème, les approches à base de liste de compétences proposent d utiliser des sous-compétences associées afin de traiter les différentes situations (action possible, impossible, paramètre incomplet, etc.). Ceci est un des autres désavantages des approches à base de listes de compétences puisque cela augmente fortement le nombre de règles à définir, sans garantie de couverture de l ensemble des cas qui peuvent se présenter. Nous voudrions à l inverse que notre algorithme final possède cette capacité de gérer des évènements impossibles sans perdre l aspect constructif. Pour cela, nous avons combiné l algorithme ascendant avec l idée de l algorithme descendant de gestion des commandes impossibles. Soit G bu l ensemble des évènements possible calculé par l approche ascendante, notre objectif est de créer un ensemble G tel que G bu G, la partie supplémentaire représentant les évènements actuellement impossible (i.e. évènements qui ne peuvent pas être accepté par l agent à l état courant, mais qui le serait dans un état diffèrent). Afin d atteindre cet objectif, nous utilisons le principe de relaxation de contraintes sur les préconditions de contexte (incluant les préconditions contextuelles structurelles). 9 Le même algorithme est d ailleurs utilisé dans le planificateur en chaînage avant de la plate-forme VDL.

Approche générique pour LN Pour relâcher les contraintes de contexte P c, nous n utilisons pas comme base de squelettes l ensemble P e+c de la section précédente mais directement P e.ceci nous permet de construire des évènements corrects syntaxiquement, mais dont le contexte courant de l agent ne permet pas l exécution. D autre part, les préconditions P cs doivent être utilisées pour construire l évènement, car elle contiennent des contraintes de structures fortes. Néanmoins, une fois l évènement construit en utilisant toutes les préconditions P cs, nous ne validons pas ces évènements avec ces mêmes préconditions. L objectif étant alors de ne pas valider un contexte qui potentiellement est faux à l état courant. Cette technique nous permet d exploiter l information structurelle contenue dans une préconditions P cs tout en relâchant les contraintes sur sa partie contextuelle. Au final, la formule pour calculer G est très proche de celle de l approche descendante, mais avec moins de contraintes : G = {refine(e, r), e P e, r R e (e) p P s (r), eval(p) = } Remarquons bien que l hypothèse de relaxation de contraintes n est pas garantie correct. Il est possible qu elle soit trop forte et à l inverse entraîne une production d évènements impossibles difficile à maîtriser. L objectif de cette évaluation est justement d évaluer l importance de cette relaxation sur les résultats. 5 Évaluation préliminaire Dans cette section, nous évaluons nos trois algorithmes pour la construction d évènement à partir de commandes en langue naturel. 5.1 Protocole Notre expérience a été faite avec un agent simple appelé Jojo 10 inspiré du monde de cube de Winograd (Winograd, 1972). Cet agent possède deux actions : prendre un objet et poser un l objet sur une grille. Un objet est caractérisé par sa forme (shape {square, triangle, circle}), sa couleur (color {red, green, blue, white}) et sa taille (size {tiny, small, medium, big}). Une position est un couple parmi le produit des ensembles {upper, center, lower} {right, middle, lef t}. Douze personnes ont fait l expérience, quatre pour chaque algorithme. Aucune de ces personnes n avaient utilisées le système auparavant. Ils n avaient aucune information sur les capacités en Traitement des Langues du système. L objectif d une personne était d atteindre un état particulier de l environnement de l agent (figure 3), sans limitation de temps. Après l expérience, un questionnaire permettait aux sujets de l expérience de noter leurs impressions, commentaires libres et donner une note sur certains critères. Les résultats attendus étaient les suivants : 1. L approche descendante doit mieux comprendre la commande utilisateur car son modèle cherche à la coller le plus possible. 10 Vous pouvez essayer Jojo sur la page demo : http://www-poleia.lip6.fr/~sabouret/ demos.

RJCIA 2007 FIG. 3 État initial et final du protocole 2. Elle peut fournir des explications sur les commandes impossibles. 3. L approche ascendante doit permettre une interaction plus souple, car elle est capable de faire des propositions à l utilisateur si sa commande est imprécise. 4. L approche combiné doit présenter les avantages des deux. 5.2 Résultats principaux La figure 4 montre la moyenne des temps mis pour atteindre l objectif et la moyenne des notes donnée par les utilisateurs pour chaque algorithme. Il apparaît clairement que les utilisateurs préfèrent les approches du type ascendante (classique ou combinée). En effet, le retour à l utilisateur et les propositions faites par l agent sont les points les plus importants d après l évaluation des questionnaires. Ils réduisent d environ 65% le temps requis pour l accomplissement de la tache. Une analyse plus approfondie des traces des interactions lors de l expérience confirme la nécessité pour l utilisateur de savoir : 1) ce qu attend l agent, ce qu il ne peut pas faire. C est ce qui explique les meilleurs résultats de l approche ascendante sur l approche descendante. Par exemple, lorsque l utilisateur dit drop on the lower line, l approche ascendante propose la liste des cases vide en bas de la grille (sauf lorsqu il n en reste qu une). D un point de vue initiative mixte, l utilisateur sait, au besoin uniquement, ce que le système attend de lui comme information complémentaire pour pouvoir traiter sa commande. 2) pourquoi il ne peut pas le faire. C est ce qui permet, dans l approche combinée, de corriger l état de l agent par rapport au souhait de l utilisateur. Par exemple : la commande Take the red figure, si la main est déjà pleine, est gérée par une réponse du type i can t because the hand is not empty. En réponse du retour contextualisé sur l état de l agent, les utilisateurs choisissent quasi systématiquement la proposition du système. Nous pensons que la faible différence entre l approche combinée et l approche classique est due à l utilisation du monde de cube, assez intuitive, limitant les problèmes de compréhension de l utilisateur et donc les commandes impossibles. Cependant, nous n avons pas encore vérifié cette hypothèse.

Approche générique pour LN FIG. 4 Moyennes des temps et des notes 6 Conclusion & perspectives Dans ce papier, nous avons proposé un système générique d interprétation de commande en LN. Nos algorithmes ne sont paramétrés que par le code de l agent et l ontologie du domaine. Ce système est actuellement intégré dans la plate-forme SMA VDL et peut être utilisé pour la communication humain-agent dans le cadre d interaction avec des services web. De plus, bien que nous utilisions un langage agent spécifique, notre approche en est indépendante et peut être aisément adaptée à d autres langages de description d actions capable d introspection. La force de l approche descendante est de pouvoir expliquer pourquoi une commande donnée ne peut être comprise, tandis que celle de l approche ascendante est d aider l utilisateur en lui proposant les différentes actions possibles proche lorsque la commande est mal comprise ou partielle. Notre approche combinée propose les avantages des deux, alliée à notre gestionnaire de dialogue sans règle spécifique d interaction dépendante de l application. Ainsi, notre système actuel utilise l approche combiné pour l interpretation sémantique. Par rapport à la version présentée ici, nous utilisons maintenant un analyseur logique pour modéliser la commande de l utilisateur (Mazuel, 2007) (à la place du sac de mots ) ainsi qu une mesure de distance sémantique sur ontologies (Mazuel & Sabouret, 2007) basée sur une généralisation de la distance de Jiang & Conrath (Jiang & Conrath, 1997) (à la place de notre analyse sur la relation owl :sameas). Les apports de ses deux changements dans notre architecture sont actuellement en cours d évaluation. Néanmoins, nous pensons qu ils vont être intéressants. En effet, l hypothèse de connectivité sémantique de Sadek est insuffisante puisqu il semble peu réaliste de construire une ontologie contenant tous les termes pouvant être donnés par un utilisateur, alors que celle-ci définie pourtant tous les concepts de l application (il suffit d étudier le nombre de synonymes qu il faudrait définir dans l ontologie pour avoir un aperçu). Pour combler ce problème, nous utilisons les travaux basés sur WordNet sur la desambiguisation de texte (Budanitsky & Hirst, 2006), afin d effectuer un ancrage des termes de la commande dans l ensemble des concepts définis dans l ontologie. La probabilité qu un terme de l utilisateur soit définie dans WordNet et puisse être ramenée après calcul à un des concepts de l ontologie est en effet très forte. De plus, afin d apparier cette liste d ancrages à la liste des concepts maniés par l application, nous utilisons notre nouvelle mesure de distance sémantique. Elle repose sur l idée que l ensemble des relations de l ontologie peuvent être exploité pour calculer une distance sémantique (les distances actuelles n utilisant que les relations du type is-a et non d autres relations tel que part-of

RJCIA 2007 ou inverse-of ). Nous pouvons ainsi construire le meilleur ensemble de concepts compris par l application et représentatif de la commande utilisateur. Références ABRILIAN S., BUISINE S., RENDU C. & MARTIN J.-C. (2002). Specifying Cooperation between Modalities in Lifelike Animated Agents. In Working notes of the International Workshop on Lifelike Animated Agents : Tools, Functions, and Applications, p. 3 8. ALLEN J., MILLER B. W., RINGGER E. K. & SIKORSKI T. (1996). A robust system for natural spoken dialogue. In ACL, p. 62 70. BATEMAN J. A. (1997). Enabling technology for multilingual natural language generation : the kpml development environment. Nat. Lang. Eng., 3(1), 15 55. BICKMORE T. W. (2004). Unspoken rules of spoken interaction. Commun. ACM, 47(4), 38 44. BOTELLA B., TAILLIBERT P. & GOTLIEB A. (2002). Test de logiciel, volume 21, chapter Utilisation des contraintes pour la génération automatique de cas de test structurels, p. 1163 1187. RSTI-TSI. BUDANITSKY A. & HIRST G. (2006). Evaluating wordnet-based measures of semantic distance. Computational Linguistics, 32(1), 13 47. DZIKOVSKA M. O., ALLEN J. F. & SWIFT M. D. (2003). Integrating linguistic and domain knowledge for spoken dialogue systems in multiple domains. In Proc. of IJCAI-03 Workshop on Knowledge and Reasoning in Practical Dialogue Systems. ELIASSON K. (2007). Case-Based Techniques Used for Dialogue Understanding and Planning in a Human-Robot Dialogue System. In Proc. of IJCAI07, p. 1600 1605. FERBER J. (1995). Les systèmes multi-agents : Vers une intelligence collective. Inter- Editions. GÁRATE A., HERRASTI N. & LÓPEZ A. (2005). GENIO : an ambient intelligence application in home automation and entertainment environment. In Proc. of the 2005 joint conference on Smart objects and ambient intelligence (soc-eusai 05), p. 241 245 : ACM Press. JIANG J. & CONRATH D. (1997). Semantic similarity based on corpus statistics and lexical taxonomy. In Proc. on International Conference on Research in Computational Linguistics, p. 19 33, Taiwan. MAES P. (1994). Agents that reduce workload and information overload. Communications of the ACM, 37(7), 30 40. MAZUEL L. (2007). Utilisation des ontologies pour la modélisation logique d une commande en langue naturel. In Rencontre des Étudiants Chercheurs en Informatique pour le Traitement Automatique des Langues (RECITAL 2007). MAZUEL L. & SABOURET N. (2007). Degré de relation sémantique dans une ontologie pour la commande en langue naturelle. In Plate-Forme AFIA, Ingénierie des Connaissances 2007 (IC 2007). MILWARD D. (2000). Distributing representation for robust interpretation of dialogue utterances. In ACL, p. 133 141.

Approche générique pour LN MILWARD D. & BEVERIDGE M. (2003). Ontology-based dialogue systems. In Proc. 3rd Workshop on Knowledge and reasoning in practical dialogue systems (IJCAI03), p. 9 18. PARAISO E., BARTHÈS J. A. & TACLA C. A. (2004). A speech architecture for personal assistants in a knowledge management context. In Proc. European Conference on AI (ECAI), p. 971 972. PAUROBALLY S., TAMMA V. & WOOLDRIDGE M. (2005). Cooperation and Agreement between Semantic Web Services. In W3C Workshop on Frameworks for Semantics in Web Services. PELACHAUD C. (2003). Modelling gaze behaviour for conversational agents. In Proc. Intelligent Virtual Agent (IVA 2003), p. 93 100. SABOURET N., GOLSENNE M. & MARTIN J. (2005). VDL+LEA : complémentarité entre interaction multi-modale et interaction multi-agents. In Proc. 1st Workshop sur les Agents Conversationnels Animés (WACA), p. 13 22. SABOURET N. & MAZUEL L. (2005). Commande en langage naturel d agents VDL. In Proc. 1st Workshop sur les Agents Conversationnels Animés (WACA), p. 53 62. SABOURET N. & SANSONNET J. (2001). Automated Answers to Questions about a Running Process. In Proc. CommonSense 2001, p. 217 227. SADEK D., BRETIER P. & PANAGET E. (1997). Artimis : Natural dialogue meets rational agency. In IJCAI (2), p. 1030 1035. SHAPIRO S. (2000). Sneps : a logic for natural language understanding and commonsense reasoning. Natural language processing and knowledge representation : language for knowledge and knowledge for language, p. 175 195. WINOGRAD T. (1972). Understanding Natural Language. New York Academic Press.