Nous présentons ici un exemple audiovisuel extrait du journal de France 2 du 13 juillet 19961. La figure 2.1 présente une vue globale du document : le journal est composé d'un indicatif, d'une ouverture2, et de quelques reportages à chaque fois introduits par le présentateur. Le second de ces reportages a pour sujet la visite de Nelson Mandela à Paris à l'occasion du 14 juillet, et peut se décomposer (avec au moins une image par plan) en un lancement du sujet ; une introduction présentant la rencontre de Mandela et Chirac au château de Rambouillet ; une rappel de la rencontre de Mandela et Mitterrand quelques années plus tôt ; une rétrospective sur la vie de Mandela en Afrique du Sud avec sa condamnation, ses années de prison et sa libération ; et enfin une conclusion dans laquelle Mandela et Chirac marchent dans les allées du château de Rambouillet.
La figure 2.2 présente une vue d'un début d'annotation3 du journal télévisé de la figure 2.1. Les UAV sont représentées par des cadres, dans lesquels les bornes temporelles sont indiquées en bas à droite et font référence sauf indication contraire au même fichier. Les EA annotant les UAV sont représentés par leur nom et le cas échéant leurs attributs et les flèches représentent les relations élémentaires. Chaque UAV possède un numéro-identificateur unique pour le flux. On notera la double structuration du journal télévisé en ses composantes, et du document en séquences, plans, et autres documents, ainsi que la relation élémentaire mise en place entre l'EA < Extrait d'archive > et un EA < Plan > d'un autre document. Cette relation élémentaire permet donc une structuration inter-documentaire de l'annotation.
La figure 2.3 présente une base de connaissances correspondant à l'annotation décrite figure 2.2. On notera que pour des raisons de commodité de notation, nous avons << factorisé >> certains attributs dans certains EAA, tel que Nom:TTexte dans < Personnalité > ou SP:TSpectre (pour un spectre sonore) dans < Son > . Il est alors admis que les EAA qui en sont spécialisation possèdent ces attributs.
La figure 2.4 présente un extrait du graphes des Strates-IA correspondant à une partie de l'annotation de la figure 2.2 et à une partie de la base de connaissances de la figure 2.3. Les bases temporelles correspondent à deux flux, on a également représentées les portées temporelles des UAV sur les flux et leurs EA primitifs.
Notre démarche se base sur une approche d'annotation de parties de documents audiovisuels à l'aide d'éléments d'annotation, exprimant des objets d'intérêt audiovisuels. Les EA sont plus particulièrement caractérisés par leur nom, à savoir le terme d'annotation, le mot-clé utilisé pour décrire ce que l'annotateur tient à exprimer à propos de la partie du document, en lien avec les relations entre EA, qui permettent de structurer l'annotation, mais également de préciser les termes utilisés. Cette écriture sur le document va ensuite donner lieu à une lecture, c'est à dire à une interprétation de l'annotation. Nous nous intéressons successivement aux trois types d'objets des Strates-IA et aux différents facteurs selon lesquels on peut les interpréter, c'est à dire à leurs interprétants dans le graphe des Strates-IA.
Nous avons vu dans la partie 3 que deux contextes audiovisuels pouvaient être considérés, le contexte temporel et le contexte sémantique.
Intéressons-nous à une unité audiovisuelle mise en place au cours d'une activité d'annotation. Cette UAV est pour le système un représentant d'une partie de flux audiovisuel, puisqu'elle permet d'y accéder de façon non ambiguë. Unité bivalente, l'UAV est donc tout d'abord décrite du côté du document audiovisuel par la partie de flux qu'elle délimite, tandis que du côté du système, c'est cette partie de flux qui est décrite par les annotations liées à l'UAV4. Comme de plus l'UAV est insérée dans le graphe des Strates-IA, et peut être appréhendée et manipulée en tant que telle, nous la considérons comme ayant une existence propre, et pouvant être elle-même décrite par son annotation. La partie de flux est alors documentée par la description de l'UAV.
Une unité audiovisuelle est d'abord décrite par les annotations qui lui sont liées, donc les EA en relation d'annotation Ra avec elle. Cela correspond à un contexte << immédiat >>, qui est le contexte de l'UAV. Si nous considérons un contexte temporel immédiat, une UAV est également décrite par les EA annotant des UAV qui la contiennent temporellement. Par exemple l'UAV 7 de la figure 2.2 est contenue dans l'UAV 3, on peut donc dire suivant ce contexte (cette relation temporelle), qu'elle est également décrite par les EA de l'UAV 3 (par exemple par < Journal Télévisé > ). Inversement, l'UAV 3 peut, suivant la relation inverse être décrite par les EA annotant l'UAV 7, qu'elle contient temporellement (par exemple par < Bruno Masure > ). Nous nous trouvons donc en présence de deux contextes temporels immédiats, basés sur l'inclusion temporelle de parties de flux. Si nous considérons les autres relations temporelles entre UAV, il devient possible de définir tous les contextes temporels << non immédiats >> utiles, par exemple la superposition (overlap), la jonction, etc. Toutes les combinaisons de relations temporelles telles que celles définies par [12] peuvent donc participer à la recherche des contextes temporels d'une unité audiovisuelle.
Nous définissons l'annotation contextuelle d'une UAV comme les éléments d'annotation dont on peut, en définissant un contexte, considérer qu'ils annotent cette UAV5. Par exemple, en définissant le contexte d'inclusion temporelle, on peut considérer que toutes les annotations d'une UAV annotent également toute UAV qui la contient temporellement. Les UAV globales jouent donc un rôle dans la détermination des unités locales, inversement, les unités locales permettent de compléter la description des unités globales.
Si le contexte temporel est lié au flux et à sa temporalité (il est toujours possible de comparer temporellement deux UAV définies sur le même flux), le contexte sémantique prend quant à lui appui sur les relations entre annotations, c'est à dire sur la structure de l'annotation. Par exemple sur la figure 2.2, le contexte structurel suivant la relation nommée par l'EA < Struct Doc. > permet de définir que l'UAV 9 peut être annotée contextuellement par des EA annotant l'UAV 3. Si on suit un lien de structuration d'annotation basé sur < Focus Vidéo > , alors l'UAV 7se trouve dans le contexte de l'UAV 3. Enfin, si nous considérons un lien basé sur < Focus Vidéo > , une co-occurence temporelle d'EA et < Struct Doc. > , alors l'UAV 3 se trouve dans le contexte de l'UAV 7. Certes ce contexte est équivalent au contexte d'inclusion temporelle défini précédemment, mais sa signification est différente, puisqu'ici on peut décrire le contexte par le chemin suivi dans le graphe d'annotation.
La dernière possibilité d'annotation contextuelle d'une UAV dépend encore de ses annotations, mais surtout de leurs liens avec la base de connaissances. En effet, annotée par un élément d'annotation, l'unité audiovisuelle bénéficie encore des explications sur la signification de cet élément définies par le réseau de la base de connaissances. Ainsi par exemple une unité annotée par < Zoom Avant > pourra également être considérée comme l'étant par < Mouvement caméra > , du fait de la relation de spécialisation dans la base de connaissances entre < EAA:Mouvement caméra > et < EAA:Zoom Avant >. De la même manière, une UAV annotée par < Nelson Mandela > peut l'être également par < Afrique du Sud > du fait de la relation pays entre < EAA:Nelson Mandela > et < EAA:Afrique du Sud >. Ce type d'annotation contextuelle profite simplement des relations de la base de connaissances, à laquelle l'UAV est connectée dans le graphe par l'intermédiaire des EA qui l'annotent.
Après nous être intéressés à l'annotation contextuelle des UAV, c'est à dire à leur contexte dans le graphe Strates-IA, nous pouvons appliquer un raisonnement similaire sur les éléments d'annotation. En effet, ceux-ci peuvent être également interprétés et manipulés et ici encore, plusieurs contexte peuvent être définis.
Un EA peut être considéré seul, auquel cas son interprétation sera contrainte, d'une part par l'UAV (et le flux) qu'il annote, c'est à dire par son contexte audiovisuel, mais aussi par les relations que l'EAA dont il est inscription dans le flux entretient dans la base de connaissances.
Par exemple, figure 2.2 l'EA < Pano Gauche-Droite > annotant l'UAV 8 s'explique d'abord par l'UAV 8elle-même, et par la partie de flux à laquelle elle correspond, mais aussi par l'EAA < EAA:Pano Gauche-Droite > et les relations de celui-ci avec < EAA:Mouvement caméra >, ses diverses abstractions et autre spécialisations (e.g. < Zoom avant > ). Si on considère les relations temporelles entre UAV, donc entre les EA qui les annotent, ceux-ci peuvent s'expliquer mutuellement (par exemple le fait qu'un EA < Meurtre > soit temporellement situé après un EA < Insulte > ).
Si l'EA est considéré dans ses relations avec d'autres EA, il peut s'interpréter du fait par exemple de la présence d'autres annotations dans l'UAV (< Pano Gauche-Droite > annote avec < Plan > l'UAV 8). Les relations élémentaires qu'il entretient avec d'autres EA permettent également de mettre en place un contexte d'interprétation. Par exemple dans l'UAV 8, < Pano Gauche-Droite > est en relation par l'intermédiaire de < FocusVidéo > avec deux EA < Groupes > , eux mêmes précisés par leurs relations avec leurs constituants ; si < Meurtre > est en relation élémentaire avec < Don Gomès > , alors son interprétation est plus contrainte.
Encore une fois, il nous apparaît que la lecture et l'interprétation des annotations peut se faire en prenant en compte leurs différents contextes dans le graphe des Strates-IA, lesquels se basent soit sur des relations temporelles par le biais des UAV, soit en tirant partie de la structure de l'annotation, soit de celle de la base de connaissances. Toute connaissance inscrite dans le flux comme élément d'annotation y est en effet contextualisée aussi bien temporellement que par les relations explicites que l'on met en place. De plus, ce sont les contextes hors du flux, dans la base de connaissances qui en prescrivent la signification de départ.
Un élément d'annotation abstrait existe donc en premier lieu en l'absence d'annotation, et s'explique tout d'abord par le terme qui est choisi pour son nom, qui sera toujours interprétable et interprété, pas obligatoirement de façon unique6. C'est pourquoi, dans une base de connaissances comme dans un thésaurus, mais à des degrés de figement divers, les relations entre concepts (ou termes) permettent de spécifier la signification qu'il convient de mettre sous chaque terme, sous la forme de contraintes d'interprétation. La valeur sémantique d'un concept ou d'un terme dépend alors fortement du contexte dans lequel il se trouve au niveau des connaissances.
S'il est utilisé, un élément d'annotation abstrait est inscrit dans le flux sous la forme d'un élément d'annotation. La valeur en contexte (dans le flux) de l'EA peut alors naturellement varier (puisque des relations non prévues sont possibles) par rapport à la valeur hors-contexte (hors du flux) de l'EAA. En retour, sous la forme d'exemple d'utilisation, l'EA peut par sa signification contraindre l'interprétation de l'EAA, y compris du fait de sa position dans l'organisation de l'annotation. L'EAA est donc également décrit par le contexte de ses instances.
Ceci nous permet de justifier a posteriori notre volonté de considérer le système comme un graphe, car alors tous les liens de contextes entre sommets quelconques s'expriment de la même manière et de façon naturelle, ce qui ne serait pas forcément le cas avec d'autres formalisations.
Soit un système Strates-IA SIA = < O, R, G, C >tel que nous l'avons défini au chapitre précédent, avec G = < S, A,, >.
Soit un objet o O (O l'ensemble des objets) correspondant à un sommet de G s S et (s) = o (tel qu'il serve d'étiquette pour le sommet s). Un contexte de o est un objet o' de O tel qu'il existe un chemin du graphe G permettant de mettre en relation les sommets étiquetés par o et o'. On dira que o' est en contexte avec o.
Le contexte global de o est l'ensemble des objets oien contexte avec o.
Cette dernière définition est peu opératoire en l'état. En effet, G étant connexe, tout objet est en relation avec tout autre objet par l'intermédiaire d'un ou plusieurs chemins. Ceci exprime simplement le fait que le système est cohérent et unique, c'est à dire qu'on met en place un ensemble de connaissances de description (EAA) liées entre elles, qui s'expliquent mutuellement, ce qui est également le cas des connaissances utilisées par les descriptions (EA et UAV). Toutes les relations contextuelles entre objets leur permettent de s'expliquer (de se définir) mutuellement (cf. plus haut).
Afin cependant de contrôler les contextes pour qu'ils puissent exprimer des relations utiles entre éléments, il convient de mettre en place des outils permettant de les définir et de les manipuler. Les graphes potentiels nous permettront de définir formellement les contextes et de fournir le contrôle voulu. Avant de les présenter, il nous faut présenter ce qu'est la similarité entre objets des Strates-IA.
Nous définissons dans cette partie comment il est possible de comparer deux objets des Strates-IA.
Il y a lieu de définir plusieurs fonctions de similarité pour un type d'attribut donné afin prendre en compte les << vraies >> mesures de similarité liées aux primitives images et son (calculées). Par exemple, on pourra imaginer de comparer deux signatures de points d'intérêt suivant plusieurs méthodes ; ou bien on comparera deux textes soit de façon exacte, soit sur quelques-uns de leurs termes représentatifs (par exemple ils contiennent tous les deux les termes Chirac et Paysans).
Nous nous restreignons ici à des fonctions à valeurs booléennes afin de simplifier les calculs, c'est à dire que nous n'envisageons pas a priori d'ordonner des résultats : soit une primitive est jugée similaire à une autre, soit non.
Son principe est ici le suivant : pour chacun des types d'o1, si il n'existe pas d'attribut de même type dans o2 alors retourner 0sinon comparer les valeurs d'attributs avec la fonction de similarité ad-hoc. Si le résultat est 1 alors passer à l'attribut suivant, sinon retourner 0. Quand tous les attributs de o1 sont passés en revue, retourner 1.
Cette fonction n'est donc pas symétrique, le résultat de la comparaison de o1 avec o2 ne sera pas forcément le même que celui de la comparaison de o2 avec o1.
Par exemple, on pourra comparer deux objets
Nous choisissons des similarités booléennes entre nuds (et non par exemple des similarités << floues >> à valeur dans [0, 1]) car nous chercherons à exprimer des comparaisons entre graphes en terme d'isomorphismes. Alors il faudra comparer des nuds de façon stricte.
Si nous revenons à notre problème, celui-ci est donc le suivant : étant donné un objet o d'un système Strates-IA, comment contrôler l'ensemble des contextes qu'on pourra lui associer ? Pour répondre à cette question, il nous faut être capable de décrire dans le graphe un chemin de façon abstraite, c'est à dire hors du système, aussi bien de façon << syntaxique >> (les sommets et les arcs qui les lient) que << sémantique >> (les étiquettes associées aux sommets et aux arcs).
Il s'agit tout d'abord de décrire l'ossature du chemin, c'est à dire les sommets qui le composent, et les arcs entre ces sommets. La deuxième étape consiste en l'étiquetage de l'ossature du graphe (ou chemin virtuel), à l'aide d'objets << abstraits >> pour étiqueter les sommets, et d'un ensemble de relations étendues pour prendre en compte les relations temporelles.
Un objet abstrait est un objet des Strates-IA (qui possède donc a minima un type), dont tous les autres attributs peuvent ne pas avoir de valeur, ou avoir des valeurs négligées dans les faits, ce qui revient d'une certaine façon à l'abstraire.
En effet, il s'agira de comparer les chemins, décrits de façon abstraite, aux chemins du graphe, donc de comparer les étiquettes, c'est à dire les objets abstraits aux objets concrets. Pour cela, une fonction de similarité entre objets sera utilisée, laquelle ne prendra en compte obligatoirement que le type de l'objet abstrait. On conçoit donc que si on ne considère que le type, il n'y ait pas lieu de définir d'autres attributs, ou que si ceux-ci sont définis, alors ils ne seront pris en compte que si la fonction de similarité le fait.
Par exemple, une UAV abstraite pourra être un objet u = < (Type, UAV) > et associée à une fonction de similarité f ne prenant en compte que l'attribut type, pourra être comparée aux objets de O, rendant vrai pour toutes les UAV de O, et fauxpour les EA et les EAA. Un EA e = < Type, EA) > pourra être considéré comme équivalent à tous les EA si la même fonction de similarité lui est associée. Par contre, un objet e' = < Type, EA),(Nom, Chirac) > associé à une fonction comparant exactement Type et Nom sera considéré équivalent à tous les EA inscriptions dans le flux de l'EAA < EAA:Chirac >.
Un objet abstrait associé à une fonction de similarité qui lui soit adaptée est appelé objet générique. Comme le plus souvent la généricité portera sur l'attribut Nom, nous valuerons celui-ci par *, * pouvant prendre l'ensemble des valeurs de EV(Nom). Par exemple l'EA générique paradigmatique sera < * > , l'EAA sera < EAA:* >, et en étendant à l'UAV, on aura < UAV:* > .
Les relations entre objets génériques sont les mêmes que les relations que nous avons déjà définies. Un EA générique sera par exemple en relation d'annotation Ra avec une UAV générique. Nous introduisons cependant un ensemble de relations supplémentaires possibles entre éléments d'annotation génériques, qui sont toutes les relations temporelles possibles entre parties de flux, typiquement les treize relations de Allen (before, after, touches, ovverlaps, etc.).
Les relations temporelles entre EA génériques permettent de définir des contextes temporels en étendant la notion de chemins virtuels. Soit RT l'ensemble des relations temporelles.
La figure 2.5 présente un ensemble de chemins potentiels. Gp1 par exemple décrit un chemin virtuel entre un EA générique < Document > et une UAV totalement générique, le chemin passant par un EA < StructDoc > et un EA totalement générique. Le graphe Gp2 décrit un chemin suivant une relation de spécialisation entre un EAA < EAA:Homme politique français > et un EAA totalement générique. Le graphe Gp3décrit un chemin contextuel potentiel sur le même schéma que Gp1. Gp4 décrit un chemin contextuel potentiel avec une composante temporelle signifiant que l'EA générique < Plan > doit être en relation d'inclusion temporelle avec un EA générique ayant un attribut Auteur avec << M. Laroche-joubert >> pour valeur. Cela signifie d'une part que l'UAV qu'annote < Plan > doit être incluse temporellement dans l'UAV qu'annote e, d'autre part que ce dernier EA générique est un EA associé à une fonction de similarité opérant sur les attributs Type et Auteur.
La description d'un chemin virtuel peut être précisée. Plus particulièrement, il est possible de spécifier pour chacun de ses éléments un contexte, c'est à dire un autre chemin contextuel, et ce de façon récursive. Ce principe est illustré par le graphe Gp5 figure 2.5 où l'EA < Groupe > faisant partie du chemin entre une UAV et un EA totalement générique est spécifié par sa relation contextuelle avec un EA < Pano Gauche Droite > .
Il apparaît donc qu'un chemin virtuel est décrit par une ossature étiquetée de chemin, et que récursivement chacun des sommets du chemin peut être précisé par d'autres chemins, dont les sommets peuvent être à leur tour précisés, etc. Nous pouvons alors définir ce qu'est un graphe potentiel.
Un graphe potentiel est un graphe permettant de spécifier abstraitement des contextes, des relations contextuelles entre sommets d'un graphe Strates-IA.
Soit un système Strates-IA GSIA = < O, R, G, C > avec G = < S, A,, >. Alors soit Op l'ensembles des objets du graphe potentiel, définis suivant les mêmes contraintes d'attributs et de valeurs que les objets de O. Soit fOp l'application qui à tout objet op Op associe7 une fonction de similarité fop permettant de le comparer aux objets de O. Le degré de généricité d'un sommet du graphe potentiel dépendra donc de la fonction de similarité qui lui est associée. On peut alors comparer tout objet de Op (i.e. du graphe potentiel) à des objets de O (i.e. du graphe général des Strates-IA) : op Op, o O, fOp(op, o) = 1 si fop(op, o) = 1 (si op est jugé similaire à o suivant la fonction de similarité qui lui est associée), = 0 sinon.
Un graphe potentiel est défini comme Gp = < Op, fOp, Rp, GGp, Cp > avec Op ensemble des objets génériques du graphe potentiel, fOp associant à tout objet générique une fonction de similarité, Rp = R RT, GGp = < Sp, Ap,, >avec Sp ensemble des sommet du graphe potentiel, Ap ensemble de ses arcs, et associant respectivement aux sommets et aux arcs des étiquettes issues de Op et de Rp. Cp est l'ensemble des contraintes sur les relations du graphe potentiel, qui sont presque équivalentes à celles contenues dans C à la différence que les relations entre EA génériques peuvent être soit élémentaires, soit appartenir à RT.
L'instanciation d'un graphe potentiel Gp dans un graphe Strates-IA GSIA correspond à la recherche dans ce dernier des sous-graphes qui soient équivalents à Gp suivant les contraintes de structure (sommets et arcs) et les contraintes de similarité entre étiquettes de sommets et de relation. Une instance d'un graphe potentiel est un sous-graphe de SIA qui lui est équivalent suivant ces contraintes.
Plus formellement, si on a
GSIA = < O, R, G, C > avec
G = < S, A,,
> et
Gp = < Op, fOp, Rp, GGp, Cp > avec
GGp = < Sp, Ap,,
>. Alors les instances de
Gp dans GSIA sont les sous-graphes
gi = < Si, Ai,,
> i
[1, n] de G (avec
(resp.
) la restriction de
(resp. ) à Si (resp. Ai))
tels que pour tout
i
[1, n] il existe une fonction bi-univoque
fi : Sp
Si avec :
Par exemple les graphes potentiels de la figure 2.5 s'instancient dans le graphe défini par les figures 2.2 (pour les UAV et EA) et 2.3 (pour les EAA) de la manière suivante : Gp1a quatre instances, Gp2 et Gp4 en ont trois, Gp3 une seule, et enfin Gp5 permet de définir quatre instances.
On note I(Gp, GSIA) l'ensemble des instances de Gp dans GSIA.
Le problème de la recherche des instances d'un graphe potentiel dans un graphe Strates-IA se ramène à la recherche des isomorphismes de sous-graphe partiels entre Gp et GSIA. Ce problème est dans le cas général NP-complet, c'est pourquoi nous ajoutons comme contrainte supplémentaire sur tout graphe potentiel qu'un au moins de ses sommets sera associé de façon unique à un des sommets de GSIA. Ainsi, (x, y) Sp x S tel que fi associée à une instance de I(Gp, GSIA), fi(x) = y.
Ce sommet initial du graphe potentiel correspondra par exemple à un objet générique EAA nommé, qui pourra alors être associé sans ambiguïté à l'EAA de la base de connaissances correspondant. Ce sommet pourra également correspondre à une UAV totalement déterminée, ou bien à un EA précis.
La contrainte que nous posons est naturelle : les graphes potentiels servent à exprimer des contextes virtuels entre sommets d'un graphe Strates-IA, tandis que les instances expriment des contextes réels. L'instanciation, la recherche de contextes doit alors se faire à partir de sommets connus dont on cherchera le contexte. Cette recherche sera locale dans le graphe, c'est à dire que son ou ses points de départs seront connus, à la différence d'une approche qui chercherait des motifs de façon globale.
Parmi les graphes potentiels de la figure 2.5, seuls Gp2 et Gp4 sont valides au sens de la restriction que nous venons de poser. Les autres graphes potentiels peuvent devenir valides, pour peu qu'on spécifie explicitement certains de leurs sommets comme correspondant à des sommets précis de G, ou bien qu'on les complète par exemple au niveau des EA nommés en les mettant en relation avec des EAA génériques nommés, qui eux peuvent être mis en correspondance non ambiguë avec les EAA de la base de connaissances, comme indiqué sur la figure 2.6. La mise en place de sommets génériques EAA nommés dans les graphes potentiels correspond à une recherche d'annotations dans leur contexte, donc qui partent de ceux-ci.
Nous évoquerons plus en détail comment les graphes potentiels peuvent être manipulés et rendus valides. Retenons pour l'instant que pour tout graphe potentiel à instancier, on connaît sans calcul au moins une correspondance entre un sommet du graphe potentiel et un sommet du graphe Strates-IA.
Nous nous intéressons dans cette section à l'instanciation de graphes potentiels du point de vue algorithmique et de la théorie des graphes. Pour présenter la manière dont l'instanciation se réalise, nous allons simplifier notre problème en considérant des graphes étiquetés simplement (et non par des objets Strates-IA avec les contraintes associées). Par contre, les règles de vérification de cohérence utilisées seront décrites dans leur forme générale ; c'est à dire en se plaçant dans le cadre des graphes potentiels définis ci-dessus.
Etant donné un graphe G = (X, AX), un sous-graphe de G est un graphe G' = (X', AX') tel que X' X et X' et AX' = AX X' x X'. Un graphe partiel de G engendré par le sous-ensemble d'arcs B AX est le graphe G' = (X, B). Le sous-graphe partiel engendré par X' X et B AX' est le graphe partiel de G' = (X', AX') engendré par B AX'.
Le problème de l'isomorphisme de sous-graphes se rencontre dans de nombreux domaines au nombre desquels :
Les méthodes développées pour résoudre le problème de l'isomorphisme de sous-graphes peuvent être classées dans l'une des deux approches suivantes.
L'approche basée sur la recherche de cliques8 maximales dans un graphe appelé graphe d'association décrivant toutes les correspondances possibles entre sommets de GX et de GY9. Dans cette première approche, nous pouvons citer les travaux de [90,169,126] (cités dans [156]). Les algorithmes issus de cette approche sont très généraux, puisque le problème est considéré de façon globale mais peu efficaces dans la pratique de par leur complexité et ne s'appliquent qu'à des graphes de petite taille.
L'approche dite de relaxation, basée sur l'utilisation combinée de méthodes de filtrage et d'algorithmes d'énumération de l'espace des solutions. [136,134] décrivent des algorithmes illustrant cette seconde approche. Ces algorithmes présentent l'avantage de pouvoir s'implanter facilement sur des architectures parallèles et d'utiliser ainsi la puissance des machines multiprocesseurs. La proposition de [230] (que nous avons implanté) est similaire à cette approche : on construit un tableau de dimension NX x NY, où NX (resp. NY) désigne le nombre de sommet du graphe GX (resp. Y) en exécutant une procédure récursive ayant ce tableau -- modifié à chaque itération -- pour paramètre. La complexité est alors rédhibitoire pour les graphes de grande taille.
De manière informelle10, cet algorithme est basé sur le principe suivant : pour rechercher toutes les solutions, l'algorithme construit un arbre où chaque sommet représente un isomorphisme partiel et un arc correspond à l'ajout d'une paire de sommets conduisant à un autre isomorphisme partiel de cardinalité supérieure. La racine de cet arbre est l'ensemble vide et la profondeur de l'arbre en cours de construction est directement fonction du cardinal de l'isomorphisme partiel associé. Pendant la construction des solutions, si l'ajout d'une paire de sommets à un isomorphisme partiel (à un sommet de l'arbre) conduit à un état incohérent, alors l'algorithme abandonne toute exploration depuis cet état ; c'est à dire que le chemin s'interrompt sur cet état incohérent. L'algorithme présenté dans [67], s'avère en moyenne efficace grâce à cette technique d'élagage des chemins incohérents de l'arbre des solutions. Son inconvénient principal est cependant son exploration en largeur complète : tous les sommets de l'arbre sont développés en même temps, ce qui multiplie le nombre de sommets à chaque niveau de l'arbre de façon importante. De plus, la présence dans l'arbre de solutions partielles connexes (pouvant être fusionnées) n'est pas gérée, ce qui constitue un autre facteur de multiplication du nombre d'états et nécessite de tester les solutions doublonnées en fin de calcul.
Nous proposons une première amélioration de cet algorithme, qui consiste à explorer l'espace des états suivant des directions optimales d'un point de vue du nombre d'états générés.
A chaque étape, c'est à dire à chaque niveau de l'arbre, une direction est déterminée en étendant un seul état à la fois qui est choisi en fonction d'un critère réduisant le nombre d'états nouveaux.
Une deuxième amélioration importante vient de la fusion d'états connexes, réduisant ainsi le nombre d'états au total et évitant la redondance des solutions partielles portées par les sommets de l'arbre.
Ces deux améliorations apportées vont nous permettre de fournir des solutions finales dès qu'elles sont établies, sans attendre d'avoir terminé l'exploration de toutes les solutions possibles. Le reste de cette section est consacré à la présentation de notre algorithme dit de multi-propagation.
Nous allons dans cette partie introduire quelques définitions et
préciser quelques notations nécessaires pour la description de notre
algorithme. Chacune des définitions que nous donnons est illustrée sur
la figure 2.7.
Sur l'exemple de la figure 2.7, GX est isomorphe au sous-graphe GY' de GY. Une bijection solution f : X Y' est totalement caractérisée par l'ensemble des correspondances
On suppose que les correspondances initiales de la recherche d'isomorphisme de sous-graphe partiel présenté figure 2.7 sont les couples [a, 2] et [d, 9] (indiqués en gras), il y a donc deux graines.
Un état composé uniquement d'une graine est appelé état initial. L'ensemble des graines présentes dans un état e est noté R(e) (gRaines) :
Sur l'exemple de la figure 2.8, on peut considérer deux états e1 et e2. e2, composé de la graine [d, 9] est un état initial. e1 est composé de deux correspondances GY, V(e1) = {[a, 2],[b, 7]} est l'isomorphisme partiel qui lui est associé. Les projections de e1 sur X et Y sont respectivement VX(e1) = {a, b} et VY(e1) = {2, 7}. On a R(e1) = {[a, 2]} et R(e2) = {[d, 9]}. Remarquons que pour un état e correspondant à l'isomorphisme final (5 correspondances), R(e) = {[a, 2],[d, 9]}.
IX(e) (resp. IY(e)) dénote l'ensemble des sommets incidents intérieurement aux sommets de VX(e) (resp. VY(e)). EX(e)(resp. EY(e)) dénote l'ensemble des sommets incidents extérieurement aux sommets de VX(e) (resp. VY(e)). Plus formellement, on a :
Par exemple pour les états de la figure 2.8, on a C(e1) = {[c, 8][e, 5][e, 6]} et C(e2) = {[c, 8],[c, 3]}, si on prend en compte les critères de cohérence définis plus loin.
Soit CX(e) = {x X | y Y | [x, y] C(e)} la projection de l'ensemble C(e) sur X. Pour tout sommet x CX(e) on appelle extension de C(e) suivant x la suite des correspondances de C(e) ayant le sommet x comme origine et notée par C(e x). On note par | C(e x)| la dimension (nombre d'éléments) de la suite C(e x) et par (e) la dimension de la plus petite extension associée à l'état e :
Pour les états de la figure 2.8, l'extension de e1 suivant c est C(e1 c) = {[c, 8]}, et son extension suivant c est C(e1 e) = {[e, 5][e, 6]}. De la même manière, C(e2 c) = {[c, 8][c, 3]}11. Les dimensions d'extension sont (e1) = 1 et (e2) = 2.
Propriété de connectivité : cette propriété exprime le fait que x peut être mis en correspondance avec y si chacun des voisins de x qui est dans VX(e) est déjà mis en correspondance avec un voisin de y et inversement. D'où les règles qui vérifient le respect de ces contraintes d'adjacence :
Propriété d'incidence : les deux règles suivantes permettent de vérifier cette propriété. La première règle indique si le nombre de successeurs de x incidents intérieurement à V(e) est égal au nombre de successeurs de y incidents intérieurement à V(e). La deuxième règle traite les précédesseurs, la troisième et la quatrième sont consacrées au sommets incidents extérieurement.
Propriété d'incidence d'ordre 2 : Cette propriété indique si le nombre de successeurs (resp. prédécesseurs) de xhors de l'état e est bien égal au nombre de successeurs (resp. prédécesseurs) de y :
La vérification de la propriété d'incidence d'ordre 2 n'est pas nécessaire, elle permet simplement de couper l'espace de recherche en éliminant les mauvaises extensions d'état (cf. la note 11).
Critères de cohérence sémantique : la cohérence sémantique d'une correspondance [x, y] CX(e) x CY(e)s'exprime par le calcul d'une similarité entre étiquettes de sommets realisé par la fonction fSymEtiqNoeud) et étiquettes d'arcs (suivant fSymEtiqRel) :
Nous avons explicitement déjà pris en compte les critères de cohérence structurels et sémantiques en présentant les extensions des états e1 et e2. Par exemple [c, 3] ne fait pas partie de l'extension de e1 puisque les étiquettes de sommets cet 3 sont différentes (critère de cohérence sémantique). Egalement, [c, 1] ne fait pas partie de l'extension de e1 : bien que les étiquettes de e et de 1 soient similaires, le nombre des successeurs de 1 est nul, n'est pas au moins égal au nombre de successeurs e, donc la propriété d'incidence d'ordre 2 permet d'éliminer [c, 1].
Sur l'exemple de la figure 2.8, une étape peut être P1 = {e1, e2}, tandis que l'étape initiale contenait les deux états initiaux correspondant aux deux graines.
Par exemple, à supposer figure 2.9 que l'état e1 de l'étape P1 ait été étendu suivant cpour donner un nouvel état e1' (dans une étape P2), tandis que e2' est la copie exacte de e2. On a alors P2 = {e1', e2'}, et l'état e1' est caractérisé par l'isomorphisme partiel V(e1') = {[a, 1],[b, 7],[c, 8]} ; son extension C(e1') = {C(e1' e), C(e1 d )} avec C(e1' e) = {[e, 5],[e, 6]} ainsi que C(e1' d )= {[d, 9]} ; (e1') = 1 et Re1' = {[a, 1]}.
Comme [d, 9] est contenue dans V(e2'), alors l'extension de e1' suivant d mène à la fusion de e1' et e2', pour donner un nouvel état e1'' qui est caractérisé par l'isomorphisme partiel V(e1'') = {[a, 1],[b, 7],[c, 8],[d, 9]} ; son extension C(e1'') = {C(e1'' e)} avec C(e1'' e) = {[e, 5],[e, 6]}, (e1'') = 2 et Re1'' = {[a, 1],[d, 9]}.
Les différentes notions que nous venons de définir nous permettent de présenter dans sa totalité l'algorithme de multi-propagation, dont les exemples déjà présentés ont sans doute permis de comprendre les grandes lignes.
L'étape 0 est initialisée avec les états liés aux graines de départ. Le déroulement général de l'algorithme consiste alors à passer d'une étape k à une étape k + 1 en étendant un certain nombre d'états de l'étape k suivant leurs relations d'extension, et en conservant les autres. Quand un état atteint la taille du graphe qu'on cherche à instancier, cet état représente un isomorphisme solution (son isomorphisme partiel est un isomorphisme solution).
On parle d'algorithme de propagation au sens où l'extension d'un état se fait par propagation le long des arcs des graphes. L'algorithme de [67] choisit un état quelconque de départ, une seule graine donc, et étend tous les états d'une étape de façon maximale, suivant toutes leurs possibilités d'extensions. Au bout d'autant d'étapes qu'il y a de sommets dans le graphe à instancier, cet algorithme de propagation aboutit à toutes les solutions, contenues dans la dernière étape.
Dès le moment où l'on dispose de plusieurs correspondances de départ (graines) à partir desquelles on peut propager les recherches de solutions, il y a lieu de parler de multi-propagation de la recherche d'isomorphisme. Dans le cas général, si on part d'une étape k, on retrouvera dans l'étape k + 1 :
A la différence de l'approche présentée dans [67] qui étend à chaque étape tous les états suivant toutes les extensions possibles, dans notre approche on n'étend qu'un seul état à chaque passage d'une étape à l'autre, ce qui permet d'engendrer moins d'états dans l'arbre des solutions (au pire le même nombre). L'heuristique de choix de l'état à étendre à chaque étape est le critère principal de notre algorithme. A chaque itération, notre algorithme choisit un état e Pk à étendre vérifiant le critère suivant :
Ce choix de l'extension minimale revient à minimiser le nombre de nouveaux états générés dans le passage d'une étape k à une étape k + 1, donc à progresser de la façon la plus économique possible vers la solution.
-------------------------------------------------------------- IsoGP(G_X=(X,A_X),G_Y=(Y,A_Y),P_0) k <- 0 REPEAT P_{k+1} <- { } Soit e dans P_k extensible tel que delta(e) = inf {delta(a) ; a dans P_k } P_{k+1} <- P_k - e Choisir un sommet x de G_X tel que |V(e -> x)| = delta(e) POUR_TOUT [x,y] correspondance de V(e -> x) P' = ExtensionFusion(P_{k+1},[x,y],e) POUR_TOUT e' de P' SI |e'| = |X| Retourner e' comme solution SINON P_{k+1} <- P_{k+1} + e' FIN_SI FIN_POUR FIN_POUR k <- k+1 TANT_QUE pour tout e dans P_k, Extensible(e) = Faux) --------------------------------------------------------------
L'algorithme IsoGP présente la procédure principale de recherche de sous-graphes partiels, qui prend en entrée les graphes GX et GY et l'étape initiale PO comprenant les n états initiaux (n graines). A chaque étape k, le choix de l'état eà étendre fait, on reporte tous les états présents dans Pkdans Pk + 1 à l'exception de l'état e. Pour chaque correspondance [x, y] de V(e x), on appelle la fonction ExtensionFusion(Pk + 1,[x, y], e) (cf. algorithme ExtensionFusion qui calcule l'extension de l'état e suivant [x, y].
La taille de chacun des états retournés par Extension_Fusion est ensuite testée. Si celle-ci correspond à la taille du graphe potentiel, alors l'état décrit un isomorphisme solution, et cette solution est rendue immédiatement, sinon on ajoute l'état à l'ensemble des états de Pk + 1.
L'algorithme s'achève lorsqu'il ne reste plus que des états gelés dans l'étape courante, c'est à dire lorsque tous les isomorphismes de sous-graphes partiels solutions ont été trouvés. La procédure ExtensionFusion permet de retourner :
-------------------------------------------------------------- ExtensionFusion(P,[x,y], e) NouveauxEtats <- {} POUR_TOUT t dans P | extensible(t) = Vrai SI R(t) Inter R(e) = {} et [x,y] dans t e' <- t Union e ; R(e') <- R(t) Union R(e) extensible(t) <- Faux NouveauxEtats <- e' FIN_SI FIN_POUR SI NouveauxEtats = {} e' <- e + [x,y] NouveauxEtats <- NouveauxEtats + e' FIN_SI POUR_TOUT t dans NouveauxEtats SI |t| != |X| (t n'est pas solution) C(e') <- CalculExtension(e') SI C(e') = {} Enlever t de NouveauxEtats FIN_SI FIN_SI FIN_POUR Retourner NouveauxEtats --------------------------------------------------------------CalculExtension calcule l'ensemble des extensions possibles pour un état, ainsi que son extension minimale.
On considère les deux graphes orientés présentés
figure 2.11
GX = (X, AX) avec
X = {a, b, c, d, e} et
GY = (Y, AY) avec
Y = {1, 2, 3, 4, 5, 6, 7, 8, 9,}. Les
arcs de GX et GY ne sont pas étiquetés. On cherche les
sous-graphes partiels de GY isomorphes au graphe d'entrée GXà partir des initiaux e01 et e02 avec
V(e01) = {[a, 3]}et
V(e02) = {[b, 4]}.
L'exécution de l'algorithme sur notre exemple se fait suivant les étapes représentées dans le graphe états-transitions de la figure 2.12. Sur les arcs sont indiqués les sommets suivant lesquels des extensions sont réalisées. Un arc en pointillés indique une simple recopie d'un état d'une étape k dans l'étape k + 1. Un arc avec une croix schématise une extension non viable = 0. Un sommet entouré d'un rectangle en pointillé indique la non extensibilité de l'état associé. Les solutions finales trouvées sont les Si.
Le passage de l'étape P0 à l'étape P1 se fait par une extension simple de l'état e01 suivant c. Le passage de l'étape P1 à l'étape P2 voit l'extension de l'état e12 suivant c et sa fusion subséquente avec e11, de laquelle découle l'état e22 tandis que e11 (et ses diverses recopies) sont gelés. Le déroulement suivant ne pose pas de problème particulier13, et l'algorithme s'arrête car l'unique état présent dans l'étape P5 n'est pas extensible. On remarquera également que l'ensemble de toutes les graines des états de cette étape ne couvre plus l'ensemble des graines de départ, c'est à dire que toutes les potentialités offertes par les différents états de départ on été exploitées au maximum. A l'issue de cette exécution, on obtient trois isomorphismes de sous graphes partiels de GX dans GY :
Les notions d'étape, d'état et d'extension d'état ainsi que les critères de cohérence syntaxique et sémantique étaient déjà présentés dans [67]. Dans cet algorithme, on part d'une correspondance choisie au hasard, avant d'étendre maximalement dans toutes les directions, ce qui correspond à un arbre état-transition de profondeur | X| et de largeur maximale, dont les solutions sont les feuilles, éventuellement doublonnées. Cette approche correspond à une exploration en largeur des solutions par un algorithme de propagation simple. Nous avions également mis au point et implanté un tel algorithme sous sa forme récursive, où à chaque retour de récursion les isomorphismes partiels doublonnés étaient éliminés. La proposition de [67] nous a alors permis d'appréhender le problème sous une forme non récursive, que nous avons modifiée pour permettre une multi-propagation minimisant les états générés et éliminant naturellement les doublons, c'est à dire guidée par une heuristique déterminant à chaque étape la direction de propagation à privilégier. La notion de graine est à cet égard fondamentale, puisqu'il s'agit d'étendre plusieurs isomorphismes partiels en même temps, de telle sorte qu'ils se << rejoignent >> pour donner des solutions.
La phase d'expérimentation répond aux tests validant notre approche et permettant d'analyser les performances générales de l'algorithme mis en uvre. Pour cela, nous avons utilisé la bibliothèque LEDA [152,153] développée à l'Institut Max Planck à Saarbrücken, qui offre une gamme très complète de fonctionnalités relatives à la représentation et aux traitements de graphes. Un composant générique graphe est fourni avec les opérateurs permettant de réaliser les traitements de base les plus courants. Nous avons évalué notre algorithme et l'algorithme présenté dans [67] sur une série de graphes généraux aléatoires répondant aux contraintes des Strates-IA (UAV, EA, EAA, relations). Les graphes potentiels composés de 10 sommets en moyenne, sont construits par extraction de sous-graphes partiels des graphes généraux ainsi générés, et possèdent au moins un sommet UAV ou EAA ayant une correspondance unique).
Un test élémentaire sur un graphe général GY = (Y, AY) et un graphe potentiel GX = (X, AX) générés aléatoirement, consiste à prendre des mesures (temps d'exécution, nombre d'états générés, etc.) en exécutant :
Le tableau 2.1 résume les résultats des séries de tests réalisées en donnant la taille en nombre de sommets du graphe général généré, le nombre de solutions trouvées, le numéro d'état correspondant à la première solution, le nombre total d'états générés par notre algorithme, et enfin le nombre total d'états générés par l'algorithme présenté dans [67].
|
Ces résultats doivent être nuancés dans le cas général de la recherche d'isomorphismes de sous-graphes partiels. Ils impliquent en effet qu'au moins une correspondance de départ soit connue, ce qui n'est pas le cas général. D'autre part, les tests ont été menés sur des graphes liés aux Strates-IA et non sur des graphes quelconques.
Il apparaît tout d'abord que nous avons fait le choix d'étendre un seul état par étape, suivant une unique direction, et l'heuristique de choix considère qu'une bonne direction est une direction qui générera le moins d'états possibles dans la nouvelle étape. Cette heuristique, qui donne de bons résultats peut être discutée. Par exemple, en gardant l'extension d'un unique état, il serait possible de considérer une heuristique variable qui, à partir d'un certaine étape du déroulement de l'algorithme stipulerait de favoriser les états considérés comme étant les plus près d'une solution (i.e. possédant un nombre de graines proche du nombre de graines total). Ensuite, l'algorithme que nous proposons s'intègre dans le domaine de la modélisation de documents audiovisuels, mais reste général. Ceci provient d'une volonté de considérer l'ensemble du système comme un unique graphe, et de s'attacher à décrire les opérations sur ce système comme étant liées à des manipulations de contextes exprimés par des graphes potentiels. Deux conséquences en découlent : en premier lieu, la généralité de l'algorithme permet d'envisager de l'appliquer à d'autres bases de données s'apparentant à des graphes. Ainsi on peut envisager d'en étudier l'application à des bases de données semi-structurées à partir non plus d'une unique graine (racine d'un arbre de données), mais à partir de plusieurs graines différentes. En deuxième lieu, les particularités des Strates-IA devraient permettre d'envisager de nouvelles heuristiques et améliorations de performance par rapport aux principes généraux présentés dans cette section. Celles-ci pourraient s'appuyer sur les types de sommets et de relations inter-sommets de l'application. Par exemple, la complexité liée aux fonctions de calcul des similarités entre sommets peut être prise en compte. Dans le cadre de notre application, il peut ainsi être utile d'étendre un état dans une direction impliquant un calcul de similarité basé sur des attributs issus de traitements d'image, s'il y a peu de candidats à la comparaison. Au contraire, si l'extension d'un état implique des calculs coûteux sur les attributs d'un grand nombre de sommets, il peut y avoir lieu de retarder ceux-ci, et d'explorer des branches nécessitant des calculs de similarité plus simples. De la même manière, si une relation liée à l'état est temporelle, l'extension de l'état peut être plus longue à calculer14. On peut donc imaginer de ne pas favoriser les extensions menant à des calculs de relations temporelles.
Il apparaît en conséquence que l'heuristique de choix de l'état à étendre est paramétrable et qu'adapter celle-ci à l'application permet d'améliorer encore les performances. Remarquons enfin que le fait que l'algorithme fournisse les solutions dès qu'elles sont arrivent, et non en fin de calcul, est un point important en recherche d'information : il est possible pour l'utilisateur de commencer à traiter les résultats sans que la recherche soit totalement terminée. L'algorithme est alors << anytime >> ce qui correspond à une caractéristique importante en aide à la décision.
Nous avons dans la section 2.1 introduit la notion de contexte dans les Strates-IA, ainsi que les graphes potentiels permettant d'instrumenter la manipulation et la recherche de contextes. L'instanciation d'un graphe potentiel se ramène à une recherche d'isomorphisme de sous-graphes partiels entre le graphe potentiel et le graphe des Strates-IA, et nous en avons proposé section 2.2 un algorithme.
Il convient maintenant de s'intéresser à la manière dont les graphes potentiels vont être utilisés et manipulés par l'utisateur comme par la machine, et quels outils sont disponibles pour les tâches de mise en place et d'exploitation d'un système Strates-IA. Ces outils devront être principalement adaptés à l'utilisateur. Notre approche d'annotation comme écriture sur le flux nécessite en effet de gérer la manière dont il va être possible de lire les annotations, c'est à dire d'envisager une tâche d'exploitation comme régissant une contextualisation.
Un graphe potentiel permet d'exprimer un contexte virtuel << brut >> en mettant en relation des objets génériques des Strates-IA. Par l'instanciation, il réalise le contexte abstraitement décrit en contextes concrets entre objets du graphe Strates-IA. Afin de pouvoir exploiter ces contextes concrets, il faut pouvoir les caractériser, c'est à dire spécifier opératoirement quels sommets du graphe potentiel (et donc des graphes-instances) seront utiles pour la tâche dans laquelle le graphe potentiel est utilisé.
Un graphe potentiel caractérisé est donc un graphe potentiel dont certains sommets d'intérêt, jugés utiles, sont nommés, et qui permettent de l'exploiter. Par exemple, un graphe potentiel exprimant un chemin contextuel devra posséder a minima une origine et une extrémité qui permettront de le désigner.
Soit GP un graphe potentiel, alors le caractériser revient à nommer certains de ses sommets (chaque nom étant unique). On notera un graphe potentiel caractérisé par
Par exemple, le graphe potentiel caractérisé GPC1 de la figure 2.13 est un graphe potentiel dont deux points sont caractérisés par des étiquettes de sommets d'intérêt origet extr correspondant aux sommets 1 et 4. L'étiquette de sommet d'intérêt PanoSurGroupe est associée au sommet 1 du graphe potentiel constituant GPC2, ConstituantGroupe au sommet 6, orig au sommet 4 et extr au sommet 6.
Avant de donner des exemples plus précis de graphes potentiels caractérisés, nous en présentons rapidement quelques opérations de manipulation. Ces opérations seront directement adaptées de celles liées aux graphes potentiels.
On munit les graphes potentiels d'opérateurs de construction :
Une dernière opération de construction de graphe potentiel est plus complexe, puisqu'il s'agit alors de potentialiser un sous-graphe du graphe général Strates-IA GSIA. A partir d'un sous-graphe connexe g quelconque de GSIA, on met alors en place un graphe isomorphe, dont les étiquettes sont des objets génériques obtenus par abstraction des objets étiquettes de g (i.e en supprimant ou en changeant des attributs, et en associant à chaque objet générique une fonction de similarité idoine). Cette opération se révèle d'intérêt pour prendre en compte des annotations qui on été mises en place afin de s'en inspirer pour construire ses propres requêtes.
Aux opérations de modification qu'on vient de présenter, on ajoute un opérateur d'instanciation qui permet de calculer les sous-graphes du graphe général GSIA instances du graphe potentiel. Ce dernier doit être valide, c'est à dire posséder un moins une étiquette de sommet qui puisse être mise sans ambiguïté en correspondance avec un sommet du graphe général. Dans le cas contraire, l'instanciation ne pourra s'effectuer.
Un graphe potentiel caractérisé étant principalement constitué d'un graphe potentiel (auquel on ajoute des étiquettes de sommets d'intérêt), il peut être construit uniquement avec les opérations présentées plus haut.
Cependant, l'accès au graphe potentiel dont est composé un graphe potentiel caractérisé peut également se faire à partir des sommets caractérisés, particulièrement les opérations d'étiquettage de sommets ou de mises en relation. Par exemple, si un graphe potentiel caractérisé possède un sommet caractérisé par ConstituantGroupe, alors cette étiquette de sommet d'intérêt permet d'accéder à l'objet générique correspondant directement, par exemple pour le préciser en < Nelson Mandela > . En d'autres termes, les sommets caractérisés et leurs noms sont des primitives de manipulation, des index de sommets de graphes potentiels qui se révèleront utiles au cours des tâches d'utilisation des graphes potentiels.
L'instanciation d'un graphe potentiel caractérisé GPCconsiste simplement à instancier le graphe potentiel GP qu'il contient.
De la même manière que précédemment, l'accès aux instances peut être contrôlé par les sommets caractérisés. Par exemple, si après l'instanciation du graphe GPC2 de la figure 2.13, on obtient trois instances, alors l'accès aux sommets intéressants de celle-ci -- en l'occurrence ici les UAV annotées par un groupe qui soit l'objet d'un panoramique gauche-droite -- se fait en utilisant le sommet caractérisé par PanoSurGroupe.
Nous présentons dans la suite quelques exemples de graphes potentiels caractérisés, et illustrons les opérations que nous avons présentées. Les exemples que nous présentons ne sont que deux types très utiles de graphes potentiels caractérisés. On ne perdra pas de vue que ceux-ci peuvent être créés à volonté dès que le besoin s'en fait sentir.
Une relation contextuelle potentielle (RCP) est un graphe potentiel caractérisé par deux sommets. Le premier est nommé origine (orig), le second est nommé extrémité (extr) de la relation contextuelle potentielle.
Si rcp est une relation contextuelle potentielle, on a rcp = (gp,{orig, extr}).
Suivant les types des objets étiquetant les sommets origine et extrémité, les relations contextuelles potentielles peuvent être interprétées différemment. Par exemple, en se basant sur ce que nous avons présenté dans la partie 2.1.2. :
Bien évidemment, l'interprétation des contextes et leurs mises en place dépendent de la tâche en cours. Par exemple, supposons que nous désirions annoter contextuellement une UAV u, c'est à dire définir un contexte désignant une autre UAV u', et plus particulièrement certains des éléments d'annotation annotant u', qu'on pourra alors considérer annoter contextuellement u.
Définissons alors une RCP à origine UAV et à extrémité UAV telle que rcp1 figure 2.14, qui exprime que l'UAV faisant partie du contexte de l'UAV origine devra être en relation quelconque (non temporelle cependant) avec elle. Si nous appliquons cette RCP à une UAV connue, par exemple en créant une UAV rcp1'(figure 2.15) équivalente à rcp1 à la différence que l'objet générique correspondant à orig est objet UAV ayant un attribut identifiant l'UAV 8 du flux Fic232 de la figure16 2.15, alors l'instanciation de rcp1' donnera deux instances. Les extrémités de ces instances, c'est à dire les sommets du graphe Strates-IA GSIA en correspondance avec le sommet extr de rcp1' sont alors les UAV u1 (UAV 1 du flux contenu dans le fichier fic342, voir figure 2.15) et u2 (UAV 13 du flux principal représenté).
Supposons maintenant que nous désirions considérer comme annotations contextuelles les EA annotant ces deux UAV (et ne participant pas à la relation entre elles). Nous pouvons opérer une fusion de rcp1 et rcp2 telle que l'extrémité de rcp1 et l'origine de rcp2 soient identifiées, en créant une nouvelle RCP rcp3 à origine l'origine de rcp1 et extrémité l'extrémité de rcp2. Alors, appliquer rcp3 à l'UAV 7nous donnera une RCP rcp'3. L'instanciation de rcp'3 permet alors de récupérer les EA < Constituant > , < François Mitterrand > , < Danielle Mitterrand > et < Epouse > pour u1 et < François Mitterrand > , < Poignée de main > et < Nelson Mandela > pour u2 (voir figure 2.15).
Supposons enfin que nous ne souhaitions ne récupérer comme annotations contextuelles que les EA inscriptions dans le flux d'un EAA spécialisation de l'EAA < EAA:Nom commun >. Alors il est possible de préciser l'extrémité de rcp3 en la mettant en relation avec le sommet d'intérêt designation du graphe potentiel caractérisé fd1 pour obtenir rcp4. L'application de rcp4à l'UAV 7 permet alors de récupérer comme extrémités les EA < Epouse > et < Poignée de main > 17 (voir figure 2.15).
Un filtre de désignation est un graphe potentiel caractérisé à sommets étiquetés par des objets de type EAA, caractérisé par un sommet d'intérêt appelé point de désignation (désignation). Par exemple figure 2.14, fd1 est un filtre de désignation.
Si fd est un filtre de désignation, alors fd = (gp,{des}).
Instancier un filtre de désignation permet de récupérer un ensemble d'EAA, qui sont dans ses instances les sommets en correspondance avec le sommet nommé désignation. La figure 2.16 présente deux autres filtres de désignation : fd2 permet de désigner uniquement l'EAA < EAA:Zoom avant > dans la base de connaissances de la figure 2.3, page , tandis que fd3 désigne les EAA < EAA:Nelson Mandela > et < EAA:Winnie Mandela >.
Nous avons dans le chapitre 1 présenté une dimension d'analyse comme un regroupement des analyses qui permettent de repérer des objets d'intérêt de même type.
Dans le cadre des Strates-IA les objets d'intérêt sont réifiés en annotations représentées par des éléments d'annotation, eux mêmes abstraits en éléments d'annotation abstraits ; une dimension d'analyse permettra toujours de rassembler un certain nombre d'EAA. Nous définissons donc une dimension d'analyse comme l'association d'un nom et d'une méthode de désignation d'EAA.
Une méthode de désignation (MD) permet de désigner un ensemble d'EAA de la base de connaissances. Elle est donc d'abord un ensemble de filtres de désignation tels que nous les avons définis en 2.3.1.
Par exemple, la méthode de désignation md1 = {fd3, fd4}permet de désigner les EAA < EAA:Nelson Mandela >, < EAA:Winnie Mandela > et < EAA:Jacques Chirac >.
On associe aux méthodes de désignation des opérations permettant d'ajouter, d'enlever des filtres de désignation, mais il est également possible de les manipuler à leur propre niveau. Ainsi on pourra définir une méthode de désignation comme l'association d'autres méthodes de désignation.
Une méthode de désignation md est alors un ensemble de méthodes de désignation et/ou d'ensembles de filtres de désignation :
On aura par exemple md2 = {fd2, md1}.
Etendre une méthode de désignation consiste à remplacer récursivement les méthodes de désignation qui la composent par les méthodes de désignation ou filtres de désignation, et ainsi de suite jusqu'à ce que la MD ne soit plus composée que de filtres de désignation.
On aura alors Ext(md )= {fdi}, par exemple md2' = Ext(md2) = {fd2, fd3, fd4}.
Résoudre une méthode de désignation consiste à calculer l'ensemble des éléments d'annotation abstraits que celle-ci désigne.
On aura alors Res(md )= {eaai}, par exemple Res(md2') = Res(md2) = { < EAA:Nelson Mandela >, < EAA:Winnie Mandela >,< EAA:Jacques Chirac >,< EAA:Zoom Avant >}.
Nous définissons plus précisément une dimension d'analyse d est l'association d'un nom, d'un texte, et d'un méthode de description18.
Une dimension d'analyse sera résolue en l'ensemble des EAA qu'elle permet de désigner. Ainsi, si d = < Nom, Description, md >, alors Res(d )= Res(md ).
Avec la dimension d'analyse da1 = < Politiquesdivers, << sommets France/Afrique du Sud 1995-1999 >>, md1 >, on aura Res(da1) = {< EAA:Nelson Mandela >, < EAA:Winnie Mandela >, < EAA:Jacques Chirac >}.
Une dimension d'analyse permet de décrire des EAA à utiliser pour l'annotation, c'est à dire que la seule prescription porte sur le nom de l'EA qui sera mis en place, toute l'information sur les autres attributs de celui-ci étant portée par l'EAA.
Il est possible de spécifier un peu plus les dimensions d'analyse de telle sorte qu'elles imposent des valeurs sur certains attributs des EA qu'elles permettront de générer. On peut ainsi leur associer des contraintes sur les attributs et les valeurs d'attributs des EA qu'elles permettront de mettre en place. Une condition nécessaire à la définition de ces contraintes est que les attributs soient présents en tant que définitions dans tous les EAA désignés par celle-ci.
Par exemple, daa = DA : Emissions : {< EAA:Journal Télévisé >,< EAA:Jeu > } : Date = 05081999 est une dimension associée à des contraintes spécifiant que l'annotation pourra conduire à mettre en place des EA < Journal Télévisé > et/ou < EAA:Jeu > avec une valeur d'attribut Date fixée à 05081999.
La notion de dimension d'analyse est fondamentale dans les Strates-IA. En effet, permettant de désigner un ensemble d'EAA, une dimension d'analyse représente une vue de la base de connaissances correspondant à une visée de description du flux audiovisuel. Elle est donc en quelque sorte un contexte dans lequel l'utilisateur se place afin d'appréhender le flux et d'y projeter ses attentes19. La dimension d'analyse peut alors être pensée comme technique, à la fois comme guide de repérage des objets d'intérêt et de caractérisation de ceux-ci. Une dimension d'analyse est donc liée à la tâche et à la volonté de description en cours, et en représente le pendant formel.
A ce titre une dimension d'analyse doit être fortement évolutive, c'est à dire qu'il doit être possible de la compléter, de la restreindre, de la fusionner avec une autre pour l'adapter à la visée de description. Les quelques opérations de manipulation que nous avons présentées correspondent à cette nécessaire évolutivité.
Certaines dimensions d'analyse sont construites manuellement par l'utilisateur qui sélectionne les EAA convenables, elles sont donc composées de filtres de désignation à portée réduite, ne désignant qu'un EAA pour chaque filtre (comme par exemple fd2 ou fd3 figure 2.16). D'autres dimensions d'analyse prennent avantage de l'organisation de la base de connaissances, c'est à dire des relations entre EAA par l'intermédiaire de filtres de désignation à portées plus larges (par exemple fd1 ou fd3). Ainsi une dimension d'analyse ayant pour méthode de désignation le filtre de désignation fd1 permet de désigner tous les << Noms communs >> de la base de connaissances en utilisant l'organisation hiérarchique de cette dernière. Il va alors de soi que les choix d'organisation de la base de connaissances ont une influence sur les dimensions d'analyse qui seront utilisées pour l'exploitation de cette dernière. Par exemple, organiser hiérarchiquement la base de connaissances revient, au moins au niveau des feuilles, à définir implicitement des filtres de désignation efficaces et les dimensions d'analyse qu'ils permettent de construire. Regrouper les << hommes politiques >> utiles à l'annotation sous un même père hiérarchique revient à mettre en place implicitement une dimension d'analyse liée aux hommes politiques. Cependant, au delà de ces dimensions d'analyse << naturelles >> à la base de connaissances (puisqu'implicites), toute construction ou manipulation de DA est possible et nécessaire pour exploiter la base de connaissances d'une manière adaptée à la tâche.
Nous avons jusqu'ici défini les graphes potentiels caractérisés comme des graphes potentiels manipulables, et les dimensions d'analyse comme des marques de la visée d'analyse d'un utilisateur annotant un flux. Les dimensions d'analyse permettent de guider un utilisateur selon une certaine description en ne lui proposant que des ensembles limités et nommés d'EAA20 à inscrire dans le flux.
Si nous sommes donc pour l'instant capables de fournir un cadre précis pour l'annotation suivant certaines dimensions d'analyse, nous ne pouvons ni spécifier ni prescrire une description structurée d'un document ou d'une partie de document. Cela peut pourtant s'avérer nécessaire, par exemple lorsque l'annotation n'est pas personnelle, mais est réalisée dans une institution suivant les canons correspondant à la volonté de description de celle-ci. Il importe alors qu'au minimum certaines méthodes d'écriture comme de lecture sur le flux, donc de contextualisation soient définies.
Ces méthodes seront exprimées suivant des schémas de description.
Considérée du point de vue pratique de la description, une dimension d'analyse est un ensemble de termes utilisables pour l'annotation de façon quelconque. Pour exprimer une structuration de la pratique de description, il y a lieu de la considérer comme ensemble de termes jouant le même rôle par rapport à d'autres ensembles de termes, c'est à dire qu'il faut exprimer des relations entre les dimensions d'analyse dont les EA extraits seront mis en relation.
Par exemple, pour exprimer le fait que la description devra mettre en relation des EA issus de la dimension d'analyse da1 =< DA:Homme politique > avec des termes issus de da2 =< DA:Prise de parole publique:{< Discours > ,< Conférence de presse > ,< Interview > } > , on mettra da1 et da2 en relation dans un schéma de description.
Soient s1 et s2 deux sommets de S tels que (s1, s2) Aalors les étiquettes de relations possibles ((s1, s2)) et leurs interprétations sont les suivantes :
La figure 2.17 présente un schéma de description sd1 (indépendant des exemples que nous avons jusqu'ici présentés). Les sommets si du graphe entourés d'un rectangle signifient que (si) = Vrai donc que pour les EA extraits de leurs dimensions d'analyse étiquettes doivent être EA primitifs.
Les dimensions d'analyse utilisées dans le schéma de description sd1 sont les suivantes :
Nous présentons dans la suite trois étapes d'une utilisation de sd1 pour la description d'un flux correspondant à un document (par exemple un dessin animé) illustrant une fable bien connue. A chaque étape, les parties utilisées du schéma de description sont soulignées en gras.
La figure 2.18 correspond au début de l'annotation, c'est à dire à la mise en place de la structure (relations entre < Document > et < Plan > ) dans le flux, conduisant à la création de trois unités audiovisuelles, comme spécifié dans le schéma de description. De la même manière, à chaque UAV définie primitivement par < Plan > est associé un EA issue de la dimension d'analyse < DA:Action > .
La figure 2.19 correspond simplement à l'utilisation de la mise en relation facultative permettant de lier < Document > à des sujets principaux, qui sont issus de < DA:Action > .
La figure 2.20 correspond à l'utilisation de la relation temporelle RDuring dans le schéma de description entre les EA issus de < DA:Personnages > et ceux issus de < DA:Action > . On remarquera qu'une certaine latitude a été laissée pour l'annotation, ainsi par exemple la mise en place de l'EA < Le corbeau > extrait de < DA:Personnage > a pu conduire à la mise en place d'une nouvelle UAV, mais ce n'était pas obligatoire. Après la mise en place des relations médiatisées par < Agent > , l'annotateur a choisi d'ajouter l'EA < Fromage > à l'annotation de l'UAV1, et de le mettre en relation avec < Sujet principal > , ce qui est en dehors du schéma de description sd1, ou plutôt est inclu dans le schéma de description le plus général imaginable, spécifiant que l'annotateur est libre d'utiliser les éléments d'annotation à sa guise.
L'annotation présentée correspondrait alors à l'utilisation du schéma spécifique sd1 associé à un schéma libre.
Un schéma de description général (ou plan de description est un ensemble de schémas de description. Il spécifie quels sont les schémas de description à utiliser pour une annotation.
Par exemple, si sdg = {sd1, sd4} avec sd4 réduit à une dimension d'analyse
Alors utiliser sdg pour annoter un flux revient à utiliser sd1pour mettre en place une structure d'annotation, mais aussi à utiliser également les EAA extrait de da pour compléter l'annotation.
Parmi les opérateurs de construction de schémas d'annotation basiques, citons :
Nous venons de le voir, schémas de description et (sous-)graphes d'annotation sont donc très proches, les uns pouvant être considérés comme abstractions des autres, qui en sont des spécialisations.
Les schémas de description permettent de spécifier une structuration de l'annotation, de façon prescriptive. Cela répond donc à notre volonté d'avoir un moyen de contrôler l'annotation, i.e. l'écriture sur le flux dans le modèle des Strates-IA.
L'expressivité des schémas de description n'est pourtant pas totale : il est par exemple ardu d'exprimer dans un schéma de description que l'ensemble des UAV annotées par < Plan > dont est composé un document doit temporellement couvrir la totalité de l'UAV annotée par < Document > . Ce genre de problèmes pourrait être résolu en complexifiant la définition des schémas de description, par exemple en y définissant des relations supplémentaires, ou en attachant des vérifications procédurales aux dimensions d'analyse. Le schéma de description n'en restera pas moins un graphe de dimensions d'analyses correspondant à des sous-graphes d'annotation réels.
C'est cette dernière possibilité qui se révèle en effet la plus importante : connaissant un schéma de description ayant servi à annoter des flux, c'est à dire des schémas de mise en contexte, il est possible de construire des graphes potentiels caractérisés exprimant des schémas de contextualisation. Il nous reste donc à présenter quels sont les liens entre les graphes potentiels et les schémas de description.
Un graphe requête (ou graphe potentiel généralisé) est un ensemble de graphes potentiels caractérisés défini en intension.
Informellement, la définition d'un graphe requête est similaire à celle des graphes potentiels caractérisés, à la différence près que les sommets étiquetés auparavant par des EAA peuvent l'être par des dimensions d'analyse.
La figure 2.22 présente un graphe requête gr1défini à partir du schéma de description sd1. Seule une partie de sd1 a été utilisée, et la dimension d'analyse < DA:Action > a été spécialisée en < DA:Discourir > .
Passer d'un graphe requête à un ensemble de graphes potentiels caractérisés revient à générer n graphes potentiels pour chaque sommet étiqueté par une dimension d'analyse décrite par n filtres de désignation. Les sommets précédemment étiquetés par des dimensions d'analyse sont alors identifiés avec les points de désignation des filtres de désignation dont elles sont composées.
Par exemple, le graphe requête gr1 possède deux sommets étiquetés par des dimensions d'analyse < DA:Discourir > et < DA:Personnages > . La première DA est décrite par un unique filtre de désignation, tandis que la seconde est décrite par cinq filtres de désignation présentés figure 2.22. Le graphe requête permet de mettre en place 5 x 1 graphes potentiels caractérisés gpci, i = 1..5.
Il apparaît donc que pour une dimension d'analyse << naturelle >> à la base de connaissances (i.e. fondée sur des propriétés d'organisation explicite de celle-ci, comme le serait une dimension d'analyse décrite par fd5), le passage d'un graphe requête à un graphe potentiel caractérisé est immédiat et économique. Dans le cas contraire -- quand la dimension d'analyse est fortement personnelle ou liée à une tâche non prévue -- ce passage peut générer de nombreux graphes potentiels caractérisés, et donc entraîner un nombre important d'instanciations. Nous montrons dans la suite que l'algorithme de multi-propagation s'adapte aisément à la prise en compte de dimensions d'analyse << non-naturelles >>, pour peu que la base de connaissances soit virtuellement complétée par une super-organisation liée à la dimension d'analyse, c'est à dire à la tâche en cours.
L'instanciation d'un graphe requête peut en effet se faire de deux manières, pour des résultats équivalents.
La première méthode consiste en la mise en place des graphes potentiels caractérisés que le graphe requête décrit et de leurs instanciations, en identifiant les sommets étiquetés par les dimensions d'analyse avec les différents points de désignation des filtres de désignation qu'elles contiennent. Par exemple, on instanciera les gpci de la figure 2.22 et on récupérera les différentes sous-graphes instances comme résultats après cinq processus d'instanciation.
La deuxième méthode consiste à imposer pour chaque dimension d'analyse un certain nombre d'états de départ ayant la même graine, et signifiant les correspondances entre les EAA désignés par la dimension d'analyse avec les EAA de la base de connaissances. Par exemple l'étape P1 dans le cas de l'utilisation de gr1 aura sept états initiaux :
Les graphes-requêtes peuvent être construits manuellement, ou bien générés à partir de graphes potentiels caractérisés (ce qui est immédiat), des descriptions elles-mêmes (par abstraction de description et réutilisation), ou bien encore à partir des schémas de description. Ce dernier processus revient alors à choisir une partie d'un schéma de description, et à l'utiliser pour annoter un flux imaginaire dont on mettra en place les UAV totalement génériques, certains EA étant précisés directement dans le flux, d'autres par leurs liens avec la base de connaissance, soit sous la forme d'EAA extraits des dimensions d'analyse du schéma de description, soit encore sous la forme de dimensions d'analyse21.
Un graphe requête n'étant qu'une façon de décrire un ensemble de graphes potentiels caractérisés, dans la suite on utilisera les termes << graphes potentiels caractérisés >> ou << graphe requête >> indifféremment, en précisant uniquement s'il y a lieu ce que nous entendons par là.
Une valence (notion que nous avons déjà évoquée dans la partie 1.2.2) est un attribut d'élément d'annotation abstrait exprimant une possibilité de mise en relation contextuelle pour les EA qui en sont extraits.
La mise en relation peut se faire soit en utilisant un EA pour en exprimer la sémantique, soit directement par une relation élémentaire.
Une valence est donc composée :
Une valence s'utilise éventuellement lorsque l'EAA dont elle est attribut est inscrit dans le flux. La relation contextuelle potentielle est alors appliquée au nouvel EA ea, et instanciée. S'il y a des instances, leurs extrémités eai' sont proposées à la mise en relation avec l'EA ea, soit directement si la valence n'a pas plus de précisions, soit par l'intermédiaire de l'EAA proposé.
La figure 2.24 propose un exemple de valence très simple, composée d'une relation contextuelle potentielle (ici présentée sous la forme d'un graphe-requête) et de l'EAA < EAA:Agent >. La relation contextuelle potentielle exprime qu'il y a lieu de chercher dans le contexte temporel d'inclusion un EA découlant de la dimension d'analyse < DA:Personnage > . < EAA:Agent > exprime le fait que si l'utilisateur décide d'utiliser la valence, alors cet EA sera mis en relation avec < Manger > par l'intermédiaire d'un EA < Agent > .
Une autre utilisation des valences peut consister, si la relation potentielle ne s'instancie pas, à proposer à l'utilisateur de mettre en place un EA tel qu'il y ait une instance, puis de mettre en relation ce nouvel EA avec l'EA extrait de l'EAA dont est issue la valence.
Remarquons qu'on peut considérer les valences illustrant les possibilités de liaisons d'un EA en contexte comme des schémas de description locaux de voisinage des EAA (donc des EA), c'est à dire des indications sur les contextes potentiels de voisinage de tel ou tel EA. Ce schéma local n'a a priori pas obligatoirement d'existence en contexte, et peut de toute façon être supplanté par ce que l'annotateur décide finalement de faire. Inversement, il est possible d'utiliser les prescriptions fournies par un schéma de description avec les mêmes mécanismes que ceux des valences, en considérant les relations comme des valences locales des EAA utilisés dans les dimensions d'analyse du schéma de description.
Les valences permettent donc ;
Après avoir décrit quelques outils de manipulation et d'exploitation des Strates-IA basés sur les graphes potentiels exprimant des contextes, nous allons maintenant montrer de quelles manières il est possible de les utiliser pour les différentes tâches d'un système d'information audiovisuel.
Plus particulièrement, nous allons successivement étudier les tâches d'indexation, de recherche, de navigation, d'analyse, de génération sous l'angle de la description et de la contextualisation.
Nous supposons qu'une base de connaissances a été mise en place et que des schémas de description existent, ainsi qu'au minimum les dimensions d'analyse qui sont utilisées par ces derniers.
A l'introduction d'un flux dans le système est créée une UAV le représentant, annotée par exemple par l'EA < Flux > . A partir de cette annotation primale, qui n'est pas réalisée par l'utilisateur, toute annotation devient sur-annotation d'une partie de flux désignée par une UAV. Quelle que soit la suite de l'annotation, on reste donc dans le cadre de manipulation du système, qui est le graphe des Strates-IA.
Toute annotation se fera dans le cadre d'un schéma de description, lequel sera plus ou moins prescriptif.
Par exemple, une annotation totalement libre suivra un schéma de description lâche ne contenant qu'une dimension d'analyse, laquelle spécifiera tous les éléments d'annotation abstraits, c'est à dire une vue totale de la base de connaissances. A l'opposé, un schéma totalement prescriptif donnera exactement le format de structuration du document à atteindre. Le rôle de l'annotateur se limitera à l'instanciation du schéma en un graphe d'annotation, donc au choix des limites temporelles des unités audiovisuelles, et à celui des EAA inscrits dans le flux parmi ceux proposés par les dimensions d'analyse.
Entre ces deux extrêmes, tout est imaginable : par exemple un schéma de description général sera composé d'un schéma de description minimal qui guidera le début de l'annotation, et d'un schéma très lâche autorisant l'utilisateur à compléter à volonté l'annotation. Lorsque l'annotation est libre, l'utilisateur peut définir ses propres dimensions d'analyse et ses propres schémas de description, y compris en cours d'annotation. Cela revient à spécifier ses propres visées de description pour annoter ensuite en les suivant.
L'utilisation de plusieurs schémas de description différents, par exemple pour réindexer un flux déjà indexé est possible : plusieurs descriptions différentes, éventuellement générées par des annotateurs différents sont donc naturellement gérées par le modèle. La relation élémentaire permet de plus, de façon libre de mettre en relation n'importe lesquels des éléments d'annotation en place dans le graphes Strates-IA, y compris ceux ayant été mis en place suivant deux schémas de description différents.
A l'inscription dans le flux d'un élément d'annotation, l'utilisateur doit donner une valeur à ses attributs obligatoires, ainsi qu'éventuellement aux autres. Il peut également le contextualiser en le mettant en relation élémentaire avec d'autres EA. Cette mise en relation peut consister :
Des assistants d'annotation, particulièrement ceux spécialisés dans l'analyse vidéo peuvent venir en aide à l'annotateur quand celui-ci analyse le flux suivant une dimension d'analyse liée à des caractéristiques calculables. Par exemple, analyser le flux suivant une dimension d'analyse liée aux plans peut prendre appui sur un assistant réalisant le découpage automatique du flux. De la même manière, un assistant utilisant les flux image et son peut aider l'utilisateur à repérer dans le flux les occurrences d'un personnage par exemple.
Rechercher un élément des Strates-IA (plus particulièrement une séquences audiovisuelle, c'est à dire une UAV) consiste à le décrire tel qu'on aimerait le trouver, c'est à dire à le décrire contextuellement à partir d'éléments connus.
Les modes de recherche sont multiples, et se ramènent toujours, en dernière analyse, en un ensemble de graphes potentiels caractérisés qu'il s'agit d'instancier22.
Tout d'abord, la recherche peut consister à instancier des << schémas de recherche >> déjà mis en place, et qu'il convient de compléter, à charge pour un assistant automatique de mener la recherche en précisant les graphes potentiels caractérisés sous-entendus par les schémas. Par exemple, un schéma basique consiste à proposer à l'utilisateur de retrouver des documents annotés par un ensemble de termes (EA exprimant des caractéristiques de haut-niveau). Il s'agit alors de retrouver une UAV annotée directement par < Document > , et annotée, dans un contexte d'inclusion temporelle (Rit), par les termes cherchés. Alors le système -- ou plutôt un assistant de recherche spécialisé -- mettra en place un graphe potentiel tel que celui de la figure 2.25, l'instanciera, et retournera les UAV résultats.
Ensuite, la recherche avec des graphes requêtes peut se baser sur la construction par l'utilisateur de sa requête comme annotation d'un flux virtuel.
Cette annotation se fait en utilisant un schéma de description, libre ou contraint suivant que l'utilisateur n'a pas d'idée préconçue sur l'annotation qu'il cherche, ou au contraire sait quel schéma de description a été utilisé pendant la phase d'indexation. Dans tous les cas, il met en place les annotations qu'il recherche, ainsi que la manière dont il souhaite que celles-ci soient contextualisées, de façon plus ou moins lâche, en utilisant par exemple des dimensions d'analyse pour certains nuds du graphe requête.
Une recherche par l'exemple consiste à annoter un flux réel (l'exemple) en suivant un schéma de description, et à rendre génériques certains sommets avant d'instancier le graphe potentiel ainsi obtenu.
Une recherche à l'aide d'un exemple connu du graphe Strates-IA consiste à extraire un sous-graphe d'annotation de celui-ci afin de s'en inspirer pour mettre en place la requête23
Dans tous les cas, rechercher des objets des Strates-IA consiste à décrire ceux-ci comme objets génériques dans leurs relations avec d'autres objets génériques, ceux-ci pouvant correspondre à des objets non connus, ou au contraire à des objets connus (auquel cas ils serviront de point de départ à la recherche d'instances). Bref, il s'agit de décrire les objets visés en les contextualisant :
Dans un espace d'information tel que le graphe Strates-IA, on peut donc considérer que l'on cherche toujours quelque-chose dont on connaît le contexte, c'est à dire que l'on vise un point de l'espace depuis plusieurs points connus à la fois, de telle sorte que les différentes visées y convergent.
La navigation résulte d'un principe similaire, à ceci près qu'un des points de visée est celui où l'on se trouve réellement, et que l'on souhaite naviguer vers le point cherché.
Naviguer dans le graphe consiste donc toujours à mettre en place une relation contextuelle potentielle dont le sommet origine correspondra à l'élément du graphe où l'on se trouve. Après l'instanciation, les sommets extrémité des sous-graphes instances seront proposés à la navigation.
Plusieurs conséquences en découlent.
Considérons pour commencer les formes de navigation les plus importantes, à savoir celles mettant en jeu des unités audiovisuelles, c'est à dire des morceaux de flux :
Si l'on considère maintenant, en étendant quelque peu la concept de navigation hors des documents visés par l'annotation mais dans le système de documentation lui-même :
Si nous reprenons le principe des << fenêtres >> de [56], nous pouvons considérer un système dans une fenêtre ou vue dans laquelle se situe l'utilisateur, et à partir de laquelle il s'ouvre, aussi bien par requêtes que par navigation, d'autres vues qui vont lui permettre de continuer son exploration-recherche. L'extension ici réalisée consiste à intégrer dans le schéma de la base de document les index et les descripteurs abstraits permettant d'y accéder, c'est à dire à considérer un système d'exploitation documentaire dans son ensemble (figure 2.26).
Les liens de navigation sont des éléments d'annotation d'unités audiovisuelles24, et autant de types de navigation qu'il y a de manière de contextualiser sont alors imaginables. Médier le résultat d'une requête par l'endroit du graphe ou l'on se trouve (cf. [70]) est également trivial.
La navigation dans les Strates-IA s'appuie donc sur un calcul des liens à proposer à l'utilisateur en fonction des visées de contextualisation de celui-ci (i.e. en fonction du contexte vers lequel il entend naviguer).
Annoter contextuellement une UAV consiste à chercher dans son contexte quels éléments pourraient l'annoter. Il ne s'agit pas comme ci-dessus de naviguer jusqu'à ceux-ci, mais bien de les considérer comme annotant l'UAV considérée.
Cela peut par exemple se faire en appliquant à l'UAV des relations contextuelles potentielles, spécifiées explicitement ou implicitement. Dans le dernier cas, on peut par exemple déterminer un contexte en utilisant une relation contextuelle potentielle UAV-UAV, et spécifier les types d'éléments intéressants par une dimension d'analyse, c'est à dire un ensemble de filtres de description. Alors l'assistant de construction de vue contextuelle étend les relations contextuelles en les joignant aux filtres de désignation25.
Analyser une UAV suivant une dimension d'analyse consiste à lui appliquer une grille de lecture, et revient fondamentalement au même que l'annotation contextuelle que nous venons de présenter. C'est au niveau des modes de présentation de l'analyse que la différence principale se fera sentir, ainsi que sur les UAV auxquelles elle s'appliquera : on étudiera plutôt une UAV précise et de durée faible (en regard de celle du flux) afin d'y apporter des précisions ; on étudiera une UAV représentant un flux entier selon une dimension d'analyse.
Typiquement, l'analyse d'un flux suivant une ou plusieurs dimensions d'analyse consiste à en extraire les EA appartenant aux dimensions et à les présenter sur une ligne de temps de telle sorte que l'utilisateur puisse se faire une idée des co-occurrences -- temporelles ou non -- des annotations. On peut envisager ce genre d'analyse comme une << linéarisation >> de l'annotation suivant un certain nombre d'axes, une projection des visées d'analyse sur le flux.
Dans le cadre de l'annotation textuelle, [218] remarque que << l'application d'un même mot-clé à deux passages différents, où le mot n'est pas nécessairement présent dans les textes commentés eux-mêmes, est la création d'un lien conceptuel, d'une corrélation, l'élaboration d'une << grille de lecture >> >>. L'écriture sur le document est en effet déjà analyse, ainsi que le choix d'un terme plutôt qu'un autre. La co-occurence d'un terme dans plusieurs document est une relation contextuelle entre deux UAV passant par la base de connaissances. L'analyse inter-documentaire peut se baser sur ce genre de contextes pour étudier par exemple comment deux documents audiovisuels << résonnent >> entre eux.
L'édition d'un document audiovisuel se base sur la recherche de parties de documents en vue de leur montage dans un nouveau document. Cela ne peut donc se concevoir que si des connaissances suffisantes existent dans la base.
Ces connaissances de montage se basant a minima sur des relations temporelles entre les UAV, le modèle des Strates-IA est à même de les prendre en compte dans des graphes de description. Il s'agirait alors de créer un graphe GV annotant le document virtuel tel qu'on le souhaite, des relations temporelles étant mises en place entre les UAV virtuelles. Alors un ou plusieurs assistants adéquats se chargeraient de chercher dans le graphe général Strates-IA des instances de sous-parties du graphe GV qui correspondraient à la description. Le reste du graphe GV, c'est à dire les sous-parties non utilisées, pourrait alors correspondre à une annotation a priori du nouveau document.
Dans le même ordre d'idée, mais pour des applications plus simple, l'édition ou la génération automatique de présentations se basent sur la construction de documents réponses aux requêtes de l'utilisateur. Les graphes de description des nouveaux documents de présentation peuvent alors être créés automatiquement en fonction de la présentation désirée, avec des sous-parties correspondant aux diverses requêtes de l'utilisateur.
Les Strates-IA permettent donc d'une certaine manière de décrire en contexte des parties du nouveau document à mettre en place, le système cherchant dans le graphe des UAV correspondant le plus possible à celles cherchées.
Les Strates-IA peuvent être utilisées comme indexation de base, descriptions de documents en vue d'une utilisation dans d'autres systèmes et suivant d'autres formats. On peut alors envisager d'extraire pour un graphe Strates-IA une hiérarchie documentaire qui correspondra à une vue du document liée à un besoin particulier, et lui sera attachée comme documentation dans un autre format (par exemple du HTML).
Dans ce cas de figure, une description en Strates-IA ne sert que de base à une description, dans un format qui peut être autre, dans laquelle une contextualisation est réalisée et présentée à l'utilisateur. Cela se rapproche d'ailleurs d'une vue d'un graphe Strates-IA présentée à l'utilisateur dans le cadre de son interaction avec le système d'information audiovisuelle. Les différentes informations utiles présentées à l'utilisateur subissent une médiation graphique, et expriment d'une manière ou d'une autre la présentation d'un élément des Strates-IA mis en contexte avec (contextualisé par) d'autres éléments. C'est cette approche systématique de présentation d'éléments des Strates-IA comme vues contextuelles que nous adoptons dans notre prototype.
Nous avons présenté dans ce chapitre comment il était possible d'exploiter contextuellement les modèles de représentation de documents audiovisuel en Strates Interconnectées par les Annotations. L'exploitation se base sur un outil fondamental, le graphe potentiel, qui permet d'exprimer des contextes ; ainsi que sur d'autres outils tels que les dimensions d'analyse et les schémas de description. La dernière section du chapitre est destinée à la présentation des différentes utilisations qu'il est possible de faire d'un système fondé sur les Strates-IA.
La suite de ce document sera consacrée à la présentation des prototypes réalisés et des fonctionnalités qu'ils implantent (chapitre 3) ; à l'étude d'un cadre original de modélisation d'un système d'information dans l'objectif d'en stocker l'expérience d'utilisation de telle sorte que celle-ci soit expliquée (chapitre 4) ; ainsi qu'à une discussion plus générale sur les documents et les connaissances nous permettant d'y situer l'approche des Strates-IA (chapitre 5).