FR2914759A1 - Procede et dispositif de codage d'un document hierarchise - Google Patents

Procede et dispositif de codage d'un document hierarchise Download PDF

Info

Publication number
FR2914759A1
FR2914759A1 FR0754246A FR0754246A FR2914759A1 FR 2914759 A1 FR2914759 A1 FR 2914759A1 FR 0754246 A FR0754246 A FR 0754246A FR 0754246 A FR0754246 A FR 0754246A FR 2914759 A1 FR2914759 A1 FR 2914759A1
Authority
FR
France
Prior art keywords
pattern
specialized
created
patterns
instances
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0754246A
Other languages
English (en)
Other versions
FR2914759B1 (fr
Inventor
Herve Ruellan
Romain Bellessort
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR0754246A priority Critical patent/FR2914759B1/fr
Priority to US12/060,965 priority patent/US8788509B2/en
Publication of FR2914759A1 publication Critical patent/FR2914759A1/fr
Application granted granted Critical
Publication of FR2914759B1 publication Critical patent/FR2914759B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets

Abstract

Le procédé de codage d'un document hiérarchisé, comporte, pour au moins un élément contenu dans le document :- une étape (200, 210, 220) de création d'au moins un motif qui décrit au moins des informations structurelles dudit élément et- une étape (230, 330) de sélection d'utilisation, ou non, d'au moins un des motifs créés, ladite sélection étant fonction de l'efficacité d'un codage d'un ensemble d'instances du motif créé, ledit codage mettant en oeuvre ledit motif créé.Préférentiellement, le procédé comporte une étape de création d'au moins deux motifs qui décrivent au moins des informations structurelles dudit élément et une étape de sélection d'un motif parmi les motifs créés, en fonction de l'efficacité de chaque codage d'un ensemble d'instances des motifs créés, en mettant en oeuvre l'un des motifs créés.

Description

La présente invention concerne un procédé et un dispositif de sélection de
motif d'un document hiérarchisé. XML (acronyme de Extensible Markup Language , c'est à dire langage de balisage extensible) est une syntaxe pour définir des langages informatiques. XML permet ainsi de créer des langages adaptés à des utilisations différentes mais pouvant être traités par les mêmes outils. Un document XML est composé d'éléments, chaque élément commençant par une balise ouvrante comportant le nom de l'élément (par exemple: <balise> ) et se terminant par une balise fermante comportant elle aussi le nom de l'élément (par exemple: </balise> ). Chaque élément peut contenir d'autres éléments ou des données textuelles. Par ailleurs, un élément peut être précisé par des attributs, chaque attribut étant défini par un nom et ayant une valeur. Les attributs sont placés dans la balise ouvrante de l'élément qu'ils précisent (par exemple: <balise attribut="valeur"> ). La syntaxe XML permet aussi de définir des commentaires (par exemple: <!--Commentaire--> ) et des instructions de traitement, qui péuvent préciser à une application informatique quels traitements appliquer au document XML (par exemple: <?montraitement?> ). L'ensemble des éléments, attributs, données textuelles, commentaires et instructions de traitement sont regroupés sous le nom 25 générique de noeud . Plusieurs langages XML différents peuvent contenir des éléments de même nom. Pour pouvoir mélanger plusieurs langages XML différents, un ajout a été effectué à la syntaxe XML permettant de définir des espaces de nommage ( Namespace en anglais). Deux éléments seront identiques 30 seulement s'ils ont le même nom et se trouvent dans le même espace de nommage. Un espace de nommage est défini par une URI (acronyme de Uniform Resource Identifier , pour identifiant uniforme de ressource), par exemple: http://canon.crf.fr/xml/monlangage ). L'utilisation d'un espace de nommage dans un document XML passe par la définition d'un préfixe qui est un raccourci vers I'URI de cet espace de nommage. Ce préfixe est défini à l'aide d'un attribut spécifique (par exemple: xmins:ml="http://canon.crf.fr/xml/ monlangage" associe le préfixe ml à l'URI http://canon.crf.fr/xml/ monlangage ). Ensuite, l'espace de nommage d'un élément ou d'un attribut est précisé en faisant précéder son nom par le préfixe associé à l'espace de nommage suivi de : (par exemple: <ml:balise ml:attribut="valeur"> ). XML présente de nombreux avantages et est devenu un standard pour stocker des données dans un fichier ou pour échanger des données. XML permet en particulier de disposer de nombreux outils pour traiter les fichiers générés. Par ailleurs, un document XML peut être édité manuellement avec un simple éditeur de texte. En outre, comme un document XML contient sa structure intégrée aux données, ce document est très lisible même sans en connaître la spécification. Le principal inconvénient de la syntaxe XML est d'être très prolixe. Ainsi la taille d'un document XML peut être plusieurs fois supérieure à la taille intrinsèque des données. Cette taille importante des documents XML induit aussi un temps de traitement important lors de la génération et surtout de la lecture de documents XML. Pour palier à ces inconvénients, d'autres méthodes pour encoder un document XML ont été recherchées. Le but de ces méthodes est de coder le contenu du document XML sous une forme plus efficace, mais permettant de reconstruire facilement le document XML. Cependant, la plupart de ces méthodes ne conservent pas l'ensemble des avantages du format XML. Parmi ces méthodes, la plus simple consiste à coder les données de structure dans un format binaire au lieu d'utiliser un format textuel. En outre, la redondance des informations structurelles dans le format XML peut être supprimée ou au moins diminuée (par exemple, il n'est pas forcément utile de préciser le nom de l'élément dans la balise ouvrante et la balise fermante). Une autre méthode est d'utiliser une table d'index, en particulier pour les noms d'éléments et d'attributs qui sont généralement répétés dans un document XML. Ainsi, lors de la première occurrence d'un nom d'élément, celui-ci est codé normalement dans le fichier et un index lui est associé. Puis, pour les occurrences suivantes de ce nom d'élément, l'index est utilisé à la place de la chaîne complète, réduisant la taille du document généré, mais facilitant aussi la lecture (il n'y a plus besoin de lire la chaîne complète dans le fichier, et en outre, la détermination de l'élément lu peut être réalisée par une comparaison d'entiers au lieu d'une comparaison de chaînes de caractères). Un deuxième ensemble de méthodes repose sur l'utilisation de motifs (en anglais patterns ) détectés dans le document XML à coder. Ces motifs représentent les informations structurelles et certaines informations de contenu du document XML. Le but de ces méthodes est de coder les motifs répétés dans le document XML pour éviter de coder plusieurs fois les mêmes informations. Ces méthodes de codage sont efficaces pour les documents XML contenant de nombreuses répétitions de structures identiques ou très similaires. Cependant, ces méthodes de création de motifs ne sont pas optimales pour le codage d'un document XML, en termes de taille du document codé. La présente invention vise à remédier à ces inconvénients. En particulier, la présente invention vise à permettre la création de motifs optimisés pour le codage d'un document XML. A cet effet, la présente invention vise, selon un premier aspect, un procédé de codage d'un document hiérarchisé, comportant, pour au moins un élément contenu dans le document : - une étape de création d'au moins un motif qui décrit au moins des 25 informations structurelles dudit élément et - une étape de sélection d'utilisation, ou non, d'au moins un motif créé, ladite sélection étant fonction de l'efficacité d'un codage d'un ensemble d'instances du motif créé, ledit codage mettant en oeuvre ledit motif créé. Grâce à ces dispositions, un motif est utilisé pour le codage que si 30 son utilisation augmente l'efficacité du codage, c'est-à-dire réduit le coût de codage.
Selon des caractéristiques particulières, le procédé de codage objet de la présente invention, tel que succinctement exposé ci-dessus comporte, pour au moins un élément contenu dans le document : - une étape de création d'au moins deux motifs qui décrivent au moins des informations structurelles dudit élément et - une étape de sélection d'au moins un des motifs créés, ladite sélection étant fonction de l'efficacité d'une pluralité de codages d'un ensemble d'instances des motifs créés, un codage mettant en oeuvre au moins un des motifs créés.
Grâce à ces dispositions, l'efficacité de codage est optimisée par la sélection d'un motif parmi plusieurs motifs décrivant le même élément. Selon des caractéristiques particulières, l'étape de création d'au moins deux motifs comporte : - une étape de création d'un motif initial qui décrit au moins des informations structurelles dudit élément et - une étape de création d'au moins un motif spécialisé par modification d'un motif déjà créé dit à spécialiser . On note que cette spécialisation peut s'appliquer soit à un motif initial, soit à un motif lui-même spécialisé.
Selon des caractéristiques particulières, au cours de l'étape de création du motif initial, on crée un motif dit vide qui ne comporte aucune description d'informations de contenu dudit élément et, pour le motif vide, un ensemble des valeurs correspondant à des instances associées audit motif vide et, au cours de l'étape de création d'un motif spécialisé, on met en oeuvre au moins un motif à spécialiser et un ensemble de valeurs associées. Le terme contenu recouvre les valeurs d'attributs, les valeurs textuelles et les définitions de sous-motif contenues dans le motif. Selon des caractéristiques particulières, au cours de l'étape de création d'au moins un motif spécialisé, on crée, à partir du motif à spécialiser, au moins un motif spécialisé comportant de l'information de contenu commun à plusieurs instances du motif à spécialiser.
Selon des caractéristiques particulières, l'étape de création d'au moins un motif spécialisé comporte une étape de séparation des instances du motif à spécialiser en deux ensembles, l'un restant associé au motif à spécialiser, l'autre étant associé au motif spécialisé.
Selon des caractéristiques particulières, au cours de l'étape de création d'au moins un motif spécialisé on crée un motif spécialisé en incorporant au motif à spécialiser chacun des couples d'au moins un des ensembles de couples suivants : (attribut, valeur d'attribut) possédé par toutes les 10 instances associées au motif à spécialiser, (contenu textuel, valeur de contenu textuel) possédé par toutes les instances associées au motif à spécialiser et (sous-motif, définition du sous-motif) possédé par toutes les instances associées au motif à spécialiser. 15 Selon des caractéristiques particulières, au cours de l'étape de création d'au moins un motif spécialisé on crée un motif spécialisé en incorporant au motif à spécialiser au moins l'un des couples : (attribut, valeur d'attribut) le plus fréquent pour les instances associées au motif à spécialiser, 20 -(contenu textuel, valeur de contenu textuel) le plus fréquent pour les instances associées au motif à spécialiser et (sous-motif, définition du sous-motif) le plus fréquent pour les instances associées au motif à spécialiser. On note que cette méthode ne calcule pas l'ensemble des 25 possibilités pour la création d'un motif spécialisé et évite ainsi un calcul exhaustif trop couteux. Selon des caractéristiques particulières, l'étape de création d'au moins un motif spécialisé comporte une étape de séparation des instances du motif à spécialiser en deux ensembles, l'un restant associé au motif à 30 spécialiser, l'autre étant associé au motif spécialisé, les instances comprenant ledit couple étant associées au motif spécialisé, les instances ne comprenant pas ledit couple étant associées au motif à spécialiser.
Selon des caractéristiques particulières, à la suite de l'étape de séparation des instances, on effectue une étape supplémentaire de création de motifs spécialisés sur les motifs et instances résultant de l'étape de séparation, lorsque le nombre d'instances associées à un motif est supérieur à une valeur prédéterminée. Ceci réduit le nombre de calculs à réaliser et permet d'éviter de créer des motifs pour un faible nombre d'instances. Selon des caractéristiques particulières, l'étape de sélection comporte, en outre, lorsque tous les motifs spécialisés ont été créés, une étape de détermination, pour chaque motif créé, du gain de codage en cas de mise en oeuvre de ce motif créé, par rapport au codage sans mettre en oeuvre ledit motif et une étape d'élimination des motifs créés pour lesquels ledit gain est négatif. Ceci permet de vérifier, de manière globale, que chacun des motifs créés est efficace, en termes de coût de codage, pour le codage du document.
Selon des caractéristiques particulières, on effectue les étapes de création et de sélection successivement, pour au moins un élément du document, d'au moins un motif associé à l'un au moins des sous-éléments dudit élément et d'un motif associé audit élément. Grâce à ces dispositions, on optimise, de manière récursive, de proche en proche, l'ensemble des motifs d'un document, par exemple XML, ou d'une partie de ce document sans effectuer une optimisation simultanée de l'ensemble de ces motifs, optimisation qui consommerait beaucoup de ressources de calcul et serait donc très lente. Selon des caractéristiques particulières, le procédé tel que succinctement exposé ci-dessus comporte une étape de création d'un motif dit englobant formé par la réunion d'au moins deux motifs créés, cette réunion contenant l'ensemble des informations structurelles et de contenues comprises dans au moins l'un des motifs réunis. Selon un deuxième aspect, la présente invention vise un dispositif de 30 codage d'un document hiérarchisé, comportant, pour traiter au moins un élément contenu dans le document : - un moyen de création d'au moins un motif qui décrit au moins des informations structurelles dudit élément et - un moyen de sélection d'utilisation, ou non, de chaque motif créé, ladite sélection étant fonction de l'efficacité d'un codage d'un ensemble d'instances du motif créé, ledit codage mettant en oeuvre ledit motif créé. Selon des caractéristiques particulières : - le moyen de création est adapté à créer d'au moins deux motifs qui décrivent au moins des informations structurelles dudit élément et - le moyen de sélection sélectionne au moins un des motifs créés, étant fonction de l'efficacité d'une pluralité de codages d'un ensemble d'instances des motifs créés, un codage mettant en oeuvre au moins un des motifs créés. Selon un troisième aspect, la présente invention vise un programme d'ordinateur chargeable dans un système informatique, ledit programme contenant des instructions permettant la mise en oeuvre du procédé de codage tel que succinctement exposé ci-dessus. Selon un quatrième aspect, la présente invention vise un support d'informations lisibles par un ordinateur ou un microprocesseur, amovible ou non, conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre du procédé de codage tel que succinctement exposé ci-dessus. Les avantages, buts et caractéristiques de ce dispositif, de ce programme et de ce support d'information étant similaires à ceux du procédé de codage objet de la présente invention, tel que succinctement exposé ci-dessus, ils ne sont pas rappelés ici. D'autres avantages, buts et caractéristiques de la présente invention ressortiront de la description qui va suivre faite, dans un but explicatif et nullement limitatif en regard des dessins annexés, dans lesquels : la figure 1 représente, schématiquement, un document hiérarchisé, - la figure 2 représente, sous forme d'un logigramme, des étapes mises en oeuvre dans un mode de réalisation particulier du procédé de codage objet de la présente invention, la figure 3 représente, sous forme d'un logigramme, des étapes 5 mises en oeuvre dans l'une des étapes illustrées en figure 2, - la figure 4 représente, sous forme d'un logigramme, des étapes mises en oeuvre dans l'une des étapes illustrées en figure 3, - la figure 5 représente, sous forme d'un logigramme, des étapes mises en oeuvre dans l'une des étapes illustrées en figure 4, 10 - les figures 6 et 7 représentent, sous forme de logigrammes, des étapes mises en oeuvre dans des étapes illustrées en figure 2 et - la figure 8 représente, schématiquement, un mode de réalisation particulier du dispositif de codage objet de la présente invention. La figure 1 est un exemple de document XML sur lequel l'invention 15 peut être appliquée. Ce document 100 décrit une liste d'objets (ici, des objectifs d'appareil photo) avec certaines de leurs caractéristiques. Du fait que l'ensemble des objets décrits sont similaires, les descriptions ont des structures similaires. Ainsi, chaque objectif est décrit par sa référence, sa focale et son ouverture maximale. Cependant, certaines différences de caractéristiques ont 20 un impact sur la structure de la description. Ainsi l'élément focale comprend juste une valeur textuelle dans le cas des objectifs fixes, alors qu'il est composé de deux sous-éléments correspondant aux valeurs extrêmes dans le cas de zoom. La figure 2 montre, par une succession d'étapes, le principe général 25 de création de motifs et de codage d'un document hiérarchisé, ici un document XML, selon l'invention. Au cours d'une première étape, 200, on crée, pour chaque élément contenu dans le document, un motif vide dit de premier niveau . Un motif de premier niveau correspond à la description du document sur un seul niveau de profondeur, c'est-à-dire sans décrire les sous-éléments 30 inclus dans l'élément décrit par le motif. Un motif vide correspond à la description des informations structurelles, sans description d'informations de contenu.
Ainsi, pour l'élément de la figure 1 commençant ligne 110 et se terminant ligne 119, le motif de premier niveau vide correspondant est : - élément objet avec attributs id et disponible , contenant : - motif motif - motif Si, dans le document, deux éléments ont des structures identiques, ils sont associés au même motif.
Ainsi, l'élément de la figure 1 commençant ligne 120 et se terminant ligne 129 est associé au même motif de premier niveau vide que l'élément commençant ligne 110 et se terminant ligne 119. Il en est de même pour l'élément commençant ligne 130 et se terminant ligne 139, ainsi que pour l'élément commençant ligne 140 et se terminant ligne 149.
Au cours d'une deuxième étape, 210, on crée, pour chaque motif créé lors de l'étape 200, l'ensemble des listes de valeurs correspondant à chaque élément associé à ce motif. Pour chaque élément, la liste de valeurs correspond aux valeurs des attributs, aux valeurs textuelles et aux références des motifs inclus. Quand une valeur correspond à une référence à un motif inclus, cette référence contient l'identification du motif inclus, ainsi que la liste des valeurs qui lui sont associées. Ainsi, pour l'élément commençant ligne 110 et se terminant ligne 119, la liste des valeurs est : - 1 (attribut id ) - 1 (attribut disponible ) motif reference avec la valeur textuelle EF 50mm f/1.2L USM motif focalel avec la valeur textuelle 50mm motif ouverture avec la valeur textuelle 1.2 Ces listes de valeurs sont regroupées pour chaque motif. Ainsi, le motif décrivant les éléments ouverture des lignes 116, 126, 136 et 146 a pour ensemble de liste valeurs : 1.2 1.2 2.8 - 4 Chacune de ces valeurs représente la valeur textuelle contenue dans un élément associé au motif. II est à noter que les valeurs répétées pour un même emplacement sont conservées. Au cours d'une troisième étape, 220, on utilise les motifs créés à l'étape 200 ainsi que l'ensemble des listes de valeurs déterminées lors de l'étape 210 pour raffiner les motifs vides. Cette étape peut être réalisée, par exemple en mettant en oeuvre le logigramme décrit en regard des figures 3, 4 et 5, sur l'élément racine du document XML. Cette étape 220 permet en particulier de créer des motifs de niveau quelconque. Un motif de premier niveau correspond à la description du document sur un seul niveau de profondeur, c'est-à-dire sans décrire les sous-éléments inclus dans l'élément décrit par le motif. Un motif de deuxième niveau correspond à la description du document sur deux niveaux de profondeur, c'est-à-dire en décrivant un élément et ses éléments fils, mais sans décrire les sous-éléments inclus dans les éléments fils. Et ainsi de suite. Il est à noter qu'un motif peut ne décrire qu'une partie d'un élément ou de ses sous-éléments. Cette étape 220 permet aussi de créer des motifs comportant des valeurs d'attribut ou des valeurs textuelles. Ensuite, au cours d'une quatrième étape, 230, on parcourt l'ensemble des motifs raffinés lors de l'étape 220 pour déterminer s'ils sont efficaces après l'ensemble des raffinements et on ne sélectionne que des motifs efficaces. Cette étape peut être réalisée, par exemple, en mettant en oeuvre le logigramme décrit en regard de la figure 6 et, éventuellement celui décrit en regard de la figure 7. On note que cette étape 230 est optionnelle. Enfin, au cours d'une dernière étape, 240, on code le document à l'aide des motifs créés et sélectionnés au cours des étapes précédentes. Pour cela, chacun des motifs sélectionnés est codé. Le codage d'un motif consiste à coder l'ensemble des informations structurelles et de contenu qu'il comporte.
En variante, un motif peut être codé par différence par rapport à un autre motif, en ne codant que les différences entre les deux motifs. D'autre part, chaque noeud du document XML est codé. Un noeud associé à un motif sélectionné (ou à une partie d'un motif sélectionné) est codé par rapport à ce motif. Pour cela, les informations présentes dans le noeud et non présentes dans le motif sont codées. En outre, pour les informations présentes dans le motif et non présentes dans le noeud, leur absence est codée. Un noeud non associé à un motif sélectionné est codé en mettant en oeuvre des techniques connues de l'homme du métier, sans l'aide d'un motif. Dans une variante, le codage des motifs et des noeuds est réalisé de manière textuelle. Dans une autre variante, les motifs et les noeuds sont codées à l'aide d'un langage XML spécifique. Dans encore une autre variante, le codage des motifs et des noeuds est réalisé de manière binaire.
En variante, on crée au moins un motif, de premier niveau vide ou spécialisé, qui décrit au moins des informations structurelles d'un élément donné. Pour chaque motif créé, on sélectionne l'utilisation, ou non, de ce motif créé, en fonction de l'efficacité d'un codage d'un ensemble d'instances du motif créé, ledit codage mettant en oeuvre le motif créé. Ainsi, la présente invention ne se limite pas au choix d'un motif parmi une pluralité de motifs mais s'étend au cas de la décision d'utilisation de chaque motif créé. Dans le cas où un seul motif est considéré, ce motif peut être de premier niveau vide ou spécialisé, y compris le cas du motif englobant décrit plus loin. La figure 3 décrit, sous forme de logigramme, un algorithme de raffinement d'un motif. Cet algorithme traite un ensemble de motifs en partant d'un motif associé à un élément XML et en traitant tous les motifs associés à l'un des sous-éléments, direct ou non, de l'élément XML de départ. Ce traitement récursif permet d'optimiser, de proche en proche, l'ensemble des motifs d'un document XML ou d'une partie de ce document XML, sans nécessiter une optimisation simultanée de l'ensemble de ces motifs.
Pour procéder au raffinement de l'ensemble des motifs d'un document XML, cet algorithme est exécuté au départ sur le motif de premier niveau vide correspondant à l'élément racine du document XML. Le logigramme de la figure 3 s'applique à un motif, noté m , associé à un élément noté e . Au cours d'une étape 300, on détermine si l'élément e contient au moins un élément fils, noté ei , associé à un motif noté mi n'ayant pas encore été raffiné par les étapes illustrées en figure 3. Si c'est le cas, au cours d'une étape 310, on obtient ce motif mi inclus dans le motif m, associé à cet élément ei, fils de l'élément e.
Puis, la succession d'étapes décrites en figure 3 est effectuée récursivement sur le motif mi et l'élément ei, au cours d'une étape 320. Après cette étape 320, le motif mi a été raffiné et on retourne à l'étape 300. A partir de l'étape 300, si tous les motifs mi inclus dans le motif m ont été traités, on passe à l'étape 330 durant laquelle le motif m est spécialisé. Cette étape 330 est décrite en regard de la figure 4, qui décrit, sous forme d'un logigramme, des étapes permettant de spécialiser un motif. Le but de cette spécialisation est de créer, à partir de ce motif, un ou plusieurs motifs de niveau quelconque et pouvant comporter des informations de contenu textuel. Ces motifs spécialisés sont, ensuite, utilisés lors du codage du document XML.
Les étapes se répartissent en deux groupes. Le premier groupe, étape 400 à 460, modifie le motif initial pour y inclure des informations de contenu ou des définitions de sous-motifs commun à toutes les instances du motif initial. La deuxième partie, étapes 470 et 480, sépare les instances en deux ensembles, l'un restant associé à ce motif initial, l'autre étant associé à un nouveau motif, spécialisé à partir de ce motif initial. On note que ce logigramme peut s'appliquer soit à un motif créé de premier niveau vide, soit à un motif créé par cet algorithme, ou spécialisé , motifs créés que l'on appelle, dans les deux cas, motif à spécialiser . Au cours d'une étape 400, on détermine s'il existe, parmi les contenus du motif m, au moins un contenu invariant non traité. Le terme contenu recouvre les valeurs d'attributs, les valeurs textuelles et les définitions de sous-motif contenues dans le motif. Un contenu est considéré comme invariant pour un motif si sa valeur est identique pour toutes les instances associées à ce motif. Si le résultat de l'étape 400 est positif, c'est-à-dire s'il reste au moins un contenu invariant non traité, au cours d'une étape 410, on obtient ce contenu invariant.
Par exemple, pour le motif représentant l'élément objet dans le document XML de la figure 1, les quatre instances de ce motif comprennent, pour l'attribut disponible , la valeur 1 . Ainsi, pour ce motif, la valeur de l'attribut disponible est invariante pour l'ensemble des instances associées à ce motif. De la même manière, pour ce même motif, le premier sous-élément correspond, pour les quatre instances, à la même définition de sous-motif, à savoir un élément reference contenant une valeur textuelle. Ainsi, pour ce motif, la définition du premier sous-motif est invariante. En revanche, pour ce même motif, le deuxième sous-élément varie selon les instances. Pour les deux premières instances, ce deuxième sous-élément correspond à la définition d'un sous-motif composé par un élément focale contenant une valeur textuelle. Pour les deux dernières instances, ce deuxième sous-élément correspond à la définition d'un sous-motif composé par un élément focale contenant deux sous-éléments. Puis, au cours d'une étape 420, on détermine si l'inclusion de ce contenu invariant dans le motif m est efficace, c'est-à-dire favorable en termes de coût de codage, le coût d'un codage étant représentatif de la quantité d'information nécessaire pour le codage de toutes les instances associées au motif. Pour cela, on compare le coût de codage en utilisant le motif initial avec celui utilisant le motif initial modifié par l'inclusion du contenu invariant. Le coût de codage en utilisant le motif initial comprend le coût de codage du motif initial additionné au coût de codage de chacune de ses instances en fonction de ce motif initial. Le coût de codage utilisant le motif initial modifié par l'inclusion du contenu invariant comprend le coût de codage du motif modifié additionné au coût de codage de chacune des instances du motif initial en fonction de ce motif modifié. Si l'inclusion n'est pas efficace, c'est-à-dire si le coût de codage en utilisant le motif modifié est supérieur au coût de codage en utilisant le motif initial, on retourne à l'étape 400. Si l'inclusion est efficace, au cours d'une étape 430, on réalise l'inclusion du contenu invariant obtenu au cours de l'étape 410 au motif initial. Le motif initial est ainsi remplacé par le motif modifié. Puis on retourne à l'étape 400.
Si, au cours de l'étape 400, on détermine qu'il n'existe plus de contenu invariant non traité, c'est-à-dire obtenu au cours de l'étape 410 et testé, en termes d'efficacité au cours de l'étape 420, on passe à l'étape 440. Dans le cas du motif représentant l'élément objet dans le document XML de la figure 1, lorsque l'on passe à l'étape 440, ce motif est 10 devenu : - élément objet avec un attribut id et un attribut disponible ayant la valeur 1 , cet élément comprenant : - élément reference contenant une valeur textuelle - motif 15 - élément ouverture contenant une valeur textuelle. Au cours de l'étape 440, on tente d'obtenir un meilleur contenu pour la création d'un motif spécialisé, comme décrit en regard de la figure 5. Puis, au cours d'une étape 450, on détermine si un meilleur contenu a été trouvé. Si non, la succession d'étape se termine à une étape 490. 20 Si un meilleur contenu a été trouvé, on passe à une étape 460, au cours de laquelle on crée un motif spécialisé à partir du motif initial. Ce motif spécialisé est créé comme une copie du motif initial à laquelle est ajouté le meilleur contenu obtenu au cours de l'étape 440. En reprenant l'exemple du motif représentant l'élément objet 25 dans le document XML de la figure 1, un motif spécialisé peut être créé par exemple en ajoutant à ce motif la définition d'un sous-motif pour le deuxième sous-élément présent dans l'élément objet , cette définition correspondant à un élément focale contenant deux sous-éléments. Toujours en exemple, pour le motif représentant l'élément 30 ouverture dans le document XML de la figure 1, un motif spécialisé peut être créé par exemple en ajoutant à ce motif comme valeur de contenu textuel la valeur 1.2 .
Ensuite, l'ensemble des instances est réparti entre les deux motifs, le motif obtenu avant l'étape 440, initial ou modifié, d'une part et le motif spécialisé, d'autre part. Les instances comprenant le meilleur contenu sont associées au motif spécialisé. Les instances ne le comprenant pas restent associées au motif initial ou modifié. Puis, on spécialise, de nouveau, le motif initial au cours d'une étape 470. Puis le motif spécialisé est spécialisé à son tour, au cours d'une étape 480 et le traitement se termine à l'étape 490. En reprenant l'exemple de l'élément objet dans le document XML de la figure 1, en supposant que le meilleur contenu retourné par l'étape 440 soit la définition de sous-motif correspondant à l'élément focale contenant deux sous-éléments, à la fin des étapes illustrées en figure 4, il y a deux motifs décrivant l'élément objet . Le premier motif est : - élément objet avec un attribut id et un attribut disponible ayant la valeur 1 , cet élément comprenant : - élément reference contenant une valeur textuelle - élément focale contenant une valeur textuelle - élément ouverture contenant la valeur textuelle 1.2 Le deuxième motif est : - élément objet avec un attribut id et un attribut disponible ayant la valeur 1 , cet élément comprenant : - élément reference contenant une valeur textuelle élément focale contenant : - élément min contenant une valeur textuelle - élément max contenant une valeur textuelle - élément ouverture contenant une valeur textuelle Dans une variante de réalisation, un motif n'est spécialisé que si le nombre d'instances qui lui est associé est supérieur à un nombre minimum prédéterminé. Ceci réduit le nombre de calculs à réaliser et permet d'éviter de créer des motifs pour un faible nombre d'instances. Dans une autre variante de réalisation, l'étape 420 est supprimée et tout contenu invariant est ajouté au motif initial. En effet, pour un contenu correspondant à une valeur d'attribut ou à une valeur textuelle, l'inclusion du contenu est toujours efficace. Dans le cas d'un contenu correspondant à un sous-motif, cela n'est pas toujours le cas, mais il est difficile de déterminer exactement l'efficacité de l'inclusion d'un tel contenu, car une définition de sous-motif peut être utilisée à l'intérieur de plusieurs autres motifs et le coût de codage exact dépend donc des choix réalisés pour l'ensemble des motifs contenant cette définition de sous-motif. Cette variante permet donc de diminuer le nombre de calculs réalisés sans toutefois nuire beaucoup à l'optimisation des motifs générés.
Dans une variante de réalisation, un coût de codage par rapport à un ensemble de motifs M est évalué en codant l'intégralité du document XML en utilisant un codage binaire. Pour évaluer ce coût de codage, les motifs de l'ensemble M et tous les autres motifs déjà créés et sélectionnés sont utilisés lors du codage. Lors de ce codage, chaque noeud du document XML est codé en utilisant le motif auquel il est associé. Dans une autre variante de réalisation, un coût de codage par rapport à un ensemble de motifs M est évalué en ne codant que les noeuds du document XML correspondant aux instances d'un motif de l'ensemble M et en utilisant un codage binaire.
Dans encore une autre variante de réalisation, un coût de codage par rapport à un ensemble de motifs M est évalué en calculant le nombre d'octets nécessaire au codage de l'intégralité du document XML en utilisant un codage binaire mettant en oeuvre les motifs de l'ensemble M et tous les autres motifs déjà créés et sélectionnés. Ce calcul est réalisé en considérant l'ensemble des données à coder et en calculant le nombre d'octets nécessaire au codage de chacune de ces données en fonction des règles du codage binaire utilisé. Dans une telle variante de réalisation, le calcul peut être réalisé de manière itérative, seule la partie du coût de codage correspondant à l'ensemble de motifs M évalué étant recalculée.
Dans encore une autre variante de réalisation, un coût de codage par rapport à un ensemble de motifs M est évalué en calculant le nombre d'octets nécessaire au codage des noeuds du document XML correspondant aux instances d'un motif de l'ensemble M et en utilisant un codage binaire mettant en oeuvre les motifs de l'ensemble M et tous les autres motifs déjà créés et sélectionnés. Ce calcul est réalisé en considérant l'ensemble des données à coder et en calculant le nombre d'octets nécessaire au codage de chacune de ces données en fonction des règles du codage binaire utilisé. Dans une autre variante de réalisation, le calcul du nombre d'octets nécessaire au codage d'un ensemble de noeuds du document XML est réalisé en fonction des règles du codage binaire utilisé et de données empiriques. Ces données empiriques permettent d'évaluer la taille de codage de certaines données sans devoir coder l'intégralité du document XML (ou une partie importante de celui-ci). Ces données empiriques sont obtenues à partir du codage d'un nombre important de documents XML. Un exemple de données empiriques est la taille moyenne d'un index. Ces données empiriques peuvent être fonction de caractéristiques du document XML. Par exemple, la taille moyenne d'un index peut être fonction de la taille du document XML. La figure 5 décrit, sous forme d'un logigramme, des étapes pour trouver le meilleur contenu d'un motif m, dont la valeur n'est pas comprise dans ce motif m, pour la création d'un motif spécialisé comprenant la valeur de ce contenu.
Au cours d'une étape 500, on sélectionne le couple (attribut, valeur d'attribut) le plus fréquent pour le motif m. Pour cela, chaque attribut dont la valeur n'est pas contenue dans le motif est considéré à son tour. Pour chaque attribut, on considère chacune des valeurs qu'il prend dans les instances associées au motif m, on compte le nombre d'occurrences de chacune des valeurs de cet attribut et on sélectionne la valeur la plus fréquente pour cet attribut. Ainsi, on obtient la valeur la plus fréquente pour chaque attribut. Ensuite, on compare la fréquence de la valeur sélectionnée pour chaque attribut pour ne retenir que l'attribut pour lequel cette valeur obtenue est la plus fréquente pour l'ensemble des attributs. Cet attribut et la valeur obtenue constituent l'attribut déterminé et la valeur déterminée. Au cours d'une étape 510, on calcule le gain potentiel obtenu en incluant la valeur déterminée pour l'attribut déterminé dans un motif spécialisé.
Pour cela, on compare deux coûts de codage. Le premier coût de codage comprend le coût de codage du motif m additionné au coût de codage de l'ensemble des instances associées au motif m. Le deuxième coût de codage comprend le coût de codage du motif m, le coût de codage du motif spécialisé incluant la valeur déterminée pour l'attribut déterminé, additionnés au coût de codage de l'ensemble des instances associées au motif m. Le coût de codage d'une instance associée au motif m est le coût de codage de l'instance par rapport au motif spécialisé si la valeur de l'attribut déterminé pour l'instance est la valeur déterminée, ou sinon le coût de codage de l'instance par rapport au motif m. Le gain potentiel est la différence entre le premier coût de codage et le deuxième coût de codage. Un gain négatif signifie que l'utilisation du motif spécialisé n'est pas favorable. Le gain potentiel est mémorisé dans une variable gatt .
Il est à noter que si le motif m ne comporte aucun attribut dont la valeur n'est pas dans le motif, le gain potentiel prend la valeur -1. Ensuite, on sélectionne le couple (contenu textuel, valeur de contenu textuel) le plus fréquent pour le motif m, au cours d'une étape 520, déterminant ainsi un contenu textuel et une valeur associée, puis on calcule le gain potentiel associé à ce couple, au cours d'une étape 530, et on mémorise ce gain potentiel dans une variable gtxt . Ces deux étapes sont réalisées de manière similaire aux étapes 500 et 510. Les étapes suivantes permettent de déterminer le meilleur sous-motif et la meilleure définition associée pour inclusion dans le motif m.
Tout d'abord, au cours d'une étape 540, on détermine s'il reste un sous-motif non inclus dans la définition du motif m et non encore traité. Si ce n'est pas le cas, on passe à l'étape 570. Si le résultat de l'étape 540 est positif, on sélectionne ce sous-motif, ainsi que la définition la plus fréquente parmi les instances du motif m, au cours d'une étape 550. Pour cela on sélectionne, au sein du motif m, un contenu correspondant à un sous-motif non inclus. Puis, pour chaque instance associée au motif m, on sélectionne la définition de sous-motif associée à ce contenu. En comptant le nombre d'occurrences de chaque définition de sous-motif pour ce contenu, on obtient la définition la plus fréquente pour ce sous-motif et on crée un couple (sous-motif, définition du sous-motif). Par exemple, pour le motif définition précédemment par la 5 description : - élément objet avec un attribut id et un attribut disponible ayant la valeur 1 , cet élément comprenant : - élément reference contenant une valeur textuelle - motif 10 - élément ouverture contenant une valeur textuelle. Un sous-motif non inclus est le sous-motif correspondant au deuxième sous-élément de l'élément objet . Ensuite, on évalue le gain potentiel correspondant à l'inclusion de la définition sélectionnée pour le sous-motif sélectionné dans un motif spécialisé, 15 au cours d'une étape 560. L'évaluation de ce gain potentiel est similaire à celle réalisée pour les valeurs d'attributs et les valeurs textuelles. Le gain potentiel pour cette définition de sous-motif est comparé au meilleur gain potentiel trouvé pour une définition de sous-motif précédemment évalué. Ce meilleur gain potentiel est mémorisé dans une variable gmot , cette variable étant 20 initialisée, au départ, à la valeur -1. Si le gain potentiel associé au sous-motif sélectionné et à la définition sélectionnée est supérieur à la valeur de la variable gmot , cette variable prend pour valeur ce gain potentiel, et le sous-motif sélectionné ainsi que la définition sélectionnée deviennent le sous-motif et la définition déterminés. 25 II est à noter que s'il n'y a aucun sous-motif non traité au sein du motif m, la valeur de la variable gmot est -1 (sa valeur initiale) et il n'y a aucun sous-motif déterminé. Après l'étape 560, on retourne à l'étape 540. Quand tous les sous-motifs ont été traités, au cours de l'étape 570, 30 on détermine le meilleur contenu à partir de la valeur d'attribut déterminée, de la valeur textuelle déterminée et de la définition de sous-motif déterminé. Pour cela, on compare les valeurs des trois variables gatt , gtxt et gmot .
Si ces trois valeurs sont négatives, il n'existe pas de contenu favorable pour la création d'un motif spécialisé. Dans ce cas, le contenu déterminé est nul. Sinon, l'algorithme détermine la plus grande de ces trois valeurs et le contenu déterminé est le contenu associé à la plus grande de ces trois valeurs. L'algorithme retourne le contenu déterminé lors de l'étape 580.. Puis, on passe à l'étape 450. II est à noter que l'algorithme décrit en regard de la figure 5 ne calcule pas l'ensemble des possibilités pour la création d'un motif spécialisé. Un tel calcul exhaustif est en effet souvent trop couteux et n'améliore pas nécessairement la solution trouvée. Il est à noter, d'autre part, que la détermination de la valeur d'attribut et la détermination de la valeur textuelle sont différentes de la détermination de la définition de sous-motif, pour des raisons structurelles. En effet, il y a une corrélation importante entre la fréquence d'une valeur d'attribut ou une fréquence de valeur textuelle et le gain potentiel associé, alors que ce n'est pas le cas pour une définition de sous-motif. Le choix réalisé dans le mode de réalisation illustré en figure 5 représente un bon compromis entre le temps de calcul et l'amélioration du résultat obtenu. Une première variante, consiste, pour chaque attribut et chaque contenu textuel, à calculer le gain potentiel pour la valeur la plus fréquente pour cet attribut ou contenu textuel. Dans cette variante, chaque attribut associé à sa valeur la plus fréquente est considéré comme attribut déterminé et valeur déterminée pour réaliser le calcul de gain potentiel décrit à l'étape 510. De même chaque contenu textuel associé à sa valeur la plus fréquente est considéré comme contenu textuel déterminé et valeur déterminée. Cette variante permet de réaliser un calcul de gain potentiel pour les attributs et les contenus textuels similaire à celui effectué pour les sous-motifs. Cette première variante permet d'évaluer un nombre plus important de possibilités pour la création de motifs spécialisés, au prix d'un accroissement des traitements à réaliser. Une variation de cette première variante consiste à calculer le gain potentiel pour les sous-motifs de la même manière que pour les attributs et les contenus textuels, c'est-à-dire en n'évaluant le gain potentiel que pour le couple (sous-motif, définition de sous-motif) le plus fréquent. Ceci permet d'accélérer la détermination du contenu le plus favorable au détriment de la qualité de cette détermination. Une autre variante du mode de réalisation illustré en figure 5 consiste à modifier le calcul du gain potentiel. Dans cette variante, lors du calcul du gain potentiel pour un attribut déterminé avec une valeur déterminée, le motif spécialisé évalué est créé différemment de ce qui est décrit ci-dessus. Le motif spécialisé comprend, d'une part, la valeur déterminée pour l'attribut déterminé et, d'autre part, toutes les valeurs d'attributs et toutes les valeurs textuelles restant constantes pour l'ensemble des instances pour lesquelles l'attribut déterminé possède la valeur déterminée. Le calcul du gain potentiel pour les contenus textuels et les sous-motifs est modifié de manière similaire. Cette variante permet une évaluation plus exacte du gain potentiel au prix d'un léger accroissement des traitements à réaliser.
Dans une autre variante, on modifie la variante précédente en évaluant plusieurs motifs spécialisés pour chaque calcul de gain potentiel. Lors du calcul du gain potentiel pour un attribut déterminé avec une valeur déterminée, on évalue un premier motif spécialisé créé comme dans la précédente variante. Ce premier motif spécialisé sert de base pour créer d'autres motifs spécialisés. Pour chaque sous-motif dont la définition reste constante pour l'ensemble des instances pour lesquelles l'attribut déterminé possède la valeur déterminée, on crée un motif spécialisé à partir du motif de base, le motif spécialisé comprenant cette définition. Si le coût de codage correspondant à ce nouveau motif spécialisé est inférieur au coût de codage pour le motif spécialisé servant de base, le motif spécialisé servant de base est remplacé par ce nouveau motif spécialisé. Quand l'ensemble des sous-motifs dont la définition reste constante a été traité, le gain potentiel est évalué à partir du motif spécialisé servant de base final. Le calcul du gain potentiel pour les contenus textuels et les sous-motifs est réalisé de manière similaire. Cette variante permet une évaluation plus exacte du gain potentiel au prix d'un accroissement des traitements à réaliser.
Dans les deux dernières variantes exposées ci-dessus, on évalue un ensemble de contenus, tandis que l'algorithme illustré en regard de la figure 5, ne fournit qu'un seul contenu. Les autres contenus de l'ensemble sont retrouvés lors de la spécialisation du motif spécialisé, au cours des étapes 400 à 430, mais cela entraîne une duplication de certains traitements. Par conséquent, il est avantageux, dans le cas de ces variantes, que l'algorithme illustré en regard de la figure 5 fournisse une liste de contenus. En outre, dans le cas de la spécialisation d'un motif spécialisé, les étapes 400 à 430 de la figure 4 ne sont pas réalisées.
Dans un mode de réalisation de la figure 5, à l'étape 500, si plusieurs valeurs d'attribut ont pour fréquence la plus grande fréquence, la valeur d'attribut déterminée est sélectionnée au hasard parmi ces valeurs d'attributs. Dans une première variante, la valeur d'attribut déterminée est la valeur d'attribut la plus grande, en terme de nombre de caractères la composant, parmi ces valeurs d'attribut. Dans une sous-variante, la comparaison de la taille des valeurs d'attribut s'effectue non pas sur le nombre de caractère les composant, mais sur le nombre d'octet nécessaire à les coder. Dans une autre variante, le gain potentiel est calculé pour chacune de ces valeurs d'attribut les plus fréquentes.
Un mode de réalisation et des variantes similaires peuvent être appliqués aux étapes 520 et 550. La figure 6 décrit des étapes permettant de déterminer si l'ensemble des motifs créés lors du raffinement restent efficaces dans le codage du document. Ces étapes permettent de sélectionner parmi les motifs créés ceux qui restent efficaces dans le codage du document. Au cours d'une étape 600, on détermine s'il reste au moins un motif non traité par les étapes illustrées en figure 6. Si ce n'est pas le cas, le traitement se termine à une étape 660. S'il reste un motif non traité, au cours d'une étape 610, on obtient un motif m non traité.
Ensuite, au cours d'une étape 620, on détermine si ce motif m possède un motif de base, c'est-à-dire s'il a été créé par spécialisation par rapport à un autre motif. Si c'est le cas, on calcule le gain obtenu en utilisant ce motif m, au cours d'une étape 630. Un premier coût de codage correspond au codage du motif de base et au codage de l'ensemble des instances associées au motif de base et au motif m en fonction du motif de base. Un deuxième coût de codage correspond au codage du motif de base, au codage du motif m, au codage de l'ensemble des instances associées au motif de base en fonction de ce motif de base et au codage de l'ensemble des instances associées au motif m en fonction de ce motif m. Le gain est la différence entre le premier coût de codage et ce deuxième coût de codage. Si le résultat de l'étape 620 est négatif, c'est-à-dire si le motif m ne possède pas de motif de base, alors le motif m est un motif de base et on calcule le gain obtenu en utilisant ce motif m, au cours d'une étape 635. Un premier coût de codage correspond au codage de l'ensemble des instances associées au motif m directement sans utiliser de motif et au codage de l'ensemble des motifs spécialisés du motif m directement. Un deuxième coût de codage correspond au codage du motif m, au codage de l'ensemble des instances associées au motif m en fonction du motif m et au codage de l'ensemble des motifs spécialisés du motif m en fonction du motif m. Le gain est la différence entre le premier coût de codage et le deuxième coût de codage. A la suite de chacune des étapes 630 et 635, au cours d'une étape 640, on évalue si le gain est positif. Si c'est le cas, le motif m est conservé, au cours d'une étape 645, et on retourne à l'étape 600. Si le gain n'est pas positif, le motif m est supprimé, au cours d'une étape 650, et les instances qui lui sont associées sont alors associées au motif de base, si celui-ci existe. Si le motif de base n'existe pas, les instances qui lui sont associées ne sont plus associées à aucun motif. Puis, on retourne à l'étape 600. Il est à noter que, pour un bon fonctionnement des étapes illustrées en figure 6, il est préférable que l'ensemble des motifs soit parcouru en commençant par les motifs spécialisés pour finir par les motifs de base. Si un motif est spécialisé à partir d'un motif spécialisé, le traitement commence par le motif le plus spécialisé, puis continue par celui un peu moins spécialisé, jusqu'à aboutir au motif de base.
Dans une variante de réalisation, les étapes illustrées en figure 6 sont exécutées plusieurs fois durant le processus de raffinement des motifs. Ceci permet d'éliminer, au fur et à mesure, les motifs qui ne sont plus efficace pour le codage du document.
La figure 7 décrit une autre méthode d'optimisation des motifs. Cet algorithme peut être exécuté avant l'algorithme de la figure 6. Il consiste à utiliser des motifs englobant dans le codage d'un fichier. Un motif englobant est la réunion de deux autres motifs, de préférence proches, cette réunion contenant l'ensemble des informations structurelles et de contenues comprises dans au moins l'un des deux motifs. Au cours d'une étape 700, on détermine s'il existe au moins un motif non traité par les étapes illustrées en figure 7. Si ce n'est pas le cas, le traitement s'achève à une étape 780. Si c'est le cas, on sélectionne un motif m non traité, au cours d'une étape 710. Puis, au cours d'une étape 720, on cherche un motif n proche de m. Un motif est considéré proche d'un autre motif en fonction décroissante du nombre d'informations structurelles et de contenus différant entre les deux motifs. Plus le nombre de différence entre les deux motifs est petit, plus les motifs sont considérés proches . Un critère de proximité prédéterminé est utilisé pour décider si un motif quelconque est proche du motif m. Au cours d'une étape 730, on détermine si un motif n proche du motif m a été trouvé. Sinon, on retourne à l'étape 700. Si un motif n proche du motif m a été trouvé, on construit un motif englobant eng , au cours d'une étape 740. Puis, au cours d'une étape 750, on calcule le gain potentiel associé à ce motif englobant eng. Un premier coût de codage correspond au coût de codage du motif m, au coût de codage du motif n, au coût de codage de l'ensemble des instances associées au motif m en fonction de ce motif m et au coût de codage de l'ensemble des instances associées au motif n en fonction de ce motif n. Un deuxième coût de codage correspond au coût de codage du motif eng, au coût de codage du motif m à partir du motif eng, au coût de codage du motif n à partir du motif eng, au coût de codage de l'ensemble des instances associées au motif m en fonction de ce motif m et au coût de codage de l'ensemble des instances associées au motif n en fonction de ce motif n. Le gain est la différence entre le premier coût de codage et le deuxième coût de codage. Au cours d'une étape 760, on détermine si le gain est positif. Sinon, on retourne à l'étape 700. Si le gain est positif, on passe à une étape 770, au cours de laquelle le motif eng est ajouté à l'ensemble des motifs utilisés pour le codage du document. Le motif eng n'a aucune instance associée, mais permet de réduire le coût de codage des motifs m et n. Puis, on retourne à l'étape 700. Une variante de réalisation consiste à chercher, pour un motif m, l'ensemble des motifs proches. Ensuite, pour chacun de ces motifs proches, le gain potentiel associé au motif englobant construit à partir du motif m et de ce motif proche est évalué. Le motif englobant dont le gain potentiel est le plus important est conservé pour le codage. Cette variante de réalisation peut être appliquée plusieurs fois à un même motif m, tant qu'un nouveau motif englobant présentant un gain potentiel positif peut être trouvé. De manière plus générale, il est possible d'ajouter de manière similaire d'autres motifs à l'ensemble des motifs utilisés pour le codage du document. Un nouveau motif ne sera ajouté que si le gain potentiel qui lui est associé est positif. Comme représenté en figure 8, un dispositif 810 mettant en oeuvre l'invention est par exemple un micro-ordinateur connecté à différents périphériques fournissant des informations à traiter par la mise en oeuvre de la présente invention. Le dispositif 810 comporte une interface de communication 812 reliée à un réseau 813 apte à transmettre des données numériques à traiter ou inversement à transmettre des données traitées par le dispositif. Le dispositif 810 comporte également un moyen de stockage 808 tel que par exemple un disque dur. Il comporte aussi un lecteur 809 de disque 815. Ce disque 815 peut être une disquette, un CD-ROM, ou un DVD-ROM, par exemple. Le disque 815 comme le disque 808 peut contenir des données traitées selon l'invention ainsi que le ou les programmes mettant en oeuvre l'invention qui, une fois lu par le dispositif 810, sera stocké dans le disque dur 808. Selon une variante, le programme permettant au dispositif de mettre en oeuvre l'invention, pourra être stocké en mémoire morte 802 (appelée ROM sur le dessin). En seconde variante, le programme pourra être reçu pour être stocké de façon identique à celle décrite précédemment par l'intermédiaire du réseau de communication 813. Le dispositif 810 possède un écran 804 permettant de visualiser les données à traiter ou de servir d'interface avec l'utilisateur qui peut ainsi paramétrer certains modes de traitement, à l'aide du clavier 814 ou de tout autre moyen (souris par exemple). L'unité centrale 800 (appelée CPU sur le dessin) exécute les instructions relatives à la mise en oeuvre de l'invention, instructions stockées dans la mémoire morte 802 ou dans les autres éléments de stockage. Par exemple, l'unité centrale réalise les étapes illustrées en figures 2 à 7. Lors de la mise sous tension, les programmes de traitement stockés dans une mémoire non volatile, par exemple la ROM 802, sont transférés dans la mémoire vive RAM 803 qui contiendra alors le code exécutable de l'invention ainsi que des registres pour mémoriser les variables nécessaires à la mise en oeuvre de l'invention. De manière plus générale, un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, mémorise un programme mettant en oeuvre le procédé de codage, de transmission et respectivement de décodage. Le bus de communication 801 permet la communication entre les différents éléments inclus dans le micro-ordinateur 810 ou reliés à lui. La représentation du bus 801 n'est pas limitative et notamment l'unité centrale 800 est susceptible de communiquer des instructions à tout élément du micro- ordinateur 810 directement ou par l'intermédiaire d'un autre élément du micro-ordinateur 810.

