Modélisation et exploitation de traces avec ABSTRACT

1er décembre 2008

 

Objectif du TP

Découvrir un système à base de trace particulier, manipuler des traces, les transformer et les visualiser.

Environnement

L'environnement ABSTRACT utilisé dans ce TP a été développé à l'INRETS par Benoît Mathern et Olivier Georgeon.

Présentation du contexte

INRETS

D'où viennent les données (voiture, etc.)

Traitement des données (qui, comment, pour quoi faire...)

Les traces dans le SBT Abstract

Travail demandé

Installation d'ABSTRACT

Configuration requise

Environ 400 Mo d'espace disque "C:\" est nécessaire pour installer tous les logiciels nécessaires à ce TP, ainsi que les traces et les vidéos associées.

Abstract a été développé et testé sous Windows XP, avec l'utilisation de Wamp comme serveur web et Firefox 2 comme client.

Les fonctionnalités de visualisation d'Abstract fonctionnent sur les autres plateformes, mais pas celles qui vont modifier les données.

Installer les logiciels

Vous trouverez l'ensemble des fichiers nécessaires ici. Décompressez le fichier abstract.zip à la racine ("C:\") de votre ordinateur.

Dans le répertoire "C:\abstract\installation\software", vous trouverez l'ensemble de logiciels que vous devez installer pour ce TP.

Le script "C:\abstract\installation\install.bat" permet d'aller un peu plus vite car il automatise une partie du travail. Cependant, la copie de certains fichiers ne sera pas exécutés correctement sous Windows Vista pour des problèmes de droits d'accès à certains dossiers.

Installer les programmes suivants :

Lors de l'installation de ces logiciels, suivez les paramètres d'installation par défaut si rien n'est précisé dans la suite :

Configurer le serveur web

Exécutez le script "C:\abstract\installation\wampapache_reg.bat". Il va modifier une clé de la base de registre concernant le serveur wampapache, pour permettre aux programmes lancés par PHP de s'ouvrir dans une fenêtre plutôt qu'en tâche de fond.

Redémarrez votre ordinateur

Démarrez le serveur Wamp.
Une icône doit apparaître dans votre barre des tâches.

Votre serveur web est configuré !

Configuration d'Abstract

Si vous avez installé une autre version de Protégé que la 3.1 ou que vous l'avez installé ailleurs que dans le dossier "C:\Program Files\Protege_3.1", vous pouvez éditer un fichier de configuration d'abstractXml : dans votre document root, ouvrez le fichier "\abstractXml\includes\settings.inc.php", éditez la ligne suivante pour la faire correspondre avec votre chemin d'accès à Protégé :

define('PATH_TO_PROTEGE','c:\Program Files\Protege_3.1\Protege.exe');

Vérification de la bonne installation

Ouvrez firefox 2 et allez sur la page http://127.0.0.1/abstractXml/

Vous devriez arriver sur une page ressemblant à cela :

Présentation de l'outil Abstract

Abstract est un prototype de SBT. Le vocabulaire de l'outil est parfois différent du vocabulaire définit actuellement dans les SBT.

Présentation de la barre d'onglets :

Open, Infos, View, Edit et Ontology.

Open

Sélection de la trace à ouvrir (+import / suppression de traces)

Infos

Présentation des méta-informations et présentation des différentes traces transformées. Imports de codages.

View

Outils de visualisation de la trace, sous forme graphique.

Edit

Visualisation + Génération de requêtes SPARQL pour créer des traces transformées.

Ontology

Pour ouvrir Protégé sur la trace actuellement sélectionnée.

Découverte d'une trace

Trace collectée

Chaîne de collecte de l'information
  1. Collecte d'informations provenant d'un véhicule instrumenté ou d'un simulateur de conduite
  2. Post-traitement et synchronisation des données collectées
  3. Stockage dans un format matlab
  4. Utilisation dans des outils de lecture des données
  5. Post-traitements pour générer une trace collectée (fichier .csv)
  6. Import dans Abstract et génération d'une trace première
Présentation des fichiers bruts

