TABLAS DE CONVERSIÓN CON ÓRDENES EN LENGUAJ E NATURAL
ANTECEDENTES DE LA I NVENCIÓN La presente invención se refiere a un método para manipular una aplicación de software mediante resolución de la entrada de usuario en órdenes de aplicación. En particular, la presente invención se refiere a la resolución de entradas de usuario en una orden a fin de convertir la información proveniente de una fuente de datos, tal como una base de datos. En sistemas computacionales típicos, la entrada de usuario se ha limitado a un conjunto rígido de respuestas de usuario que tienen un formato fijo. Por ejemplo, con una inferíase de línea de órdenes, la entrada de usuario debe ser de una forma específica que identifique de manera única una sola orden y argumentos seleccionados de un dominio limitado y específico de posibles argumentos. De manera similar, con una interfase de usuario gráfica, solamente se presenta un conjunto limitado de opciones al usuario y relativamente se adelanta de manera directa a un desarrollador para definir un dominio de entrada de usuario que consiste en un conjunto limitado de órdenes o entidades para cada entrada de usuario específica en el conjunto limitado de entradas de usuario. Al limitar a un usuario a un conjunto rígido de entradas o respuestas permitidas, los sistemas computarizados han requerido de un importante nivel de experiencia por parte del usuario o del operador. Tradicionalmente, ha sido responsabilidad del usuario el traducir mentalmente la labor deseada a llevarse a cabo en la entrada específica reconocida por las aplicaciones que se ejecutan en el sistema computarizado. Con objeto de expandir la utilidad de los sistemas de computadora, ha existido un constante esfuerzo por proporcionar aplicaciones con una interfase de lenguaje natural (NL). La interfase de lenguaje natural extiende la funcionalidad de las aplicaciones más allá de su conjunto de entradas limitadas y abre el sistema de computadora a entradas en un formato de lenguaje natural. La interfase de lenguaje natural es responsable de llevar a cabo la traducción del universo del lenguaje natural altamente en base a contexto y relativamente vago, en el conjunto preciso y rígido de entradas requeridas por una aplicación de computadora. La resolución de entradas de lenguaje natural para volverse información a partir de una fuente de datos, tal como una base de datos, puede ser difícil de llevar a cabo debido a la naturaleza usual de las fuentes de datos y las muchas maneras de convertir información proveniente de una fuente de datos. En particular, las tablas de conversión para analizar información que se almacena en una fuente de datos se llevan a cabo con instrucciones específicas provenientes de un usuario que define cuál información debe convertirse y la manera de hacerlo. Debido a esta molesta interfase, muchos usuarios tienen dificultad en la conversión de tablas para análisis de datos útiles. La proporción de una interfase amistosa con el usuario para crear y convertir tablas a partir de información de una fuente de datos proporcionaría una herramienta más eficiente a través de la cual puede analizarse información.
BREVE DESCRIPCIÓN DE LA INVENCIÓN La presente invención se refiere a un método para manipular una aplicación de software, que incluye procesamiento de datos almacenados en una fuente de datos estructurada. El método incluye la recepción de una entrada de lenguaje natural y el análisis de la entrada de lenguaje natural a fin de identificar información semántica contenida en la misma. Las porciones de la entrada de lenguaje natural se asocian con objetos de orden y objetos de entidad de un esquema en base a la información semántica y la entrada de lenguaje natural. El método también incluye la conversión de datos provenientes de la fuente de datos en una tabla de columnas e hileras en base al esquema y las porciones asociadas de la entrada de lenguaje natural. Otro aspecto de la presente invención se refiere a un medio legible por computadora que tiene instrucciones para el procesamiento de datos en una fuente de datos estructurada que incluye dimensiones y valores asociados con las dimensiones. Las instrucciones incluyen un módulo de ¡nterfase de usuario adaptado para recibir una entrada de lenguaje natural y volverla una tabla. Un módulo de generación de tabla se adapta para tener acceso a dimensiones y valores y definir un esquema para la conversión de las dimensiones y valores. Además, un módulo de interpretación se adapta para asociar términos en la entrada de lenguaje natural con un objeto de entidad del esquema correspondiente a las dimensiones en la fuente de datos y generar interpretaciones candidato de la manera de convertir los datos en la fuente de datos en base a la entrada de lenguaje natural, las dimensiones y el esquema. Otro aspecto de la presente invención es un método para el procesamiento de información a fin de manejar una aplicación que incluye la recepción de una entrada de lenguaje natural. La entrada de lenguaje natural se analiza para identificar la información semántica contenida en la misma. E! método también incluye el acceso a un esquema para identificar objetos de orden y objetos de entidad en base a la información semántica y a la entrada de lenguaje natural y la realización de una acción asociada con la aplicación en base al objeto de orden y al objeto de entidad.
BREVE DESCRIPCIÓN DE LOS DIBUJOS La figura 1 es un diagrama de bloque de un ambiente de sistema de cómputo. La figura 2 es un diagrama de bloque de un sistema para la conversión de una tabla en base a una entrada de usuario. La figura 3 es un diagrama de bloque de un esquema ejemplar. La figura 4 es un diagrama de flujo de un método ejemplar para la conversión de una tabla.
La figura 5 es un disparo de selección de una ¡nterfase de usuario para recibir una entrada proveniente de un usuario y convertir información de la tabla.
DESCRI PCIÓN DETALLADA DE LAS MODALIDADES ILUSTRATIVAS La figura 1 ilustra un ejemplo de un ambiente de sistema de cómputo adecuado 100 sobre el cual puede implementarse la invención. El ambiente de sistema de cómputo 1 00 es solamente un ejemplo de un ambiente de cómputo adecuado y no intenta sugerir limitación alguna al alcance de uso o funcionalidad de la invención. Tampoco debe interpretarse el ambiente de cómputo 100 como si tuviera dependencia alguna o requisito con relación a ninguna o cualquier combinación de los componentes ilustrados en el ambiente operativo ejemplar 1 00. La invención es operacional con otros numerosos ambientes de sistemas de cómputo o configuraciones de propósito general o de propósito especial. Los ejemplos de sistemas de cómputo muy conocidos, ambientes y/o configuraciones que pueden ser adecuados para utilizarse con la invención incluyen , pero sin limitarse, computadoras personales, computadoras de servidor, dispositivos manuales o portátiles, sistemas de múltiples procesadores, sistemas a base de microprocesadores, cajas superiores fijas, electrónicos programables por el consumidor, PCs en red , minicomputadoras, computadoras de estructura principal, sistemas de telefonía, ambientes de cómputo distribuidos que incluyen cualquiera de los anteriores sistemas o dispositivos y lo similar. La invención puede describirse en el contexto general de las instrucciones ejecutables por computadora, tal como módulos de programa, que se ejecutan por una computadora. En general, los módulos de programa incluyen rutinas, programas, objetos, componentes, estructuras de datos, etc. , que desempeñan labores particulares o implementan tipos de datos abstractos en particular. La invención también puede practicarse en ambientes de cómputo distribuido donde se llevan a cabo labores mediante dispositivos de procesamiento remoto que se enlazan a través de una red de comunicaciones. En un ambiente de cómputo distribuido, los módulos de programa pueden localizarse en medios de almacenamiento en computadora tanto locales como remotos, incluyendo dispositivos de almacenamiento en memoria. Las labores llevadas a cabo por los programas y módulos se describen a continuación y con la ayuda de figuras. Aquellos expertos en la materia pueden implementar la descripción y figuras como instrucciones ejecutables por el procesador, las cuales pueden ser escritas o de cualquier forma de un medio legible por computadora. Con relación a la figura 1 , un sistema ejemplar para implementar la invención incluye un dispositivo de cómputo de propósito general en la forma de una computadora 1 10. Los componentes de la computadora 1 10 pueden incluir, pero sin limitarse, una unidad de procesamiento 120, una memoria de sistema 130 y un bus de sistema 121 que acopla diversos componentes de sistema, incluyendo la memoria del sistema, a la unidad de procesamiento 120. El bus de sistema 121 puede ser cualquiera de varios tipos de estructuras de bus, incluyendo un bus de memoria o controlador de bus, un bus periférico y un bus local que utiliza cualquiera de una variedad de arquitecturas de bus. A manera de ejemplo y no como limitación, tales arquitecturas incluyen bus de Arquitectura Estándar Industrial (ISA), bus de Arquitectura de Micro Canal (MCA), bus ISA Mejorado (EISA), bus local de Asociación de Estándares Vídeo Electrónicos (VESA), y bus de Interconexión de Componentes Periféricos (PCI) también conocido como bus Mézanme. La computadora 1 10 típicamente incluye una variedad de medios legibles por computadora. Los medios legibles por computadora pueden ser cualquier medio disponible al que puede accederse mediante la computadora 1 10 e incluye medios tanto volátiles como no volátiles, medios removibles y no removibles. A manera de ejemplo, y no como limitación, el medio legible por computadora puede comprender medio de almacenamiento en computadora y medio de comunicación. El medio de almacenamiento en computadora incluye medios tanto volátiles como no volátiles, removibles y no removibles, implementados en cualquier método o tecnología para almacenamiento de información, tal como instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos. El medio de almacenamiento en computadora incluye, pero sin limitarse, RAM, ROM, EEPROM, memoria instantánea u otra tecnología de memoria, CD-ROM, discos versátiles digitales (DVD) u otro disco de almacenamiento óptico, cintas magnéticas, casettes magnéticos, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que puede utilizarse para almacenar la información deseada y al que puede accederse mediante la computadora 1 10. Los medios de comunicación típicamente incorporan instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada, tal como una onda vehículo u otro mecanismo de transporte e incluye cualquier medio de suministro de información. El término "señal de datos modulada" significa una señal que tiene una o más de este conjunto de características o que cambia de tal manera que codifica información en la señal. A manera de ejemplo y no como limitación, los medios de comunicación incluyen medios cableados tales como una red de conexión por cable o conexión directa por cable y medios inalámbricos tales como medios acústicos, de RF, infrarrojos y otros. Las combinaciones de cualquiera de los anteriores también deben incluirse dentro del alcance los medios legibles por computadora. La memoria de sistema 130 incluye medios de almacenamiento en computadora en la forma de memoria volátil y/o no volátil, tal como memoria de solo lectura (ROM) 131 y memoria de acceso aleatorio (RAM) 132. Un sistema básico de entradas/salidas 133 (BIOS), que contiene las rutinas básicas que ayudan a la transferencia de información entre elementos dentro de la computadora 1 10, tal como durante el inicio, se almacena típicamente en la ROM 131 . La RAM 132 típicamente contiene datos y/o módulos de programa que son inmediatamente accesibles y/o que se operan actualmente mediante la unidad de procesamiento 120. A manera de ejemplo y no como limitación, la figura 1 ilustra el sistema operativo 134, programas de aplicación 135, otros módulos de programa 136 y datos de programa 137. La computadora 1 1 0 también puede incluir otros medios de almacenamiento removibles/no removibles, volátiles/no volátiles. A manera de ejemplo solamente, la figura 1 ilustra una unidad de disco duro 141 que lee a partir de o escribe en medios magnéticos no volátiles, no removibles, una unidad de disco magnético 151 que lee a partir o escribe en un disco magnético no volátil, removible 152, y una unidad dé disco óptico 155 que lee a partir de o escribe en un disco óptico no volátil, removible 156, tal como un CD ROM u otro medio óptico. Pueden utilizarse otros medios de almacenamiento en computadora, volátiles/no volátiles, removibles/no removibles, en el ambiente operativo ejemplar, que incluyen, pero sin limitarse, casettes de cinta magnética, tarjetas de memoria instantánea, discos versátiles digitales, cintas de video digitales, RAM de estado sólido, ROM de estado sólido y lo similar. La unidad de disco duro 141 se conecta típicamente al bus de sistema 121 a través de una interfase de memoria no removible, tal como una interfase 140, y la unidad de disco magnético 151 y la unidad de disco óptico 155 se conectan típicamente al bus de sistema 121 mediante una interfase de memoria removible, tal como la interfase 150. Las unidades y sus medios de almacenamiento en computadora asociados, arriba discutidos e ilustrados en la figura 1 , proporcionan almacenamiento de instrucciones legibles por computadora, estructuras de datos, módulos de programa y otros datos para la computadora 1 10. En la figura 1 , por ejemplo, la unidad de disco duro 141 se ilustra como almacenando el sistema operativo 144, programas de aplicación 145, otros módulos de programa 146, y datos de programa 147. Observe que estos componentes pueden ser ya sea iguales o diferentes del sistema operativo 134, programas de aplicación 135, otros módulos de programa 136 y datos de programa 137. El sistema operativo 144, los programas de aplicación 145, otros módulos de programa 146 y los datos de programa 147 reciben diferentes números aquí para ilustrar que, por lo menos, son copias diferentes. Un usuario puede introducir órdenes e información en la computadora 1 10 a través de dispositivos de entrada, tales como un teclado, un micrófono 163, y un dispositivo de señalamiento 161 , tal como un ratón, esfera de desplazamiento o cojinete al tacto. Otros dispositivos de entrada (no mostrados) pueden incluir una palanca de mando, cojinete de juego, disco satelital, explorador o lo similar. Para aplicaciones de interfase de usuario naturales, un usuario puede comunicarse además con la computadora mediante el uso de voz, escritura, mirada (movimiento ocular), y otros gestos. Para facilitar una interfase de usuario natural, una computadora puede incluir micrófonos, cojinetes de escritura, cámaras, sensores de movimiento, y otros dispositivos para capturas movimientos del usuario. Estos y otros dispositivos de entrada se conectan con frecuencia a la unidad de procesamiento 120 a través de una interfase de entrada de usuario 160 que se acopla al bus de sistema, pero pueden conectarse mediante otra interfase y estructuras de bus, tal como un puerto paralelo, puerto de juego o un bus serial universal (USB). Un monitor 191 u otro tipo de dispositivo de despliegue también se conecta al bus de sistema 121 a través de una interfase, tal como una interfase de video 190. Además del monitor, las computadoras también pueden incluir otros dispositivos de emisión periféricos, tales como bocinas 197 e impresora 1 96, las cuales pueden conectarse a través de una interfase periférica de salida 190. La computadora 1 10 puede operar en un ambiente conectado en red mediante el uso de conexiones lógicas a una o más computadoras remotas, tal como una computadora remota 180. La computadora remota 180 puede ser una computadora personal, un dispositivo manual, un servidor, un direccionador, una PC en red, un dispositivo paritario u otro nodo de red común y típicamente incluye muchos o todos los elementos arriba descritos con relación a la computadora 1 1 0. Las conexiones lógicas ¡lustradas en la figura 1 incluyen una red de área local (LAN) 171 y una red de área amplia (WAN) 173, pero también pueden incluir otras redes. Tales ambientes de trabajo en red son comunes en oficinas, redes de computadora por toda la empresa, intra redes y la Internet. Cuando se utiliza en un ambiente de red LAN, la computadora 1 10 se conecta a la LAN 171 a través de una interfase de red o adaptador 170. cuando se utiliza en un ambiente de red WAN, la computadora 1 1 0 típicamente incluye un módem 172 u otro medio para establecer comunicaciones sobre la WAN 173, tal como la Internet. El módem 172, el cual puede ser interno o externo, puede conectarse al bus de sistema 121 a través de la interfase de entrada de usuario 160 u otro mecanismo adecuado. En un ambiente conectado en red, los módulos de programa ilustrados con relación a la computadora 1 1 0, o porciones de los mismos, pueden almacenarse en el dispositivo de almacenamiento en memoria remoto. A manera de ejemplo y no como limitación, la figura 1 ¡lustra programas de aplicación remota 185 que residen en la computadora remota 180. Se apreciará que las conexiones de red mostradas son ejemplares y que pueden utilizarse otros medios para el establecimiento de un enlace de comunicaciones entre las computadoras. Típicamente, los programas de aplicación 135 han interactuado con un usuario a través de una línea de órdenes o una Interfase de Usuario Gráfica (GUI) a través de la interfase de entrada de usuario 160. Sin embargo, en un esfuerzo por simplificar y expandir el uso de sistemas de computadora, se han desarrollado entradas que son capaces de recibir una entrada de lenguaje natural del usuario. En contraste con lenguaje o conversación naturales, una interfase de usuario gráfica es precisa. Una interfase de usuario gráfica bien diseñada normalmente no produce referencias ambiguas ni requiere de la aplicación implícita para confirmar una interpretación en particular de la entrada recibida a través de ia interfase 160. Por ejemplo, debido a que la interfase es precisa, no existe típicamente algún requisito que se solicite al usuario con respecto a la entrada, es decir, "¿Oprimió el botón de Ok'?". Típicamente, un modelo objeto diseñado para una interfase de usuario gráfica es muy mecánico y rígido en su implementación. En contraste con una entrada de una interfase de usuario gráfica, una consulta u orden de lenguaje natural con frecuencia se traducirán no solamente en una, sino en una serie de llamadas de función para el modelo objeto de entrada. En contraste con las rígidas limitaciones mecánicas de una entrada de línea tradicional o interfase de usuario gráfica, el lenguaje natural es un medio de comunicación en el cual los interlocutores humanos dependen de la inteligencia del otro, con frecuencia de manera inconsciente, para resolver ambigüedades. De hecho, el lenguaje natural se considera como "natural" exactamente debido a que no es mecánico. Los interlocutores humanos pueden resolver ambigüedades en base a información contextúa! y claves con respecto a cualquier número de dominios que rodean la pronunciación. Con los interlocutores humanos, la oración "Adelantar los minutos a aquellos en la junta de revisión el Viernes" es una oración perfectamente comprensible sin explicación adicional alguna. Sin embargo, desde el punto de vista mecánico de una máquina, deben especificarse detalles específicos tal como exactamente qué documento y a cuál junta se refiere, y exactamente a quién debe enviarse el documento. La presente invención se refiere a la interpretación de entradas de lenguaje natural para manejar una aplicación y sus acciones asociadas. Un esquema puede definirse para ambas interpretaciones de la entrada de lenguaje natural, así como también para iniciar acciones asociadas con la aplicación. Como resultado, el esquema interactúa tanto con la aplicación en sí como con las interpretaciones semánticas de entrada de lenguaje natural por un usuario. Como se aprecia por aquellos expertos en la materia, el esquema puede ser un código separado y/o incluirse con el código de aplicación. Los aspectos de la presente invención pueden utilizarse en un número de ambientes diferentes para proporcionar una interfase de lenguaje natural mejorada a un usuario. Una modalidad en particular que puede utilizar aspectos de la presente invención involucra la conversión de información proveniente de una fuente de datos estructurada, tal como una base de datos. El esquema puede utilizarse para convertir una tabla de columnas e hileras o una sola celda, por ejemplo. En el caso donde se convierte una sola celda de información, la información puede ser una respuesta a una pregunta presentada en lenguaje natural en vez de proporcionar los datos en un formato de tabla. Por ejemplo, un usuario puede introducir, "¿Cuántos reclamos ha pagado California en 1999?". La respuesta "3482" podría presentarse entonces a fin de que un usuario no necesite buscar a través de una gran cantidad de datos para encontrar la respuesta. La figura 2 ilustra un diagrama de bloque de un sistema para resolver entradas de lenguaje natural provenientes de un usuario y convertir la información de tabla en base a la entrada de lenguaje natural. El sistema 200 incluye un módulo de interfase de usuario 202, un módulo de generación de tablas 204, un módulo de interpretación 206 y una base de datos 208. Es importante recalcar que la base de datos 208 es una fuente de datos ejemplar. La fuente de datos puede tomar muchas formas, tal como una base de datos SQL, cubo OLAP u Hoja de Cálculo Excel Microsoft. Un usuario proporciona una entrada de lenguaje natural al módulo de interfase de usuario 202 en una forma de una orden, pregunta u otra entrada relacionada con la generación de una tabla. Por ejemplo, el usuario puede proporcionar "Muestra el beneficio bruto para transporte aéreo y destino por año" o "¿Cuál fue el ingreso total para 737 en 1999?", o simplemente "ganancia". El módulo de interfase de usuario 202 recibe la entrada de lenguaje natural y la proporciona a un módulo de generación de tabla 204. El módulo de generación de tabla 204 define un esquema de órdenes y atributos asociados para diversas órdenes que pueden utilizarse cuando se convierte una tabla. Por ejemplo, las órdenes pueden incluir crear, mostrar, agregar, ocultar, resaltar, filtrar, limpiar, etc., e incluyen atributos que definen además las órdenes. Las órdenes también pueden incluir la impresión de una tabla y la creación de un diagrama a partir de los datos en una base de datos 208. El esquema puede proporcionarse al módulo de interpretación 206 para manejar interpretaciones de la entrada. Alternativamente, el esquema puede utilizarse para convertir una sola celda de información. El módulo de generación de tabla 204 utiliza el módulo de interpretación 206 para ayudar en la determinación de cuál información debe convertirse en base a la entrada de lenguaje natural recibida desde el módulo de interfase 202 y el esquema definido que dirija las acciones preformadas para construir y generar tablas. El módulo de generación de tablas 204 tiene acceso a la base de datos 208 con objeto de identificar palabras y/o frases que corresponden a temas almacenados en una base de datos 108 y las proporciona al módulo de interpretación 206. El módulo de interpretación 206 analiza la entrada de usuario, esquema y palabras y frases de la base de datos para generar interpretaciones semánticas candidato de la conversión de información para el usuario. Un análisis esquemático de la entrada de usuario se lleva a cabo primero a fin de proporcionar información semántica para la interpretación de lo que el usuario desearía que se interprete. Por ejemplo, una entidad nombrada en la entrada puede señalar un término que el usuario desea que se interprete como una página, hilera o columna o dentro de un área de datos de una tabla. Otras técnicas semánticas también pueden utilizarse, tal como la identificación de partes de conversación, la aceptación de comparaciones parciales de términos y/o la dependencia sobre ciertas partes de conversación para comparaciones, identificación de alternativas morfológicas (es decir, "región" y "regional"), resolución de concatenación de nombres (es decir, "propietario del domicilio" y "propietario domiciliar"), normalización de fechas (es decir, "1/1/04" y "Enero 1 , 2004"), identificación de sinónimos a través de un compendio de palabras, permitir órdenes con palabras cambiadas (es decir, "ingreso total" y "total ingreso") y métodos de ordenamiento. Puede identificarse ora información semántica mediante el módulo de interpretación 206, tal como negación de valores (es decir, ocultar), comparativos (es decir, valores por encima de un umbral), etc. Mediante el uso de la información semántica y el esquema, el módulo de interpretación 206 asocia una o más labores en la entrada de lenguaje natural con un objeto de orden del esquema y asocia otra información en la entrada de lenguaje natural con una o más objetos de estructura y/o uno o más objetos de entidad del esquema. El esquema también puede incluir otros objetos, tales como objetos denotadores y de restricción que pueden denotar otras entidades y describir propiedades de objetos. Una vez que la entrada de lenguaje natural se asocia con objetos del esquema, se resuelven interpretaciones candidato y se envían al módulo de generación de tabla 204. En una modalidad ejemplar, el módulo de ¡nterfase de usuario 202 puede ser una aplicación de hoja extendida, tal como Microsoft Excel proporcionada por Microsoft Corporation of Redmond, Washington. La aplicación de hoja extendida puede configurarse para procesar y convertir todo tipo de información de la base de datos. Por ejemplo, la aplicación de hoja extendida puede ser una herramienta de conversión por procesamiento analítico en línea (OLAP). El OLAP se refiere a un método de procesamiento que permite que un usuario extraiga de manera fácil y selectiva y observe los datos provenientes de una base de datos de diversas maneras. En un modelo de datos OLAP, la información se observa conceptualmente como cubos, lo cual consiste en categorías descriptivas (dimensiones) y valores cuantitativos (medidas). El modelo de datos multldimensional hace para los usuarios el formular consultas complejas, arreglar datos en un reporte, cambiar de datos sumarios a detallados y filtrar o dividir los datos en sub-conjuntos representativos. Por ejemplo, las dimensiones en un cubo que contiene información de ventas pueden incluir tiempo, geografía, producto, canal, organización y escenario (presupuestado o real). Las medidas pueden incluir ventas en dólares, ventas unitarias, inventario, contabilidad superior, ingresos y gastos. Dentro de cada dimensión de un modelo de datos OLAP, los datos pueden organizarse en una jerarquía que representa niveles de detalle en los datos. Por ejemplo, dentro de la dimensión de tiempo, pueden existir estos niveles: años, meses y días; de manera similar, dentro de la dimensión geográfica, pueden existir estos niveles: país, región, estado/provincia, y ciudad. Un caso particular del modelo de datos OLAP tendría los valores específicos para cada nivel en la jerarquía. Un usuario que observa datos OLAP se moverá hacia arriba o hacia abajo entre niveles para ver información más o menos detallada. En una modalidad de la presente invención, la entrada de lenguaje natural proporcionada por un usuario puede resolverse para crear una así llamada Tabla Pivote en una aplicación de hoja extendida, tal como Microsoft Excel en base a dimensiones de cubo OLAP. Una Tabla Pivote es una tabla interactiva que puede resumir grandes cantidades de datos. La interfase interactiva que convierte la tabla permite a un usuario girar las hileras y columnas de información con objeto de que el usuario observe diferentes resúmenes de datos en la base de datos 208, filtre los datos mediante despliegue de diferentes páginas y/o despliegue detalles con relación a la información en la base de datos. La Tabla Pivote contiene campos, cada uno de los cuales resume múltiples hileras de información a partir de la fuente de datos. La Tabla Pivote también puede resumir datos mediante el uso de una función de resumen tal como sumar, contar y/o promediar celdas específicas en la tabla. Con objeto de crear una Tabla Pivote, un usuario puede invocar al módulo de generación de tablas 204. En una modalidad, el módulo de generación de tabla 204 es un mago que guía al usuario a introducir información con respecto a la conversión de información de tablas. En esta modalidad, el módulo de generación de tabla 204 puede definir un esquema en base a acciones disponibles para la construcción y modificación de una Tabla Pivote. El esquema puede representarse como una jerarquía de órdenes, estructuras y objetos de entidad. Otros objetos pueden incluir un denotador, llamado objetos de entidad y de restricción. El objeto de orden identifica labores y acciones, el objeto de estructura identifica la acción con relación a la manera como los datos se despliegan y el objeto de entidad identifica los datos. Los casos específicos de estos objetos pueden utilizarse para implementar la interpretación de la información. Los casos pueden tener propiedades inherentes de una clase de base, si se desea. El esquema utilizado por el módulo de generación de tabla 204 para llevar a cabo las acciones en los datos a fin de generar una tabla y mediante el módulo de interpretación 206 manejar la interpretación de la entrada del usuario. La figura 3 es un diagrama de bloque de un esquema ejemplar que se utiliza para mover un campo de datos entre los ejes en una tabla. El esquema 220 incluye un objeto de orden 222, el cual es ilustrativamente una orden de "mover eje". El objeto de orden 222 incluye un objeto de estructura asociado 224 que es una estructura de "mover eje". El objeto de estructura 224 incluye tres objetos de entidad asociados 226, 228 y 230. El objeto de estructura 224 asocia cada uno de los objetos de entidad 226, 228 y 230 con el objeto de orden 222. Los objetos de entidad se asocian con los datos en la base de datos 208. En una modalidad, los objetos de entidad pueden asociarse con una columna o hilera por interpretarse. En la modalidad ilustrada, el objeto de entidad 226 es una entidad por omisión, lo cual en la presente en una entidad de campo y especifica el campo de datos que está por moverse. Por lo tanto, si una interpretación de la entrada de usuario no resuelve una entidad en particular, necesaria para llevar a cabo la orden en el objeto de orden 222, la entidad de campo 226 se resolverá en un valor por omisión, lo cual puede ser en base a diversas reglas. El objeto de entidad 228 es una entidad de propósito, la cual define el eje hacia el cual interpretar los datos. El objeto de entidad 230 es una entidad de fuente, que define un campo actual que está por moverse a un eje diferente. La figura 4 es un diagrama de flujo de un método ejemplar para convertir una tabla para un usuario. El método 250 comienza en la etapa 252 en donde el módulo de generación de tabla se invoca. El módulo de generación de tabla también puede tener acceso a términos de la base de datos y/o frases correspondientes a dimensiones, niveles, medidas y/o miembros de la base de datos 208 en la etapa 254 que se utilizará para comparar los términos provenientes de la entrada del usuario. Los términos de la base de datos identificados pueden mantenerse en un historial para uso futuro a fin de mejorar el desempeño del módulo de generación de tabla 204. En la etapa 256, una entrada de lenguaje natural se recibe a partir de un usuario. La entrada de lenguaje natural puede ser de cualquier forma, incluyendo texto desde una entrada de teclado, datos de voz y/o datos escritos manualmente y ser de cualquier idioma, incluyendo Inglés, Alemán, Francés, Español, Japonés, etc. Dada la entrada de lenguaje natural, puede llevarse a cabo un análisis semántico de la entrada en la etapa 258 para identificar información semántica asociada con la entrada. Las interpretaciones candidato de la entrada de usuario pueden suministrarse entonces en base a la información de semántica y a la asociación de porciones de la entrada de usuario con porciones del esquema, como se describe arriba. Es importante recalcar que la orden no necesita expresarse de manera explícita en la entrada de lenguaje natural, sino que puede implicarse a partir de la entrada. Por ejemplo, la entrada "manzanas y plátanos" puede implicarse que se utilice con una orden de "mostrar". Mediante el uso de las interpretaciones candidato, las descripciones candidato de la tabla pueden interpretarse en la etapa 262. Las descripciones candidato de tabla pueden tomar muchas formas para crear una interfase interactiva, amigable con el usuario. Por ejemplo, las interpretaciones y/o vistas previas de la tabla pueden presentarse mientras un usuario se encuentra mecanografiando, los términos reconocidos en la entrada pueden resaltarse, pueden presentarse múltiples configuraciones de tabla (es decir, una entidad como una hilera o una columna), puede presentarse una descripción de lenguaje natural de las descripción candidato de tabla en una lista y pueden presentarse términos alternativos, ambiguos, en un menú de traslado. Adicionalmente, un usuario puede seleccionar ambigüedades locales en las descripciones candidato. Por ejemplo, si un usuario introduce "ventas" en la entrada, una de las descripciones candidato podría incluir el término "número de ventas", el cual es una parte de la base de datos 208 y podría igualarse al término "ventas". Al proporcionar un enfoque interactivo para resolver ambigüedades locales, un usuario podría seleccionar "número de ventas" como un equivalente a "ventas". Esta información (es decir, igualar "ventas" y "número de ventas") puede mantenerse y utilizarse además para manejar futuras interpretaciones. Si un usuario selecciona una de las descripciones candidato de tabla, esa tabla en particular se interpreta entonces en la etapa 266. Alternativamente, si se desea, la tabla puede interpretarse "en el vuelo", cuando un término se reconoce u ocurren cambios en la entrada del usuario. También, una porción de la entrada de lenguaje natural puede utilizarse para reconocer e indicar visualmente términos como un tipo de usuario. Por ejemplo, un término reconocido puede resaltarse como un tipo de usuario. Una vez que se ha interpretado la tabla, un usuario puede cambiar la tabla mediante proporción de una orden adicional o múltiples órdenes para modificar la tabla o volverla una nueva tabla. La orden adicional puede utilizarse, por ejemplo, para resaltar porciones de la tabla, ocultar y/o agregar hileras y columnas, ordenar y filtrar información así como también otras órdenes en la etapa 268. La nueva tabla puede interpretarse entonces en la etapa 266. La figura 5 ilustra una inferíase ejemplar 300 utilizada de acuerdo con una modalidad de la presente invención. La interfase 300 incluye un despliegue de tabla 302 para desplegar información a partir de la base de datos 208 en una tabla de columnas e hileras. En la modalidad ilustrada, el ingreso total para diversos tipos de transporte aéreo se muestra por región. Se proporciona una ventana 304 para que un usuario observe las descripciones de tabla y proporcione una entrada de lenguaje natural que se utiliza por el módulo de generación de tabla 204. La ventana 304 incluye una descripción de tabla 306 que describe el contenido de la tabla actualmente mostrada en el despliegue 302. Adicionalmente, se proporciona un ejemplo 308 de la entrada para la construcción de una tabla. El usuario puede introducir texto en el campo 310 con objeto de interpretar una tabla. Las descripciones candidato 312 pueden proporcionarse además al usuario según se describe arriba en una lista para que el usuario seleccione fácilmente uno de los candidatos de la lista. Adicionalmente, los botones 314 pueden proporcionarse para que el usuario seleccione un patrón de tabla en particular. Por ejemplo, los botones 314 pueden cambiar una dimensión de una columna a una hilera. En una modalidad, el número de patrones variables (o configuraciones) puede limitarse en base al orden de términos en la entrada de lenguaje natural. En el ejemplo ilustrado en la figura 4, un usuario ha proporcionado la entrada de lenguaje natural, "mostrar ingreso para transporte aéreo y región" en el campo de entrada 31 0. El módulo de generación de tabla 204, que tiene términos de acceso a partir de la base de datos 208, ha identificado las dimensiones "Ingreso Total", "Tipo de Transporte Aéreo" y "Nombre de Región". El módulo de interpretación 206, que utiliza la entrada en el campo 310 y las dimensiones en la base de datos 208, resuelve la entrada en el campo 31 0 y proporciona la descripción candidato "Mostrar Ingreso Total por Tipo de Transporte Aéreo y por Nombre de Región" en 312.
Después de la selección del usuario de esta interpretación, la descripción actual 306 y el despliegue de tabla 302 se actualizan para mostrar la tabla seleccionada y la descripción asociada. El usuario se permite entonces introducir órdenes de lenguaje natural adicionales en el campo 310 respecto a la tabla en el despliegue 302 o respecto a una nueva tabla. Por ejemplo, el usuario puede proporcionar "Ocultar Australia", "mostrar solamente 747", "resaltar ingresos superiores a $1 0,000", etc. En estos ejemplos, la aplicación ocultará la columna Australia, interpretará una tabla solamente con datos asociados con el Tipo de Avión 747 y resaltará los valores Totales de Ingreso mayores que $10,000, respectivamente. Como resultado de las modalidades descritas arriba, se proporciona una interfase de lenguaje natural para convertir información de una fuente de datos, tal como una base de datos, en una tabla de columnas e hileras. La interfase hace más fácil que los usuarios generen e interpreten tablas utilizadas para análisis de datos. Por lo tanto, el análisis de datos mediante conversión de tablas puede llevarse a cabo en una manera más eficiente y amistosa para el usuario. Aunque la presente invención se ha descrito con relación a modalidades particulares, los trabajadores expertos en la materia reconocerán que pueden hacerse cambios en forma y detalle sin apartarse del espíritu y alcance de la invención.