Claims (4)

REVENDICATIONS
1 - Procédé de codage d'un document hiérarchisé, caractérisé en ce qu'il comporte, pour au moins un élément contenu dans le document : - une étape (200, 210, 220, 310, 330, 430, 460, 470, 480, 740) de création d'au moins un motif qui décrit au moins des informations structurelles dudit élément et - une étape (230, 330, 420, 640, 760) de sélection d'utilisation, ou non, d'au moins un des motifs créés, ladite sélection étant fonction de l'efficacité d'un codage d'un ensemble d'instances du motif créé, ledit codage mettant en oeuvre ledit motif créé.
2 - Procédé de codage selon la revendication 1, caractérisé en ce qu'il comporte, pour au moins un élément contenu dans le document : - une étape (200, 210, 220, 310, 330, 430, 460, 470, 480, 740) de création d'au moins deux motifs qui décrivent au moins des informations structurelles dudit élément et - une étape (230, 330, 420, 640, 760) de sélection d'au moins un des motifs créés, ladite sélection étant fonction de l'efficacité d'une pluralité de codages d'un ensemble d'instances des motifs créés, un codage mettant en oeuvre au moins un des motifs créés.
3 - Procédé selon la revendication 2, dans lequel, l'étape de création d'au moins deux motifs comporte : - une étape (200, 210) de création d'un motif initial qui décrit au 25 moins des informations structurelles dudit élément et - une étape (220, 310, 330, 430, 460, 470, 480, 740) de création d'au moins un motif spécialisé par modification d'un motif déjà créé dit à spécialiser .
4 û Procédé selon la revendication 3, dans lequel, au cours de l'étape (200, 30 210) de création du motif initial, on crée un motif dit vide qui ne comporte aucune description d'informations de contenu dudit élément et, pour le motif vide, un ensemble des valeurs correspondant à des instances associées auditmotif vide et, au cours de l'étape de création d'un motif spécialisé, on met en oeuvre au moins un motif à spécialiser et un ensemble de valeurs associées. û Procédé selon l'une quelconque des revendications 3 ou 4, dans lequel, au cours de l'étape (220, 310, 330, 430, 460, 470, 480, 740) de création d'au 5 moins un motif spécialisé, on crée, à partir du motif à spécialiser au moins un motif spécialisé comportant de l'information de contenu commune à plusieurs instances du motif à spécialiser. 6 û Procédé selon l'une quelconque des revendications 3 à 5, dans lequel l'étape de création d'au moins un motif spécialisé comporte une étape (470, 480) de séparation des instances du motif à spécialiser en deux ensembles, l'un restant associé au motif à spécialiser, l'autre étant associé au motif spécialisé. 7 û Procédé selon l'une quelconque des revendications 3 à 6, dans lequel, au cours de l'étape (500, 520, 540, 550) de création d'au moins un motif spécialisé on crée un motif spécialisé en incorporant au motif à spécialiser au moins un des couples d'au moins un des ensembles de couples suivants : (attribut, valeur d'attribut) possédé par toutes les instances associées au motif à spécialiser, (contenu textuel, valeur de contenu textuel) possédé par toutes les instances associées au motif à spécialiser et (sous-motif, définition du sous-motif) possédé par toutes les instances associées au motif à spécialiser. 8 û Procédé selon l'une quelconque des revendications 3 à 6, dans lequel, au cours de l'étape (500, 520, 540, 550) de création d'au moins un motif spécialisé on crée un motif spécialisé en incorporant au motif à spécialiser au moins l'un des couples : (attribut, valeur d'attribut) le plus fréquent pour les instances associées au motif à spécialiser, (contenu textuel, valeur de contenu textuel) le plus fréquent pour les instances associées au motif à spécialiser et(sous-motif, définition du sous-motif) le plus fréquent pour les instances associées au motif à spécialiser. 9 û Procédé selon la revendication 8, dans lequel, l'étape de création d'au moins un motif spécialisé comporte une étape de séparation (470, 480) des instances du motif à spécialiser en deux ensembles, l'un restant associé au motif à spécialiser, l'autre étant associé au motif spécialisé, les instances comprenant ledit couple étant associées au motif spécialisé, les instances ne comprenant pas ledit couple étant associées au motif à spécialiser. û Procédé selon l'une quelconque des revendications 6 ou 9, dans lequel, à 10 la suite de l'étape (470, 480) de séparation des instances, on effectue une étape supplémentaire de création de motifs spécialisés sur les motifs et instances résultant de l'étape de séparation, lorsque le nombre d'instances associées à un motif est supérieur à une valeur prédéterminée. 11 û Procédé selon l'une quelconque des revendications 1 à 10, dans lequel l'étape de sélection (230, 330, 420, 640, 760) comporte une étape (420, 510, 530, 560, 630, 635, 750) de détermination, pour chaque motif créé, du gain de codage en cas de mise en oeuvre de ce motif créé, par rapport au codage sans mettre en oeuvre ledit motif et une étape (420, 570, 650, 760) d'élimination des motifs créés pour lesquels ledit gain est négatif. 12 û Procédé selon l'une quelconque des revendications 1 à 11, dans lequel on effectue les étapes (300, 310, 320) de création et de sélection successivement, pour au moins un élément du document, d'au moins un motif associé à l'un au moins des sous-éléments dudit élément et d'un motif associé audit élément. 13 û Procédé selon l'une quelconque des revendications 1 à 12, qui comporte une étape (740) de création d'un motif dit englobant formé par la réunion d'au moins deux motifs créés, cette réunion contenant l'ensemble des informations structurelles et de contenu comprises dans au moins l'un des motifs réunis. 14 - Dispositif de codage d'un document hiérarchisé, comportant, pour traiter au 30 moins un élément contenu dans le document : - un moyen (800, 802, 803) de création d'au moins un motif qui décrit au moins des informations structurelles dudit élément et- un moyen (800, 802, 803) de sélection d'utilisation, ou non, de chaque motif créé, ladite sélection étant fonction de l'efficacité d'un codage d'un ensemble d'instances du motif créé, ledit codage mettant en oeuvre ledit motif créé. 15 û Dispositif de codage selon la revendication 14, caractérisé en ce que : - le moyen (800, 802, 803) de création est adapté à créer d'au moins deux motifs qui décrivent au moins des informations structurelles dudit élément et - le moyen (800, 802, 803) de sélection sélectionne au moins un des motifs créés, étant fonction de l'efficacité d'une pluralité de codages d'un ensemble d'instances des motifs créés, un codage mettant en oeuvre au moins un des motifs créés. 16 - Programme d'ordinateur chargeable dans un système informatique (810), ledit programme contenant des instructions permettant la mise en oeuvre du procédé de codage selon l'une quelconque des revendications 1 à 13. 17 -Support d'informations (808, 815) lisibles par un ordinateur (810) ou un microprocesseur (800), amovible ou non, conservant des instructions d'un programme informatique, caractérisé en ce qu'il permet la mise en oeuvre du procédé de codage selon l'une quelconque des revendications 1 à 13.20
FR0754246A 2007-04-03 2007-04-03 Procede et dispositif de codage d'un document hierarchise Expired - Fee Related FR2914759B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0754246A FR2914759B1 (fr) 2007-04-03 2007-04-03 Procede et dispositif de codage d'un document hierarchise
US12/060,965 US8788509B2 (en) 2007-04-03 2008-04-02 Method and device for coding a hierarchized document

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0754246A FR2914759B1 (fr) 2007-04-03 2007-04-03 Procede et dispositif de codage d'un document hierarchise

Publications (2)

Publication Number Publication Date
FR2914759A1 true FR2914759A1 (fr) 2008-10-10
FR2914759B1 FR2914759B1 (fr) 2009-06-05

Family

ID=38895721

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0754246A Expired - Fee Related FR2914759B1 (fr) 2007-04-03 2007-04-03 Procede et dispositif de codage d'un document hierarchise

Country Status (2)

Country Link
US (1) US8788509B2 (fr)
FR (1) FR2914759B1 (fr)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2913274A1 (fr) 2007-03-02 2008-09-05 Canon Kk Procede et dispositif de codage de document et procede et dispositif de decodage de document.
FR2919400A1 (fr) * 2007-07-23 2009-01-30 Canon Kk Procede et dispositif d'encodage d'un document structure et procede et dispositif de decodage d'un document ainsi encode.
FR2924244B1 (fr) * 2007-11-22 2010-04-23 Canon Kk Procede et dispositif d'encodage et de decodage d'information
FR2931271B1 (fr) * 2008-05-15 2012-07-27 Canon Kk Procede et dispositif de codage d'un document structure et procede et dispositif de decodage d'un document ainsi code
FR2933514B1 (fr) 2008-07-02 2012-10-19 Canon Kk Procedes et dispositifs de codage et de decodage par similarites pour documents de type xml
FR2936623B1 (fr) * 2008-09-30 2011-03-04 Canon Kk Procede de codage d'un document structure et de decodage, dispositifs correspondants
FR2939535B1 (fr) * 2008-12-10 2013-08-16 Canon Kk Procede et systeme de traitement pour la configuration d'un processseur exi
FR2943441A1 (fr) * 2009-03-18 2010-09-24 Canon Kk Procede de codage ou decodage d'un document structure a l'aide d'un schema xml, dispositif et structure de donnees associes
EP2264904B9 (fr) * 2009-06-16 2013-08-21 Canon Kabushiki Kaisha Procédés et dispositif de codage et décodage binaire pour un document structuré comprenant une pluralité de données
EP2278550B1 (fr) * 2009-06-17 2013-08-14 Canon Kabushiki Kaisha Procédé de codage et décodage d'une séquence de chemin graphique dans un schéma à niveaux
EP2527381A1 (fr) * 2011-05-26 2012-11-28 Basf Se Mousses polyuréthane hautement élastiques comprenant de l'huile de ricin
US8698657B2 (en) 2012-09-10 2014-04-15 Canon Kabushiki Kaisha Methods and systems for compressing and decompressing data
US10733237B2 (en) 2015-09-22 2020-08-04 International Business Machines Corporation Creating data objects to separately store common data included in documents
JP6744571B2 (ja) * 2016-06-22 2020-08-19 富士ゼロックス株式会社 情報処理装置およびプログラム
US10467275B2 (en) * 2016-12-09 2019-11-05 International Business Machines Corporation Storage efficiency
US11711526B2 (en) 2018-04-05 2023-07-25 Canon Kabushiki Kaisha Method and apparatus for encapsulating images or sequences of images with proprietary information in a file

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1517449A2 (fr) * 2003-09-19 2005-03-23 NTT DoCoMo, Inc. Compression de documents XML

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4776050B2 (ja) * 1999-07-13 2011-09-21 ソニー株式会社 配信コンテンツ生成方法、コンテンツ配信方法および装置、並びに、コード変換方法
JP2001203897A (ja) * 2000-01-18 2001-07-27 Nec Corp パタンマッチング符号化装置及び方法
JP4774145B2 (ja) * 2000-11-24 2011-09-14 富士通株式会社 構造化文書圧縮装置および構造化文書復元装置並びに構造化文書処理システム
EP1430420A2 (fr) * 2001-05-31 2004-06-23 Lixto Software GmbH Generation visuelle et interactive de programmes d'extraction, extraction automatisee d'informations contenues dans des pages web et traduction en langage xml
JP4267336B2 (ja) * 2003-01-30 2009-05-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 構造パターン候補を生成する方法、システムおよびプログラム
JP4177218B2 (ja) * 2003-09-24 2008-11-05 株式会社エヌ・ティ・ティ・ドコモ 文書変換装置
US8166053B2 (en) * 2003-10-30 2012-04-24 Ntt Docomo, Inc. Method and apparatus for schema-driven XML parsing optimization
US7873663B2 (en) * 2004-01-13 2011-01-18 International Business Machines Corporation Methods and apparatus for converting a representation of XML and other markup language data to a data structure format
US7287217B2 (en) * 2004-01-13 2007-10-23 International Business Machines Corporation Method and apparatus for processing markup language information
US20060101435A1 (en) * 2004-10-13 2006-05-11 International Business Machines Corporation Detection of code patterns
US7949941B2 (en) * 2005-04-22 2011-05-24 Oracle International Corporation Optimizing XSLT based on input XML document structure description and translating XSLT into equivalent XQuery expressions
JP4236055B2 (ja) * 2005-12-27 2009-03-11 インターナショナル・ビジネス・マシーンズ・コーポレーション 構造化文書処理装置、方法、プログラム
US7593949B2 (en) * 2006-01-09 2009-09-22 Microsoft Corporation Compression of structured documents
FR2907567B1 (fr) 2006-10-23 2008-12-26 Canon Kk Procede et dispositif de generation de motifs de reference a partir d'un document ecrit en langage de balisage et procedes et dispositifs de codage et de decodage associes.

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1517449A2 (fr) * 2003-09-19 2005-03-23 NTT DoCoMo, Inc. Compression de documents XML

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
AKIRA KINNO ET AL: "Recursive Application of Structural Templates to Efficiently Compress Parsed XML", 2005, WEB ENGINEERING LECTURE NOTES IN COMPUTER SCIENCE;;LNCS, SPRINGER-VERLAG, BE, PAGE(S) 296-301, ISBN: 3-540-27996-2, XP019013532 *
KALMAN ET AL: "Compacting XML documents", INFORMATION AND SOFTWARE TECHNOLOGY, ELSEVIER, AMSTERDAM, NL, vol. 48, no. 2, February 2006 (2006-02-01), pages 90 - 106, XP005204706, ISSN: 0950-5849 *
WILFRED NG ET AL: "Comparative Analysis of XML Compression Technologies", WORLD WIDE WEB ; INTERNET AND WEB INFORMATION SYSTEMS, KLUWER ACADEMIC PUBLISHERS, DO, vol. 9, no. 1, 1 March 2006 (2006-03-01), pages 5 - 33, XP019216855, ISSN: 1573-1413 *
ZAKI M J: "Efficiently Mining Frequent Trees in a Forest: Algorithms and Applications", IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US, vol. 17, no. 8, August 2005 (2005-08-01), pages 1021 - 1035, XP011135628, ISSN: 1041-4347 *

Also Published As

Publication number Publication date
US8788509B2 (en) 2014-07-22
FR2914759B1 (fr) 2009-06-05
US20080250055A1 (en) 2008-10-09

Similar Documents

Publication Publication Date Title
FR2914759A1 (fr) Procede et dispositif de codage d&#39;un document hierarchise
FR2931271A1 (fr) Procede et dispositif de codage d&#39;un document structure et procede et dispositif de decodage d&#39;un document ainsi code
FR2926378A1 (fr) Procede et dispositif de traitement pour l&#39;encodage d&#39;un document de donnees hierarchisees
FR2933793A1 (fr) Procedes de codage et de decodage, par referencement, de valeurs dans un document structure, et systemes associes.
FR2939535A1 (fr) Procede et systeme de traitement pour la configuration d&#39;un processseur exi
FR2936623A1 (fr) Procede de codage d&#39;un document structure et de decodage, dispositifs correspondants
FR2924244A1 (fr) Procede et dispositif d&#39;encodage et de decodage d&#39;information
FR2907567A1 (fr) Procede et dispositif de generation de motifs de reference a partir d&#39;un document ecrit en langage de balisage et procedes et dispositifs de codage et de decodage associes.
FR2927712A1 (fr) Procede et dispositif d&#39;acces a une production d&#39;une grammaire pour le traitement d&#39;un document de donnees hierarchisees.
FR2909198A1 (fr) Procede et disositif de filtrage d&#39;elements d&#39;un document structure a partir d&#39;une expression.
FR2933514A1 (fr) Procedes et dispositifs de codage et de decodage par similarites pour documents de type xml
WO2002061616A1 (fr) Procede de codage et de decodage d&#39;un chemin dans l&#39;arborescence d&#39;un document structure
FR2930661A1 (fr) Procede d&#39;acces a une partie ou de modification d&#39;une partie d&#39;un document xml binaire, dispositifs associes
FR2943441A1 (fr) Procede de codage ou decodage d&#39;un document structure a l&#39;aide d&#39;un schema xml, dispositif et structure de donnees associes
FR2919400A1 (fr) Procede et dispositif d&#39;encodage d&#39;un document structure et procede et dispositif de decodage d&#39;un document ainsi encode.
FR2895813A1 (fr) Procede et dispositif d&#39;aide a la construction d&#39;une arborescence de groupe de documents electroniques
EP1635273A1 (fr) Construction informatique d&#39;un arbre lexical
FR2913274A1 (fr) Procede et dispositif de codage de document et procede et dispositif de decodage de document.
FR2901037A1 (fr) Procede et dispositif de generation de motifs structurels de reference aptes a representer des donnees hierarchisees
FR2902913A1 (fr) Procede et dispositif de codage d&#39;une note de similarite semantique et spatiale entre concepts d&#39;une ontologie memorisee sous forme de treillis numerote hierarchiquement
FR2911200A1 (fr) Procede et dispositif de traitement de documents a partir de schemas enrichis et procede et dispositif de decodage correspondants
FR2913275A1 (fr) Procede et dispositif de codage d&#39;un document et procede et dispositif de decodage d&#39;un document.
FR2954983A1 (fr) Procede et dispositif de codage d&#39;un document structure memorise sous forme d&#39;arbre dom
FR2925192A1 (fr) Procede et dispositif de generation d&#39;expressions et de documents
FR2941071A1 (fr) Procede et systeme de configuration d&#39;un processeur exi

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20131231