Dans la voiture instrumentée, on collecte des informations provenant de différentes sources : données capteurs enregistrées à 50 Hz (position du volant, des pédales, d'un télémètre...), des données provenant d'un GPS et d'une base de données de navigation, des informations provenant d'un oculomètre (direction du regard)...
Ces informations brutes doivent être post-traitées et synchronisées pour être exploitables. Un second niveau de traitement nous permet de générer des observés à partir des courbes de données (extraction de points caractéristiques : maximums, minimums, points d'inflexion, franchissement de valeurs seuil...).

Traces premières

Quand on importe ces données dans Abstract, on associe ces observés à un modèle de trace (une ontologie). On obtient ainsi une trace première.

Ouvrir le fichier "c:\abstract\data\divers\sujet15.csv". Il s'agit de l'ensemble des observés collectés pendant l'expérimentation. Voilà à quoi ressemble une trace brute.
Maintenant, si vous avez un tableur (Excel ou Calc...), ouvrez le fichier "c:\abstract\data\divers\sujet15.xls". Vous constaterez qu'il s'agit des mêmes informations, rendues beaucoup plus lisibles par une macro qui définit des couleurs en fonction du type des données. Les colonnes de données sont les suivantes :

  1. Timecode (s)
  2. Position (m)
  3. Vitesse (km/h)
  4. Angle volant (°)
  5. Type de l'observé
  6. Nom propriété 1
  7. Valeur propriété 1
  8. Nom propriété 2
  9. Valeur propriété 2
  10. ...

Sachant que chaque couleur est associée à un type, quel est selon vous le type le plus fréquent dans les données ? (Vous pouvez par exemple utiliser le niveau de zoom minimum pour vous donner une idée de l'apparition des différents types)
Quelles conclusions peut-on déduire d'un type d'observé qui apparaît très fréquemment dans la trace ? Est-ce significatif ?

Ouvrez Abstract et cliquez sur la trace "tS15_rdf_TP", ensuite allez sur l'onglet View. Dans le menu déroulant "Visu 1", sélectionnez "Trace". Vous visualisez une trace première. C'est un extrait provenant de la même expérimentation que les fichiers csv/xls présentés plus haut.
Cliquez sur les observés pour avoir des informations sur leurs types et sur leurs propriétés. Vous pouvez vérifier qu'elles correspondent aux mêmes informations que celles du fichier CSV.
Vous pouvez vous déplacer dans la trace avec un glisser-déplacer. Sur la bordure de droite de la fenêtre de firefox, vous pouvez cliquer sur la barre "Caption" pour faire apparaître une légende.
Qu'est-ce que cette visualisation apporte en plus par rapport à la visualisation dans un tableur ? Quel observé revient le plus fréquemment ?

Cliquez sur le bouton "Ontology" dans la barre d'onglet Abstract. Normalement, cela vous ouvre Protégé en chargeant l'ontologie utilisée par la trace. Sinon, ouvrez Protégé et chargez le fichier "C:\abstract\data\ontology\abstract_03.pprj". Dans les Observables, cliquez sur la classe CMC. Deux sous-catégories vont nous intéresser : CO (pour "Observés Collectés") contient tous les types et sous-types des observés collectés pendant l'expérimentation. Nous verrons plus tard que la classe "Activity_Analysis" contient les types créés lors de notre analyse.
Quels sont les différents types de regards que l'on peut trouver dans la trace collectée ?

Compréhension de la trace

Pour mieux comprendre les données, vous allez maintenant regarder la vidéo correspondant à la trace que vous avez ouverte.

Avec l'explorateur de fichier, allez dans le répertoire "C:\Abstract\" et double-cliquez sur le raccourci "TdLightShortcut". Cela ouvre un outil de lecture de vidéo (lors de la première exécution, un message s'affiche, vous pouvez cocher la case pour éviter que le message n'apparaisse à chaque démarrage). Ensuite chargez le fichier vidéo "C:\abstract\data\video\ABSTRACT 15 - TP - 00371000.avi". Maintenant, vous pouvez regarder la vidéo.
Combien de changement de voie y a-t-il eu durant cet extrait ?

Dans Abstract, ouvrez la trace qui s'appelle "tS15-L2-4_TP". Sur l'onglet visualisation, pour la visu 1, sélectionnez "Trace (10s)".
Vous pouvez constater qu'il s'agit des mêmes données, mais dont la phase de collecte a été plus complexe. Dans cette trace, en plus des observés de niveau 1 (les points), on visualise des observés ayant un plus haut niveau d'Abstraction (niveau 2). Ces observés ont un niveau de description plus proche de l'activité humaine et moins spécifique à la technologie des capteurs.

Les observés de niveau 2 sont représentés par différents symboles et à différentes position. En plus de la couleur, ces informations permettent d'identifier plus facilement chaque observé pour pouvoir "lire" la trace. Le schéma suivant présente la signification mnémotechnique des différents symboles telle qu'ils ont été utilisés dans cet exemple.

Cette signification mnémotechnique doit vous aider à comprendre plus facilement l'extrait de trace suivant :

Maintenant, vous allez en plus de la visualisation de la trace, sélectionner dans le deuxième menu déroulant d'Abstract "Whole Trace". Cela vous affiche une deuxième visualisation qui reprend seulement certains observés.

Que signifient les triangles gris dans cette visualisation ? Que signifient les triangles et les carrés orange ? Que signifient les triangles beiges ?

Maintenant, cliquez sur la case de synchronisation de la vidéo (en bas de la page Abstract, sous les visualisations). Si la page se recharge et que la case est décochée, recochez là à nouveau.
Maintenant, vous allez naviguer dans la trace avec la vidéo. Retournez sur le programme scilab pour lire la vidéo. Vous constaterez que l'on peut visualiser en parallèle la trace dans Abstract et suivre les événement à la vidéo. Lorsqu'il se passe beaucoup de choses en parallèle, vous pouvez lire la vidéo image par image.

Sachant que l'on s'intéresse ici au changement de voie sur autoroute, quel observé présent dans la visualisation "Whole Trace" apparaît à chaque changement de voie ?
Si on s'intérese plus particulièrement aux situations de dépassement, quel(s) autre(s) observé(s) sont souvent présent au moment d'un dépassement ?

Transformation de la trace

Lorsque vous visualisez la trace, vous avez constaté qu'il y a 3 situations de changement de voie vers la gauche, dont 2 situations de dépassement.

  1. Au timecode 2270
  2. Au timecode 2287
  3. Au timecode 2312

Dans les situations de dépassement, il y a des observés présentés par des triangles jaunes dans la trace. Les informations en jaune sont des informations obtenues par autoconfrontation : après l'expérimentation, on interroge le conducteur sur les situations qu'il a rencontré et on ajoute ces informations "subjectives" à la trace.

Cependant, parmi ces triangles jaunes, une des informations peut être interprétée comme étant "objective". Il s'agit du moment où le véhicule franchi la ligne de bordure de voie. Cette information est visible sur la vidéo (la partie inférieure gauche de la vidéo donne cette information).

Lors du premier changement de voie vers la gauche, à quel moment le véhicule franchit-il la ligne ?

On aimerait enregistrer cet information dans la trace. Pour cela, nous allons créer une requête qui va permettre d'ajouter cet observé.

Dans Abstract, toujours avec la trace "tS15-L2-4_TP", cliquez sur l'onglet "Edit". Là, vous pouvez sélectionner la vue qui vous intéresse, par exemple la vue de la trace sur 10 s.
Vous aller écrire une requête SPARQL pour annoter la trace avec un observé de changement de voie. Sachant que le type de cet observé doit être le même que celui utilisé dans les autres situations de changement de voie (Lane_Crossing) et qu'il doit appraître au moment où le changement de voie a lieu, adaptez la requête suivante pour créer ce nouvel observé :

# Génère un observé de type "Annotation"
# ayant pour timecode la valeur "1500"

CONSTRUCT	{
	_:a	a	kb:Annotation .
	_:a	kb:date	1500
}
WHERE	{
}

Vous pouvez éditer votre requête directement dans les boîte de texte "Comments", "Construct" et "Where" de la page Abstract ou en important une requête déjà écrite dans un fichier séparé. Les boîtes de texte d'Abstract permettent un mode de visualisation de la requête avec coloration syntaxique et un mode d'édition de requête (cliquer sur les boutons "View" ou "Edit" pour changer).

Une fois la requête écrite dans le formulaire (ou importée), cliquez sur le bouton "Generate ->" situé à droite du formulaire. Cela vous génère la requête telle qu'elle sera écrite dans le fichier de requête SPARQL. Cette requête s'affiche à droite du formulaire, sauf si la fenêtre de votre navigateur est trop étroite, auquel cas elle s'affichera sous le formulaire.

Pour pouvoir sauvegarder votre requête, donnez lui un nom. Par exemple "Lane_Crossing". Puis cliquez sur le bouton "Save and process". Une fenêtre s'ouvre et appel un moteur de requête SPARQL. Si tout se passe bien, votre requête doit générer créer une nouvelle trace transformée, dans laquel il y aura un observé supplémentaire par rapport à la trace première. Dans ce cas, un message s'affiche vous avertissant que la trace "p2" a été générée. Abstract charge automatiquement cette nouvelle trace transformée.

Retournez dans l'onglet visualisation et affichez la trace. Au timecode correspondant à ce premier changement de voie, vous devez maintenant voir un observé de type "Lane_Crossing".

Analyse de trace

Pour aller plus loin, on peut définir une ou plusieurs transformations intéressantes correspondant à des hypothèses possibles. On procédera par recopie / modification de requêtes existantes.

Avant d'effectuer une requête, on s'assurera que le type de l'objet généré existe bien dans l'Ontologie.

Nettoyage

Effacez les vidéos de votre disque dur.