• Aucun résultat trouvé

5.3 Fonctionnalités de modification des connaissances

5.3.1 Ajout, suppression et mise à jour des connaissances

Les opérations d’ajout, de suppression et de mise à jour peuvent concerner toutes les structures du domaine stockées dans la base de connaissances. Elles sont réalisées sur des structures de haut-niveau pour une modification en profondeur induisant un nouvelle instanciation et simplification, et sur les structures de bas-niveau pour faire des tests de modification précis et restreint qui pourront être généralisés avec des modifications de haut-niveau. Ces opérations peuvent être réalisées pour

mettre à niveau les données de la base de connaissances, (e.g., ajouter une nouvelle tâche, action ou

décomposition, modifier un type, etc.), et peuvent aussi intervenir dans plusieurs étapes de

l’interac-tion en mixed-initiative, (e.g., après la proposition du système de lever une contrainte sur

l’applica-tion d’une acl’applica-tion ou d’une décomposil’applica-tion, rajouter une nouvelle décomposil’applica-tion à la volée, etc.). Le

tableau5.3regroupe l’ensemble des instructions de modification possibles à travers le système MIP.

L’ajout ou la suppression d’une structure de haut-niveau,e.g., les opérateurs ou les méthodes a

pour but de mettre à jour les connaissances fondamentales du domaine de façon importante et doit être réalisée par un expert du domaine d’application. Cela va entraîner l’ajout ou la suppression d’un

107 CHAPITRE5. MIP : UN SYSTÈME DE PLANIFICATION EN MIXED-INITIATIVE

Commandes Objectif

[Add | Remove | Modify] the operator [signature]

[Ajoute |Supprime| Modifie] l’opérateur correspondant à [signature]

[Add | Remove | Modify] the method [signature]

[Ajoute |Supprime| Modifie] la méthode correspondant à [signature]

[Add | Remove | Modify] the action [signature]

[Ajoute |Supprime| Modifie] l’action correspondant à [signature]

[Add | Remove | Modify] the decomp [signature]

[Ajoute |Supprime| Modifie] la décomposition correspondant à [signa-ture]

[Add | Remove] the type [type]

[Ajoute |Supprime] le type [type]

[Add | Remove | Mo-dify] the predicate [si-gnature]

[Ajoute |Supprime| Modifie] le prédicat correspondant à [signature]

[Add | Remove] the ob-ject [obj]

[Ajoute |Supprime] l’objet [obj]

TABLE5.3 –Ensemble des commandes de modification des structures de la base de connaissance

type de comportement particulier,e.g., une famille d’actions sur des objets d’un certain type ou une

méthode à suivre pour réaliser un certain type de tâches. Comme mentionné à plusieurs reprises, ce type de changement induit automatiquement une nouvelle étape d’instanciation et de simplification et une génération d’un nouveau problème codé.

L’ajout ou la suppression d’une structure de bas-niveau,e.g., les actions ou les décompositions

affecte les connaissances de façon locale et n’est pas répercutée sur les connaissances fondamentales du domaine. Elle a pour but de tester rapidement un nouveau comportement en empêchant le sys-tème d’utiliser une action ou une décomposition donnée. Donc, si l’utilisateur désire obtenir un plan sans une action précise ou en évitant d’utiliser un objet donné, il peut supprimer l’action concernée sans pour autant toucher aux connaissances fondamentales du domaine.

L’instruction de modification a été présentée dans le tableau sous forme d’une seule commande pouvant modifier toute la structure, mais en pratique, la modification peut toucher différentes parties des structures et avoir plusieurs applications :

SECTION5.3 FONCTIONNALITÉS DE MODIFICATION DES CONNAISSANCES 108

Ajout / Relaxation de pré-conditions: Permet de rajouter ou de supprimer des restrictions au déclenchement des actions et des décompositions. Elle peut être réalisée au niveau des actions ou des décompositions du problème codé pour un test rapide du changement ou être appliquée de façon durable en modifiant les opérateurs et les méthodes.

Ajout / Suppression d’effet: Permet de rajouter ou de supprimer des faits produits ou suppri-més par les actions ou les opérateurs. Elle peut être réalisée au niveau des actions pour un test rapide du changement ou être appliquée de façon durable en modifiant les opérateurs. — Ajout / Suppression de sous-tâches: Permet de rajouter ou de supprimer des sous-tâches

dans les méthodes et les décompositions. Elle peut être réalisée au niveau de la décomposi-tion pour un test rapide du changement ou être appliquée de façon durable en modifiant la méthode.

Modification de la signature: Permet de modifier le nom ou les paramètres de la structure. Lorsque la modification des paramètres est réalisée sur une méthode ou un opérateur, cela concerne les types des objets affectés par la structure. Si la modification est réalisée sur une décomposition ou une action, cela concerne directement les objets manipulés par la structure. Lors de l’ajout d’un effet positif ou négatif durant la modification ou l’ajout d’une action, si ce fait fait partie des inerties du domaine, cela entraîne automatiquement une phase d’instanciation et de simplification parce que cela peut conduire à reconsidérer des actions et des méthodes qui ont étés supprimées lors de la phase de simplification.

