5.4.1 L'implémentation d'une sémantique spécifique aux traces

5.4.1.1. Règles de raisonnement

Comme nous l'avons introduit au paragraphe 5.1.2.2, le moteur Sparql que nous avons implémenté permet d'exploiter une sémantique associée aux observés. Cette sémantique se définit sous forme de "règles de raisonnement" qui sont interprétées par un module du moteur Sparql appelé le "raisonneur". Par exemple la sémantique de la relation "rdfs:SubclassOf" est implémentée par des règles qui expriment sa transitivité. Ces règles spécifient que la présence de deux triplets (A, rdfs:SubclassOf, B) et (B, rdfs:SubclassOf, C) doit produire un "triplet virtuel" (A, rdfs:SubclassOf, C). Ce triplet virtuel n'existe pas réellement dans le graphe mais tout se passe comme s'il existait quand une requête Sparql est interprétée.

Nous pouvons exploiter cette fonctionnalité pour définir nos propres règles sémantiques spécifiques aux traces. Nous avons en particulier défini des liens virtuels "suit" et "précède" (Figure 68) qui permettent d'exprimer une caractéristique fondamentale des traces : la séquentialité.

Figure 68 : Liens virtuels "suit" et "précède"

Ces liens virtuels peuvent être utilisés dans une clause where d'une transformation Sparql comme s'ils existaient vraiment alors qu'en réalité ils sont résolus par le système en comparant les Time code des observés. La règle configurée dans le raisonneur s'écrit schématiquement :

r1 précède r2) <- (r1 TimeCode d1),(r2 TimeCode d2), le(d1,d2), difference(d2,d1,d0), lessThan(d0,20)

Et elle se lit : créer un lien virtuel "précède" de la ressource r1 vers la ressource r2 quand r1 a pour time code d1, r2 a pour time code d2, d1 est inférieur ou égal à d2, et d2-d1 est inférieur à 20 (secondes).

Ce mécanisme permet de résoudre un problème de temps de réponse lié à un facteur d'échelle. En pratique nous avons environ 5 observés par seconde et nous voudrions avoir un horizon temporel d'une vingtaine de secondes. Cela représente donc une centaine de liens "précède" par observé. S'ils étaient enregistrés dans le fichier trace, son volume serait pratiquement multiplié par 100.

En pratique, le raisonneur applique un mécanisme d'optimisation qui lui permet de minimiser l'évaluation de ces liens virtuels. Du fait de cette optimisation, les expressions (A précède B) et (B suit A) ne sont pas équivalentes en terme de temps d'exécution selon les conditions dans lesquelles elles sont utilisées, bien qu'elles soient équivalentes sur le plan logique. Nous sommes donc amenés à définir ces deux types de liens virtuels.

Dans le principe, cette approche vise à implémenter une "sémantique générale du temps". C'est-à-dire implémenter les concepts connus par l'ergonome pour appréhender le temps, tels que la succession chronologique, la notion d'intervalle, le recouvrement d'intervalles, les décalages temporels, etc. De cette façon l'ergonome pourra exprimer ses requêtes en ces termes, ce qui simplifiera son travail. Nous discutons cette perspective au paragraphe 7.1.