Brevet FR2888357A1 — publié le 20070112

La présente invention concerne un procédé de traitement d'un document structurant des données arborescentes organisée en éléments reliés entre eux. L'invention s'applique, de manière générale, au domaine des télécommunications, notamment les télécommunications à travers l'Internet. Cependant, une application plus particulièrement avantageuse de l'invention se rapporte à l'émission progressive ( streaming ) de métadonnées, notamment pour l'adaptation de contenus multimédias scalables. La contribution MPEG SC29/WG11 M11611 (71st MPEG Meeting, to Hong Kong, China, 17/21-01-2005) définit une méthode pour émettre de manière progressive un item numérique (Digital Item), conformément au concept défini par le standard MPEG-21 (ISO/IEC TR 21000-1:2004, Part 1: Vision, Technologies and Strategy) et représente l'unité fondamentale de transaction et de distribution dans le cadre du standard MPEG-21. Un item numérique est une abstraction d'un ou de plusieurs contenus multimédias liés sémantiquement (par exemple, vidéos, images, audios) et des éventuelles méta-données liées à ces contenus, le tout constituant une unité de transaction et d'utilisation finale. Les méta-données liées à cet item numérique sont fréquemment écrites à l'aide du langage de structuration de données en arborescence très répandu et connu sous le nom d'XML (eXtensible Mark-Up Language). L'item numérique étant destiné à être échangé, éventuellement par des réseaux de type Internet, il se pose le problème de la transmission des méta-données qui y sont contenues, et plus généralement de la transmission des documents XML. En particulier, il est intéressant de transmettre un document XML de façon progressive, afin que l'entité destinataire puisse utiliser le fragment reçu sans avoir à attendre de recevoir le document en entier. De plus, l'utilisation d'un document XML est dans certains cas liée à l'utilisation d'autres données envoyées de façon continue, telles qu'un flux vidéo. II est alors nécessaire de synchroniser les différents flux de données entre eux et pour cela d'attribuer une information de temps aux fragments du document XML. La contribution M11611 citée plus haut propose une solution pour fragmenter un item numérique et attribuer une information de temps aux to fragments obtenus. En particulier, elle s'applique au cas des documents XML mais ne s'y limite pas. Cette solution consiste à indiquer par des expressions Xpath les fragments à transmettre, Xpath (XML Path Language, version 1.0, W3C Recommendation, 16 November 1999) étant un langage d'expression permettant d'identifier un noeud ou un ensemble de noeuds dans is un document XML. De plus, un paramètre permet de définir une date de transmission pour ces fragments. Il est connu aussi par la contribution MPEG ISO/IEC SC29/WG11 M12041 un procédé de traitement d'une structure de données arborescente organisée en éléments reliés entre eux, qui permet de sélectionner un ensemble de fragments, notamment dans un document de type XML, et de leur attribuer une information de temps de façon flexible. Ce procédé présente l'avantage de requérir des ressources mémoire limitées ce qui le rend applicable à des documents de très grande taille ou générés à la volée. Ces deux arts antérieurs souffrent toutefois de certains inconvénients. En particulier, dans la solution de la contribution M11611, du fait de l'utilisation d'expressions XPath pour les fragments à transmettre, il n'est pas assuré que l'agrégation des résultats obtenus pour chaque expression XPath soit un document XML bien formé, c'est-à-dire qui respecte les règles inhérentes aux documents XML. De même, le procédé de la contribution M12041 ne permet de spécifier que les sous-ensembles connexes des éléments du document original pouvant être rattachés à un élément-ancre et donc il ne permet pas de définir des ensembles de fragments de topologie plus complexe. La présente invention a donc pour objet de pallier les inconvénients précités en proposant un procédé permettant de spécifier tout type de fragment tout en assurant que le résultat soit bien conforme aux règles inhérentes aux documents XML. La solution au problème technique posé consiste, selon la présente invention, en ce que ledit procédé comprend les opérations consistant à : - appliquer au moins une transformation XML audit document pour générer des unités de traitement formant des fragments dudit document pouvant être utilisés en tant que tel par une entité destinataire dudit document, o -affecter à chaque unité de traitement ainsi générée une date de traitement à laquelle les données de l'unité de traitement associée sont à utiliser par ladite entité destinataire. Ainsi, il devient possible de définir de façon simple et flexible tous les fragments, indépendamment de leur topologie, d'un document XML qui 1s peuvent être utilisés en tant que tel par une application donnée et dont l'information de temps peut aussi être appliquée de façon flexible. Le recours à une transformation XML permet d'obtenir une plus grande richesse d'expression dans la définition des fragments à utiliser. Ladite au moins une transformation XML est spécifiée dans un document de traitement associé audit document structurant des données arborescentes. Ainsi, des utilisateurs différents peuvent échanger ce document de traitement pour assurer une interopérabilité entre leurs applications respectives. Le document de traitement comprend au moins un élément spécifiant ladite transformation XML ou comportant une référence vers ladite transformation XML. Cet élément peut comporter au moins un paramètre associé à ladite transformation XML et un attribut indiquant le type de transformation XML appliquée pour générer ladite unité de traitement. De préférence, ladite transformation XML est du type XSLT (XML Style Sheet Language Transformation). Le choix de cette transformation évite l'utilisation d'un processeur de traitement spécialisé et permet au contraire de recourir à un processeur standard et répandu, Ledit élément peut comporter au moins un attribut spécifiant la date de traitement de ladite unité de traitement. Ladite date de traitement peut être définie, d'une part, par un mode d'adressage temporel et, d'autre part, par au moins un mode de spécification de date. Selon le mode de réalisation envisagé, ledit mode d'adressage io temporel est un mode d'adressage absolu, la date de traitement d'une unité de traitement étant définie de façon absolue dans le temps ou ledit mode d'adressage temporel est un mode d'adressage relatif, la date de traitement d'une unité de traitement étant définie relativement à l'unité de traitement précédente. Dans ce second cas, le mode de spécification de la date de traitement est constitué par un intervalle de temps. Enfin, l'invention concerne également un serveur pour la mise en oeuvre du procédé selon l'invention et un programme d'ordinateur comprenant des instructions de code de programme pour l'exécution du procédé selon l'invention lorsque ledit programme est exécuté sur un ordinateur. La description qui va suivre en regard des dessins annexés, donnés à titre d'exemples non limitatifs, fera bien comprendre en quoi consiste l'invention et comment elle peut être réalisée. La figure 1 représente une structure arborescente d'éléments reliés entre eux. La figure 2 montre un document XML associé à la structure de la figure 1. Les figures 3a, 3b, 3c et 3d montrent des documents XML associés à des fragments ou unités de traitement du document XML de la figure 2. La figure 4 est un schéma illustrant le procédé de l'invention et notamment un document de traitement associé au document XML de la figure 2 et permettant sa fragmentation. Les figures 5 et 6 montrent un document XML conforme au procédé de traitement selon deux modes de réalisation de l'invention. La figure 7 donne la syntaxe des attributs et éléments utilisés par le procédé selon l'invention. Sur la figure 1 est représentée une structure de données arborescente organisée en éléments reliés entre eux. Un élément correspond à un noeud de s l'arbre référencé globalement par les lettres el et éventuellement caractérisé par un ou plusieurs attributs . Le premier élément elO de l'arborescence est appelé racine . A la structure arborescente de la figure 1 est associé le document XML de la figure 2. Bien entendu, l'invention ne se limite pas aux seuls documents io XML mais peut également s'appliquer à tout ensemble de données structurées en arbre. On suppose que l'application destinataire peut utiliser ce document de façon progressive, c'est-à-dire dans le cadre d'un streaming de document XML. Dans ce contexte, une unité de traitement UT est un fragment du document pouvant être utilisé tel quel par une entité destinataire indépendamment du reste du document. On entend par fragment, ou sous-ensemble de l'arborescence, tout ensemble connexe d'éléments. De plus on nomme date de traitement la date à laquelle une unité de traitement est disponible auprès de l'entité destinataire pour être utilisée. Sur les figures 3a, 3b, 3c et 3d, on a montré les documents XML extraits du document original de la figure 2 associés respectivement à des unités de traitement UT1, UT2, UT3 et UT4 et qui pourraient être stockés indépendamment en plus du document original XML dans la mémoire d'un serveur. Toutefois, il résulterait de cette solution des risques d'incohérence dus à la redondance des données et une consommation inutile de l'espace de stockage et de bande passante. C'est pour éviter ces inconvénients que l'invention propose un procédé de traitement qui va maintenant être décrit en regard des figures 4 à 7. Ce procédé de traitement consiste, de manière très générale comme l'illustre schématiquement la figure 4, d'une part, à fournir à partir d'un document de traitement associé au document à traiter une méthode de fragmentation pour définir lesdites unités de traitement, et, d'autre part, à affecter à chaque unité de traitement une date de traitement à laquelle les données de l'unité de traitement associée sont à utiliser par l'entité destinataire desdites données. La figure 5 montre un exemple d'un document de traitement intitulé Document de Spécification d'Unités de Traitement avec un mode d'adressage temporel relatif, et la figure 6 montre le même document avec un mode d'adressage temporel absolu. Dans les deux cas, ces figures montrent comment la fragmentation des unités de traitement peut être effectuée de façon dynamique sur le document XML original de la figure 2. Il est connu qu'il existe une relation d'ordre définie pour les éléments o d'un document XML qui correspond au chemin de navigation suivant: balayant le document de gauche à droite et de haut en bas, les éléments sont ordonnés selon l'ordre d'apparition de chaque balise ouvrante. Le document de traitement consiste en un ou plusieurs éléments intitulés processUnit . Chacun de ces éléments spécifie une unité de traitement et pour cela contient ou bien une référence vers une transformation XML, ou bien directement la transformation elle-même. Par ailleurs un élément processUnit peut également contenir zéro, un ou plusieurs paramètres de transformation. Dans l'exemple illustré, la transformation utilisée est XSLT (XML Style Sheet Language Transformation, Version 1.0, W3C recommandation 16 novembre 1999). Le premier élément processUnit contient un élément transformation qui contient directement la transformation. Les éléments processUnit suivants utilisent la même transformation, mais avec des paramètres différents. Au lieu de répéter la transformation, l'élément transformation pointe sur la transformation incluse dans le premier élément processUnit . Une transformation peut donc être incluse dans le Document de Spécification de Traitement de Données ou être disponible de façon externe et identifiée par son adresse URL. Par ailleurs, l'élément transformation peut contenir un attribut type indiquant le type de transformation (ici XSLT). La transformation incluse dans le premier élément processUnit déclare un paramètre nommé max . Chaque élément processUnit utilisant cette transformation peut spécifier une valeur pour ce paramètre. Pour chaque élément processUnit , l'unité de traitement correspondante est obtenue en appliquant la transformation indiquée au document original avec éventuellement le ou les paramètres indiqués. L'application du Document de Spécification d'Unités de Traitement permet donc d'obtenir les quatre unités de traitement représentées figure 3a, 3b, 3c et 3d. On notera que s'il a été fait référence précédemment uniquement à la transformation XSL, le procédé de l'invention peut tout aussi bien être mis en oeuvre avec une transformation STX (Streaming Transformations for XML, Version 1.0, Working Draft 1 July 2004). o De même, la date de traitement d'une unité de traitement est spécifiée dans les propriétés temporelles de l'élément processUnit correspondant ou encore dans l'élément racine du document de traitement. Une première propriété nommée timeMode définit le mode d'adressage temporel. Elle est soit définie par un attribut nommé timeMode soit héritée d'un élément parent. Les valeurs possibles pour l'attribut timeMode sont: - undefined : le mode d'adressage temporel n'est pas défini, - relative : le mode d'adressage temporel est relatif, c'està-dire que la date de traitement d'une unité de traitement est définie relativement à l'unité précédente, - absolute : le mode d'adressage temporel est absolu, c'est-à-dire que la date de traitement d'une unité de traitement est définie de façon absolue. Une deuxième propriété nommée timeScale définit l'échelle de temps dans le cas de l'adressage temporel relatif. Elle est soit définie par un attribut nommé timeScale soit héritée d'un élément parent. Sa valeur est un entier définissant l'échelle de temps, c'est-à-dire le nombre d'unités par secondes. Une troisième propriété nommée timelnterval définit l'intervalle de temps entre deux unités de traitement consécutives dans le cas de l'adressage temporel relatif. Elle est soit définie par un attribut nommé timelnterval soit héritée d'un élément parent. Sa valeur est un entier définissant le nombre d'unités de temps par rapport à l'unité de traitement précédente, l'unité de temps étant définie par la propriété timeScale définie ci-dessus. Une quatrième propriété nommée absTimeScheme définit le format d'adressage dans le cas de l'adressage temporel absolu. Elle est soit définie par un attribut nommé absTimeScheme soit héritée d'un élément parent. Sa valeur est une chaîne de caractères définissant le format d'adressage temporel. Par exemple, la chaîne "mp7t" fait référence au format d'adressage temporel défini par MPEG-7 MDS (MediaTimePointType). Enfin, une cinquième propriété nommée absTime définit la date de traitement dans le cas de l'adressage temporel absolu. Elle n'est pas héritée et est définie par un attribut absTime . Sa valeur est une chaîne de o caractères définissant la date selon le format d'adressage temporel défini par la propriété absTimeScheme. Un exemple de valeur est " T17:30:45:2F10" pour le format d'adressage de MPEG-7. Par exemple, dans le document de la figure 5, les attributs timeMode , timeScale et timeinterval appliqués à l'élément racine elO indiquent que l'adressage temporel pour cet élément est relatif, que l'échelle de temps est de 100 unités par seconde et que l'intervalle entre deux unités de traitement est de 10 unités. L'unité de traitement UT1 sera donc présentée à l'application destinataire à la date t1=0, l'unité de traitement UT2 à la date t2=10/100 secondes, l'unité de traitement UT3 à la date t3=20/100 secondes et l'unité de traitement UT4 à la date t3=30/100 secondes. Dans le document de la figure 6 où l'adressage temporel est absolu, chaque date est spécifiée pour chaque élément processUnit . On a montré ci-dessus comment les propriétés définissant les unités de traitement et leur date de traitement associée peuvent être spécifiées à l'aide d'attributs ajoutés au document original de façon dynamique. La syntaxe de l'ensemble des attributs et des éléments est définie à la figure 7. Le procédé de l'invention peut être mis en oeuvre entre deux entités distantes, la première entité délivrant le document par fragment successif à une date donnée à une deuxième entité suite à une requête de celle-ci. Au niveau de cette première entité, par exemple un serveur informatique, il est prévu des moyens de génération de fragments par application d'une transformation XML au document à délivrer, des moyens de génération d'une date de traitement pour chacun des fragments délivrés et des moyens d'envoi pour envoyer de façon progressive ces fragments à la deuxième entité, par exemple un terminal client. io REVENDICATIONS 1. Procédé de traitement d'un document structurant des données 5 arborescentes, caractérisé en ce que ledit procédé comprend les opérations consistant à : - appliquer au moins une transformation XML audit document pour générer des unités de traitement formant des fragments dudit document pouvant être utilisés en tant que tel par une entité destinataire dudit document, io - affecter à chaque unité de traitement ainsi générée une date de traitement à laquelle les données de l'unité de traitement associée sont à utiliser par ladite entité destinataire. 2. Procédé selon la revendication 1, caractérisé en ce que ladite au moins une transformation XML est indiquée dans un document de traitement associé 15 audit document structurant des données arborescentes. 3. Procédé selon la revendication 2, caractérisé en ce que ledit document de traitement comprend au moins un élément spécifiant ladite transformation XML ou comportant une référence vers ladite transformation XML. 4. Procédé selon la revendication 3, caractérisé en ce que ledit élément comporte au moins un paramètre associé à ladite transformation XML. 5. Procédé selon la revendication 3, caractérisé en ce que ledit élément comporte un attribut indiquant le type de transformation XML appliquée pour générer ladite unité de traitement. 6. Procédé selon la revendication 5, caractérisé en ce que ladite 25 transformation XML est du type XSLT (XML Style Sheet Language Transformation). 7. Procédé selon la revendication 3, caractérisé en ce que ledit élément comporte au moins un attribut spécifiant la date de traitement de ladite unité de traitement. 8. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce que ladite date de traitement est définie, d'une part, par un mode d'adressage temporel et, d'autre part, par au moins un mode de spécification de date. Il 9. Procédé selon la revendication 8, caractérisé en ce que ledit mode d'adressage temporel est un mode d'adressage absolu, la date de traitement d'une unité de traitement étant définie de façon absolue dans le temps. 10. Procédé selon la revendication 8, caractérisé en ce que ledit mode d'adressage temporel est un mode d'adressage relatif, la date de traitement d'une unité de traitement étant définie relativement à l'unité de traitement précédente. 11. Procédé selon la revendication 10, caractérisé en ce que le mode de spécification de la date de traitement est constitué par un intervalle de temps. to 12. Serveur pour la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 11. 13. Programme d'ordinateur comprenant des instructions de code de programme pour l'exécution du procédé selon l'une quelconque des revendications 1 à 11 lorsque ledit programme est exécuté sur un ordinateur.