On peut noter qu’aucune instruction de modification de tâche n’est proposée, cela est dû au fait que ces dernières sont ajoutées, supprimées ou modifiées automatiquement lors de la modification des opérateurs, méthodes, actions et décompositions. Le changement des signatures des décomposi-tions entraîne un traitement spécial, puisque plusieurs de ces deux structures peuvent correspondre à la même tâche composée, et de ce fait en modifier une partie ne va pas modifier la tâche corres-pondante mais plutôt en créer une nouvelle. Il n’y a pas non plus d’instruction de modification des faits puisque cela affecte forcément toutes les structures du domaine et du problème, il serait donc plus intéressant d’effectuer tous les changements au niveau des connaissances de haut-niveau et de propager tous les changements lors de l’instanciation.

La figure5.10montre un exemple d’interaction entre l’utilisateur et le système impliquant des

commandes de getting. L’exemple reprend le domaineroveravec le problèmep01utilisé

précédem-ment, avec une petite erreur introduite au niveau du domaine où le prédicat(empty ?s - STORE)n’est

pas définit dans les effets positifs de l’opérateur(drop ?x - ROVER ?s - STORE). On voit que

l’utilisa-teur définit deux nouvelles tâches à planifier et que le système ne parvient pas à trouver de solution. Il propose alors une piste pour expliquer l’échec grâce à la fonctionnalité du même nom qui sera

109 CHAPITRE5. MIP : UN SYSTÈME DE PLANIFICATION EN MIXED-INITIATIVE

abordée en détail dans la section5.4.6. De l’interaction 3 à 6, l’utilisateur cherche à définir

exacte-ment l’erreur en utilisant les fonctionnalités de listing et de getting, il comprend alors que l’erreur

vient de l’absence du fait(empty rover0store)des effets positifs de l’action(drop rover0 rover0store). Il

demande alors au système d’ajouter l’effet en question à l’action à travers une commande de modifi-cation, relance une fois la planification avec les mêmes tâches but, et obtient cette fois-ci un résultat. Après avoir confirmé et corrigé l’erreur sur les données de bas-niveau, l’utilisateur demande d’ajouter

le prédicat(empty ?s - STORE)à l’opérateur(drop ?x - ROVER ?s - STORE), ce qui induit une nouvelle

phase d’instanciation et de simplification et la génération d’un nouveau problème codé.

MIP User

3.U : Liste l’état initial

2.S : Aucun résultat trouvé

Astuce : Le fait "empty rover0store" a bloqué la génération de trois solutions potentielles

5.U : Affiche les actions qui produisent le fait : "empty rover0store" 1.U : Planifie les tâches : "get_soil_data waypoint0" et "get_rock_data waypoint0"

2: (at rover0 waypoint1) 8: (at_soil_sample waypoint0) 10: (empty rover0store) 16: (at_rock_sample waypoint0)

4.S : Voici le résultat

6.S : Aucun résultat trouvé 7.U : Ajoute "empty rover0store" aux effets

de l’action "drop rover0 rover0store"

8.S : Modification réussie, voici le résultat 9.U : Planifie les tâches :

"get_soil_data waypoint0" et "get_rock_data waypoint0"

(:action drop

:parameters (rover0 rover0store) :precondition (and (full rover0store)) :effect (and (not (full rover0store)) (empty rover0store0)))

10.S : Voici le plan trouvé

0: (visit waypoint1)

1: (navigate rover0 waypoint1 waypoint0) 2: (unvisit waypoint1)

3: (sample_soil rover0 rover0store waypoint0)

4: (communicate_soil_data rover0 general waypoint0 waypoint1)

5: (drop rover0 rover0store) 6: (sample_rock rover0 rover0store waypoint0)

. .

11.U : Ajoute "empty ?s" aux effets de l’opérateur "drop ?x - ROVER ?s - STORE"

8.S : Modification réussie | Grounding réussi Vous pouvez explorer le nouveau coded-problem

FIGURE5.10 –Exemple d’échange utilisant les fonctionnalités de modification du domaine.

Cet exemple montre bien que les différentes fonctionnalités de listing, de getting, de co-génération et de modification se combinent très bien afin de mieux guider l’utilisateur dans ces réflexions et ces modifications en lui proposant des explications d’échec, en lui fournissant les données nécessaires à

SECTION5.3 FONCTIONNALITÉS DE MODIFICATION DES CONNAISSANCES 110

sa compréhensions, et en lui permettant de réaliser des modifications ciblées dans les connaissances du domaine.

Il est à noter que les structures servants à accélérer les calculs et produites lors de l’instanciation comme les tables des inerties et tableaux d’atteignabilité ne peuvent pas être modifiées directement pour des raisons de cohérence des informations. Ces dernières sont mises à jour automatiquement lors du l’instanciation après modification des autres structures.