ES2272666T3 - Procedimiento de compresion/descompresion de un documento estructurado. - Google Patents

Procedimiento de compresion/descompresion de un documento estructurado. Download PDF

Info

Publication number
ES2272666T3
ES2272666T3 ES02701380T ES02701380T ES2272666T3 ES 2272666 T3 ES2272666 T3 ES 2272666T3 ES 02701380 T ES02701380 T ES 02701380T ES 02701380 T ES02701380 T ES 02701380T ES 2272666 T3 ES2272666 T3 ES 2272666T3
Authority
ES
Spain
Prior art keywords
document
elements
component
code
sequence
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.)
Expired - Lifetime
Application number
ES02701380T
Other languages
English (en)
Inventor
Claude Seyrat
Cedric Thienot
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.)
Expway SA
Original Assignee
Expway SA
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 Expway SA filed Critical Expway SA
Application granted granted Critical
Publication of ES2272666T3 publication Critical patent/ES2272666T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Library & Information Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Document Processing Apparatus (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Auxiliary Devices For And Details Of Packaging Control (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Jellies, Jams, And Syrups (AREA)
  • Press Drives And Press Lines (AREA)

Abstract

Procedimiento de compresión de un documento estructurado que comprende elementos de información imbricados los unos en los otros y asociados cada uno a un tipo de información, estando el documento estructurado (2) con al menos un esquema de estructura ( 1; 31, 39, 43) que define una estructura arborescente del documento que comprende componentes de estructura (a3, a4, X, Y, a1, a5, a1, a2, A, B, 32, 33, 34, 40, 44, 45, 46) imbricados los unos en los otros, estando cada tipo de información en el documento definido por un componente del esquema, caracterizado por que comprende las etapas consistentes en: -analizar (11) el esquema de estructura (1) del documento generado, para cada componente del esquema de estructura, una secuencia de instrucciónes ejecutables (5) que comprende instrucciones de inserción en un flujo binario, de códigos de control y de valores comprimidos de elementos de informaciones o de códigos de llamada de secuencias de instrucciones de componente, e instrucciones de control del desarrollo de la ejecución de la secuencia en función de los valores de códigos de control, permitiendo la ejecución de secuencias de instrucciones en el documento estructurado (2) comprimir el documento estructurado (2) en un flujo binario (10) que contiene valores comprimidos de elementos de informaciones del documento, -ejecutar (14) sobre el documento estructurado (2) la secuencia de instrucciones generadas, para obtener un flujo binario (10) que contiene los valores comprimidos de elementos de información en el documento.

Description

Procedimiento de compresión/descompresión de un documento estructurado.
La presente invención se relaciona con un procedimiento de compresión/descompresión de documentos estructurados.
Se aplica particularmente pero no exclusivamente, a la transmisión de documentos tales como imágenes o secuencias de imágenes, datos, vídeo o sonoras, por redes de transmisión de datos numéricos, así como al almacenamiento de tales documentos, y de datos que describen estos documentos.
Un documento estructurado es una colección de elementos de informaciones asociadas cada una a un tipo y atributos, y compuestos entre ellos según relaciones principalmente jerárquicas. Estos documentos emplean un lenguaje de estructuración tales como SGML, HTML. XML, que permiten particularmente distinguir los diferentes sub-elementos de información que componen el documento. Por oposición, en un documento denominado lineal, las informaciones de contenido en el documento son mezcladas a las informaciones de presentación y de mecanografiado.
Un documento estructural incluye señales de separación de los diferentes elementos de informaciones en el documento. En los casos de formatos SGML, XML, o HTML, estas señales llamadas "balizas" son de la forma "<XXXX>" y "</XXXX>", indicando la primera señal el inicio de un elemento de informaciones "XXXX" y el segundo el final de este elemento. Un elemento de información puede estar compuesto de varios elementos de información de más bajo nivel. Así, un documento estructurado presenta un esquema de estructura jerárquica o arborescente, representando cada nodo un elemento de informaciones y estando unido a un nodo de nivel jerárquico superior que representa un elemento de información que contiene los elementos de informaciones de nivel inferior. Los nodos situados en el extremo de la rama de esta estructura arborescente que representan los elementos de información que contienen datos de un tipo predefinido, que no pueden estar descompuestos en sub-elementos de
informaciones.
Así, un documento estructurado contiene señales de separación representadas bajo la forma de datos textuales o binarios, estas señales que delimitan elementos o sub-elementos de informaciones que pueden ellos mismos contener en otros sub-elementos de informaciones delimitadas por señales.
Por otro lado un documento estructurado está asociado a lo que se llama un esquema de estructura que define bajo la forma de reglas la estructura y el tipo de información de cada elemento de informaciones en el documento. Un esquema está constituido de grupos imbricados de componentes, pudiendo ser estos grupos secuencias ordenadas, grupos de componentes alternativos o grupos de componentes necesarios, ordenados o no ordenados.
Actualmente, existen varios algoritmos de compresión de documentos numéricos. Ciertos algoritmos de compresión son conocidos por tratar directamente los datos binarios en el documento, sin tener en cuenta el tipo de estos datos. Estos algoritmos presentan la ventaja de que pueden tratar no importa que documento, pero son poco eficientes (tasa de compresión poco elevada) para tratar estos documentos voluminosos que son generadamente del tipo sonido o imagen.
Se conocen por otra parte otros algoritmos de compresión más eficaces, pero especialmente adaptados a un tipo de datos, por ejemplo de tipo imagen o sonido, de manera que no son utilizables, o potentes si son aplicados a documentos que no contienen exclusivamente datos para los cuales son concebidos. Por consiguiente los algoritmos de compresión específicos de un tipo de datos particular son poco eficaces y mal adaptados para tratar los documentos estructurados que contienen diferentes tipos de datos.
En los documentos XMILL: "An efficient Compressor for XML Data" de H. Liefke et al., Sigmod Record, Association for Computing Machinery, New York, US, Vol. 29, n°2, juin 2000, pages 153-164, et "Millau: An Encoding Format for Efficient Representation and Exchange of XML over the Web" de M. Girardot et al., Computer Networks ans ISDN Systems, North Holland Publishing. Amsterdam, NL, Vol. 33, n° 1-6, juin 2000, pages 747-765, son puestos a punto algoritmos de compresión adaptados a la compresión de documentos al formato XML.
La presente invención tiene por meta suprimir los inconvenientes mencionados anteriormente y mejorar los algoritmos adaptados a los documentos al formato XML. El objetivo es alcanzar mediante la previsión de un procedimiento de compresión de un documento estructurado que comprende elementos de informaciones imbricadas las unas en las otras y asociadas cada uno a un tipo de información, estando el documento estructurado asociado con al menos un esquema de estructura que define una estructura arborescente en el documento y comprende componentes de estructura imbricados los unos en los otros, estando cada tipo de información en el documento definido por un componente del esquema.
Según la invención este procedimiento comprende etapas que consisten en:
- analizar el esquema de estructura en el documento, generado, para cada componente del esquema de estructura una secuencia de instrucciones ejecutables, que comprenden instrucciones de inserción en un flujo binario, de códigos de control y de valores comprimidos de elementos de informaciones o de códigos de llamadas de secuencia de instrucciones de componentes, y de instrucciones de control del desarrollo de la ejecución de la secuencia en función de los valores de los códigos de control.
La ejecución de la secuencia de instrucción sobre el documento estructurado que permite comprimir el documento estructurado en un flujo binario que contienen los valores comprimidos de los elementos de informaciones en el documento,
- ejecutar en el documento estructurado las secuencias de instrucciones generadas, para obtener un flujo binario que contiene los valores comprimidos de los elementos de informaciones en el documento.
Según una particularidad de la invención, el documento que comprende elementos de base no descomprimidos en sub-elementos, al menos un tipo de información de los elementos de base está asociada previamente a un algoritmo de compresión adaptado al tipo de información, comprendiendo el procedimiento, durante la ejecución de la secuencia de instrucciones, la aplicación del algoritmo de compresión con el valor de cada elemento de información que tiene un tipo de información asociada al dicho algoritmo.
Según otra particularidad de la invención, el procedimiento comprende una etapa de compilación de secuencias de instrucciones obtenidas para cada componente del dicho esquema de estructura, para obtener un programa binario de codificación dedicado al dicho esquema de estructura, y directamente ejecutable o interpretable por un ordenador para comprimir un documento que tenga el esquema de estructura.
Según aún una otra particularidad de la invención, el procedimiento comprende una etapa previa de normalización del esquema de estructura en el documento, de manera que se obtenga un orden único predefinido de los componentes del esquema.
Según aún una otra particularidad de la invención, el procedimiento comprende una etapa previa de optimización y de simplificación del esquema de estructura en el documento que consiste en reducir el número de niveles de imbricaciones de componentes de estructura.
Ventajosamente, al menos un elemento de informaciones en el documento está asociado, del flujo binario generado, con un código de elemento de informaciones que está señalado de manera que permite el acceso directo con un elemento de informaciones comprimidos particular del flujo binario, sin que sea necesario descomprimir los elementos de informaciones que preceden el elemento en descomprimir del flujo binario.
Según aún una otra particularidad de la invención, el documento comprimido generado comprende para cada elemento de informaciones en el documento estructurado, un código que permite determinar el tipo de informaciones asociadas con el elemento de informaciones, y el valor binario del elemento de informaciones.
Según aún otra particularidad de la invención, el esquema de estructura en el documento comprende la definición de sub-tipos de al menos un tipo de información, y del que la secuencia de instrucciones que está generada para un componente de un tipo que tenga un sub-tipo comprende sucesivamente:
- Una instrucción de inserción de un código de sub-tipo que representa un sub-tipo para aplicar a un elemento que corresponda en el documento al componente, asociado al tamaño de ese código en número de bits, y
- instrucciones de prueba del valor del código de sub-tipo, estando cada instrucción asociada a una referencia al sub-tipo del elemento que corresponde al valor del código de sub-tipo probado, y a una secuencia de instrucciones que está generada para la compresión de un elemento asociado al sub-tipo.
Preferiblemente, el flujo binario que está generado para un componente que corresponda en el documento a varias circunstancias de un conjunto de elementos que comprenden al menos un elemento de informaciones, comprende un código de final predefinido.
Según aún una otra particularidad de la invención, a componente del esquema de estructura corresponde en el documento a un conjunto de elementos que comprenden al menos un elemento de informaciones, y está además asociado a un conjunto de números de circunstancias posibles, que indican el número de veces que un conjunto de elementos correspondientes a este componente, puede aparecer en un elemento de informaciones de nivel inmediatamente superior al cual corresponde.
Según aún una otra particularidad de la invención, la secuencia de instrucciones que es generada para un componente que tiene el número de circunstancias igual a 0 ó 1 comprende sucesivamente:
- una instrucción de inserción de un código de presencia sobre bit que indica la presencia o no en el documento de un conjunto de elementos correspondientes al componente,
- una instrucción de prueba del valor del código de presencia, y
\newpage
- en asociación con la instrucción de prueba, si el valor del código de presencia indica la presencia del conjunto de elementos en el documento, una secuencia de instrucciones que esta genera para el componente, independientemente del número de circunstancias asociadas.
Según aún otra particularidad de la invención, la secuencia de instrucciones que es generada para un componente que tiene un número de circunstancias comprendidas entre n y m comprende sucesivamente:
- una instrucción de inserción de un código de número de circunstancias que indican el número de circunstancias sucesivas de un conjunto de elementos que corresponden al componente en el documento comprimido, al cual se le ha suprimido el número n mínimo de circunstancias, asociados al tamaño de ese código en número de bits,
- una instrucción de bucle que define un número de iteraciones correspondientes al valor del código de número de circunstancias, y
- en asociación con la instrucción de bucle, una secuencia de instrucciones que es generada para el componente, independientemente del número de circunstancias asociadas.
Según aún una otra particularidad de la invención, la secuencia de instrucciones que es generada para un componente que tiene un número de circunstancias comprendidas entre 0 y m comprende además:
- una instrucción de inserción de un código de presencia que indica sobre un bit la presencia o no en el documento de al menos una circunstancia del conjunto de elementos correspondientes al componente, y
- una instrucción de prueba del valor del código de presencia, asociado a la secuencia de instrucciones generada para un número de circunstancias comprendidas entre 1 y m del componente, si el valor del código de presencia indica la presencia de al menos un conjunto de elementos.
Según aún otra particularidad de la invención, la secuencia de instrucciones que es generada para un componente que tiene un número de circunstancias comprendidas entre n y m comprende sucesivamente:
- una instrucción de inserción de un código de presencia sobre bit de una circunstancia de un conjunto de elementos que corresponde al componente en el documento, asociado al tamaño de ese código el número de bits,
- una instrucción de bucle para ejecutar en tanto que el código de presencia para insertar indique la presencia de una nueva circunstancia del conjunto de elementos,
- en asociación con la instrucción de bucle, una secuencia de instrucciones que es generada por el componente, y una instrucción de inserción de un nuevo código de presencia sobre un bit de una nueva circunstancia del conjunto de elementos en el documento.
Según aún una otra particularidad de la invención, cada componente del esquema de estructura corresponde a un conjunto de elementos que comprende al menos un elemento de informaciones, en el que el esquema de estructura en el documento estructurado comprende al menos un componente de tipo secuencia de componentes ordenados, cuyo orden de aparición en la secuencia define al orden de aparición en el documento de los conjuntos de elementos correspondientes a los componentes del grupo de tipo de secuencia, y en que la secuencia de instrucciones que es generada para una secuencia que comprende n componentes comprende sucesivamente secuencias de instrucciones que son generadas para cada componente de la secuencia.
Según aún una otra particularidad de la invención, cada componente del esquema de estructura corresponde con un conjunto de elementos que comprenden al menos un elemento de informaciones, en el que el esquema de estructura en el documento para comprimir comprende al menos un componente de tipo secuencia de componentes alternativos, cada componente alternativo correspondiente con un conjunto de elementos de informaciones, el componente de tipo grupo de componentes alternativos correspondiente en el documento a un conjunto de informaciones que corresponden a los componentes alternativos, y en que la secuencia de instrucciones que es generada para un grupo de componentes alternativos que comprende n componentes que definen respectivamente n conjuntos de elementos, comprende sucesivamente:
- una instrucción de inserción de un código de número de conjunto de elementos que designan el conjunto de elementos que aparecen en el documento entre los n conjuntos de elementos asociad a la tamaño en número de bits de ese código, y
- instrucciones de prueba del valor de código de número de conjunto de elementos, estando cada instrucción de prueba asociada a una secuencia de instrucciones que es generada para el componente correspondiente al conjunto de elementos que corresponde al valor probado del código del número del número de elementos.
Según aún una otra particularidad de la invención, cada componente del esquema de estructura corresponde con un conjunto de elementos que comprende al menos un elemento de informaciones, en el que el esquema de estructura en el documento para comprimir comprende al menos un grupo ético no ordenado de componentes, cada componente del grupo no ordenado correspondiente con un conjunto de elementos y el grupo de tipo grupo no ordenado correspondiente en el documento con un grupo que reúne en un orden cualquiera todo los conjuntos de elementos correspondiente a los componentes del grupo de tipo no ordenado, y del que la secuencia de instrucciones que es generada para un grupo de tipo no ordenado que comprende n componentes correspondientes en el documento respectivamente a n conjuntos de elementos, comprendiendo sucesivamente
- una instrucción de inserción de un código de un número de conjunto de elementos que designa el conjunto de elementos que aparecen en el documento, entre los n conjuntos de elementos, asociados con el tamaño en número de bits de ese código, y
- instrucciones de prueba del valor del código de número de conjunto de elementos, estando cada instrucción de prueba asociada con secuencia de instrucciones que es generada por el componente que corresponde con el conjunto de elementos correspondiente al valor del código del número de conjunto de elementos
probado, y una secuencia de instrucciones que es generada para un grupo de tipo no ordenado que comprende todo los componentes del grupo no ordenado salvo el componente correspondiente con el conjunto de elementos.
La invención se relaciona igualmente con un procedimiento de descompresión de un documento estructurado que comprende elementos de informaciones imbricadas las unas en las otras y asociadas cada una con un tipo de información, estando el documento estructurado asociado con al menos un esquema de estructura que define una estructura arborescente en el documento y que comprende componentes de estructura imbricados los unos en los otros, estando cada tipo de información en el documento definido por un componente del esquema.
Según la invención este procedimiento comprende etapas que consisten en:
- analizar el esquema de estructura en el documento generado, para componente del esquema de estructura, una secuencia de instrucciones ejecutables, que comprende instrucciones de lectura en un flujo binario que constituye el documento comprimido, de códigos de control y de valores comprimidos de elementos de informaciones o de códigos de llamada de secuencias de instrucciones de componentes y de instrucciones de control del desarrollo de la ejecución de la secuencia en función de los valores de los códigos de control, la ejecución de la secuencia de instrucciones en el documento comprimido que permite en reconstituir un documento al formato en el documento de origen y que tiene una estructura al menos equivalente,
- ejecutar sobre el flujo binario constituyente el documento para descomprimir la secuencia de instrucciones generadas, para obtener un documento estructurado al formato en el documento estructurado de origen y que tiene una estructura al menos equivalente.
Ventajosamente, este procedimiento comprende además una etapa de ejecución de secuencia de instrucciones del flujo binario que constituye el documento por descomprimir.
Según una particularidad de la invención, el documento estructurado que comprende elementos de base no descompuestos en sub-elementos, al menos un tipo de información de elementos de base está asociada a un algoritmo de descompresión adaptado al tipo de información, el procedimiento que comprende, durante la ejecución secuencias de instrucciones sobre el flujo binario que constituye el documento comprimido, la detección en el flujo binario de un código binario de un elemento de informaciones que corresponde al dicho tipo de información, y la aplicación del algoritmo de compresión con ese código binario.
Según otra particularidad de la invención, el procedimiento comprende una etapa de compilación de secuencia de instrucciones obtenidas para cada componente del dicho esquema de estructura, para obtener un programa binario de decodificación dedicado al dicho esquema de estructura, y directamente ejecutable o interpretable por un ordenador para descomprimir un documento que tenga este esquema de estructura.
Según aún una otra particularidad en la invención, el procedimiento comprende una etapa previa de normalización del esquema de estructura en el documento, de manera que se obtiene un orden único predefinido de los componentes del esquema.
Según aún una otra particularidad de la invención, el procedimiento comprende una etapa previa de optimización y de simplificación del esquema de estructura en el documento que consiste en reducir el número de niveles jerárquicos de grupos de componentes de estructuras.
Ventajosamente, al menos un código de elemento de informaciones es señalado en el flujo binario en el documento comprimido, de manera que permite el acceso directo a este elemento de informaciones, sin que sea necesario descomprimir los elementos de informaciones que preceden este elemento del flujo binario.
Según aún otra particularidad de la invención, el documento comprimido comprende para cada elemento de informaciones en el documento de origen, un código que permite determinar el tipo de información asociado al elemento de informaciones y el valor binario del elemento de informaciones comprimido.
Según aún una otra particularidad de la invención, el esquema de estructura en el documento para descomprimir comprende la definición de sub-tipo de al menos un tipo de información, en el que la secuencia de instrucciones que es generada para un componente de un tipo que tiene n subtipos comprende sucesivamente:
- una instrucción de lectura de un código de subtipo que representa un número de sub-tipo para aplicar con un elemento correspondiente en el documento al componente, asociado con el tamaño de ese código en número de bits, y
- instrucciones de prueba del valor de código de subtipo, estando cada instrucción de prueba asociada con una referencia al sub-tipo del elemento correspondiente con el valor del código de subtipo probado, y a una secuencia de instrucciones que es generada para la descompresión de un elemento asociado al subtipo.
Preferiblemente, en el flujo binario en el documento comprimido, al final de un grupo de varias circunstancias de un conjunto de elementos que comprenden al menos un elemento de informaciones y que corresponde a un componente del esquema, está marcado por un código binario determinado.
Según aún una otra particularidad de la invención, cada componente del esquema de estructura corresponde en el flujo binario en el documento con un conjunto de elementos que comprenden al menos un elemento de informaciones, y está además asociado con un conjunto de número de circunstancias posibles, que indican el número de veces que un conjunto de elementos que corresponda con este documento de estructura, puede aparecer en el elemento informaciones de nivel inmediatamente superior al cual él pertenece.
Según aún otra particularidad de la invención, la secuencia de instrucciones que es generada para un componente que tiene un número de circunstancias igual a 0 ó 1 comprende sucesivamente:
- una instrucción de lectura de un código de presencia sobre un bit que indica la presencia o no en el documento comprimido de un conjunto de elementos que corresponden al componente,
- una instrucción de prueba del valor del código de presencia, y
- en asociación con la instrucción de prueba, si el valor del código de presencia indica la presencia del conjunto de elementos en el documento comprimido, una secuencia de instrucciones que es generada para el componente, independientemente del número de circunstancias asociadas.
Según aún una otra particularidad de la invención, la secuencia de instrucciones que es generada para un componente que tiene un número de circunstancias comprendidas entre n y m comprende sucesivamente:
- una instrucción de lectura de un código de número de circunstancias que indican el número de circunstancias sucesivas en el documento comprimido de un conjunto de elementos que corresponde al componente, en el cual se ha suprimido el número n mínimo de circunstancias, asociado al tamaño de ese código en número de bits,
- una instrucción de bucle que define un número de iteraciones que corresponden con el valor del código de número de circunstancias, y
- en asociación con la instrucción de bucle, una secuencia de instrucciones que es generada para el componente, independientemente del número de circunstancias asociadas.
Según aún una otra particularidad de la invención, la secuencia de instrucciones que es generada para un componente que tiene el número de circunstancias comprendidas entre 0 y m comprende además:
- una instrucción de lectura de un código de presencia que indica sobre un bit la presencia o no en el documento comprimido de al menos una circunstancia de un conjunto de elementos correspondientes al componente, y
- una instrucción de prueba del valor del código de presencia, asociado a la secuencia de instrucciones generada para un número de circunstancias comprendidas entre 1 y m del componente, si el valor del código de presencia indica la presencia de al menos un conjunto de elementos.
Según aún otra particularidad de la invención, la secuencia de instrucciones que es generada para un componente que tenga un número de circunstancias comprendidas entre n y m comprende sucesivamente:
- una instrucción de lectura de un código de presencia en un bit de una circunstancia de un conjunto de elementos que corresponde al componente en el documente comprendido, asociado al tamaño de ese código en número de bits,
- una instrucción de bucle para ejecutar tanto como el código de presencia leído en el flujo binario en el documento comprimido indica la presencia de una nueva circunstancia del conjunto de elementos,
- en asociación con la instrucción de bucle, una secuencia de instrucciones que es generada por el componente, y una instrucción de inserción de un nuevo código de presencia en un bit de una nueva circunstancia del conjunto de elementos en el documento comprimido.
Según aún una otra particularidad de la invención, cada componente del esquema de estructura corresponde a un conjunto de elementos que comprenden al menos un elemento de informaciones, en el que el esquema de estructura en el documento comprimido comprende al menos un componente de tipo secuencia de componentes ordenados, cuyo orden de aparición en la secuencia define el orden de aparición en el documento de conjuntos de elementos correspondiente a los componentes del grupo en de tipo de secuencia, y que la secuencia de instrucciones que es generada para una secuencia que comprende n componentes comprende sucesivamente secuencia de instrucciones que son generadas para cada componente de la secuencia.
Según aún otra particularidad de la invención, que cada componente del esquema de estructura corresponde a un conjunto de elementos que comprende al menos un elemento de información, en el que el esquema de estructura en el documento por descomprimir comprende al menos un componente de tipo grupo de componentes alternativos, cada componente alternativo correspondiente a un conjunto de elementos de informaciones, el componente de tipo grupo de componentes alternativos correspondiente en el documento con uno de los conjuntos de informaciones correspondiente a los componentes alternativos, y en que la secuencia es instrucciones que generada para un grupo de componentes alternativos que comprende n componentes que definen respectivamente del conjuntos de elementos, comprende sucesivamente:
- una instrucción de lectura de un código de número de conjuntos de elementos que designan el conjunto de elementos que aparecen en el documento entre los n conjunto de elementos, asociados al tamaño el número de bits de ese código, y
- instrucciones de prueba del valor del código de número de conjunto de elementos, estando cada instrucción de prueba asociada a una secuencia de instrucciones que es generada para el componente correspondiente al conjunto de elementos que corresponden al valor probado del código de número de conjunto de elementos.
Según aún una otra particularidad de la invención, cada componente del esquema de estructura corresponde a un conjunto de elementos que comprende al menos un elemento de informaciones, en el que el esquema de estructura en el documento para descomprimir comprende al menos un grupo de tipo no ordenado de componentes, cada componente del grupo no ordenado que expone un conjunto de elementos y el grupo de tipo o no ordenado que corresponde en el documento a un grupo que reúne en un orden cualquiera todo los conjuntos de elementos que corresponden a los componentes del grupo de tipo no ordenado, y en que la secuencia de instrucciones que es generada para un grupo de tipo no ordenado que comprende n componentes que corresponden al documento respectivamente a n conjuntos de elementos, comprende sucesivamente:
- una instrucción de lectura de un código de número de conjunto de elementos y que designa el próximo conjunto de elementos que aparecen en el documento, asociado al tamaño en número de bits de ese código, e
- instrucciones de prueba del valor del código de número de conjunto de elementos, estando cada instrucción de problema asociada a una secuencia de instrucciones que es generada para el componente correspondiente al conjunto de elementos que corresponde al valor de del código de número de conjuntos de elementos probado, y una secuencia de instrucciones que es generada para un grupo de tipo no ordenado que comprende todos los componentes del grupo no ordenado salvo el componente correspondiente al conjunto de elementos.
Un modo de realización preferido de la invención será descrito más adelante, a título de ejemplo no limitativo, con referencia a los dibujos anexos en los cuales:
La figura 1 representa bajo la forma de un esquema bloque el encadenamiento de las diferentes etapas del procedimiento según la invención;
las figuras 2a, 2b y 2c representan gráficamente un esquema de estructura bajo la forma de un árbol;
la figura 3 muestra un esquema de estructura obtenido aplicando un método de reducción según la invención al esquema de estructura representado en la figura 2;
las figuras 4a, 4b y 4c muestran un esquema de estructura obtenido aplicando otro método de reducción según la invención al esquema de estructura han representada en la figura 2.
La figura 1 representa el encadenamiento de las diferentes etapas del procedimiento según la invención.
Este procedimiento es conocido para tratar un documento estructurado constituido de un esquema de estructura 1 que define la estructura en el documento y las informaciones estructuradas 2 en el documento.
\newpage
En el lenguaje xml-esquema, un esquema de estructura presenta por ejemplo la forma siguiente:
1
Este esquema indica que el componente de estructura denominado "C" presenta una estructura compleja y constituida de un primer atributo denominado "a2" de tipo booleano que es opcional, de un segundo atributo denominado "al" de tipo entero que está siempre presente en la estructura, y de un grupo de componentes alternativos denominados a "A" y "B" de tipos respectivos "TA" y "TB" estando uno de estos dos componentes presente una sola vez en la estructura.
Los tipos "TA" y "TB" son definidos en el esquema de estructura en el documento por una formulación análoga.
De una manera general, se utilizan componentes particulares llamados grupos de componentes para definir una estructura de documento. Estos grupos de componentes pueden ser del tipo:
- SEQ: que define una lista de componentes ordenados cuyos elementos correspondientes en el documento debe aparecer todos y en el orden indicado,
- CHO: define un grupo de componentes alternativos, un solo elemento correspondiente a un componente del grupo que debe aparecer en el documento,
- ET: define un grupo de componentes cuyos elementos correspondientes deben aparecer todos en el documento y en un orden cualquiera que no deba ser modificado; este grupo corresponde al grupo "all" en norma XML esquema,
- ET_{no}: que define un grupo de componentes cuyos elementos correspondientes deben estar todos presentes en el documento en un orden cualquiera que no tiene importancia; este grupo puede ser utilizado para la codificación de los atributos cuyo orden no tiene importancia en la norma XML, y
- ANY comprende un elemento cualquiera entre todos los elementos posibles que se pueden encontrar en el documento.
Según la invención, esta formulación es analizada y transformada en la etapa 11 del procedimiento para obtener árboles sintácticos 4, a razón de un árbol por componente de estructura. El árbol sintáctico que corresponde al componente estructura TC está simbolizado por la expresión siguiente:
TCSEQ[1,1](ETNO[1,1](a1int [1,1],a2bool[0,1]),CHO[1,1](ATA[1,1],BTB[1,1]))
en la cual:
"A[x,y]" indica que el componente "A" corresponde a un elemento señalado de x a y veces en el documento, donde puede allí ser igual a "*" que representa un valor indeterminado.
Esta expresión puede ser representada por el árbol mostrado en la figura 2c, que comprende un componente raíz "TC" 43 constituido de una circunstancia única de un grupo de componentes de tipo secuencia 44. Este grupo comprende una circunstancia única de un grupo de componentes de tipo "ET" no ordenado 45 y una circunstancia única de un grupo de componentes alternativos 46. El grupo 45 está constituido de una circunstancia única de un entero nominado "al" y de un booleano nominado "a2", y el grupo 46 comprende una circunstancia única de un elemento nominado "A" de tipo "TA" y de un elemento nominado "B" tipo "TB".
Los tipos "TA" y" TB" en la etapa 11 son por ejemplo dados en los las fórmulas siguientes:
TASEQ[1,1](ET[1,1](a3int [1,1],a4int [0,1]),SEQ[1,1](XTC[1,1],YTC[1,1]))
\newpage
TBSEQ[1,1](a1bool[1,1], a5bool[1,1]) y representadas por los árboles mostrados respectivamente sobre las figuras 2a y 2b.
El tipo "TA" 31 comprende un grupo único 32 de tipo secuencia constituido de dos grupos únicos 33,34 respectivamente de tipo ET y SEQ. El grupo 33 comprende dos circunstancia únicas de de tipo entero, minadas respectivamente "A3" y "A4". El grupo 34 comprenden dos circunstancias única de tipo "TC" nominadas respectivamente "X" y "Y".
El tipo"TB" 39 está constituido de un grupo único 40 de tipo secuencia que comprende dos booleanos nominados "a1" y "a5" respectivamente.
Aunque en la descripción que precede, se ha distinguido el número de cada elemento y su tipo, el procedimiento según la invención se aplica igualmente a los lenguajes de estructuración que no hacen esta distinción.
Además, ciertos lenguajes como el lenguaje XML esquema que autorizan esto que se llama el polimorfismo o la utilización de sub-tipo.
Tales sub-tipos son definidos de la siguiente manera:
2
Estas sintaxis definen los tipos TA1 y TA2 como sub-tipo del tipo TA por restricción o extensión, y el componente de información X de tipo TA.
Un documento que tenga este esquema de estructura puede comprender un elemento X de tipo TA1 que puede ser introducido de la siguiente manera:
3
Además ciertos tipos que poseen así subtipos pueden ser declarados abstractos, lo que significa que los elementos de información en un documento que tenga un esquema de estructura que comprende la definición de un tipo abstracto no pueden contener elementos de información que tengan este tipo. De hecho, los tipos abstractos no son utilizados más que para crear jerarquías o clase de tipos. Un tipo abstracto está definido en el lenguaje XML esquema de la manera siguiente:
4
Por otro lado, los componentes de estructura deben ser determinados, en decir que un elemento del documento no deba poder ser interpretado de varias maneras diferentes. Por ejemplo, en el esquema "CHO(a,SEQ(a,b))", en el caso en el cual "a" aparece en el documento, no se sabe si "b" que debe aparecer enseguida. Existen con este efecto algoritmos que pueden ser aplicados por el procedimiento según la invención para transformar un esquema no determinista en un esquema determinista se puede por ejemplo referir a los documentos ["Regular expressions into finite automata" Brüggemann-Klein, Anne, Extended Abstract in I. Simon, Hrsg., LATIN 1992, S. 97-98. Springer-Verlag, Berlin 1992. Full Version in Theoretical Computer Science 120: 197-213, 1993]. Así, el esquema de más adelante puede por ejemplo ser remplazado por "SEQ(a,b[0,1])".
En la etapa 12 siguiente del procedimiento según la invención, los componentes de esquema de estructura transformados en árboles sintácticos pueden siempre inicialmente sufrir un tratamiento de reducción o de simplificación.
Este tratamiento de reducción puede consistir por ejemplo en efectuar un aplanamiento global que genera un solo árbol sintáctico 51 a partir de todo los árboles 31,39 y 43, como el que está representado en la figura 3.
Este árbol representa de hecho un diccionario de todos los tipos de elementos susceptibles de ser encontrados en el documento, estando estos elementos reunidos en un grupo 52 de tipo alternativo que aparecen al menos una vez del [1]* documento. En este árbol, los componentes de tipo complejo "A", "B", "X" y "Y", son asociados a un topo a un tipo "ANY", y el componente "a1" que aparece dos veces (en los componentes "TB" y "TC") con los tipos diferentes, están asociados a un tipo por defecto "pcdata" según el lenguaje XML o al tipo de elemento en el documento inicial, por ejemplo texto. Un mismo elemento de información puede en efecto se representado de varias maneras: por ejemplo una secuencia binaria puede igualmente ser considerada como una cadena de caracteres o un número entero.
Alternativamente, este tratamiento de reducción consiste en aplanar localmente los árboles sintácticos para tener los árboles representados 31', 39', y 43' sobre las figuras 4a y 4c.
En cada una de estas figuras, los grupos 32 a 34 (figura 2a), 40 (figura 2b) y 44 a 46 (figura 2c) han sido respectivamente reemplazadas por un grupo 53, 54, 55 de tipo alternativo que aparece al menos una vez [1*].
Los árboles "TA", "TB" y "TC", pueden además sufrir un tratamiento suplementario para suprimir las ambigüedades que aparecen en el esquema de estructura.
En ciertos casos, los árboles sintácticos pueden ser simplificados de una manera no destructiva, siempre mejorando la compacidad del código binario que podrá ser generado.
Una simplificación tal puede ser efectuada en el caso de un grupo de componentes que contengan un solo componente X cuyo número mínimo de circunstancias n_{x} es igual a 0 ó 1 de la forma:
GROUP[nG,mG](X[nX,mX])
en la cual GROUP puede ser un grupo de tipo SEQ,CHO o ET. Un grupo tal puede ser reemplazado por el componente siguiente:
X[nG,nX,mG,mX]
Otro caso de simplificación no destructiva es posible en el caso de un grupo de componentes alternativos CHO que comprenden al menos un componente cuyo número de circunstancias mínimas es igual a 0. Así, el grupo:
CHO[nC,mC](X1[nX1,mX1], X2[0,mX2], X3[nX3,mX3])
puede ser reemplazado por:
CHO[0,mC](X1[nX1,mX1], X2[1,mX2], X3[nX3,mX3])
Igualmente un grupo CHO[1,1](.., CHO[1,1](...), ...) de una única circunstancia de tipo CHO que contiene particularmente una única circunstancia de tipo CHO, puede ser simplificada siendo reemplazada por un grupo único CHO[1,1](…) de de tipo CHO que contiene todo los componentes de los dos grupos de tipo CHO.
En la etapa 12, los árboles "TA", "TB" y "TC" sufren igualmente un tratamiento de normalización que consiste en reordenar el esquema que se obtenga un orden único de los componentes del esquema. Este tratamiento afecta enseguida un número binario en los diferentes nodos de árboles sintácticos obtenidos enseguida de los tratamientos precedentes. Este número es utilizado durante la compresión del elemento de información correspondiente.
El tratamiento de normalización consiste en particular en atribuir a cada grupo una firma constituida de la concatenación de un número de grupo con la firma de todos los componentes del grupo previamente ordenadas. Así, el grupo 53 en la figura 4 está asociado a la firma "CHO.a3.a4.XY".
Durante este tratamiento, se considera que los grupos ordenados (SEQ) son ya normalizados. Los grupos para normalizar son pues los grupos de tipo alternativo ("CHO"), y los grupos "ET" y "ET_{NO}". Este tratamiento comprende las etapas siguientes para cada grupo g compuesto de sub-grupos g_{i y} de componentes e_{i} que definen un elemento respectivo en el documento:
- la normalización de sub grupos g_{i} eventuales del grupo G antes de normalizar el grupo G, siendo el algoritmo de normalización recursivo,
- el arreglo de los componentes e_{i} eventuales del grupo G antes de los sub-grupos g_{i},
- el arreglo de los componentes e_{i} en un orden predefinido,
- el arreglo de sub-grupos g_{i} que del orden predefinido, y
la determinación de la firma de grupo G dado por la concatenación de todas las firmas de sus componentes (y sub-grupos) que siguen orden establecido enseguida de las etapas precedentes.
El orden predefinido del arreglo de los componentes del grupo puede ser el orden alfanumérico de sus firmas respectivas o el orden decreciente de su número mínimo de circunstancias, estando los componentes que tienen el mismo número mínimo de circunstancias enseguida ordenados por orden alfa numérico.
Es de notar que este tratamiento de normalización no es necesario en el procedimiento según la invención. El orden de aparición de componentes en el esquema puede en efecto ser conservado.
La etapa 13 siguiente del procedimiento consiste en generar una secuencia de instrucciones 5, igualmente llamada "sintaxis binaria", que describe un flujo binario. Este tratamiento consiste en generar para cada árbol sintáctico o tipo complejo del esquema de estructura una secuencia de instrucciones, comenzando por los nodos o componentes de más bajo nivel en los árboles sintácticos del esquema de estructura arborescente en el documento. Instrucciones de llamada a la sintaxis binaria así generadas para los nodos de bajo nivel, son insertados enseguida en la sintaxis binaria de los nodos de más alto nivel en los cuales los componentes de bajo nivel aparecen. De esta manera, se obtiene una sintaxis binaria para el conjunto del esquema de estructura en el documento, la cual llama la sintaxis binaria de los componentes de más bajo nivel, de una manera análoga a un software que comprende un programa principal que llama los sub-programas, los cuales pueden igualmente llamar otros programas, y así sucesiva-
mente.
La sintaxis binaria de un componente que representa un elemento X de tipo TX es de la siguiente forma:
X TX
En la cual "X" representa una instrucción de inserción o de lectura del valor del elemento X o la llamada de la secuencia de instrucciones que corresponde al elemento X, y "TX" representa una referencia al tipo de elemen-
to X.
Si el tipo TX que posee uno varias sub tipos, representa lo que se llama un polimorfismo. En ese caso, está asociado a la sintaxis binaria siguiente:
X TX_poly
Si el tipo TX comprende los subtipos S1, S2…, Sn hay que considerar dos casos en que el tipo TX por defecto sea abstracto o no.
- Si el tipo TX por defecto es abstracto, se genera una sintaxis binaria "TX-poli2" que comprende sucesiva-
mente:
- una instrucción de inserción o de lectura de un código de sub tipo "flagPoly" que representan un número de sub tipos para aplicar al elemento X, asociado al tamaño de ese código en número de bits, y
- instrucciones de prueba del valor del código de sub tipo, estando cada instrucción de prueba asociada a una instrucción de inserción o de lectura del valor del elemento X o la llamada de la secuencia de instrucción que corresponde al elemento X, asociada con una referencia al sub-tipo del elemento X que corresponde al valor del código de subtipo probado.
Las sub tipos S1…., Sn son previamente ordenados en orden de sus firmas respectivas:
\newpage
una sintaxis binaria es por ejemplo de la forma siguiente:
TABLA 1
5
Siendo E () la función redondeada al entero superior y "flagPoly" que contiene el código del número de sub-tipo para aplicar del elemento X y "X" que indica los emplazamientos donde debe ser insertado el código del elemento X.
Sin 2E(log2(n)) > n, se puede ajustar la línea siguiente al final de la sintaxis binaria para detectar disfunciones:
6
Siendo "Specific Process" un procedimiento concebido para señalar un error de tratamiento en el caso en donde "flagPoly" no tiene un valor correspondiente a un sub-tipo de TX.
Si el tipo por defecto TX no es abstracto, la sintaxis binaria de TX-poly es obtenida insertando la sintaxis binaria precedente en una sintaxis binaria que comprende sucesivamente:
- una instrucción de inserción o de lectura de un código de presencia de sub-tipo "typeInfoFlag" que indica en un bit si el tipo de elemento es el tipo por defecto o un sub tipo de éste, y
- o de instrucción de prueba del valor del código de presencia de sub tipificación, y
- en asociación con la instrucción de prueba, definiendo la secuencia de instrucciones polimorfismo tal como el indicado en la tabla 1, si el valor del código de presencia de sub-tipo indica que el tipo de elemento es un sub tipo, y en el caso contrario, una instrucción de inserción o de lectura del valor del elemento X, asociado con una referencia al tipo por defecto del elemento X.
Una sintaxis tal binaria es por ejemplo de la forma siguiente:
TABLA 2
7
En la cual "typelnfoFlag" es un código que indica si X tiene el tipo TX o uno de los sub tipos de TX.
Enseguida, se determina la sintaxis binaria del número de circunstancias [n, m] de cada elemento o conjunto de elementos X en el cual se ha determinado la sintaxis binaria. En lo que sigue, un elemento puede representar un conjunto de elementos.
Para este efecto, se distinguen tres casos. En el primer caso, m y n son iguales a 1, es decir que el componente X está asociado a los números de circunstancias [1,1]. La sintaxis binaria producto corresponde a aquella que ha sido generada para el componente X.
En el segundo caso, n = 0 y m = 1, la sintaxis binaria generada comprende sucesivamente:
- una instrucción de inserción o de lectura de un código de presencia "FlagX" que indica sobre un bit la presencia o no del elemento X en el documento comprendido, asociado al tamaño de ese código en número de bits,
- una instrucción de prueba del valor del código de presencia, y
- en asociación con la instrucción de prueba, una instrucción de inserción o de lectura del valor del elemento X o la llamada de la secuencia de instrucciones correspondientes al elemento X, si el valor del código de presencia indica la presencia del elemento X en el documento.
Una tal sintaxis binaria es por ejemplo de la forma siguiente:
TABLA 3
8
en cual la X es un código sobre un bit que indica la presencia o no de X en el documento. Esta sintaxis binaria es análoga a una secuencia de instrucciones de programación, en la cual X está insertada si el valor del indicador flagX es "verdadero".
En el tercer caso, m-n es inferior a una constante de umbral predeterminado, por ejemplo 2^{16}(= 65536), lo que significa que el número de circunstancias puede ser codificado bajo la forma de un entero no señalizados sobre 16 bits. En este caso, la sintaxis binaria del elemento X [n, m] es comprende sucesivamente:
- una instrucción inserción o de lectura de un código de número de circunstancias loopflagX que indica el número de circunstancias sucesivas del elemento X en el documento comprimido, al cual se le ha suprimido el número nn mínimo de circunstancias del elemento X, asociado al tamaño de ese código en número de bits,
- una instrucción de bucle que define un número de iteraciones correspondientes al valor del código de número de circunstancias, y
- en asociación con la instrucción de bucle, una instrucción de inserción o de lectura del valor del elemento X o la llamada de una secuencia de instrucciones que corresponde al elemento X.
Una tal sintaxis binaria es por ejemplo de la forma siguiente:
TABLA 4
9
En la cual "loopflagX" es el código del número de circunstancias sucesivas de X en el documento, al cual se le ha suprimido el número n mínimo de circunstancias de X, y E () es la función redondeada con el entero superior.
\newpage
Esta sintaxis indica que "loopflagX" está codificado en E E(log2(m-n+1)) bits y que X debe ser insertada un número de veces igual a (loopflagX +n).
En el cuarto caso, m no es limitado donde m-n es superior a la constante de umbral predeterminado. La sintaxis binaria generada es análoga a la del tercer caso, con la diferencia que "loopflagX" no es codificado sobre E E(log2(m-n+1)) bits pero en otro formato que permite codificar no importa que entero.
Este formato puede por ejemplo tener la forma "UINT-VLC" constituido de conjuntos de un número predeterminado de bits, por ejemplo 5, el primer de cada conjunto que indica si sí o no este conjunto es el último del código del número entero, y siendo los cuatro bits siguientes del conjunto utilizados para codificar el número entero.
En el tercero y cuarto caso, si el número de circunstancias mínima n es nulo, se ajusta preferiblemente una sintaxis binaria que comprende entre otras:
- una instrucción de inserción o de lectura de un código de presencia "shuntflag" que indica sobre un bit la presencia o no de al menos un elemento X en el documento comprimido, y
- una instrucción de prueba del valor del código de presencia, asociado a la secuencia de instrucciones generada para un número de circunstancias comprendidas entre 1 y m del elemento X, si el valor de código de presencia indica la presencia de al menos un elemento X.
Una tal sintaxis binaria es por ejemplo de la forma siguiente:
TABLA 5
10
En la cual "shuntflag" designa un código sobre un bit que indica si sí o no el número de circunstancias es nulo, y la línea "sintaxis binaria de X [n, m]" la sintaxis binaria del número de circunstancias de X que corresponden al tercero o al cuarto caso.
Alternativamente, se pueden escoger otro tipo de codificación en el cual no es necesario introducir el número de circunstancias de elementos de un esquema en estructura. Este tipo de codificación utiliza una sintaxis binaria que comprende sucesivamente:
- una instrucción de inserción o de lectura de un código de presencia "flag X" sobre un bit de una circunstancia del elemento X, en el documento, asociado al tamaño de ese código en número de bits,
- una instrucción de bucle para ejecutar tanto como el código de presencia por insertar o leído indica la presencia de una nueva circunstancia del elemento X,
- en asociación con la instrucción de bucle, una instrucción de inserción o de lectura del valor del elemento X o la llamada de una secuencia de instrucciones que corresponda al elemento X, y una instrucción de inserción o de lectura de un nuevo código de presencia "flagX" sobre un bit de una nueva circunstancia del elemento X en el documento.
Una tal sintaxis binaria es por ejemplo de la forma siguiente:
TABLA 6
11
Esta solución presenta la ventaja de no tener en que analizar todo el esquema de estructura en el documento para determinar los número de circunstancias mínimo y máximo de cada elemento en la estructura.
La sintaxis binaria de un grupo de tipo secuencial SEQ(X1,X2…,Xn) comprende sucesivamente secuencias de instrucciones generadas respectivamente para los componentes del grupo de tipo de secuencia, o la llamada de esas secuencias de instrucciones.
Una tal sintaxis binaria es por ejemplo la forma siguiente:
TABLA 7
13
La sintaxis binaria de un grupo del tipo alternativo CHO(X1,X2,…Xn) comprende sucesivamente:
Una instrucción de inserción o de lectura de un código de número componente "flagChoX" representando un número de componentes Xi(i=1,,, n) y que designa el próximo elemento Xi del grupo por insertar o para leer en el documento comprimido, asociado en tamaño al número de bits de ese código, e
- instrucciones de prueba del valor del código de número de elementos, estando cada instrucción de prueba asociada con una instrucción de inserción o de lectura del valor del elemento Xi o la llamada de una secuencia de instrucciones correspondiente con el elemento Xi correspondiente al valor de código del componente probado.
Una tal sintaxis binaria es por ejemplo de la forma siguiente:
TABLA 8
14
en la cual n es el número de componentes del grupo, y "flagCho" es el código de componentes para seleccionar del grupo CHO.
Como precedentemente, si 2E(log2(n)) > n, se puede ajustar la línea siguiente con la fm de la sintaxis binaria para detectar disfunciones:
16
Esta instrucción permite llamar un procedimiento de señalamiento de errores en el caso en el cual el valor del indicador "flagCho" no corresponda a uno de los componentes esperados del grupo CHO.
En el caso en el cual l no se codifique se puede igualmente utilizar un valor de "flagCho" no utilizado 2E(log2(n)) > n) para marcar la última circunstancia del grupo CHO:
\vskip1.000000\baselineskip
TABLA 9
17
\vskip1.000000\baselineskip
La sintaxis binaria del grupo de tipo ET es generada por un procedimiento recursivo, Consiste en una imbricación de grupos de de tipo CHO, cada determinando cuál es el elemento presente en la descripción.
De una manera más precisa, para generar una tal sintaxis binaria, se distinguen dos casos, según que el grupo comprende uno solo o varios componentes. Si el grupo no contiene más que un solo componente, la sintaxis binaria de un grupo tal es la misma que la de un grupo de tipo secuencia con un solo componente.
Si el grupo contiene n componentes, se puede escribir de la forma ET (X1, X2,….Xn). La sintaxis binaria de un grupo tal comprende sucesivamente:
-
una instrucción de inserción o de lectura de un código de número de componentes "flagChoX" que representa un número de componentes Xi del grupo y que designa el próximo elemento Xi del grupo para insertar o para leer en el documento comprimido, asociado al tamaño y número de bits de ese códi- go, e
-
instrucciones de prueba del valor del código de número de componentes estando cada instrucción de prueba asociada a una instrucción de inserción o de lectura del valor del elemento Xi o la llamada de una secuencia de instrucciones que corresponda al elemento Xi correspondiente al valor de código de componente probado, y una secuencia de instrucciones que está generada para un grupo de tipo "un grupo no ordenado" que comprende todo los componentes X1,….Xn del grupo salvo el componente Xi.
\newpage
Una tal sintaxis binaria es por ejemplo de la forma siguiente:
TABLA 10
18
Esta sintaxis binaria es obtenida a partir de la sintaxis binaria de un grupo CHO(X1,X2,….Xn) en la cual se ha ajustado, a continuación de la sintaxis binaria de cada componente X_{k} del grupo (estando k comprendida entre 1 y n), la sintaxis binaria de un grupo ET del cual se ha retirado el componente X_{K}. Esta sintaxis binaria es pues recursiva.
La sintaxis binaria del grupo ET_{no} es idéntica a la del grupo SEQ, en la cual se puede además optimizar la codificación adoptando un orden apropiado de los componentes del grupo.
La etapa siguiente 14 consiste en unir el documento 2 para comprimir los datos que contiene ejecutando la sintaxis binaria que ha sido generada en la estructura el documento, con vista a obtener un flujo binario que comprenda una sucesión de códigos binarios en los cuales se encuentra el valor comprimido de cada elemento o elemento de informaciones de base del documento.
Más precisamente, se trata de determinar a partir del contenido del documento, los valores para insertar en el flujo binario, de los diferentes códigos "typelnfoFlag" "flagX", "loopflagX",… definidos por las secuencias binarias.
Según un primer tipo de codificación este flujo binario es de la forma (K.N.V1…Vn)_{e} para cada elemento e, siendo N el número de circunstancias del elemento e, o el número de elementos de informaciones sucesivas que correspondan al elemento e, siendo K el código que permite determinar el elemento e, y V1..Vn los valores respectivos, eventualmente comprimidos desde n circunstancias del elemento e. Si e es un grupo de elementos, su valor V es descompuesto en otro tanto de secuencias binarias (k.N.V.) que contiene elementos. Sin embargo, en ciertos casos, N puede ser omitido, particularmente cuando este número es fijo. Es lo mismo para K en el caso por ejemplo de un grupo de tipo secuencia.
A título de ejemplo de comparación, si se considera el formato extenso de representación de duraciones, tal como es definido por la norma ISO 8601:
sPnYnMnDTnHnMnS
\newpage
En el cual s es "+" o "-", nY representa un número de años (entero infinito), nM el número de meses (entero infinito), nD número de días (entero infinito), "T" es un carácter separador entre la fecha y el tiempo, Nh número de horas (entero infinito), nM un número de minutos (entero infinito) y nS número de segundos (decimal), siendo todos estos elementos opcionales.
Este formato corresponde a un esquema de estructura que puede ser representado de la siguiente manera:
(\+|\-)P(\d+Y)?(\d+M)?(\d+D)?(T(\d+H)?(\d+M)?(\d+(\,\d+)?S)?)?
En la cual "/+" indica la inserción del carácter "+", "(x/y9" indica la inserción del elemento x o y, "?" indica que la inserción del elemento precedente es opcional y "/d*" representa un número binario sobre un número de bits cualquiera.
Esta estructura corresponde a la sintaxis binaria siguiente:
\vskip1.000000\baselineskip
TABLA 11
20
\vskip1.000000\baselineskip
En la cual valor Signe vale 0 para representar el signo "+" y 1 para representar el signo "-".
Así, la duración "+P1347Y" es codificada de la siguiente manera:
21
Esta codificación necesita 22 bits, mientras que la codificación clásica le necesita 48 bits.
\newpage
La duración "-P1Y2MT2H" está codificada de la siguiente manera:
22
en 22 bits en lugar de 72 con la codificación clásica.
Previamente, se puede realizar un encabezamiento general en el documento comprimido que reagrupa varios parámetros codificados, útiles para la descripción del documento. Así, un tal encabezamiento puede comprender una firma del o de los esquemas de estructura utilizados, y un conjunto de parámetros que describen la codificación utilizada, como por ejemplo:
- un parámetro que indica si la codificación de la longitud de cada elemento es obligatoria u opcional o no presente en el documento,
- un parámetro que indica si los elementos pueden o no ser subtipos, es decir asociados a un tipo más preciso que su tipo de base, y
- un parámetro que indica el tipo de codificación utilizado para el número de circunstancias.
Cada elemento de información del documento puede igualmente estar asociado o encabezamiento, siendo su presencia y su naturaleza precisas en el encabezamiento en el documento.
El encabezamiento de un elemento puede así comprender la longitud codificada de éste, de manera que permita, durante la descompresión en el documento, el acceso a un elemento particular sin descomprimir todos los elementos precedentes en el documento. Los encabezamientos de elementos son insertados en el documento por ejemplo justo antes de la codificación del valor de los elementos.
De una manera general, la descompresión en el documento consiste en leer secuencialmente el documento comprimido, ejecutando las sintaxis binarias generadas a partir del esquema sobre el flujo binario obtenido por la lectura secuencial en el documento comprimido. Este tratamiento permite además verificar que la estructura en el documento comprimido corresponde al esquema compilado en sintaxis binarias.
Cuando el número de circunstancias de los elementos del esquema de estructura no está codificada, la codificación de elementos no es entonces más que la forma KV, la codificación de cada conjunto de elementos del mismo tipo se terminan por un bit K_{esc} que vale 0.
De hecho, este de tipo de codificación no es interesante más que para la codificación de formas complejas, y para elementos que no tengan número de circunstancias máximas o un número circunstancias mínimas nulo. Es en particular del todo adaptado a la codificación del grupo de tipo alternativo que comprende un número de elementos diferentes de 2^{p}, siendo p un número entero.
Este tipo de codificación puede ser combinado con el precedente. Es suficiente entonces para ello, indicar en el encabezamiento del documento comprimido y atribuir un bit a los lugares de codificación del cual deben encontrarse un número de circunstancias.
Según la invención, al menos un tipo de base de elementos de información en el documento está asociado a un módulo externo de compresión 16. De esta manera, durante la lectura del documento, los tipos respectivos de elementos de información encontradas son analizadas, y cuando un tipo de información es asociado a un módulo externo de compresión 16, éste es aplicado al contenido del elemento de información y el resultado de la compresión insertada en el documento comprimido tanto como el valor del elemento de información correspondiente.
Los módulos externos de compresión pueden por ejemplo aplicar la norma "mp3" para las informaciones sonoras,"jpeg" para las imágenes y "MPEG 1" o "MPEG 2" para los datos de tipo vídeo, o IEEE 754 para los valores de tipo número real o UTF8 para las cadenas de caracteres.
Si ningún modulo de compresión está asociado a un tipo de información, se puede utilizar un módulo de compresión por defecto o recuperar los elementos de información que tengan este tipo tales como aparece en el documento inicial.
\newpage
Por ejemplo, la codificación de la estructura CHO [0,*](a1,a2,a3) produce la sintaxis binaria siguiente:
\vskip1.000000\baselineskip
TABLA 12
23
Si ahora se desea codificar la circunstancia de "a2,a3,a1,a1,a3" que tiene esta estructura, el resultado de codificación es el siguiente en el cual se codifica el número de circunstancias:
0010101 Va2 10 Va3 00 Va1 00 Va1 10 Va3
En cual "00101" representa el valor binario del número de circunstancias en el formato "UINT-VLC" y Va1, Va2 y Va3 son respectivamente los valores de las circunstancias de a1, a2, a3.
En el caso en el cual no se codifica el número de circunstancias la codificación es la siguiente:
01 Va2 10 Va3 00 Va1 00 Va1 10 Va3 11
"11" correspondiente al código de final del número de circunstancias que está en este caso integrado en el código de selección del grupo CHO.
En el primer caso, se tiene una codificación en 15 bits además de los códigos de los valores de los elementos, mientras que en el segundo caso, se obtiene una codificación más compacta en 12 bits.
El tratamiento de codificación de la circunstancia "b2 b1 a1" que tiene por estructura:
SEQ[0,*](a1[0,*],CHO[0,*](b1,b2)) conduce a la sintaxis binaria siguiente:
TABLA 13
25
Esta sintaxis binaria conduce a la codificación siguiente:
1
número de circunstancias de la secuencia diferente de 0
00010
el número de circunstancias de la secuencia (aquí dos veces)
0
número de circunstancias de a= 0
1
número de circunstancias de CHO. diferente de 0
00010
número de circunstancias de CHO (dos veces)
1
código de escogencia de b_{2}
V_{b2}
código del valor de b_{2}
0
código de escogencia de b_{1}
V_{b1}
código del valor de b_{1}.
1
número de circunstancias de a= 0
00001
números de circunstancias de a_{1} (1 vez)
V_{a1}
codificación del valor de a_{1}
0
número de circunstancias de CHO = 0
Si el orden de los atributos no es útil (como en el lenguaje XML,), se puede efectuar una codificación que reordene los atributos de los elementos en un orden predeterminado, por ejemplo siguiendo un orden alfanumérico, luego siguiendo el hecho de que estos son requeridos o no. Esta disposición permite reducir de otro tanto el tamaño de la descripción comprimida.
Si en el encabezamiento el documento, está indicado que la codificación de la longitud es opcional u obligatoria, los elementos son asociados a un encabezamiento en el documento comprimido, que contiene la longitud del número de bits del valor del elemento. Esta particularidad permite un acceso directo a un elemento del documento comprimido sin tener que descomprimir los elementos situados adelante en el documento, leyendo con la ayuda de sintaxis binaria únicamente las longitudes respectivas de estos elementos hasta el elemento buscado.
La longitud de los elementos puede ser codificada de la manera siguiente.
En el caso de que el encabezamiento del documento, este indicado que la codificación de la longitud de los elementos es obligatoria, la longitud L. de los elementos en número de bits es calculada con la ayuda de la fórmula siguiente:
(1)L = 8*p+h
Donde p representa el número de octetos (en codificación ASN1 o utilizando los bits de peso fuerte de cada octeto utilizado para codificar ese número) utilizados para codificar la longitud del elemento, y h representa el número de bits restantes de esta longitud (h < 8).
Hay que anotar que el módulo externo de compresión 16 que es llamado para efectuar la codificación del valor de un elemento puede suministrar esta longitud.
En el caso en el cual la codificación de la longitud de los elementos no es obligatoria, el valor del primer bit correspondiente al valor del elemento indica si los bits siguientes representan o no la longitud del elemento.
El tratamiento de descompresión de un documento así comprimido es efectuado ejecutando las etapas 11 a 14 del esquema de estructura en el documento para obtener la sintaxis binaria de los componentes de estructura del esquema de estructura en el documento, luego ejecutando la etapa 14 de de codificación o de descompresión en el documento, consistiendo esta etapa en recorrer el documento comprimido ejecutando la sintaxis binarias obtenidas a continuación de las etapas 11 a 14, de manera que se pueda determinar el tipo y el número de los elementos de información comprimidos reencontrados en el documento. Los valores de los elementos que han sido obtenidos con la ayuda de módulos 16 de compresión externa son descomprimidos con la ayuda de módulos de descompresión 16' correspondientes.
Hay que anotar que si se debe tratar (comprimir o descomprimir) varios documentos que tienen el mismo esquema de estructura, las etapas 11 a 13 no son ejecutadas más que una sola vez, sólo las etapas 14 a 16 (o 14' 16') deben ser aplicadas a cada documento para tratar.
Además, por un tratamiento de conversión apropiado, la sintaxis binaria de un esquema de estructuras que está próximo de un lenguaje de programación clásica, puede ser compilado 17,17' para generar un código binario de programas de compresión o de descompresión 6,6' directamente ejecutable o interpretable por el procesador de un ordenador. El procedimiento según la invención permite pues generar automáticamente programas de compresión o de descompresión ejecutables, por tanto muy rápidos, dedicados a un esquema de estructura dada.

Claims (34)

1. Procedimiento de compresión de un documento estructurado que comprende elementos de información imbricados los unos en los otros y asociados cada uno a un tipo de información, estando el documento estructurado (2) con al menos un esquema de estructura (1; 31, 39, 43) que define una estructura arborescente del documento que comprende componentes de estructura (a3, a4, X, Y, a1, a5, a1, a2, A, B, 32, 33, 34, 40, 44, 45, 46) imbricados los unos en los otros, estando cada tipo de información en el documento definido por un componente del esquema,
caracterizado porque comprende las etapas consistentes en:
- analizar (11) el esquema de estructura (1) del documento generado, para cada componente del esquema de estructura, una secuencia de instrucciones ejecutables (5) que comprende instrucciones de inserción en un flujo binario, de códigos de control y de valores comprimidos de elementos de informaciones o de códigos de llamada de secuencias de instrucciones de componente, e instrucciones de control del desarrollo de la ejecución de la secuencia en función de los valores de códigos de control, permitiendo la ejecución de secuencias de instrucciones en el documento estructurado (2) comprimir el documento estructurado (2) en un flujo binario (10) que contiene valores comprimidos de elementos de informaciones del documento,
- ejecutar (14) sobre el documento estructurado (2) la secuencia de instrucciones generadas, para obtener un flujo binario (10) que contiene los valores comprimidos de elementos de información en el documento.
2. Procedimiento de compresión según la reivindicación 1,
caracterizado porque, el documento que comprende elementos de base no descompensados en sub-elementos, al menos un tipo de información de elementos de base está asociado previamente a un algoritmo de compresión (16) adaptado al tipo de información, comprendiendo el procedimiento, durante la ejecución de secuencias de instrucción (5), la aplicación del algoritmo de compresión (16) con el valor de cada elemento de información que tiene un tipo de información asociado al dicho algoritmo.
3. Procedimiento de compresión según la reivindicación 1 ó 2,
caracterizado porque comprende una etapa de compilación (17) de secuencias de instrucciones (5) obtenidas para cada componente del dicho esquema de estructura, para obtener un programa binario de codificación (6) dedicado al dicho esquema de estructura, y directamente ejecutable o interpretable por un ordenador para comprimir un documento (2) que tenga el esquema de estructura (1).
4. Procedimiento de compresión según una de las reivindicaciones 1 a 3,
caracterizado porque comprende una etapa previa de normalización (12) del esquema de estructura (5) en el documento, de manera que se obtiene un orden único predefinido de los componentes del esquema.
5. Procedimiento de compresión según una en las reivindicaciones 1 a 4,
caracterizado porque comprende una etapa (12) previa de optimización y simplificación del esquema de estructura en el documento consistente en reducir el número de niveles de imbricaciones de componentes de estructura.
6. Procedimiento de compresión según una de las reivindicaciones 1 a 5,
caracterizado porque al menos un elemento de información del documento (2) está asociado, en el flujo binario (10) generado, con un código de elemento de información que es señalado de manera que permite el acceso directo a un elemento de información comprimido particular en el flujo binario, sin que sea necesario descomprimir los elementos de información que preceden al elemento para descomprimir en el flujo binario.
7. Procedimiento de compresión según una de la reivindicaciones 1 a 6,
caracterizado porque el documento comprimido generado (10) comprende para cada elemento de información en el documento estructurado (2), un código que permita determinar el tipo de información asociado al elemento de información, y el valor binario del elemento de información.
8. Procedimiento de compresión según una de la reivindicaciones 1 a 7,
caracterizado porque el esquema de estructura (1) del documento (2) comprende la definición de sub-tipo de al menos un tipo de información, y en que la secuencia de instrucciones (5) que es generada para un componente de un tipo (TX) que tiene n subtipos (S1, S2,… Sn) comprende sucesivamente:
- una instrucción de inserción de un código de subtipo ("flagPoly") que representa un sub-tipo para aplicar a un elemento (X) correspondiente en el documento al componente, asociado al tamaño de ese código en número de bits, y
- instrucciones de prueban del valor de código de sub-tipo, estando cada instrucción de prueba asociada a una referencia al subtipo (S1, S2, …Sn) del elemento (X) correspondiente al valor del código de subtipo probado, y a una secuencia de instrucciones que es generada para la compresión de un elemento (X) asociada al subtipo.
9. Procedimiento de compresión según una de las reivindicaciones 1 a 8,
caracterizado porque el flujo binario que es generado para un componente correspondiente en el documento (2) con varias circunstancias de un conjunto de elementos que comprenden al menos un elemento de información, comprende un código de fin predefinido.
10. Procedimiento de compresión según una la reivindicaciones 1 a 9,
caracterizado porque cada componente del esquema de estructura (1) corresponde en el documento (2) a un conjunto de elementos que comprende al menos un elemento de información, y está además asociado a un conjunto de números de circunstancias posibles, que indican el número de veces que un conjunto de elementos correspondientes a este componente, puede aparecer en un elemento de información de nivel inmediatamente superior al cual el pertenece.
11. Procedimiento de compresión según la reivindicación 10,
caracterizado porque la secuencia de instrucciones que es generada para un componente que tiene el número de circunstancias igual a 0 ó 1 comprende sucesivamente:
- una instrucción de inserción de un código de presencia ("flagX") sobre un bit indicando la presencia o no en el documento (2) de un conjunto de elementos (X) correspondiente al documento,
- una instrucción de prueba del valor del código de presencia, y
- en asociación con la instrucción de prueba, si el valor del código de presencia indica la presencia del conjunto de elementos (X) en el documento, una secuencia en instrucciones que es generada por el componente, independientemente del número de circunstancias asociadas.
12. Procedimiento de compresión según la reivindicación 10 u 11,
caracterizado porque la secuencia de instrucciones que es generada para un componente que tenga un número de circunstancias comprendidas entre n y m comprende sucesivamente:
- una instrucción de inserción de un código de número de circunstancias ("loopflagX") que indica el número de circunstancias sucesivas de un conjunto de elementos (X) correspondiente al componente en el documento comprendido, al cual se le ha suprimido el número n mínimo de circunstancias, asociado al tamaño de ese código en número de bits,
- una instrucción de bucle que define un número de iteraciones correspondiente al valor del código de número de circunstancias, y
- en asociación con la instrucción de bucle, una secuencia de instrucciones que es generada para el componente, independientemente del número de circunstancias asociadas.
13. Procedimiento de compresión según la reivindicación 12,
caracterizado porque la secuencia de instrucciones que es generada para un componente que tiene el número de circunstancias comprendidas entre 0 y m comprende además:
- una instrucción de inserción de un código de presencia ("shuntFlagX") que indica sobre un bit la presencia o no en el documento de al menos una circunstancia del conjunto de elementos (X) correspondiente akl componente, e
- una instrucción de prueba del valor de código de presencia, asociado a la secuencia de instrucciones generada para un número de circunstancias comprendido entre 1 y m del componente, si el valor del código de presencia indica la presencia de al menos un conjunto de elementos.
14. Procedimiento de compresión según la reivindicación 10,
caracterizado porque la secuencia de instrucciones que es generada para un componente que tiene el número de circunstancias comprendidas entre n y m comprende sucesivamente:
- una instrucción de inserción de un código de presencia ("flagX") en un bit de una circunstancia de un conjunto de elementos (X) que corresponde al componente en el documento (2) asociado al tamaño de ese código en número de bits,
- una instrucción de bucle para ejecutar tanto como el código de presencia para insertar indica la presencia de una nueva circunstancia del conjunto de elementos (X),
- en asociación con la instrucción de bucle, una secuencia de instrucciones que es generada para el componente, y una instrucción de inserción de un nuevo código de presencia ("flagX") sobre un bit de una nueva circunstancia del conjunto de elementos (X) en el documento.
15. Procedimiento de compresión según una de la reivindicaciones 1 a 14,
caracterizado porque cada componente del esquema de estructura (1) corresponde a un conjunto de elementos que comprende al menos un elemento de información, en el que el esquema de estructura (1) en el documento estructurado (2) comprende al menos un componente de tipo secuencia de componentes ordenados, cuyo orden de aparición en la secuencia define el orden de aparición en el documento de los conjuntos de elemento correspondiente a los componentes del grupo de tipo secuencia, y porque la secuencia de instrucciones que es generada para una secuencia que comprende n componentes (X1, X2,..Xn) comprende sucesivamente secuencias de instrucciones que son generadas para cada componente de la secuencia.
16. Procedimiento de compresión según una de las reivindicaciones 1 a 15,
caracterizado porque cada componente del esquema de estructura (1) corresponde un conjunto de elementos que comprende al menos un elemento de información, en el que el esquema de estructura (1) en el documento para comprimir comprende al menos un componente de tipo grupo de componentes alternativos, correspondiendo cada componente alternativo a un conjunto de elementos de informaciones, correspondiendo el componente de tipo grupo de componentes alternativos d el documento a un conjunto de informaciones correspondientes a los componentes alternativos, y porque la secuencia de acciones que es generada para un grupo de componentes alternativos comprende n componentes que definen respectivamente n conjuntos de elementos (X1, X2,..Xn), comprende sucesi-
vamente:
- una instrucción de inserción de un código de número de conjunto de elementos ("flagCHoX") que designa el conjunto de elementos que aparecen en el documento (2) entre los n conjuntos de elementos (X1, X2,… Xn), asociada al tamaño en número de bits de ese código, y
- instrucciones de prueba del valor del código de número de conjunto de elementos, estando cada instrucción de prueba asociada a una secuencia de instrucciones que es generada para el componente correspondiente al conjunto de elementos (Xi) correspondiente al valor probado del código de número de conjunto de elementos.
17. Procedimiento de compresión según una de la reivindicaciones 1 a 16,
caracterizado porque cada componente del esquema de estructura (1) corresponde a un conjunto de elementos que comprende al menos un elemento de información, en el que el esquema de estructura (1) del documento para comprimir comprende al menos un grupo de tipo no ordenado de componentes, correspondiendo cada componente del grupo no ordenado a un conjunto de elementos y el grupo de tipo grupo no ordenado correspondiente del documento a un grupo que reúne en un orden cualquiera todos los conjuntos de elementos correspondientes a los componentes del grupo de tipo no ordenado, en que la secuencia que es generada para un grupo de tipo no ordenado comprende n componentes correspondientes en el documento respectivamente a n conjuntos de elementos (X1, X2…, Xn) comprende sucesivamente:
- una instrucción de inserción de un código ("flagChoX") de número de conjunto de elementos (Xi) y que designa el próximo conjunto de elementos que aparecen en el documento (2), asociado al tamaño el número de bits de ese código, y
- instrucciones de prueba del valor del código de número de conjunto de elementos, cada instrucción de prueba estando asociada a una secuencia de instrucciones que es generada por el componente correspondiente con el conjunto de elementos (Xi) correspondiente al valor de código de número de conjunto de elementos probado, y una secuencia de instrucciones que es generada para un grupo de tipo no ordenado que comprende todos los componentes (X1…,Xn) del grupo no ordenado salvo el componente correspondiente al conjunto de elementos (Xi).
18. Procedimiento de descompresión de un documento estructurado que comprende elementos de información imbricados los unos en los otros y asociados cada uno a un tipo información, estando el documento estructurado (2) asociado con al menos un esquema de estructura(1, 31, 39, 43) que define una estructura arborescente del documento que comprende componentes de estructura (a3, a4, X, Y, a1, a5, a1, a2, A,B, 32, 33, 40, 44, 45, 46) imbricados los unos en los otros, estando cada tipo de información del documento definido por un componente del esquema, caracterizado porque comprende etapas que consisten en:
- analizar (11) el esquema de estructura (1) en el documento generado, para cada componente del esquema de estructura, una secuencia de instrucciones ejecutable (5), que comprende instrucciones de lectura en un flujo binario que constituye el documento comprimido (10), de códigos de control y de valores comprimidos de elementos de informaciones o de códigos de llamada de secuencias de instrucciones de componentes, y la instrucciones de control del desarrollo de la ejecución de la secuencia en función de los valores de código de control, la ejecución de la secuencia de instrucción sobre el documento comprimido (10) que permiten reconstituir un documento (2') al formato del documento (2) de origen y que tiene una estructura al menos equivalente.
- ejecutar (14') sobre el flujo binario que constituye el documento para descomprimir (10) la secuencia de instrucciones generadas para obtener un documento estructurado (2') al formato del documento estructurado (2) de origen que tiene una estructura al menos equivalente.
19. Procedimiento de descompresión según la reivindicación 18,
caracterizado porque el documento estructurado (2) comprende elementos de base no descompuestos en sus elementos, al menos un tipo de información de elementos de base está asociado con un algoritmo de descompresión (16') adaptado al tipo información, el procedimiento que comprende, durante la ejecución de la secuencia de instrucción (5) sobre el flujo binario que constituye el documento comprimido (10), la detección en el flujo binario de un código binario de elemento de informaciones que corresponde al dicho tipo de información y la aplicación del algoritmo de compresión a ese código binario.
20. Procedimiento de descompresión según la reivindicación 18 o 19,
caracterizado porque comprende una etapa de compilación (17) de la secuencia de instrucciones (5) obtenidas para cada componente del esquema de estructura (1), para obtener un programa binario de descodificación (6) dedicado al dicho esquema de estructura, y directamente ejecutable o interpretable por un ordenador para descomprimir un documento (10) que tenga ese esquema de estructura.
21. Procedimiento de descompresión según una de las reivindicaciones 18 a 20
caracterizado porque comprende una etapa previa de normalización (12) del esquema de estructura (5) en el documento, de manera que se obtenga un orden único predefinido de los componentes del esquema.
22. Procedimiento de descompresión según una de la reivindicaciones 18 a 21,
caracterizado porque comprende una etapa (12) previa de optimización y de simplificación del esquema de estructura en el documento que consiste en reducir el número de niveles jerárquicos de grupos de componentes de estructura.
23. Procedimiento de descompresión según una de la reivindicaciones 18 a 22,
caracterizado por al menos un código de elemento de información es señalado en el flujo binario en el documento comprimido (10), de manera que permite el acceso directo a este elemento de información, sin que sea necesario descomprimir los elementos de información precedentes de este elemento en el flujo binario.
24. Procedimiento de descompresión según una de la reivindicaciones 18 a 23,
caracterizado porque el documento comprimido (10) comprende para cada elemento de información en el documento de origen, un código que permite determinar el tipo de información asociado al elemento de información y el valor binario del elemento de información comprimido.
25. Procedimiento de descompresión según una de la reivindicaciones 18 a 24,
caracterizado porque el esquema de estructura (1) del documento para descomprimir (10) comprende la definición de sub-tipos de al menos un tipo de información (TX), y porque la secuencia de instrucciones (5) que es generada para un componente de un tipo (TX) que tenga n subtipos (S1, S2, .....Sn) comprende sucesivamente:
- una instrucción de lectura de un código de subtipo ("flagPoly") que representa un número de sub-tipos para aplicar a un elemento (X) que corresponda en el documento al componente, asociado al tamaño de ese código en número de bits, y
-instrucciones de prueba del valor del código de subtipo, estando cada instrucción de prueba asociada con una referencia al subtipo (S1, S2, .....Sn) del elemento (X) que corresponde al valor del código de subtipo probado, y a una secuencia de instrucciones que es generada para la descompresión de un elemento (X) asociada al subtipo.
26. Procedimiento de descompresión según una de las reivindicaciones 18 a 25, Caracterizado porque en el flujo binario en el documento comprimido (10), al final de un grupo de varias circunstancias de un conjunto de elementos que comprenden al menos un elemento de información y que corresponde a un componente del esquema (1), está marcada por un código binario determinado.
27. Procedimiento de descompresión según las reivindicaciones 18 a 26,
\newpage
caracterizado porque en cada componente del esquema de estructura (1) que corresponde del flujo binario en el documento (10) con un conjunto de elementos que comprende al menos un elemento de información, y ésta además asociado a un conjunto de número de circunstancias posibles, que indica el número de veces que un conjunto de elementos que corresponde a ese componente estructura, puede aparecer en el elemento de informaciones del nivel inmediatamente superior al cual el pertenece.
28. Procedimiento de descompresión según la reivindicación 27,
caracterizado porque en la secuencia de instrucciones que es generada para un componente que tiene el número de circunstancias igual 0 ó 1 comprende sucesivamente:
- una instrucción de lectura de un código de presencia ("flagX") sobre un bit que indica la presencia o no en el documento comprimido de un conjunto de elementos (X) que corresponden al componente,
- una instrucción de prueba del valor del código de presencia, y
- en asociación con la instrucción de prueba, si el valor del código de presencia indica la presencia del conjunto de elementos (X) en el documento comprimido, una secuencia de instrucciones que es generada por el componente, independientemente del número de circunstancias asociadas.
29. Procedimiento de descompresión según las reivindicaciones 27 ó 28,
caracterizado porque la secuencia de instrucciones que es generada para un componente que tiene un número de circunstancias comprendidas entre n y m comprende sucesivamente:
- una instrucción de lectura de un código de número de circunstancias ("loopflagX") que indica el número de circunstancias sucesivas en el documento comprimido de un conjunto de elementos (X) que corr4esponde la componente, al cual se le ha suprimido el número n mínimo de circunstancias, asociado al tamaño de ese código en número de bits,
- una instrucción de bucle que define un número de iteraciones correspondiente al valor del código de número de circunstancias, y
- en asociación con la instrucción de bucle, una secuencia de instrucciones que es generada para el componente, independientemente del número de circunstancias asociadas.
30. Procedimiento de descompresión según la reivindicación 29,
caracterizado porque en la secuencia de instrucciones que es generada para un componente que tiene el número de circunstancias comprendidas entre 0 y m. comprende además:
- una instrucción de lectura de un código de presencia ("shuntflagX") que indica sobre un bit la presencia o no en el documento comprimido de al menos una circunstancia de un conjunto de elementos (X) que corresponde al componente, y
- una inserción de prueba del valor del código de presencia, asociado a la secuencia de instrucciones generada para un número de circunstancias comprendidas entre 1 y m del componente, si el valor del código de presencia indica la presencia de al menos un conjunto de elementos.
31. Procedimiento de descompresión según la reivindicación 27,
caracterizado porque en la secuencia de instrucciones que es generada para un componente que tiene el número de circunstancias comprendidas entre n y m comprende sucesivamente:
- una instrucción de lectura de un código de presencia ("flagX") sobre un bit de una circunstancia de un conjunto de elementos (X) que corresponde al componente en el documento comprimido (10), asociado al tamaño de ese código en número de bits,
- una instrucción de bucle para ejecutar tanto como el código de presencia leído en el flujo binario en el documento comprimido indica la presencia de una nueva circunstancia del conjunto de elementos (X),
- en asociación con la instrucción del bucle, una secuencia de instrucciones que es generada para el componente, y una instrucción de inserción de un nuevo código de presencia ("flagX") sobre un bit de una nueva circunstancia del conjunto de elementos (X) en el documento comprimido (10).
32. Procedimiento de descompresión según una de la reivindicaciones 18 a 31,
caracterizado porque en cada componente del esquema de estructura (1) corresponde un conjunto de elementos que comprende al menos un elemento de información, en el que el esquema de estructura (1) en el documento comprimido (10) comprende al menos un componente de tipo secuencia de componentes ordenados, cuyo orden de aparición en la secuencia define el orden de aparición en el documento de los conjuntos de elementos correspondientes a los componentes del grupo de tipo secuencia, y porque la secuencia de instrucciones que es generada para una secuencia que comprende n componentes (X1, X2,,,,,Xn) comprende sucesivamente secuencias de instrucciones que son generadas para cada componente de la secuencia.
33. Procedimiento de descompresión según una de la reivindicaciones 18 a 32,
caracterizado porque en cada componente del esquema de estructura (1) corresponde a un conjunto de elementos que comprende al menos un elemento de información, en el que el esquema de estructura (1) del documento para descomprimir comprende al menos un componente del tipo grupo de componentes alternativos, correspondiente cada componente alternativo a un conjunto de elementos de informaciones, correspondiente el componente de tipo de grupo componentes alternativos en el documento a un conjunto de informaciones que corresponde a los componentes alternativos, y en el que la secuencia de instrucciones que es generada para un grupo de componentes alternativos que comprende n componentes que definen respectivamente n conjuntos de elementos (X1, X2,….. Xn), comprende sucesivamente:
- una instrucción de lectura de un código de número de conjunto de elementos ("flagChoX") que designa el conjunto de elementos que aparecen en el documento (10) entre los n conjuntos de elementos (X1, X2,….Xn), asociado al tamaño en número de bits de ese código, e
- instrucciones de prueba del valor del código del número de conjunto de elementos, estando cada instrucción de prueba asociada a una secuencia de instrucciones que es generada para el componente correspondiente con el conjunto de elementos (Xi) correspondiente al valor probado del código de número de conjunto de elementos.
34. Procedimiento de descompresión según una de la reivindicaciones 18 a 33, caracterizado porque cada componente del esquema de estructura (1) corresponde aun conjunto de elementos que comprende al menos un elemento de información, en el que el esquema de estructura (1) del documento para des comprimir comprende al menos un grupo de tipo no ordenado de componentes, correspondiente cada componente del grupo no ordenado a un conjunto de elementos y el grupo de tipo grupo no ordenado que corresponde en el documento a un grupo que reúne en un grupo cualquiera todos los elementos del conjunto que corresponden a los componentes del grupo de de tipo no ordenado, y porque que la secuencia es flexiones que es generada para un grupo de tipo no ordenado que comprende del componentes que corresponde en el documento respectivamente a n conjunto de elementos (X1, X2,,,,,Xn), comprende sucesivamente:
- una instrucción de lectura de un código de número de conjuntos de elementos (Xi) y que designa el próximo conjunto de elementos que aparecen en el documento (10), asociado al tamaño en número de bits de ese código, y
- instrucciones de prueba del valor del código de número de conjunto de elementos, estando cada instrucción de prueba asociada con una secuencia de instrucciones que es generada para el componente correspondiente al conjunto de elementos (Xi) que corresponde al valor de código de número de conjunto de elementos probado, y una secuencia de instrucciones que es generada para un grupo de tipo no ordenado que comprende todos los componentes (X1, … Xn) del grupo no ordenado salvo el componente correspondiente al conjunto de elementos (Xi).
ES02701380T 2001-02-02 2002-02-01 Procedimiento de compresion/descompresion de un documento estructurado. Expired - Lifetime ES2272666T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0101447 2001-02-02
FR0101447A FR2820563B1 (fr) 2001-02-02 2001-02-02 Procede de compression/decompression d'un document structure

Publications (1)

Publication Number Publication Date
ES2272666T3 true ES2272666T3 (es) 2007-05-01

Family

ID=8859571

Family Applications (1)

Application Number Title Priority Date Filing Date
ES02701380T Expired - Lifetime ES2272666T3 (es) 2001-02-02 2002-02-01 Procedimiento de compresion/descompresion de un documento estructurado.

Country Status (12)

Country Link
US (1) US20040054692A1 (es)
EP (1) EP1356595B1 (es)
JP (2) JP3973557B2 (es)
KR (1) KR100614677B1 (es)
CN (1) CN1309173C (es)
AT (1) ATE336108T1 (es)
AU (1) AU2002234715B2 (es)
CA (1) CA2445300C (es)
DE (1) DE60213760T2 (es)
ES (1) ES2272666T3 (es)
FR (1) FR2820563B1 (es)
WO (1) WO2002063776A2 (es)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2813743B1 (fr) * 2000-09-06 2003-01-03 Claude Seyrat Procede de compression/decompression de documents structures
WO2002063775A2 (en) * 2001-02-05 2002-08-15 Expway Method and system for compressing structured documents
US7080318B2 (en) * 2001-02-28 2006-07-18 Koninklijke Philips Electronics N.V. Schema, syntactic analysis method and method of generating a bit stream based on a schema
US7028286B2 (en) * 2001-04-13 2006-04-11 Pts Corporation Methods and apparatus for automated generation of abbreviated instruction set and configurable processor architecture
ATE341901T1 (de) * 2001-07-13 2006-10-15 France Telecom Verfahren zur komprimierung einer baumhierarchie, zugehöriges signal und verfahren zur dekodierung eines signals
US20030188265A1 (en) * 2002-04-02 2003-10-02 Murata Kikai Kabushiki Kaisha Structured document processing device and recording medium recording structured document processing program
WO2004107112A2 (en) * 2003-05-23 2004-12-09 Snapbridge Software, Inc. Data federation methods and system
WO2005046059A1 (en) * 2003-11-07 2005-05-19 Expway Method for compressing and decompressing structured documents
US8037102B2 (en) 2004-02-09 2011-10-11 Robert T. and Virginia T. Jenkins Manipulating sets of hierarchical data
US7603654B2 (en) * 2004-03-01 2009-10-13 Microsoft Corporation Determining XML schema type equivalence
CN1697327A (zh) * 2004-05-13 2005-11-16 皇家飞利浦电子股份有限公司 一种顺序压缩/解压缩数据的方法及装置
US9646107B2 (en) 2004-05-28 2017-05-09 Robert T. and Virginia T. Jenkins as Trustee of the Jenkins Family Trust Method and/or system for simplifying tree expressions such as for query reduction
US7620632B2 (en) 2004-06-30 2009-11-17 Skyler Technology, Inc. Method and/or system for performing tree matching
US7801923B2 (en) 2004-10-29 2010-09-21 Robert T. and Virginia T. Jenkins as Trustees of the Jenkins Family Trust Method and/or system for tagging trees
US7627591B2 (en) 2004-10-29 2009-12-01 Skyler Technology, Inc. Method and/or system for manipulating tree expressions
US7630995B2 (en) 2004-11-30 2009-12-08 Skyler Technology, Inc. Method and/or system for transmitting and/or receiving data
US7636727B2 (en) 2004-12-06 2009-12-22 Skyler Technology, Inc. Enumeration of trees from finite number of nodes
US8316059B1 (en) 2004-12-30 2012-11-20 Robert T. and Virginia T. Jenkins Enumeration of rooted partial subtrees
US7634502B2 (en) * 2005-01-24 2009-12-15 Paul Colton System and method for improved content delivery
US8615530B1 (en) 2005-01-31 2013-12-24 Robert T. and Virginia T. Jenkins as Trustees for the Jenkins Family Trust Method and/or system for tree transformation
US7681177B2 (en) 2005-02-28 2010-03-16 Skyler Technology, Inc. Method and/or system for transforming between trees and strings
KR100714539B1 (ko) * 2005-03-09 2007-05-07 엘지전자 주식회사 냉장고용 정수장치
US8111694B2 (en) 2005-03-23 2012-02-07 Nokia Corporation Implicit signaling for split-toi for service guide
US8356040B2 (en) 2005-03-31 2013-01-15 Robert T. and Virginia T. Jenkins Method and/or system for transforming between trees and arrays
US20060234681A1 (en) * 2005-04-18 2006-10-19 Research In Motion Limited System and method for data and message optimization in wireless communications
US7899821B1 (en) * 2005-04-29 2011-03-01 Karl Schiffmann Manipulation and/or analysis of hierarchical data
US20060288028A1 (en) * 2005-05-26 2006-12-21 International Business Machines Corporation Decompressing electronic documents
US20070143664A1 (en) * 2005-12-21 2007-06-21 Motorola, Inc. A compressed schema representation object and method for metadata processing
JP4429329B2 (ja) * 2007-02-16 2010-03-10 キヤノン株式会社 符号化装置及びその制御方法、復号装置及びその制御方法、プログラム、記憶媒体
US7747558B2 (en) 2007-06-07 2010-06-29 Motorola, Inc. Method and apparatus to bind media with metadata using standard metadata headers
US8694893B2 (en) * 2008-08-08 2014-04-08 Oracle International Corporation Interactive product configurator with persistent component association
US20100049727A1 (en) * 2008-08-20 2010-02-25 International Business Machines Corporation Compressing xml documents using statistical trees generated from those documents
FR2936623B1 (fr) * 2008-09-30 2011-03-04 Canon Kk Procede de codage d'un document structure et de decodage, dispositifs correspondants
JP5570202B2 (ja) * 2009-12-16 2014-08-13 キヤノン株式会社 構造化文書解析装置、構造化文書解析方法、及びコンピュータプログラム
WO2011079796A1 (zh) * 2009-12-30 2011-07-07 北京飞天诚信科技有限公司 .net文件压缩方法
US8442998B2 (en) 2011-01-18 2013-05-14 Apple Inc. Storage of a document using multiple representations
US9111327B2 (en) 2011-01-18 2015-08-18 Apple Inc. Transforming graphic objects
JP2014086048A (ja) 2012-10-26 2014-05-12 Toshiba Corp 検証装置、検査方法およびプログラム
CN103019895B (zh) * 2012-12-28 2015-01-28 华为技术有限公司 文件存储方法及装置
US9481029B2 (en) 2013-03-14 2016-11-01 Hitchiner Manufacturing Co., Inc. Method of making a radial pattern assembly
US9498819B2 (en) 2013-03-14 2016-11-22 Hitchiner Manufacturing Co., Inc. Refractory mold and method of making
US9486852B2 (en) 2013-03-14 2016-11-08 Hitchiner Manufacturing Co., Inc. Radial pattern assembly
CN104868922B (zh) * 2014-02-24 2018-05-29 华为技术有限公司 数据压缩方法及装置
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
KR101702767B1 (ko) * 2015-08-18 2017-02-03 라인 가부시키가이샤 비트를 이용하여 문서에 대한 접근 권한과 타입에 따라 문서를 검색하는 시스템 및 방법
CA3040138A1 (en) * 2016-10-11 2018-04-19 Giorgio Zoia Method and system for selective access of stored or transmitted bioinformatics data
KR20210099017A (ko) * 2018-12-07 2021-08-11 인터디지털 브이씨 홀딩스 인코포레이티드 코딩 도구 조합 및 제한의 관리
CN114266018B (zh) * 2021-11-17 2025-01-21 成都安恒信息技术有限公司 一种将任意字节转化为执行逻辑的方法及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778375A (en) * 1996-06-27 1998-07-07 Microsoft Corporation Database normalizing system
US6580834B2 (en) * 1997-05-30 2003-06-17 Competitive Technologies Of Pa, Inc. Method and apparatus for encoding and decoding signals
EP0928070A3 (en) * 1997-12-29 2000-11-08 Phone.Com Inc. Compression of documents with markup language that preserves syntactical structure
US6272252B1 (en) * 1998-12-18 2001-08-07 Xerox Corporation Segmenting image data into blocks and deleting some prior to compression
GB9911099D0 (en) * 1999-05-13 1999-07-14 Euronet Uk Ltd Compression/decompression method
US6883137B1 (en) * 2000-04-17 2005-04-19 International Business Machines Corporation System and method for schema-driven compression of extensible mark-up language (XML) documents
US6865664B2 (en) * 2000-12-13 2005-03-08 Conexant Systems, Inc. Methods, systems, and computer program products for compressing a computer program based on a compression criterion and executing the compressed program

Also Published As

Publication number Publication date
FR2820563A1 (fr) 2002-08-09
FR2820563B1 (fr) 2003-05-16
CA2445300A1 (en) 2002-08-15
EP1356595A2 (fr) 2003-10-29
EP1356595B1 (fr) 2006-08-09
WO2002063776A2 (fr) 2002-08-15
WO2002063776A3 (fr) 2002-11-28
CN1494767A (zh) 2004-05-05
DE60213760T2 (de) 2007-08-09
CA2445300C (en) 2007-04-24
US20040054692A1 (en) 2004-03-18
KR20040007442A (ko) 2004-01-24
AU2002234715B2 (en) 2005-10-06
KR100614677B1 (ko) 2006-08-21
JP3973557B2 (ja) 2007-09-12
CN1309173C (zh) 2007-04-04
JP2004530188A (ja) 2004-09-30
ATE336108T1 (de) 2006-09-15
DE60213760D1 (de) 2006-09-21
JP2007226813A (ja) 2007-09-06

Similar Documents

Publication Publication Date Title
ES2234878T3 (es) Procedimiento para la compresion/decompresion de documentos estructur dos.
JP3973557B2 (ja) 構造化された文書を圧縮/伸長する方法
US20210303588A1 (en) Dynamic Field Data Translation to Support High Performance Stream Data Processing
US8291150B2 (en) Table device, variable length coding apparatus, variable length decoding apparatus, and variable length coding and decoding apparatus
US20050120031A1 (en) Structured document encoder, method for encoding structured document and program therefor
ES2272429T3 (es) Metodo para comprimir un arbol jerarquico, señal correspondiente y metodo para descodificar una señal.
CN104283567A (zh) 一种名称数据的压缩、解压缩方法及设备
ATE334449T1 (de) Erstellung von strukturierten daten aus unformatiertem text
KR20190064621A (ko) 2진 데이터를 인코딩 및 디코딩하기 위한 방법 및 디바이스
US7652596B1 (en) Variable-length compression technique for encoding or decoding a sequence of integers
US20070273564A1 (en) Rapidly Queryable Data Compression Format For Xml Files
CN113704575A (zh) 解析XML与Java文件的SQL方法、装置、设备及存储介质
US7609000B1 (en) Variable-length compression technique for encoding or decoding a sequence of integers
CN105843663A (zh) 适用于asn.1递归解析数据结构描述的编解码方法
KR20060054315A (ko) 구조화된 문서의 코딩 방법
CN101369953B (zh) 一种字库的网络分发方法及系统
JP2004523166A (ja) Mpeg−7および他のxmlベースの内容記述のバイナリ表現における機能を改善する方法
CN101877005A (zh) 一种基于文档模式的gml压缩方法
KR20060123197A (ko) 구조적 문서의 압축 및 압축 해제 방법
CN107818121A (zh) 一种html文件压缩方法、装置及电子设备
JP2004302868A (ja) Xmlのタグ圧縮方法
JP2633121B2 (ja) データ解析処理方式
US8336037B1 (en) JNI-minimizing data structures for XML parsing
JP2004342029A (ja) 構造化文書圧縮方法及び装置
Galambos et al. Compression of Semistructured Documents