ES2389363T3 - Dispositivo de tratamiento de datos con definición formal - Google Patents

Dispositivo de tratamiento de datos con definición formal Download PDF

Info

Publication number
ES2389363T3
ES2389363T3 ES05809470T ES05809470T ES2389363T3 ES 2389363 T3 ES2389363 T3 ES 2389363T3 ES 05809470 T ES05809470 T ES 05809470T ES 05809470 T ES05809470 T ES 05809470T ES 2389363 T3 ES2389363 T3 ES 2389363T3
Authority
ES
Spain
Prior art keywords
mathematical
symbol
expression
variable
data
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.)
Active
Application number
ES05809470T
Other languages
English (en)
Inventor
Michel De Becdelievre
Hervé Morand
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.)
Progilys
Original Assignee
Progilys
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 Progilys filed Critical Progilys
Application granted granted Critical
Publication of ES2389363T3 publication Critical patent/ES2389363T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2448Query languages for particular applications; for extensibility, e.g. user defined types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/111Mathematical or scientific formatting; Subscripts; Superscripts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Optimization (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Software Systems (AREA)
  • Devices For Executing Special Programs (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

Dispositivo de tratamiento de datos, que comprendeuna unidad de tratamiento (200) capaz de interaccionar con una base de datos (100), comprendiendola base de datos unas tablas de datos (110);una interfaz gráfica de usuario establecida para permitir a un usuario introducir una expresiónmatemática;comprendiendo la unidad de tratamiento:un editor de expresión matemática (210) capaz de establecer una representación informática detrabajo de una expresión matemática en interacción con la interfaz gráfica de usuario, hallándose laexpresión matemática en lenguaje natural matemático y comprendiendo ésta al menos un símbolo devariable matemática compleja, que presenta un índice y/o un exponente, y un símbolo matemáticoagregativo que opera con el símbolo de variable matemática compleja;un diccionario de símbolos (130) el cual, establecido para almacenar metadatos referentes al símbolode variable matemática compleja, comprende información sobre la estructura de tablas (110) de labase de datos (100);un editor de condiciones (180; 240) dispuesto para producir una expresión de condición, asociada alsímbolo de variable matemática compleja, siendo la expresión de condición utilizable en combinacióncon los metadatos para seleccionar un subconjunto de datos de la base de datos (100);un generador de consultas (220; 230) dispuesto para tratar la representación informática de trabajopara producir una secuencia de código que ejecuta la expresión matemática de acuerdo con las reglasdel lenguaje natural matemático y con el reconocimiento del símbolo matemático agregativo y delsí mbolo de variable matemática compleja con el cual opera:utilizar el editor de condiciones (180; 240) para producir una expresión de condición de trabajo;utilizar los metadatos para producir un código capaz de utilizar la expresión de condición de trabajopara rellenar un cuadro de datos de trabajo con tal subconjunto de datos y,combinar el operador correspondiente al símbolo matemático agregativo con el cuadro de datos detrabajo.

Description

Dispositivo de tratamiento de datos con definición formal
La invención tiene relación con los dispositivos de tratamiento de datos y, más particularmente, con un dispositivo de tratamiento de datos, el cual comprende un editor de fórmula, capaz de establecer una fórmula que obedece a unas primeras reglas formales, con ayuda de identificadores de variables, un juego de metadatos, capaz de mantener una correspondencia entre los identificadores de variables y unos datos almacenados en memoria, y un generador de código, capaz de generar un código que ejecuta la fórmula matemática sobre unos datos almacenados.
Los soportes lógicos matemáticos utilizan un lenguaje natural matemático, los cuales son capaces de interpretarlo para realizar los cálculos formales matemáticos. Sin embargo, no están adaptados para el tratamiento de un gran volumen de datos. Además, no están adaptados para la gestión de índices como para no definidas, por ejemplo bajo forma de función.
las hojas de cálculo utilizan un lenguaje propio de las mismas para expresar un tratamiento sobre unos datos. Estas, además, están limitadas por el volumen de los datos que pueden tratar.
la patente US 2004/0133567 A1 describe optimizaciones y estrategias de ejecución para unas extensiones de tipo hoja de cálculo en lenguaje SOL (del inglés "Structured Ouery Language", o "lenguaje de consulta estructurado" en español). Se pueden definir cálculos que han de efectuarse sobre una base de datos utilizando una sintaxis de tipo hoja de cálculo en una cláusula insertada en el interior de una consulta Sal. los cálculos son definidos directamente por medio de operaciones sobre las líneas y las columnas de una tabla rellena de datos extraídos de la base. la definición de los cálculos requiere sin embargo el conocimiento de la sintaxis del lenguaje de la hoja de cálculo y la localización de los datos en los cuales va a centrarse el cálculo en cuanto este último quede definido. Además, los cálculos que se pueden definir están limitados por las posibilidades de este tipo de lenguaje.
los generadores de código se encargan de la transcripción de objetos informáticos a un código ejecutable. Estos no permiten transformar una fórmula matemática en código ejecutable. Además, están destinados a usuarios conocedores de la informática.
la invención tiene por objeto, en particular, superar los inconvenientes antedichos al proponer un dispositivo de tratamiento de datos, el cual comprende una unidad de tratamiento capaz de interaccionar con una base de datos, comprendiendo la base de datos unas tablas de datos, una interfaz gráfica de usuario dispuesta para permitir a un usuario introducir una expresión matemática. la unidad de tratamiento comprende un editor de expresión matemática capaz de establecer una representación informática de trabajo de una expresión matemática en interacción con la interfaz gráfica de usuario, estando la expresión matemática en lenguaje natural matemático y comprendiendo ésta al menos un símbolo de variable matemática compleja, que presenta un índice y/o un exponente, y un símbolo matemático agregativo que opera con el símbolo de variable matemática compleja, un diccionario de símbolos dispuesto para almacenar unos primeros metadatos referentes al símbolo de variable matemática compleja, y comprendiendo unas informaciones sobre la estructura de las tablas de la base de datos, un editor de condiciones dispuesto para producir una expresión de condición, asociada al símbolo de variable matemática compleja, siendo la expresión de condición utilizable en combinación con los primeros metadatos para seleccionar un subconjunto de datos de la base de datos, un generador de consultas dispuesto para tratar la representación informática de trabajo para producir una secuencia de código que ejecuta la expresión matemática de manera acorde con las reglas del lenguaje natural matemático y, con el reconocimiento del símbolo matemático agregativo y del símbolo de variable matemática compleja con el cual el opera, de utilizar el editor de condiciones para producir una expresión de condiciones de trabajo, de los primeros metadatos para producir un código capaz de utilizar la expresión de condición para rellenar un cuadro de datos de trabajo con tal subconjunto de datos y de combinar el operador correspondiente al símbolo matemático agregativo con el cuadro de datos de trabajo.
El dispositivo según la invención permite así la definición de un tratamiento informático, por ejemplo un cálculo, el cual ha de realizarse sobre grandes volúmenes de datos, expresándose tal tratamiento en lenguaje natural matemático.
Otras características y ventajas de la invención se irán poniendo de manifiesto conforme se examine la descripción detallada que sigue, y los dibujos que se acompañan, en los cuales:
la figura 1 es un esquema que representa funcionalmente los diferentes elementos de un dispositivo de tratamiento de datos según la invención, de manera global,
las figuras 2 a 4
son esquemas que representan funcionalmente unos detalles de elementos de la figura 1,
las figuras 5 y 6
son unos organigramas que ilustran el funcionamiento de un elemento de la figura 1,
la figura 7 es un organigrama que detalla la operación 506 de la figura 5,
la figura 8 es un organigrama que detalla la operación 508 de la figura 8,
la figura 8A es un organigrama que detalla la operación 850 de la figura 8,
la figura 9 es un organigrama que detalla la operación 900 de la figura 7 y de la figura SA,
las figuras 1 DA, 108 Y 10C son unos organigramas que detallan la operación 1000 de la figura 9 en diferentes casos,
la figura 11 es un organigrama que ilustra el funcionamiento de un elemento del dispositivo de la figura 1,
la figura 12 es un esquema que ilustra una interfaz gráfica de usuario de otro elemento de la figura 1,
la figura 13 es un organigrama que ilustra el funcionamiento de otro elemento de la figura 1, Y
la figura 14 es un esquema que ilustra un ejemplo de puesta en práctica del dispositivo de tratamiento de datos según la invención.
Además:
el anexo 1 es un glosario,
los anexos 2 y 3 transcriben fórmulas matemáticas en diferentes formas, utilizadas para la descripción, y
el anexo 4 detalla la noción de función de resumen (hash).
Los dibujos y los anexos a la descripción comprenden, en lo fundamental, elementos de índole inequívoca. Por lo tanto, podrán no sólo servir para hacer comprender mejor la descripción, sino también contribuir a la definición de la invención, si es el caso.
La presente patente puede contener elementos susceptibles de una protección mediante derechos de autor o copyright. El titular de los derechos no tiene objeción a que cualquier persona reproduzca idénticamente este documento de patente, tal y como aparece en los expedientes y/o publicaciones de las oficinas de patentes. Por el contrario, en todo lo demás se reserva la totalidad de sus derechos de autor y/o de copyright.
La figura 1 representa un dispositivo de tratamiento de datos según la invención. El dispositivo de tratamiento de datos comprende una base de datos OB 100 almacenada en la memoria de una unidad central de proceso de ordenador, no representada en la figura 1, Y un programa de tratamiento de los datos OPP 200 ejecutable en la memoria de una unidad central de proceso de ordenador, no representada. Por ejemplo, la base de datos OB 100 Y el programa de tratamiento de los datos OPP 200 pueden estar almacenados en la misma memoria de unidad central de proceso de ordenador. En el anexo A.1.1 se ofrece una definición del término "base de datos".
El programa de tratamiento de los datos OPP 200 es capaz de interaccionar con la base de datos OB 100 mediante medios conocidos por el experto en la materia para realizar acciones informáticas convencionales. Estas acciones comprenden operaciones sobre los datos contenidos en la base de datos OB 100 como son la lectura, la escritura, la búsqueda y la actualización y acciones sobre la estructura de la base de datos OB 100 como son la creación, la eliminación de tablas, etc. En el anexo A.1.2 se aporta una definición del término ''tabla''.
La base de datos OB 100 contiene datos que van a tratarse OAT 110. Los datos que van a tratarse OAT 110 se almacenan de manera organizada en una pluralidad de tablas contenedoras cada una de ellas de líneas y de columnas según se indica en el anexo A.1.2.
En la base de datos OB 100, las columnas pueden estar caracterizadas como columna de clave o columna de tipo e, columna técnica o columna de tipo T, columna cuantitativa o columna de tipo a, o aún como columna de estado
o columna de tipo E.
En el anexo A.1.1 O se ofrece una definición de la expresión "columna de clave". Las columnas técnicas, o columnas T, contienen datos útiles para el funcionamiento del dispositivo según la invención. Por ejemplo, una columna técnica particular puede contener un identificador de un procesador que interviene en el tratamiento de los datos que han de tratarse OAT 110. Las columnas cuantitativas, o columnas a, contienen datos numéricos que representan cantidades útiles para un usuario del dispositivo según la invención. Las columnas de estado, o columnas E, contienen datos alfanuméricos útiles para un usuario del dispositivo.
El programa de tratamiento de los datos OPP 200 comprende un editor de expresiones matemáticas MathEdt 210 que permite a un usuario componer expresiones matemáticas en lenguaje natural. La composición puede llevarse a cabo por intermedio de una interfaz gráfica de usuario, no representada. En el anexo A.1.3 se aporta una definición de la expresión "lenguaje natural matemático". En concreto, el editor de expresiones matemáticas MathEdt 210 permite la composición de fórmulas matemáticas que relacionan variables, operaciones y funciones matemáticas. Además, el editor de expresiones matemáticas MathEdt 210 permite la composición en lenguaje natural de condiciones matemáticas sobre estas variables. En el anexo A.1.4 se ofrece una definición del término "variable". El anexo A.2.1 ilustra, por ejemplo, una fórmula matemática expresada en lenguaje natural matemático.
En el dispositivo según la invención, las variables que participan en las fórmulas matemáticas compuestas en el editor de expresiones matemáticas MathEdt 210 apuntan a datos que han de tratarse DAT 110. Así, una de las funcionalidades del dispositivo según la invención es la de permitir la realización de un tratamiento sobre datos de la base de datos DAB 100, pudiendo dicho tratamiento ser expresado en un lenguaje matemático natural.
En lenguaje natural matemático, una operación está representada mediante un operador, una variable mediante un símbolo de variable y una función, mediante un símbolo de función. En los anexos A.1.5, A.1.6 Y A.1.7 se aporta una definición de los términos "operador", "símbolo de variable" y "símbolo de función", respectivamente. Así, una fórmula matemática compuesta por medio del editor de expresiones matemáticas MathEdt 210 no contiene más que símbolos de variables, símbolos de funciones y de operadores. El anexo A.1.6 expone además una convención relativa a los símbolos de variables. La convención del anexo A.1.6 es propia del dispositivo según la invención. El anexo A.2.3 ilustra por ejemplo un símbolo de variable conforme a las convenciones del anexo A.1.6.
Además, el editor de expresiones matemáticas MathEdt210 permite la composición de condiciones de ejecución de una fórmula matemática compuesta con ayuda de operadores de condiciones, referente por ejemplo a símbolos de variables. En el anexo A.1.15 se ofrece una lista de los operadores de condiciones que se pueden asociar a una fórmula matemática.
El editor de expresiones matemáticas MathEdt 210 es un editor de metalenguaje capaz de generar una representación de una expresión matemática que, compuesta en lenguaje natural matemático, obedece a unas reglas formales. Por ejemplo, el editor de expresiones matemáticas MathEdt 210 puede ser un editor MathML 2.0 capaz de generar expresiones matemáticas conformes al estándar MathML 2.0. En el anexo A.1.8 se aporta una definición del lenguaje MathML 2.0. Un editor de este tipo es conocido por el experto en la materia. Es conocido, por ejemplo, el soporte lógico WEB EQ comercializado por la compañia DESIGN SCIENCE. El anexo A,2.2 ilustra la fórmula del anexo
A.2.1 expresada en metalenguaje MathML 2.0 y generada mediante el editor de expresiones matemáticas MathEdt 210.
El programa de tratamiento de los datos DPP 200 comprende además un compilador de expresiones matemáticas MathComp 220 capaz de establecer un árbol de compilación representativo de una expresión matemática en metalenguaje, especialmente en MathML 2.0. En el anexo A.1.9 se ofrecen diferentes definiciones de la expresión "árbol de compilación".
El compilador de expresiones matemáticas MathComp 220 es capaz de establecer un árbol de compilación que contiene tan sólo operaciones identificadas, símbolos identificados, es decir, variables y condiciones. Más adelante en esta memoria descriptiva se atenderá con mayor detalle al compilador de expresiones matemáticas MathComp 220.
El programa de tratamiento de los datos DPP 200 comprende además un generador de instrucciones ComGen 230 capaz de establecer, a partir de un árbol de compilación que contiene operaciones identificadas, variables y condiciones, una lista de tablas afectadas y uniones entre dichas tablas afectadas y datos que han de tratarse DAT 110. Además, el generador de instrucciones ComGen 230 es capaz de generar una serie de instrucciones las cuales, correspondiendo al árbol de compilación, el motor (no representado) de la base de datos DB 100 es capaz de ejecutar. El generador de instrucciones ComGen 230 es, por ejemplo, un generador de instrucciones en lenguaje SOL.
La base de datos DB 100 comprende un diccionario de variables VarDic 120 capaz de mantener una relación entre un identificador de variable propio de cada variable y un nexo hacia columnas de clave de los datos que han de tratarse DAT 110, cuya combinación permite definir de manera única esta variable. En el anexo A.1.10 se ofrece una definición del término columna de clave. En este párrafo, el término variable se entiende en el sentido definido en el anexo A.1.4.2. Opcionalmente, el diccionario de variables VarDic 120 es capaz de precisar, para cada variable, si se trata o no de una variable clave.
La base de datos DB 100 comprende además un diccionario de símbolos de variables VarSymbDic 130 capaz de mantener, al menos para algunas de las variables, una relación entre estas variables del diccionario de variables VarDic120 y símbolos de variables. El diccionario de símbolos de variables VarSymbDic 130 memoriza, para cada variable de interés, una representación en metalenguaje, por ejemplo en MathML 2.0, de un símbolo de variable descompuesto según se describe a continuación.
De acuerdo con la convención expuesta en el anexo A.1.6, un símbolo de variable comprende visualmente una primera serie de caracteres determinantes de nombre de variable, una segunda serie de caracteres dispuesta como exponente y una tercera serie de caracteres dispuesta como índice. Las series de caracteres segunda y tercera son opcionales. La tercera serie de caracteres puede comprender varias series de caracteres separadas entre sí por el carácter coma ",", determinando entonces cada serie de caracteres un índice. El anexo A.2.3 muestra un símbolo de variable conforme a la convención del anexo A.1.6.
Además, la base de datos OB 110 comprende un diccionario de índices IndOic 140, capaz de mantener, para cada variable de interés, una relación entre el identificador de variable y una lista de índices asociados. El diccionario de índices IndOic 140 mantiene, para cada uno de los índices asociados a una variable particular, un nexo entre el índice y una de las columnas de clave de los datos que han de tratarse OAT 110 que definen esta variable.
La figura 2 ilustra de manera lógica el almacenamiento de los símbolos de variables en el diccionario de símbolos de variables VarSymbOic 130. Una línea memoriza un símbolo asociado a una variable almacenando en una primera columna la primera cadena de caracteres (casilla nm), la segunda serie de caracteres en una segunda columna (casilla exp) y cada una de las cadenas de caracteres de la tercera cadena de caracteres en columnas distintas (casillas ind1, ind2 y siguientes). El diccionario de variables VarSymbOic 130 mantiene asimismo un nexo entre un identificador de variable (casilla IdVar) asociado a un símbolo de variable y la zona del diccionario de variables VarOic 120 relativa a esta variable.
El anexo A.2.4 ilustra la expresión del simbolo de variable del anexo A.2.3 en MathML 2.0. En el anexo A. 2.4. 1 , se aprecia la etiqueta <msubsup> que introduce un símbolo con índice y exponente. El nombre de la variable, el índice y el exponente se introducen cada uno de ellos mediante etiquetas <mrow> de igual nivel jerárquico, siendo este nivel inmediatamente inferior al de la etiqueta <msubsup> como muestran respectivamente los anexos A.2.4.2, A.2.4.3 Y
A. 2.4.4. Se hace notar que cada serie de caracteres está encuadrada por el par de etiquetas <mi> y </mi>.
Como indica la figura 1, la base de datos OB 100 comprende un diccionario de los símbolos de función FctOic 150 que mantiene una lista de funciones matemáticas que es posible poner en práctica, en particular sobre las variables. Cada función está memorizada con relación a un símbolo de función expresado en metalenguaje, por ejemplo en MathML 2.0. En lenguaje MathML 2.0, los símbolos de función están marcados mediante unas etiquetas específicas. Por ejemplo, la etiqueta <msqrt> representa la función raíz cuadrada.
La base de datos OB 100 comprende además un diccionario de las operaciones OpOic 160 que mantiene una relación entre operadores y operaciones. En lenguaje MathML 2.0, un operador se introduce mediante un par de etiquetas <mo>< /mo>. Por ejemplo, <mo> + < /mo> introduce el operador de la suma.
La base de datos OB 100 comprende finalmente un diccionario de los símbolos reservados ResSymb 170 por el dispositivo. Los símbolos reservados no aparecen en ningún otro diccionario de símbolos.
La figura 3 especifica la estructura del diccionario de símbolos de variables VarSymbOic 130. El diccionario de símbolos de variables VarSymOic 130 comprende una tabla de los símbolos simples SVar 132. Un símbolo simple es un símbolo sin índices ni exponentes. En tal caso, sólo se memoriza la primera cadena de caracteres (casilla nm). El diccionario de símbolos de variables VarSymbOic 130 comprende asimismo una tabla de los símbolos complejos CVar
134. Un símbolo complejo es un símbolo que presenta uno o varios índices y/o un exponente.
La figura 4 especifica la estructura del diccionario de símbolos de funciones FctOic 150. El diccionario de símbolos de funciones FctOic 150 comprende una tabla de las funciones de cálculo CalcFct 152 y una tabla de las funciones agregativas AgrFct 154. En los anexos A.1.11 y A.1.12 se ofrece una definición de las expresiones "función de cálculo" y "función agregativa", respectivamente.
El programa de tratamiento de los datos OPP 200 comprende además un editor de condiciones CondEdt 240 capaz de interaccionar con el diccionario de variables VarOic 120, el diccionario de índices IndOic 140 y el generador de código ComGen 230. El editor de condiciones es capaz de asociar con una variable contenida en el diccionario de variables VarOic 120, condiciones sobre el valor de sus columnas de clave. De la misma manera, el editor de condiciones CondEdt 240 es capaz de asociar condiciones con un índice contenido en el diccionario de índices IndOic
140. Las condiciones son memorizadas en un diccionario de condiciones sobre variables VarConOic 180 de la base de datos OB 100. Preferentemente, el editor de condiciones CondEdt 240 es un editor de tipo gráfico capaz de presentar, para una variable seleccionada, la lista de las columnas de clave que definen esa variable. Ventajosamente, el editor de condiciones CondEdt 240 es capaz de interaccionar, en tal caso, con el editor de expresiones matemáticas MathEdt 210 para permitir la selección de una variable directamente a partir de este editor de expresiones matemáticas.
El organigrama de la figura 5 detalla el funcionamiento del compilador de expresiones matemáticas MathComp 220 para una expresión matemática del tipo de fórmula compuesta en el editor de expresiones matemáticas MathEdt
210. Una fórmula puede ser expresada en lenguaje natural matemático y en forma genérica mediante la ecuación Y = F(X). El anexo A.3.1 aporta un ejemplo de fórmula matemática expresada en lenguaje natural matemático. A la variable simbolizada con Y se le llama variable de salida, en tanto que a la variable simbolizada con X se le llama variable de entrada. Una fórmula matemática puede incorporar varias variables de entrada.
En la operación 500, el compilador de expresiones matemáticas MathComp 220 carga en la memoria los diferentes diccionarios de símbolos, es decir, el diccionario de símbolos de variables VarSymbOic 130, el diccionario de símbolos de funciones FctDic 150, el diccionario de operadores OpDic 160 y el diccionario de símbolos reservados ResSymbDic 170.
En la operación 502, el compilador de expresiones matemáticas MathComp 220 carga la expresión en lenguaje MathML 2.0 de la fórmula y = F(X). El anexo A.3.2 ilustra la expresión en MathML 2.0 de la fórmula del anexo A.3.1 tal y como es cargada por el compilador de expresiones matemáticas MathComp 220.
La expresión es cargada por mediación de un lector de metalenguaje XMLRdr. El lector de metalenguaje XMLRdr es capaz de establecer una representación simplificada en forma de árbol de una expresión acorde con el estándar XML. En una tal representación, los nodos del árbol son las etiquetas XML que componen la expresión. Cada etiqueta presenta como argumento una cadena de caracteres.
Así, el lector de metalenguaje XMLRdr es capaz de establecer una representación en árbol XML de una expresión matemática en MathML 2.0. En el anexo A.3.3 se ilustra un ejemplo de tal representación para el caso de la fórmula del anexo A.3.1. Cada nodo corresponde a una etiqueta MathML 2.0. Se hace notar que cada nodo presenta un nivel jerárquico.
En la operación 504, el compilador de expresiones matemáticas MathComp 220 llama a una función de división DivFct. La función de división es capaz de localizar el operador "=" de la expresión Y = F(X) en el árbol XML mediante la búsqueda de la expresión mo ("=''). Opcionalmente, la función división DivFct comprueba la presencia de un único operador de este tipo en el árbol XML. La función división DivFct escinde el árbol en una parte salida A y una parte entrada B respectivamente correspondientes a las partes del árbol MathML situadas por encima y por debajo de la expresión mo ("='). Los anexos A.3.3.1, A.3.3.2 Y A.3.3.3 ilustran esta división. El anexo A.3.3.1 ilustra la parte A, en tanto que el anexo A.3.3.3 ilustra la parte B. Se hace notar que una fórmula matemática podría estar definida asimismo bajo la forma F(X) = Y, sin que ello cambie básicamente el funcionamiento del compilador de expresiones matemáticas MathComp 220.
El compilador de expresiones matemáticas MathComp 220 empieza el tratamiento llamando para la parte A una función de identificación IndFct a la operación 506. La función de identificación IndFct, cuyo funcionamiento se describirá a continuación con mayor detalle, es capaz de identificar el símbolo de variable representado por la parte A.
El compilador de expresiones matemáticas MathComp 220 prosigue el tratamiento del árbol mediante la llamada, de la función de identificación IndFct para la parte B a la operación 508. La función IndFct es capaz de identificar los símbolos de variables contenidos en la parte B así como los símbolos de funciones y los operadores.
En la operación 510, el compilador de expresiones matemáticas MathComp 220 genera el árbol de compilación a partir de los símbolos de variables y de funciones y de los operadores. El anexo A.3.4 muestra el árbol de compilación correspondiente a la fórmula del anexo A.3.1.
La figura 6 ilustra en detalle la operación 506 de la figura 5. En la operación 600, la función de identificación IndFct llama a una subfunción de lectura de árbol TRdr la cual devuelve la primera etiqueta N1 de nivel 1 al árbol. En la operación 602, se prueba si esta primera etiqueta N1 es de tipo mi.
Si es sí, entonces la parte A representa un símbolo simple en el sentido anteriormente expuesto. Se llama a una función de localización LocFct con parámetros:
el argumento arg_mi de la etiqueta mi, y
un identificador de la tabla en la cual localizar arg_mi, es decir, de la tabla de los símbolos simples SVar 132.
La función de localización LocFct devuelve la dirección dentro de los datos que han de tratarse DAT 110 asociada a la línea que contiene arg_mi en la mn (operación 604) y dada por el diccionario de variables VarDic120.
Si es no, la primera etiqueta encontrada N1 es del tipo msub, msup o msupsub, es decir, la parte A representa un símbolo complejo. La función de lectura TRdr es llamada entonces para devolver la etiqueta de nivel jerárquico inferior N2 inmediatamente siguiente al nodo N1 (operación 606).
En la operación 608, se prueba si el nodo N2 es de tipo mi.
Si es no, hay un error (operación 610).
Si es sí, (operación 612), se llama a una función de búsqueda de ocurrencia OccVar teniendo como parámetros el argumento arg_mi de la etiqueta mi y un identificador de la tabla en la cual localizar arg_mi, es decir, de la tabla de los símbolos complejos CVar 134. La función de búsqueda de ocurrencia OccVar devuelve una lista L 1 constituida a partir de la parte de la tabla de los símbolos complejos CVar 134 cuya casilla nm contiene arg_mi.
En la operación 614, se llama a una función comparación CompFct que compara cada elemento de la lista L 1 con la continuación del árbol con el fin de identificar la variable designada.
La figura 7 es un organigrama que ilustra el tratamiento mediante el compilador de expresiones matemáticas MathComp 220 de la parte A de una ecuación obtenida a la salida del editor de fórmulas matemáticas MathEdt 210 Y después de la lectura por parte del lector de metalenguaje XMLRdr En otras palabas, la figura 7 detalla la operación 506 del organigrama de la figura 5.
El programa de compilación de expresiones matemáticas Mathcomp 220 comprende una lista de etiquetas llamadas "frontera" que es capaz de leer de manera recurrente en el árbol correspondiente a la parte A. La lista de las etiquetas frontera comprende, en particular, las etiquetas MathML 2.0 siguientes:
mrow,
mi,
mo,
mn,
msub, msup y msubsup.
La lectura del árbol por el compilador de expresiones matemáticas MathComp 220 se lleva a cabo de manera recurrente leyendo cada uno de los nodos de un mismo nivel jerárquico desde arriba hacia abajo del árbol y comenzando nuevamente después por los nodos de nivel jerárquico inferior.
El compilador de expresiones matemáticas MathComp 220 lee la primera etiqueta frontera del árbol A. En la operación 700, se prueba si esta primera etiqueta frontera leída es una etiqueta de tipo mo. En lenguaje MathML 2.0, una etiqueta de tipo mo define un operador matemático. Si es sí, en la operación 702, se emite una señal de error, pues la parte A corresponde a una variable de salida sola y, por tanto, no admite símbolos de operación en ese nivel jerárquico. Si es no, en la operación 704, se prueba si esta primera etiqueta frontera es de tipo mi. Una etiqueta de tipo mi en lenguaje MathML 2.0 define un identificador, es decir, una cadena de caracteres sin significado matemático particular.
Si es sí, se comprueba, que el argumento de esta etiqueta mi pertenece al diccionario de símbolos simples SVar 132 en la operación 706. Más precisamente, se busca este argumento en las casillas nm del diccionario de simbolos simples SVar 132.
Si es sí, el símbolo simple identificado por la etiqueta mi está definido completamente (es decir, existe un nexo entre este símbolo simple y la variable del diccionario de variables VarDic 130 con la cual se corresponde y, por lo tanto, hacia los datos de los correspondientes datos que han de tratarse DAT 110). El tratamiento prosigue entonces en 708. Si es no, el argumento de esta etiqueta mi puede ser añadido a la tabla de los símbolos simples SVar 132, en la operación 710, Y creada una variable correspondiente.
Si en la operación 704, la primera etiqueta frontera leída no es de tipo mi, entonces se prueba, en la operación 712, si esta etiqueta es de tipo msub, msup o msubsup. En otras palabras, se prueba si la etiqueta leída define un símbolo con sólo índice, con sólo un exponente, o con un índice y un exponente, respectivamente. Si es no, se emite un error en la operación 714, pues en ese lugar de la ecuación no se ha leído ninguna de las etiquetas permitidas. Si se ha encontrado en la operación 712 una etiqueta de tipo msub, msup o msubsup, entonces el tratamiento prosigue en la operación 900, según se describirá más adelante. Se trata entonces de un símbolo complejo en el sentido anteriormente expuesto.
La figura 8 es un organigrama que ilustra el tratamiento de la parte B de una ecuación matemática obtenida a la salida del editor de fórmulas matemáticas MathEdt 210 mediante el compilador de expresiones matemáticas MathComp220 y después de la lectura por parte del lector de metalenguaje XMLRdr. En otras palabas, la figura 8 detalla la operación 508 del organigrama de la figura 5. El compilador de expresiones matemáticas MathComp 220 lee de manera recurrente cada etiqueta frontera, primero según el nivel jerárquico y luego de arriba abajo.
En la operación 800, se prueba si la primera etiqueta frontera leída es de tipo mo. Si es sí, esta etiqueta define un símbolo de operador asociado a una función que tiene que ser identificada. Si es no, esta etiqueta es una etiqueta de tipo mi, o bien es una etiqueta de tipo msub, msup o msubsup. En estos dos casos, esto nos sitúa de nuevo en el tratamiento de etiquetas de tipo msub, msup o msubsup tal y como se ha descrito anteriormente y se ha ilustrado mediante la figura 7 (operaciones 704 y siguientes).
En el caso en que la primera etiqueta frontera leída es una etiqueta de tipo mo, en la operación 802, se comprueba si el argumento de esa etiqueta está contenido en el diccionario de funciones agregativas AgrFct 154.
Si es sí, se realiza un tratamiento específico, el cual comienza en la operación 850 del organigrama de la figura 8A. Este tratamiento será descrito más adelante.
Si es no, se comprueba en la operación 804, que el argumento de la etiqueta mo está contenido en el diccionario de funciones de cálculo CalcFct 152. Si es sí, la función es identificada y el tratamiento prosigue en 806. Si es no, en la operación 808, se comprueba si el argumento de esta etiqueta pertenece al diccionario de símbolos reservados ResSymbDic 170. Si es sí, la función es identificada completamente y el tratamiento prosigue en 810. Si es no, se emite un mensaje de error en la operación 812.
La figura 8A es un organigrama que ilustra el tratamiento específico puesto en práctica cuando en la operación 802 se ha leído un símbolo de función agregativa. El tratamiento comienza en la operación 850 mediante la extracción del subárbol al que concierne el símbolo de función agregativa. Este subárbol está constituido a partir del conjunto de las etiquetas situadas bajo la etiqueta de tipo mo y de nivel jerárquico inferior o igual. En lo sucesivo, tal árbol será denominado parte C.
En la operación 852, se lee la primera etiqueta mi inmediatamente siguiente a la etiqueta de tipo mo considerada en la operación 802 (en el sentido de una lectura de arriba abajo sin distinción de niveles jerárquicos). El argumento de esta etiqueta mi introduce una cadena de caracteres conformantes del nombre de un índice de agregación. El nombre de este índice de agregación se almacena en una tabla de índices temporal IndTmp en una casilla nm.
En la operación 854, se extraen las condiciones sobre este índice. Las condiciones sobre este índice son introducidas mediante etiquetas de tipo mo. Las condiciones se almacenan en la tabla de índices temporal IndTmp, no representada, asociadas al nombre del índice nm.
Se leen las etiquetas de tipo msub, msup, o msubsup inmediatamente siguientes al símbolo de agregación descubierto en la operación 802. Estas etiquetas definen unos símbolos de variables complejas en los que puede centrarse la función agregativa. Estas etiquetas son objeto de un tratamiento específico el cual será descrito más adelante. Este tratamiento comienza con una operación 900 ilustrada en la figura 9. Este tratamiento está destinado a identificar las variables afectadas.
La figura 9 es un organigrama que ilustra el tratamiento de símbolos de variables complejas, es decir, que comprenden índices y/o exponentes. En otras palabras, la figura 9 expone el tratamiento de las etiquetas de tipo msub, msup y msubsup mediante el compilador de expresiones matemáticas MathComp 220.
En el caso en que es leída una etiqueta de este tipo, por ejemplo en la operación 712 del organigrama de la figura 7 o en la operación 856, éste es el tratamiento que se pone en práctica. En la operación 900, se lee la primera frontera de tipo mi o de tipo mo. La lectura se lleva a cabo entonces siguiendo la sucesión de las etiquetas, independientemente de los niveles jerárquicos.
Si la primera etiqueta leída es de tipo mo (operación 902), se comprueba entonces, en la operación 904, si el argumento de esta etiqueta es un paréntesis abierto "(". Si es sí, se trata ya no de una variable sino de la función exponencial, la cual queda entonces identificada (operación 906). Si es no, se emite un mensaje de error en la operación 908.
Si la primera etiqueta encontrada no es de tipo mo (operación 902), entonces la primera etiqueta encontrada es de tipo mi (operación 910). Se comprueba entonces que el argumento de esta etiqueta está contenido en el diccionario de símbolos complejos CVar 134, todavía en la operación 910. Más precisamente, se busca el argumento de esta etiqueta en las casillas nm del diccionario de símbolos complejos CVar. Si es no, se prevé, en la operación 912, la eventual inclusión de este argumento en la tabla de los símbolos complejos Cvar 134 bajo una casilla mn y la creación de una nueva variable en el diccionario de variables VarDic 120.
En el caso contrario, se emite en la operación 914 una lista de las variables contenidas en el diccionario de símbolos complejos CVar 134 cuyo nombre, almacenado bajo la casilla nm, equivale al argumento de la etiqueta mi. Esta lista emitida contiene, para cada símbolo de variable, el conjunto de las cadenas de caracteres conformantes del exponente exp y/o de los índices ind1, ind2, etc.
En la operación 916, se comprueba, para cada variable emitida, si la sucesión de las etiquetas MathML (tipos y argumentos en identidad) de esta variable es acorde con la sucesión de las etiquetas leídas en la porción de árbol en curso de lectura.
Si en el árbol leído no se da con ninguna variable emitida, entonces, en la operación 918, se emite un error. Se puede igualmente prever, por ejemplo, que en la operación 918 el compilador de expresiones matemáticas MathComp 220 almacene por ejemplo la parte de la fórmula no hallada en el diccionario de símbolos complejos CVar en metalenguaje. En este caso, no son emitidos los mensajes de error de la operación 918. Ello permite definir con posterioridad la variable correspondiente al símbolo de que se trate.
Si se ha hallado la sucesión de las etiquetas MathML para una variable emitida, entonces, en la operación 920, se comprueba si en el árbol están definidos índices suplementarios (es decir, no almacenados con la variable en el diccionario de variables complejas CVar 134). Si es sí, se pone en práctica un tratamiento particular, el cual comienza con una operación 1000 Y será descrito más adelante. Si es no, la variable es identificada completamente y los datos de los datos asociados que han de tratarse DAT 110 son localizados por mediación del diccionario de variables VarDic 130.
La figura 10A especifica el tratamiento realizado después de la operación 920 de la figura 9 en el caso en que se trata una parte A. Si se trata la parte A y en el diccionario de símbolos de variables VarSymbDic130 no se presentan índices, entonces el programa propone al usuario añadir el índice al diccionario de índices IndDic en la operación 1000A.
La figura 1 OB especifica el tratamiento realizado después de la operación 920 de la figura 9 en el caso en que se trata una parte B. Si se trata la parte B y en el diccionario de símbolos de variables VarSymbDic 130 no se presentan índices, entonces el programa comprueba, en la operación 1000B, si el índice está contenido en la tabla de los índices temporales IndTmp. Si es sí, el índice está presente en el símbolo de la variable de entrada y, por lo tanto, el índice es identificado (operación 1002B). Si es no, el programa emite un error en la operación 1OO4B.
La figura 10C especifica el tratamiento realizado después de la operación 920 de la figura 9 en el caso en que se trata una parte C. Si se trata la parte C y en el diccionario de símbolos de variables VarSymbDic130 no se presentan índices, entonces el programa comprueba, en la operación 1000C, si el índice está contenido en la tabla de los índices temporales IndTmp. Si es sí, el índice está presente ya sea en el símbolo de la variable de entrada, o bien presente en el operador de agregación. En estos dos casos, el índice es identificado y se añade el índice al diccionario de índices IndDic 140 en la operación 1002C. Si es no, el programa emite un error en la operación 1004C.
Las pruebas de las operaciones 1 OOOB Y 1000C y los mensajes de error de las operaciones 1 004B Y 1004C se encargan de que, por ejemplo, una variable A a la cual se define como dependiente de un índice i sea designada A¡. Esto podría generalizarse a variables con varios índices y/o exponentes. Estas operaciones garantizan, entre otras cosas, una claridad en la expresión formal de una fórmula matemática, en particular cuando la misma define una variable.
Por ejemplo, se podría admitir la notación A para una variable que depende de i, es decir, el índice i sería añadido al diccionario de índices IndDic y se podría omitir la emisión de mensajes de error de las operaciones 1004B y 1004C.
Por ejemplo todavía, no se añadiría el índice i al diccionario de índices IndDic, pero se omitiría la emisión de mensajes de error de las operaciones 1004B Y 1004C. En estos ejemplos, el compilador de expresiones matemáticas MathComp 220 estaría dispuesto para conservar una expresión de la parte de la fórmula afectada por el índice i en metalenguaje bajo forma de árbol. El compilador de expresiones matemáticas, cuando trata una fórmula más general que incluye la fórmula anterior, integra el árbol anteriormente memorizado en el árbol que está construyendo.
Se comprende que el diccionario de índices IndDic puede no mantener una asociación entre el índice y valores numéricos de la base de datos DB 100, al menos en un primer tiempo. El diccionario de índices IndDic es entonces un diccionario abierto que puede ser completado con posterioridad, por ejemplo cuando el compilador de expresiones matemáticas MathComp 220 opera sobre una fórmula que precisa los valores numéricos del índice de que se trate. El compilador de expresiones matemáticas MathComp 220 es capaz de reaccionar a la ausencia de valores definidos del índice memorizando la parte de la fórmula afectada en metalenguaje.
Como ejemplo, se considera una variable A, definida en función de un índice i (por ejemplo, A =1 + i). El índice i será memorizado en el diccionario de índices IndDic y en el diccionario de símbolos de variables VarSymbDic. Aunque el compilador de expresiones matemáticas MathComp 220 ha acabado el tratamiento de la fórmula definitoria de A¡, no existe asociación en el diccionario de índices IndDic entre el índice i y los valores numéricos. Se considera ahora que el compilador de expresiones matemáticas MathComp 220 trata una fórmula que incluye A¡ y que precisa i (por ejemplo,
B=L:;::OA¡). El compilador de expresiones matemáticas MathComp 220 completa la definición de i en el
diccionario de índices IndDic asociando el índice a los valores numéricos presentes en esta fórmula.
Ventajosamente, las operaciones anteriormente expuestas de inserción y de búsqueda en tablas se ponen en práctica mediante el procedimiento de obtención de un resumen, el cual permite reducir el tiempo de búsqueda y de inserción de datos en las tablas. El procedimiento de obtención de un resumen es conocido por el experto en la materia y se expone de manera sucinta en el anexo 4. Las variantes de resumen mediante direccionamiento abierto y de resumen mediante concatenación, expuestas respectivamente en los anexos 4.3 y 4.4, pueden ser empleadas en el dispositivo según la invención. Preferentemente, se implanta un resumen mediante concatenación.
La figura 11 ilustra en forma de organigrama el funcionamiento del generador de instrucciones ComGen 230. En la operación 1100, el generador de instrucciones ComGen 230 recupera el árbol de compilación del compilador de expresiones matemáticas MathComp 220. En la operación 110, el generador de instrucciones ComGen 230 comienza un tratamiento particular que se realiza sobre cada una de las variables identificadas, denominadas de manera general
S. El generador de instrucciones ComGen 230 interacciona con el editor de condiciones CondEdt 240 para conocer las condiciones asociadas a la variable S, en el transcurso de la operación 1120. Si la variable S no lleva asociada ninguna condición, entonces el tratamiento se realiza para la variable siguiente. Si es no, en la operación 1130, las condiciones son transformadas en cláusulas "vvhere".
Paralelamente, el generador de instrucciones ComGen 230 realiza las uniones a partir de las restricciones estructurales y de las restricciones lógicas, derivadas de las relaciones entre las tablas, definidas sobre la estructura de la base, las cuales son equivalentes a los índices implícitos, y los índices explícitos, en el transcurso de la operación 1140.
En la operación 1150, el generador de instrucciones establece una serie de instrucciones, o código, aptas para ser interpretadas por el motor de la base de datos OB 100. Una vez identificados los pares tablas-variantes, el generador de instrucciones ComGen 230 puede crear eventualmente una o varias tablas temporales de cálculo CalcTmp 195. En particular, estas tablas temporales de cálculo CalcTmp 195 se crean cuando el generador de instrucciones ComGen 230 encuentra en una expresión (es decir, un conjunto de nodos del árbol de compilación de igual nivel jerárquico), una operación demasiado compleja para poder ser efectuada por medio de una única consulta.
A título de ejemplo, en el caso particular de instrucciones expresadas en Sal, no se puede utilizar una expresión de tipo select "a+sum (b)", siendo por ejemplo a y b dos columnas y sum () la función suma de las líneas de una columna, ya que combina unos elementos de niveles de ensamble diferentes.
En particular, la presencia en una expresión de una llamada a una función que puede contener consultas, o de una función agregativa, conlleva la utilización de una tabla temporal CalcTmp 195 para permitir la descomposición de la expresión en etapas sucesivas, apuntando las tablas temporales CalcTmp sustituidas, por ejemplo, por cursores, hacia los datos afectados.
El programa de tratamiento de los datos OPP 200 comprende además un editor de tratamientos ProEdt 250. El editor de tratamientos ProEdt 250 es un editor gráfico que permite a un usuario definir un encadenamiento estructurado de tratamientos que han de aplicarse a unos datos de los datos que han de tratarse OAT 110. Cada uno de los tratamientos puede quedar definido en forma de una fórmula matemática compuesta por mediación del editor de fórmulas matemáticas MathEdt 210. Como ilustra la figura 12, cada tratamiento Proc1, Proc2, etc., está representado mediante una caja de tratamiento 1200, 1210, etc., respectivamente. los tratamientos se hallan enlazados entre sí mediante flechas, las cuales definen un encadenamiento de los tratamientos. A título de ejemplo, en la figura 12, la flecha 1205 permite al usuario definir que el tratamiento Proc2 1210 tiene que ser realizado después del tratamiento Proc1 1200. las flechas 1215 y 1225 establecen que los tratamientos Proc3 y Proc4 respectivamente han de realizarse después del tratamiento Proc2. Al tener las flechas 1215 y 1225 el mismo origen, los tratamientos Proc3 y Proc4 han de realizarse en paralelo.
El editor de tratamientos ProEdt 250 interacciona con un diccionario de tratamientos ProcOic 190 de la base de datos OB 100. El diccionario de tratamientos ProcOic 190 es capaz de mantener un nexo entre una representación de una fórmula matemática y un identificador de fórmula, propio de cada fórmula almacenada. De manera ventajosa, el diccionario de tratamientos ProcOic 190 puede contener asimismo fórmulas preestablecidas y reutilizables por el usuario.
Una fórmula matemática puede ser almacenada en el diccionario de tratamientos ProcOic 190 en forma de una representación en metalenguaje, por ejemplo MathMl 2.0, proveniente por ejemplo del editor de expresiones matemáticas MathEdt 210. Además, una fórmula matemática puede ser almacenada en forma de árbol interpretado, por ejemplo por el compilador de expresiones MathComp 230, en particular con enlaces entre los símbolos de variables y las variables de los datos que han de tratarse OAT 110. Por supuesto, las dos representaciones pueden cohabitar en el diccionario de tratamientos ProcOic 190.
En el caso de una ejecución directa de la fórmula almacenada, prima la representación interpretada, mientras que en el caso de una ejecución indirecta (en paralelo con otra fórmula, por ejemplo), prima la representación en forma de metalenguaje.
El dispositivo según la invención permite la definición y el almacenamiento de una primera fórmula de forma Y = f(X), donde f representa una función cualquiera, y de una segunda fórmula de forma Z = g(Y), donde 9 representa igualmente una función cualquiera en metalenguaje. En la generación del código destinado a permitir el cálculo de Z, el generador de instrucciones ComGen 230 reestructura la fórmula en Z = h(X) utilizando una definición de Y por medio de metadatos. En otras palabras, la variable Y no necesita ser almacenada en forma numérica en la base de datos OB 100. Antes bien, la variable Y se almacena en forma de un árbol de instrucciones interpretado parcialmente, estando dicho árbol de instrucciones insertado en el árbol de instrucciones resultante de la interpretación de Z en sustitución de la variable Y. El editor de tratamientos ProEdt 250 es capaz de mantener para cada caja un nexo entre una caja particular y un identificador de fórmula del diccionario de tratamientos ProcOic 190. Además, el editor de tratamientos ProEdt 250 es capaz de mantener una lista de las flechas compuestas por el usuario, estando cada una de ellas definida por un identificador de fórmula de origen y un identificador de fórmula diana. Una caja particular se caracteriza como tratamiento de referencia a partir de la cual se puede establecer una representación del encadenamiento por medio de todas las flechas. Un sistema de cajas madres desglosables en cajas hijas permite al usuario elaborar con sencillez encadenamientos complejos de expresiones tratadas mediante el programa de tratamiento de datos DDP 200.
Se hace notar aquí que mediante el dispositivo según la invención se pueden poner en práctica otras acciones informáticas no definidas mediante fórmulas matemáticas, entre ellas, un tratamiento particular de cálculo de datos faltantes, que está ilustrado en la figura 13.
la figura 13 es un organigrama que ilustra el funcionamiento de un calculador de datos faltantes MDATCalc 260 integrado dentro del programa de tratamiento de datos DDP 200. El calculador de datos faltantes MDATCalc 260 es capaz de interaccionar con el diccionario de variables VarDic 120 para seleccionar una variable de clave, designada aquí con V, para la cual faltan valores (operación 1300). En la operación 1302, el calculador pasa una instrucción, por ejemplo una instrucción Sal, al motor de la base de datos DB 100 para realizar una clasificación creciente de la variable. En la operación 1304, se prueba si Ves de tipo fecha u hora.
Si es no, en la operación 1306, se prueba si V es de tipo alfanumérico.
Si es no, se emite un error, ya que el calculador de datos faltantes no puede realizar el tratamiento (operación 1308).
Si es sí, en la operación 1310, el calculador establece un paso P, el cual separa los datos de la variable V.
En la operación 1312, se define el alcance de la variable estableciendo un valor de inicio como el mínimo valor la variable V y un valor de fin como el máximo valor de la variable V. Se define y se pone al valor O una variable de incremento i.
En la operación 1314, se inicia un lazo cuya condición de parada es que el valor Ui que ha de calcularse sea superior al valor de fin.
En la operación 1316, se calcula el valor Ui valiendo el mínimo valor de la variable V al que se añade i veces el paso P calculado en la operación 1310.
En la operación 1318, se prueba si el valor de la variable V existe en Ui:
si es sí, se guarda Ui en una lista l en la operación 1320, en 1330 se incrementa i y el lazo se reanuda en 1314,
si es no, i es incrementado en el valor 1 en 1330 y luego el lazo se reanuda en 1314.
Si se determina, en la operación 1304, que la variable V es una fecha o una hora, entonces en la etapa 1332 se calcula un coeficiente medio en orden a determinar una frecuencia F. En la operación 1334, se determina el alcance de la variable V de manera análoga a la operación 1314.
En la etapa 1336, se inicia un lazo, análogo al lazo iniciado en 1314, cuya condición de salida es que la fecha Di calculada sea superior al valor máximo de la variable V máx(V) determinada en 1334. Mientras la fecha calculada Di sea inferior a máx(V), se calcula Di valiendo el mínimo valor de la variable V determinada en 1334 a la cual se añade i veces la frecuencia F calculada en 1332. Seguidamente se realizan las etapas 1340, 1342 Y 1334, las cuales son análogas respectivamente a las etapas 1318,1320 Y 1330.
En los dos casos anteriormente expuestos, la salida de los lazos iniciados en 1314 y 1336 prosigue en 1338 mediante la creación de las líneas faltantes a partir de la lista l establecida en las etapas 1320 sucesivas, o 1342. El programa se termina en 1340.
la figura 14 ilustra un ejemplo de puesta en práctica del dispositivo de tratamiento de los datos según la invención. El ordenador 1400 comprende una unidad central de proceso 1410, la cual integra en particular una unidad de tratamiento o UCP y la memoria de acceso aleatorio, una pantalla 1420, un teclado 1430, una memoria masiva 1440, por ejemplo de tipo disco duro, un periférico de punteo 1450, por ejemplo de tipo ratón, una impresora 1460 opcional y un periférico de acceso a la red 1470, también opcional.
la memoria masiva 1440, o cualquier otra memoria, del ordenador 1400 alberga un sistema operativo con interfaz gráfica de usuario. El sistema operativo se inicia en general, según es sabido, en el arranque del ordenador.
Además, la memoria masiva 1440 alberga el programa de tratamiento de datos DPP 200 Y la base de datos DB
100. El programa de tratamiento de datos DPP 200 puede ser ejecutado por medio de la unidad de tratamiento o UCP.
El dispositivo de tratamiento de datos según la invención puede comprender un soporte lógico destinado a ser ejecutado en la memoria de una unidad central de proceso, por ejemplo la memoria masiva 1440 del ordenador 1400 de la figura 14. En particular, el programa de tratamiento de datos OPP 200 Y la base de datos OAB 100 pueden constituir soportes lógicos diferenciados pero capaces de cooperar.
El funcionamiento del dispositivo según la invención, tal como se ha descrito anteriormente, puede ser expresado asimismo bajo forma de un procedimiento.
Anteriormente se ha descrito el caso de la definición de una variable cuyo índice no está determinado por completo en el momento de esta definición. Se ha explicado que, entonces, el índice quedaba totalmente definido (es decir, apuntando directa o indirectamente hacia unos valores numéricos) en una expresión matemática más general que utiliza dicha variable. Se comprende que se opera una sustitución de la variable por su árbol interpretado por el generador de instrucciones ComGen 230 cuando este último trata la fórmula general. Esto se puede generalizar a los casos de fórmulas definidas de manera incompleta (es decir, el árbol de compilación no es completamente interpretado) pero reutilizadas en expresiones que completan su definición, o incluso cuando un elemento de fórmula está ausente a priori de la base de datos pero es definido con posterioridad.
Los datos que han de tratarse DAT 110 pueden hallarse contenidos en una base de datos distinta de la base de datos OB 100 Y relacionada con el programa de tratamiento de datos OPP 200 Y con el resto de la base de datos OB
100.
El programa de tratamiento de datos DPP 200 puede hallarse albergado en la memoria de diferentes ordenadores del tipo ilustrado mediante la figura 14 conectados por intermedio de sus periféricos de acceso a la red 1410 a un ordenador de tipo servidor cuya memoria masiva alberga la base de datos DB 100.
El programa de tratamiento de datos DPP 200 puede hallarse albergado en la memoria de un ordenador de tipo servidor y controlado desde un programa de interfaz ejecutado en un ordenador remoto. Por ejemplo, el programa de tratamiento de datos DPP 200 puede estar dotado de medios que permiten su pilotaje desde un navegador de Internet ejecutado en un ordenador remoto.
La base de datos OB 100 y/o el programa de tratamiento de los datos OPP 200 pueden estar provistos de medios que permiten alimentar la base de datos DB 100 con datos que han de tratarse DAT 110, por ejemplo mediante extracción de datos desde bases de datos remotas.
La invención cubre igualmente al soporte lógico descrito, puesto a disposición en cualquier soporte legible por ordenador. La expresión "soporte legible por ordenador" comprende los soportes de almacenamiento de datos, magnéticos, ópticos y/o electrónicos, al igual que un soporte o vehículo de transmisión, como es una señal analógica o digital.
Anexo 1 -Glosario
A1.1 -Base de datos
Todo conjunto de ficheros estructurados, susceptibles de ser interconectados mediante nexos entre estos ficheros.
A1.2-Tabla
Los elementos fundamentales de una base de datos son las "tablas". Cada tabla es un conjunto de líneas; cada línea se organiza en una o varias columnas; y cada columna corresponde a un tipo de datos. Cada línea comprende un solo y único valor (el "dato") para cada columna de la tabla. Físicamente, el almacenamiento de los datos puede corresponderse con esta estructura en tabla, o bien ser diferente.
A.1.3 -Lenguaje natural matemático
Descripción de una fórmula matemática o de condiciones matemáticas con ayuda de símbolos matemáticos convencionales, como por ejemplo:
L ,+,-,.IT,.[,fex),xn
La convención matemática utilizada puede ser, por ejemplo, la del sistema educativo científico francés.
A 1.4 -Variable
A.1.4.1 -En sentido matemático, cantidad susceptible de cambiar de valor.
A.1.4.2 -En el sentido de una base de datos, nexo identificado hacia unos datos almacenados, es decir, hacia una parte de uno o varios ficheros.
A.1.5 -Operador
Símbolo que representa una operación o una serie de operaciones que han de efectuarse sobre unos conceptos cualesquiera, por ejemplo lógicos, matemáticos o físicos.
A.1.6 -Si mbolo de variable
Serie de caracteres asociada a una sola y única variable para representar esta variable en lenguaje matemático natural.
Por convención, un símbolo se constituye a partir de un nombre de variable en forma de una primera serie de caracteres, de un exponente en forma de una segunda serie de caracteres y de índices en forma de una tercera serie de caracteres y del carácter coma "," como índice particular. El exponente y los índices son opcionales. La primera serie se puede componer de caracteres alfanuméricos, mayúsculas o minúsculas. Los operadores están prohibidos.
La segunda serie y la tercera serie se pueden componer de todos los caracteres sin restricción. Las segunda y tercera series son opcionales.
Los índices van separados por el carácter coma ",". La tercera serie de caracteres se puede descomponer así en varias series de caracteres asociadas cada una de ellas a un índice.
A.1.7 -Si mbolo de función
Símbolo asociado a una función matemática en lenguaje natural matemático. Por ejemplo, el símbolo de la función raíz cuadrada es-.,j.
A.1.8 -Lenguaje MathML 2.0
Especialización para las matemáticas del lenguaje estándar de formateo de los datos estructurados XML. El lenguaje MathML se compone, como el lenguaje XML, de «etiquetas abridoras» y «cerradoras» las cuales permiten identificar los elementos constitutivos de una expresión matemática. Existen diferentes variantes de este metalenguaje como «presentación» y «semántica». La variante «presentación» es la utilizada aquí.
A.1.9 -Árbol de compilación
A.1.9.1 -Árbol n-ario que contiene las operaciones que han de efectuarse de una manera jerárquica correspondiente a las reglas de prioridades matemáticas. Sea f una función, entonces el nodo f del árbol contiene los parámetros de la función f, es decir, los parámetros de la función f son subnodos del nodo f.
A.1.9.2 -Representación arborescente de una fórmula matemática constituida a partir de funciones simples, o complejas, pero estructurada para una transcripción en un lenguaje informático cualquiera.
A.1.9.3 -Ordenación estructurada y jerárquica de etapas de compilación. El árbol de compilación corresponde a la fase de precompilación que interpreta la secuenciación de una expresión matemática expresada en metalenguaje.
A.1.10 -Clave o columna clave
Columna de una base de datos capaz de definir sola o en combinación con otras columnas claves unívocamente una línea en un fichero de una base de datos.
A.1.11 -Función de cálculo
Función para la cual la dimensión del símbolo asociado a la variable de salida es inferior o igual a la dimensión de las variables a las cuales se aplica dicha función. Por ejemplo, la función logaritmo de Neper In es una función de cálculo.
A.1.12 -Función agregativa
Función para la cual la dimensión del símbolo asociado a la variable de salida es estrictamente inferior a la dimensión de las variables a las que se aplica dicha función. Por ejemplo, las funciones producto sobre el índice i, n y
suma sobre el índice i, son funciones agregativas.
L
A.1.13 -Dimensión de una variable Número de variables independientes cuyo valor debe ser conocido para conocer el valor de dicha variable.
A.1.14 -Dimensión de un símbolo de variable
Número de índices asociados a un símbolo de variable. La dimensión de un símbolo de variable corresponde a la dimensión de la variable a la cual está asociada. Cada índice corresponde a una variable independiente.
A.1.15 -Operadores de condición
5 Los operadores Si, Entonces, Si es no, Mientras; <, >, =, t, O, Yy No son operadores de condición. Anexo 2
A.2.1 -Fórmula expresada en lenguaje natural matemático -b±.Jb2 -4ac
X =----=----
2a
A.2.2 -Fórmula del anexo A.2.1 expresada en lenguaje MathML 2.0
<mrow> <mi>x</mi> <mo>=</mo> <mfrac> <mrow> <mrow> <mo>-</mo> <mi>b</mi> </mrow> <mo>&PlusMinus;</mo> <msqrt> <mrow> <msup> <mi>b</mi> <mn>2</mn> </msup> <mo>-</mo> <mrow> <mn>4</mn> <mo>&lnvisibleTimes; </mo> <mi>a</mi> <mo>&lnvisibleTimes; </mo> <mi>c</mi> </mrow> </mrow> </msqrt> </mrow> <mrow> <mn>2</mn> <mo>&lnvisibleTimes;</mo> <mi>a</mi>
</mrow> </mfrac> </mrow>
A.2.3 -Ejemplo de un símbolo de varíable
Dcut31/12/ n-l
znd, j ,mk
A.2.4 -Símbolo de varíable A.2.3 en lenguaje MathML Anexo 3
<math> <mrow>
A. 2.4. 1
<msubsup>
A. 2.4. 2
<mrow> <mi>Dcut</mi> </mrow>
A. 2.4. 3
<mrow> <mi>ind</mi> <mo>,</mo> <mi >j</mi> <mo>,</mo> <msub> <mrow> <mi >m</mi> </mrow> <mrow> <mi>k</mi> </mrow> </msub> </mrow>
A. 2.4.4
<mrow> <mi>31/12/n-1 <¡mi> </mrow>
A. 2.4. 5
</msubsup> </mrow> </math>
A.3.1 -Fórmula en lenguaje natural matemático
A.3.2 -Fórmula A.3.1 en MathML 2.0
<m: math xmlns: m-' http://\MWI.W3.org/1998/Math/MathML'> <m:mrow> <m:msub> <m:mi>a</m:mi>
<m: mi>i</m: mi> </m:msub> <m:mo>=</m:mo> <m:mrow>
<m:msub>
<m:mi>b</m:mi>
<m:mi>i</m:mi> </m:msub> <m:mo>+</m:mo> <m:mrow>
<m:munder> <m:mo>&sum;</m:mo> <m:mrow>
<m: mi>j</m: mi>
</m:mrow> </m:munder> <m:msub>
<m:mi>c</m:mi> <m:mrow>
<m: mi>i</m: mi> <m:mo>,</m:mo>
<m: mi>j</m: mi> </m:mrow> </m:msub> </m:mrow> </m:mrow>
</m:mrow> </m:math>
A.3.3 -Fórmula A.3.1 en árbol XML
A.3.3.1
mrow msub mi (<< a ») mi (<< i »)
A.3.3.2
mo(<<-»)
A.3.3.3
mrow msub mi (<< b ») mi (<< i ») mo(<<+») mrow munder mo (<< &sum; ») mrow mi (<< j ») msub mi (<< e ») mrow mi (<< i ») mo (<< , ») mi (<< j »)
A.3A -Fórmula A.3.1 en forma de árbol de compilación
Condición sobre «j))
Anexo 4
AA.1 La obtención de un resumen
La obtención de un resumen permite realizar operaciones de búsqueda y de inserción en una tabla en tiempo
5 constante. Las memorias asociativas presentan esta propiedad: la posición ocupada por un objeto sólo está determinada por este objeto. Es suficiente calcular la posición en la memoria de este objeto, es decir, disponer de una función f que asocie con un objeto x una posición h(x). El tiempo de cálculo de la posición h(x) tiene que ser independiente de x y tan reducido como sea posible.
La organización de las tablas de resumen se opone radicalmente a la de las tablas ordenadas: en una tabla 10 ordenada, la posición de un objeto depende del número de objetos más pequeños que ya han sido insertados en la tabla.
Para insertar en una tabla los elementos de un conjunto [O, N-1}, una solución corriente consiste en utilizar un cuadro t de dimensión N y en ordenar cada objeto i en tri] con h(i) = i.
Para tratar un conjunto cualquiera E de N enteros, es necesario construir efectivamente una función h inyectiva 15 del conjunto E en el conjunto de los índíces del cuadro [O, N-1I
Para insertar en una tabla los objetos de un conjunto E de cardinal mayor, e incluso mucho mayor, que N, es necesario construir una función que, aun sin ser inyectiva, posea buenas propiedades de dispersión.
AA.2 Función de resumen
La función h definida para la fórmula siguiente es un ejemplo simple de función de resumen sobre unas 20 cadenas de longítud I con valores dentro del íntervalo [O, N-1I
1-1
h(x) = Lx[ilBI-1-i fiod N
1=0
donde
B es una potencia de 2 para facilitar el cálculo, por ejemplo B vale 256, y
N es un número primo para evitar colisiones aritméticas.
25 h(x) se denomina valor de resumen asociado a la clave x. Puesto que la función de resumen h no es inyectiva, es necesario tratar las colisiones. Hay colisión cuando dos claves x e y diferentes, (x :f:. y), tienen el mismo valor de resumen, ((h(x) = h(y)). Los anexos A.4.3 y AAA exponen dos técnicas de resolución, escogidas según que el espacio de memoria disponible sea o no ilimitado.
AA.3 Resumen mediante direccionamiento abierto
La tabla de resumen se implementa como un cuadro t cuyas casillas van a contener los objetos. Inicialmente, la tabla está vacía: cada casilla contiene un objeto especial vacío, por ejemplo un objeto cuya clave es la cadena vacía 'H'.
Se realizan operaciones de inserción de la manera siguiente:
Si ha de insertarse un objeto de clave x y t[h(x)] está vacío, entonces la inserción se lleva a cabo en este espacio.
Si t[h(x)] ya está ocupado y el contenido tiene una clave diferente de x, entonces se calculan los valores de resumen supletorios ht{x), h2(x), ... hasta encontrar t[h¡(x)] vacío o conteniendo un objeto de clave x.
Para generar estos valores de resumen supletorios, un procedimiento simple es el de escoger h¡(x) según se indica mediante la fórmula siguiente:
h, (x) =(h(x) +i) modN
Este procedimiento, denominado resumen lineal, consiste en probar las casillas que siguen a t[(h(x)). Existen otros procedimientos, tales como el resumen cuadrático, el resumen doble como también el resumen aleatorio, que presentan mejores capacidades de dispersión.
Para buscar un objeto de clave x, se someten a prueba los objetos en I[(h(x)] y, eventualmente, en 1[h1(x)], l[h2(x)] ", hasta que la clave del objeto que ahí se encuentre sea ígual a x, o bíen que el objeto esté vacío,
Cuando la tabla también permite supresiones, es necesario sustituir un objeto suprimido por un objeto especial suprimido, distinto del objeto vacío. Al insertar, se utiliza la primera casilla vacía o suprimida, mientras que al buscar, tan sólo se parará en la primera casilla vacía.
Como máximo, son necesarias N operaciones, siendo N la dimensión de la tabla. Se define el coeficiente de carga a de una tabla de resumen de dimensión N que contiene n objetos como sigue:
n
a=
N
a siempre está comprendido entre O y 1. Para dar una estimación asintótica de la complejidad de las operaciones, se hace que n y N tiendan al infinito, permaneciendo a constante. Se muestra que, en una hipótesis de uniformidad, el número medio de accesos necesarios para una búsqueda negativa es como mucho de:
l-a'
y para una búsqueda positiva, de:
-log--+ a l-a a
Por ejemplo, para una tabla medio llena, hay que contar con llevar a cabo 2 accesos para la búsqueda de un objeto que no se encuentra en la tabla, y 3.387 accesos si se encuentra en ella. Se trata efectivamente de un algoritmo en 8(1),
A.4.4 Resumen por concatenación
El procedimiento de resumen por direccionamiento abierto con resolución lineal presenta el inconveniente de efectuar las comparaciones con varias casillas sucesivas de la tabla las cuales, sin embargo, no tienen el mismo valor de resumen que la cadena buscada. Para evitar estas comparaciones inútiles, se realizan cadenas que relacionan los objetos que tienen el mismo valor de resumen.
La tabla de resumen se implementa mediante un cuadro de punteros y no como un cuadro de registros. La búsqueda de un registro se lleva a cabo simplemente recorriendo la lista de los registros que tienen el mismo valor de resumen, con ayuda de la función de búsqueda sobre las listas encadenadas.
La inserción de un registro d en una tabla tse realiza como sigue.
Se busca la clave x en I[h(x)].
En caso de fracaso, se produce una asignación dinámica de una nueva celda cuyos dos campos están llenos y que se ubica encabezando la lista encadenada.
En caso de éxito, se produce una sustitución del antiguo campo por el nuevo.
La supresión de un registro en una tabla es más delicada, ya que es necesario determinar la celda precedente a la celda e que contiene el registro que ha de suprimirse. Trato aparte merece el caso de la celda de cabecera, la cual no tiene predecesor. En cualquier caso, la celda suprimida tiene que ser desatribuida mediante una función de borrado.
El coeficiente de carga a es la longitud media de las listas encadenadas. En una hipótesis de uniformidad de la función resumen, se muestra que el número medio de accesos necesarios para una búsqueda, negativa o positiva, es como mucho de 1 +a.

Claims (13)

  1. REIVINDICACIONES
    1. Dispositivo de tratamiento de datos, que comprende
    una unidad de tratamiento (200) capaz de interaccionar con una base de datos (100), comprendiendo la base de datos unas tablas de datos (110);
    una interfaz gráfica de usuario establecida para permitir a un usuario introducir una expresión matemática;
    comprendiendo la unidad de tratamiento:
    un editor de expresión matemática (210) capaz de establecer una representación informática de trabajo de una expresión matemática en interacción con la interfaz gráfica de usuario, hallándose la expresión matemática en lenguaje natural matemático y comprendiendo ésta al menos un símbolo de variable matemática compleja, que presenta un índice y/o un exponente, y un símbolo matemático agregativo que opera con el símbolo de variable matemática compleja;
    un diccionario de símbolos (130) el cual, establecido para almacenar metadatos referentes al símbolo de variable matemática compleja, comprende información sobre la estructura de tablas (110) de la base de datos (100);
    un editor de condiciones (180; 240) dispuesto para producir una expresión de condición, asociada al símbolo de variable matemática compleja, siendo la expresión de condición utilizable en combinación con los metadatos para seleccionar un subconjunto de datos de la base de datos (100);
    un generador de consultas (220; 230) dispuesto para tratar la representación informática de trabajo para producir una secuencia de código que ejecuta la expresión matemática de acuerdo con las reglas del lenguaje natural matemático y con el reconocimiento del símbolo matemático agregativo y del sí mbolo de variable matemática compleja con el cual opera:
    utilizar el editor de condiciones (180; 240) para producir una expresión de condición de trabajo;
    utilizar los metadatos para producir un código capaz de utilizar la expresión de condición de trabajo para rellenar un cuadro de datos de trabajo con tal subconjunto de datos y,
    combinar el operador correspondiente al símbolo matemático agregativo con el cuadro de datos de trabajo.
  2. 2.
    Dispositivo de tratamiento de datos según la reivindicación 1, caracterizado porgue el símbolo matemático agregativo comprende un operador agregativo, de la clase suma o producto, el cual trabaja sobre un símbolo de variable matemática compleja.
  3. 3.
    Dispositivo de tratamiento de datos según la reivindicación 2, caracterizado porgue, habiéndose asociado anteriormente un símbolo de variable matemática compleja a al menos una columna de al menos una tabla (110), la expresión de condición restringe el juego de valores contenido en esta columna.
  4. 4.
    Dispositivo de tratamiento de datos según una de las reivindicaciones precedentes, caracterizado porgue el editor de expresión matemática (210) está dispuesto para establecer una representación informática de una secuencia de expresiones matemáticas que comprende los símbolos matemáticos agregativos referentes a los símbolos de variables matemáticas complejas y porgue el generador de consultas (230) está dispuesto para reaccionar iterativamente al encuentro, en cada expresión, de un símbolo matemático agregativo y de un símbolo asociado de variable matemática compleja produciendo, con ayuda de metadatos particulares y del código ya establecido para ese símbolo de variable matemática compleja, código ejecutable capaz de resolver la condición contenida en dicha expresión, llenando al propio tiempo el cuadro de datos de trabajo (195) con los datos derivados de la resolución de la condición, así como de aplicar a este cuadro de datos de trabajo el operador correspondiente al símbolo matemático agregativo.
  5. 5.
    Dispositivo de tratamiento de datos según una de las reivindicaciones precedentes, caracterizado porgue el editor de expresión matemática (210) está dispuesto para tratar una expresión matemática que comprende los símbolos matemáticos agregativos, operante cada uno de ellos sobre un símbolo de variable matemática compleja, porgue, en presencia de un símbolo matemático agregativo en la representación informática de trabajo procedente del editor de expresión matemática, el editor de condiciones (240) es susceptible de ser accionado para establecer una correspondencia entre un símbolo matemático agregativo y un metadato particular con su símbolo asociado de variable matemática compleja produciendo, con ayuda del metadato particular y de la naturaleza del operador correspondiente al símbolo matemático agregativo del código ejecutable capaz de resolver la condición contenida en dicha expresión, llenando al propio tiempo el cuadro de datos de trabajo (195) con los datos derivados de la resolución de la condición,
    así como de aplicar este operador particular a este cuadro de datos de trabajo.
  6. 6.
    Dispositivo de tratamiento de datos según una de las anteriores reivindicaciones precedentes, caracterizado porgue el generador de consultas (230; 220) comprende un mecanismo apto para efectuar selectivamente tratamientos diferentes según la comparación de una cadena de la representación informática de trabajo con tres conjuntos de diferentes posibilidades, los cuales respectivamente representan un operador de agregación, un operador simple y un símbolo reservado, pudiendo dicho mecanismo ser activado sobre una prueba relativa a un símbolo de operador matemático.
  7. 7.
    Dispositivo de tratamiento de datos según la reivindicación 6, caracterizado porgue el generador de consultas (220; 230) comprende un mecanismo apto para efectuar selectivamente los tratamientos diferentes sobre la base de una prueba relativa a un símbolo de variable.
  8. 8.
    Dispositivo de tratamiento de datos según una de las anteriores reivindicaciones precedentes, caracterizado ..P..Q.I comprender además un editor de tratamiento (250) capaz de establecer una expresión de un encadenamiento ordenado de expresiones matemáticas a partir de unas segundas reglas formales.
  9. 9.
    Dispositivo de tratamiento de datos según una de las reivindicaciones precedentes, caracterizado por comprender además un generador de consultas suplementario (260) capaz de establecer, para un símbolo de variable particular, partiendo de datos almacenados (110) correspondientes a este símbolo de variable particular, una progresión matemática que relaciona estos datos entre sí.
  10. 10.
    Dispositivo de tratamiento de datos según la reivindicación 9, caracterizado porgue el generador de consultas suplementario (260) es capaz de generar un código que ejecuta dicha progresión para completar el conjunto de los datos almacenados (110) asociados a dicho símbolo de variable particular.
  11. 11.
    Dispositivo de tratamiento de datos según una de las reivindicaciones precedentes, caracterizado porgue el generador de consultas (220; 230) está dispuesto para autorizar condicionalmente, en una expresión matemática, un símbolo de variable matemática cuyos metadatos asociados contienen una expresión en espera, sin correspondencia inmediata con los datos almacenados en memoria.
  12. 12.
    Dispositivo de tratamiento de datos según una de las reivindicaciones precedentes, caracterizado porgue el cuadro de datos de trabajo (195) es un cuadro abierto, susceptible de ser llenado con posterioridad por el generador de consultas (220; 230) en particular para el tratamiento de expresiones matemáticas sucesivas.
  13. 13.
    Programa-producto susceptible de cooperar con un ordenador para constituir el dispositivo de tratamiento de los datos según una de las reivindicaciones precedentes.
ES05809470T 2004-10-12 2005-10-11 Dispositivo de tratamiento de datos con definición formal Active ES2389363T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0410736A FR2876474B1 (fr) 2004-10-12 2004-10-12 Dispositif de traitement de donnees a definition formelle
FR0410736 2004-10-12
PCT/FR2005/002515 WO2006040473A2 (fr) 2004-10-12 2005-10-11 Dispositif de traitement de donnees a definition formelle

Publications (1)

Publication Number Publication Date
ES2389363T3 true ES2389363T3 (es) 2012-10-25

Family

ID=34951154

Family Applications (1)

Application Number Title Priority Date Filing Date
ES05809470T Active ES2389363T3 (es) 2004-10-12 2005-10-11 Dispositivo de tratamiento de datos con definición formal

Country Status (7)

Country Link
US (1) US8122431B2 (es)
EP (1) EP1828941B1 (es)
AU (1) AU2005293462B2 (es)
CA (1) CA2583118C (es)
ES (1) ES2389363T3 (es)
FR (1) FR2876474B1 (es)
WO (1) WO2006040473A2 (es)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8464207B2 (en) * 2007-10-12 2013-06-11 Novell Intellectual Property Holdings, Inc. System and method for tracking software changes
WO2012074338A2 (ko) * 2010-12-02 2012-06-07 에스케이텔레콤 주식회사 자연어 및 수학식 처리 방법과 그를 위한 장치
US9542164B1 (en) * 2011-03-02 2017-01-10 The Mathworks, Inc. Managing an application variable using variable attributes
US9146717B2 (en) * 2011-12-29 2015-09-29 Sap Se Optimizing source code
US9069882B2 (en) * 2013-01-22 2015-06-30 International Business Machines Corporation Mapping and boosting of terms in a format independent data retrieval query
US10558985B2 (en) 2016-11-23 2020-02-11 Impact Radius, Inc. Pathing and attribution in marketing analytics
KR102300491B1 (ko) * 2020-02-24 2021-09-09 주식회사 한글과컴퓨터 전자 문서에서 수식 편집창을 통해 입력되는 행렬에 대한 간편한 레이아웃의 변경을 지원하는 전자 단말 장치 및 그 동작 방법
KR102300486B1 (ko) * 2020-02-24 2021-09-09 주식회사 한글과컴퓨터 전자 문서에서 수식 연산자에 대한 간편한 첨자 입력을 지원하는 전자 단말 장치 및 그 동작 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787453A (en) * 1995-10-24 1998-07-28 Peoplesoft, Inc. Interactive formula processing system for SQL data base
SE516562C2 (sv) * 1999-03-12 2002-01-29 Qliktech Internat Ab Förfarande för extrahering av information från en databas
US7650355B1 (en) * 1999-05-21 2010-01-19 E-Numerate Solutions, Inc. Reusable macro markup language
US7761403B2 (en) * 2001-06-20 2010-07-20 Oracle International Corporation Run-time optimizations of queries with SQL spreadsheet
US7155670B2 (en) * 2002-01-18 2006-12-26 Internet Disclosure Co., Ltd. Document authoring system and authoring management program
US20050144166A1 (en) * 2003-11-26 2005-06-30 Frederic Chapus Method for assisting in automated conversion of data and associated metadata
JP4972866B2 (ja) * 2005-03-10 2012-07-11 富士通株式会社 変換プログラム
US7472346B2 (en) * 2005-04-08 2008-12-30 International Business Machines Corporation Multidimensional XBRL engine
US20060242624A1 (en) * 2005-04-22 2006-10-26 Business Objects Apparatus and method for constructing a semantic layer based on XBRL data

Also Published As

Publication number Publication date
EP1828941B1 (fr) 2012-06-06
US8122431B2 (en) 2012-02-21
CA2583118A1 (fr) 2006-04-20
EP1828941A2 (fr) 2007-09-05
FR2876474A1 (fr) 2006-04-14
AU2005293462A1 (en) 2006-04-20
FR2876474B1 (fr) 2006-12-29
WO2006040473A3 (fr) 2006-06-22
AU2005293462B2 (en) 2011-05-19
CA2583118C (fr) 2017-09-12
US20090228865A1 (en) 2009-09-10
WO2006040473A2 (fr) 2006-04-20

Similar Documents

Publication Publication Date Title
ES2389363T3 (es) Dispositivo de tratamiento de datos con definición formal
McKinney Python for data analysis
Singh et al. Learning semantic string transformations from examples
Leermakers The functional treatment of parsing
US8826225B2 (en) Model transformation unit
Groschwitz et al. Graph parsing with s-graph grammars
JP2009521026A (ja) 探索および置換入力の派生を活用する探索および置換機能でテキストを編集するための方法およびシステム
Gerbig Deep, seamless, multi-format, multi-notation definition and use of domain-specific languages
Graf et al. A single movement normal form for Minimalist grammars
Bergstra et al. Program algebra for component code
CN116400910A (zh) 一种基于api替换的代码性能优化方法
Yli-Jyrä On dependency analysis via contractions and weighted FSTs
Dimitriadis et al. How to integrate databases without starting a typology war: The Typological Database System
Vepštas Graphs, metagraphs, ram, cpu
Zeller Configuration management with feature logics
Schiffer et al. Tractable parsing for CCGs of bounded degree
Agarwal et al. Hands-On Data Structures and Algorithms with Python: Write complex and powerful code using the latest features of Python 3.7
Atkinson et al. Level-agnostic designation of model elements
Walther OT SIMPLE-A construction-kit approach to Optimality Theory implementation
JP2005202612A (ja) データベース生成プログラム作成装置
Mailund String Algorithms in C
Manca et al. Introduction to Python
Ko et al. Datatype-generic programming meets elaborator reflection
da Purificação et al. A Controlled Natural Language Editor for Semantic of Business Vocabulary and Rules
Pratt-Hartmann Adding Guarded Constructions to the Syllogistic