7.1.2.1. Création interactive de requête

Au paragraphe 5.4.2 nous avons présenté les mécanismes d'assistance à la création de requêtes actuellement implémentés dans AbstractXML. Ces mécanismes reposent sur des éléments de requêtes que nous avons listés dans le Tableau 2. Son principe est de permettre à l'utilisateur d'assembler ces éléments de requêtes génériques, puis de personnaliser manuellement la requête obtenue par cet assemblage. Ce principe nécessite que l'utilisateur connaisse le langage Sparql, ce qui constitue un frein à l'utilisation d'Abstract par des ergonomes.

L'idée générale de la création interactive de requête serait de permettre de sélectionner avec la souris les aspects intéressants qui apparaissent dans la visualisation graphique des traces. Il faudrait qu'un tel dispositif, soit d'une part, plus simple que l'édition manuelle de la requête, et d'autre part qu'il offre une souplesse suffisante. Par exemple, la création d'une nouvelle relation entre deux observés pourrait se faire en cliquant sur le premier et en le faisant glisser sur le second. La difficulté est de spécifier quels sont les aspects de ces observés qui conditionnent la création de cette relation. Est-ce leur type ? Est-ce la valeur de certaines de leurs propriétés ? Est-ce leur ordre chronologique ? Etc. En effet, on cherche à ce que cette relation ne soit pas seulement créée sur une seule occurrence du motif mais sur chaque occurrence d'un motif analogue dans la trace. C'est cette fonction d'analogie qui doit pouvoir être définie librement par l'ergonome.

On ne voit pas comment la définir de manière graphique aussi librement qu'on peut le faire avec un langage informatique. Toute tentative conduirait à une réduction de la liberté offerte par ce langage. L'approche que nous proposons consiste plutôt à implémenter les fonctions qui reviennent le plus souvent, en commençant par les plus simples.

La requête la plus simple que nous utilisions est la requête d'annotation sans clause WHERE, du type :

CONSTRUCT

a1, rdf:type, annotation

a1, date, 1222

a1, label, "ceci est une annotation"

Cet exemple ajoute un observé "a1" de type annotation au time code 1222 avec le libellé "ceci est une annotation".

Une proposition d'interface graphique pour la générer est donnée Figure 86. L'ergonome cliquerait dans une zone spécifique réservée à l'ajout d'annotation (bande jaune en haut de la figure) ce qui ouvrirait une petite fenêtre pré remplie avec le type d'annotation et le time code correspondant à l'endroit ou il a cliqué. Il ne lui resterait plus qu'à saisir son libellé.

Figure 86 : Interface graphique de création d'une requête d'annotation

Les requêtes liées à un type d'observé pourraient être construites de manière analogue en cliquant sur un observé de ce type. Les requêtes liées à deux ou trois types observés impliqueraient de cliquer successivement sur des observés de ces types et d'établir des liens entre eux.

Ces mécanismes ne pourraient pas se substituer complètement à la création de requêtes SPARQL. La création de requête en mode texte devrait toujours être conservée pour permettre à des utilisateurs "avancés" de réaliser des requêtes complexes en attendant qu'elles puissent être standardisées. Ce n'est qu'une fois qu'elles seraient standardisées qu'une interface graphique pourrait être imaginée pour faciliter leur construction.