• Aucun résultat trouvé

5.2 Fonctionnalités de lecture des connaissances

5.2.3 Le getting des structures du problème

La fonctionnalité de getting des structures du problème est un listing particulier qui rajoute une ou plusieurs conditions sur les structures demandées. Comme le listing, le getting est pris en charge par le gestionnaire d’interrogation et permet à l’utilisateur d’avoir des informations sur le domaine et le problème sur les deux niveaux d’abstraction. L’objectif principale de cette fonctionnalité est de fournir des informations très spécifiques, plus ciblées que celles obtenues à travers le listing, et sur-tout, réaliser des calculs que l’utilisateur est incapable de reproduire sans assistance afin de faire le lien et de regrouper des structures en fonction d’un critère donné. On peut citer comme critère de regroupement : Le fait produit, la sous-tâche atteignable, ou encore, la pré-condition nécessaire à l’exécution d’une action ou l’application d’une décomposition. Les principales commandes de

get-ting possibles à travers le système MIP sont illustrées dans le tableau5.2.

On peut diviser ces commandes de getting en deux catégories :

— Les commandes de getting en fonction de la signature : Cette catégorie contient les com-mandes de 1 à 6 du tableau, qui regroupent les structures demandées en fonction du nom

ou de leurs signatures9. Pour les commandes de getting sur des objets, i.t. 5 et 6, on s’intéresse

à l’objet concerné par le fait, l’action ou la décomposition, en affichant par exemple toutes les

actions qui concernent l’objetwaypoint0. La réponse du système à ce genre de commande ne

nécessite pas de réaliser des calculs supplémentaires, puisqu’il faut simplement explorer les données stockées dans la base de connaissances et extraire celles correspondant au nom ou à la signature.

— Les commandes de getting en fonction de l’application : Les commandes de cette catégorie, i.e. de 7 à 11, regroupent les structures en fonction de la condition de leur application ou du résultat obtenu après leur application. Il est très intéressant de voir les opérateurs qui pro-duisent un fait donné ou qui ont besoin que ce fait soit vrai pour être appliqués. Cela permet, notamment, à l’utilisateur de voir pourquoi ce fait n’a pas été produit, ou pourquoi une ac-tion donnée n’a pas été appliquée. Cet outil offre à l’utilisateur la possibilité de construire un 9. La signature d’une structure est composée du nom de cette structure et de ces paramètres. Par exemple, la signature de la première décompositiondo_navigateestdo_navigate rover0 waypoint1. Par contre, la signature d’une méthode ou d’un opérateur doit être spécifiée avec les types des paramètres, comme ce-ci :do_navigate ROVER WAYPOINT

SECTION5.2 FONCTIONNALITÉS DE LECTURE DES CONNAISSANCES 104

Commandes Objectif

Get [operators | me-thods] with [opt]

Affiche les [opérateurs | méthodes] dont le nom ou la signature corres-pond à [opt]

Get [actions | decompo-sitions] with [opt]

Affiche les [actions | décompositions] dont le nom ou la signature cor-respond à [opt]

Get tasks with [opt] Affiche les tâches dont le nom ou la signature correspond à [opt]

Get predicates on [type] Affiche les prédicats dont un des arguments est du type [type]

Get facts on [obj] Affiche les faits dont un des paramètres est [obj]

Get [actions | decompo-sitions] on object [obj]

Affiche les [actions | décompositions] dont un des paramètres est [obj]

Get actions [producing | consuming] [fact]

Affiche les actions qui [produisent | consomment] le fait [fact]

Get decompositions

[producing |

consu-ming] [fact]

Affiche les décompositions qui peuvent [produire | consommer] le fait [fact]

Get [actions | decompo-sitions] needing [fact]

Affiche les actions qui ont dans leurs pré-conditions le fait [fact]

Get task [producing | consuming] [fact]

Affiche les tâches qui [produisent | consomme] le fait [fact]

Get composed task that may genarate [task]

Affiche les tâches composées qui peuvent générer la sous-tâche [task]

TABLE5.2 –Ensemble des commandes permettant le getting des structures de la base de connaissance

schéma de compréhension liant les structures entre elles et de détecter rapidement une erreur de définition ou un manque d’information.

La figure5.9montre un exemple d’utilisation de la fonctionnalité de getting sur le domainerover

pour vérifier qu’elle est la tâche à effectuer afin de transmettre les données des échantillons de sol duwaypoint0. Dans cet exemple, l’utilisateur commence d’abord par vérifier que le but contient bien

le faitcommunicated_soil_data waypoint0en affichant le but avec une commande de listing. Après

cela, il demande qu’elles sont les actions qui produisent ce fait pour comprendre le mécanisme de

transmission et les objets impliqués dans le processus. Sans connaître la disposition deswaypoint0et

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

composées qui pourraient produire le fait désiré, puis, affiche celles qu’il a choisit pour comprendre son fonctionnement. À ce moment, il peut voir déjà qu’il n’y a qu’une seule façon de faire avec le

rover0sans prendre en compte son point de départ. Pour finir, il lance la planification de cette tâche

et obtient un plan avec lerover0commençant auwaypoint1. Il peut même vérifier querover0est bien

dans lewaypoint1dans l’état initial en l’affichant.

MIP User

3.U : Affiche les actions qui produisent le fait "communicated_soil_data waypoint0" AND (communicated_soil_data waypoint0) (communicated_rock_data waypoint0) (communicated_image_data objective1 low_res) 2.S : Voici le résultat

5.U : Affiche les tâches qui pourraient produire le fait : "communicated_soil_data waypoint0"

1.U : Affiche l’état but actuel

41: (communicate_soil_data rover0 general waypoint0 waypoint2 waypoint1) 42: (communicate_soil_data rover0 general waypoint0 waypoint3 waypoint1) 43: (communicate_soil_data rover0 general waypoint0 waypoint1)

4.S : Voici le résultat

6.S : Voici le résultat 7.U : Affiche les méthodes de la tâche

"get_soil_data waypoint0"

8.S : Voici le résultat 9.U : Planifie la tâche : "get_soil_data waypoint0"

1: (get_soil_data waypoint0) 35: (send_soil_data rover0 waypoint0)

(:Decomposition get_soil_data :parameters (waypoint0) :expansion((do_navigate rover0 waypoint0)

(empty_store rover0store rover0) (sample_soil rover0 rover0store waypoint0) (send_soil_data rover0 waypoint0)) :preconditions())

FIGURE5.9 –Exemple d’échange utilisant la fonctionnalité de getting.

La compréhension des informations stockées dans la base de connaissances et celles du problème à résoudre est aussi importante, peut être même plus importante, que la compréhension des mé-canismes de planification. Maîtriser une problématique de planification, même simplifiée, comme

roverreste une tâche très délicate, surtout pour des utilisateurs non experts dans le domaine d’ap-plication ou dans la planification automatique. Nous avons présenté dans cette section les fonction-nalités du système MIP permettant de décomposer le problème et les connaissances du domaine pour une meilleure gestion de la charge de travail. Ces fonctionnalités permettent aussi d’effectuer des raisonnements sur les structures définies dans le domaine ou calculées lors de l’instanciation et de la simplification afin de regrouper les éléments sur un critère donné et aider l’utilisateur dans