tabla de contenido - cenidet.edu.mx juan carlos... · 1 capítulo 1 introducción hoy en día...

129
i Tabla de Contenido Página Lista de Tablas ............................................................................................................ iv Lista de Figuras ........................................................................................................... vi 1. Introducción........................................................................................................... 1 1.1 Motivaciones ..................................................................................................... 3 1.2 Trabajos Relacionados ...................................................................................... 3 1.3 Descripción del Problema .................................................................................. 7 1.4 Objetivos ............................................................................................................ 9 1.5 Hipótesis de Investigación ............................................................................... 10 1.6 Justificación y Beneficios ................................................................................. 10 1.7 Aportaciones .................................................................................................... 12 1.8 Alcances y Limitaciones ................................................................................... 13 1.9 Aplicaciones ..................................................................................................... 15 2. Marco Teórico ...................................................................................................... 17 2.1 Introducción ..................................................................................................... 17 2.2 Procesamiento de Lenguaje Natural PLN ........................................................ 18 2.3 Interfaces de Lenguaje Natural para Bases de Datos ILNBDs ........................ 22 2.4 Sistema Administrador de Bases de Datos SABD ........................................... 23 2.5 Structured Query Language SQL..................................................................... 23 3. Metodología de Solución .................................................................................... 26 3.1 Metodología de Solución.................................................................................. 27 3.2 Formalización de la Tipificación de Problemas en Consultas .......................... 34 3.3 Implementación de procesos de diálogo.......................................................... 44 3.4 Diseño Conceptual de la Interfaz con un Administrador de Diálogo ................ 47 4. Experimentación ................................................................................................. 50 4.1 La Base de Datos ATIS.................................................................................... 51 4.2 Experimento 1. Prueba del desempeño de la interfaz comercial English Query con un corpus de preguntas con economía de palabras............................. 52 4.3 Experimentos 2 Prueba del desempeño de la interfaz comercial ELF con un corpus de preguntas con economía de palabras ................................................... 54

Upload: lydieu

Post on 02-Oct-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

i

Tabla de Contenido Página

Lista de Tablas ............................................................................................................ iv

Lista de Figuras...........................................................................................................vi

1. Introducción........................................................................................................... 1 1.1 Motivaciones ..................................................................................................... 3

1.2 Trabajos Relacionados ...................................................................................... 3

1.3 Descripción del Problema .................................................................................. 7

1.4 Objetivos ............................................................................................................ 9

1.5 Hipótesis de Investigación ............................................................................... 10

1.6 Justificación y Beneficios ................................................................................. 10

1.7 Aportaciones .................................................................................................... 12

1.8 Alcances y Limitaciones................................................................................... 13

1.9 Aplicaciones..................................................................................................... 15

2. Marco Teórico...................................................................................................... 17 2.1 Introducción ..................................................................................................... 17

2.2 Procesamiento de Lenguaje Natural PLN........................................................ 18

2.3 Interfaces de Lenguaje Natural para Bases de Datos ILNBDs ........................ 22

2.4 Sistema Administrador de Bases de Datos SABD........................................... 23

2.5 Structured Query Language SQL..................................................................... 23

3. Metodología de Solución .................................................................................... 26 3.1 Metodología de Solución.................................................................................. 27

3.2 Formalización de la Tipificación de Problemas en Consultas .......................... 34

3.3 Implementación de procesos de diálogo.......................................................... 44

3.4 Diseño Conceptual de la Interfaz con un Administrador de Diálogo ................ 47

4. Experimentación ................................................................................................. 50 4.1 La Base de Datos ATIS.................................................................................... 51

4.2 Experimento 1. Prueba del desempeño de la interfaz comercial English

Query con un corpus de preguntas con economía de palabras............................. 52

4.3 Experimentos 2 Prueba del desempeño de la interfaz comercial ELF con un

corpus de preguntas con economía de palabras ................................................... 54

ii

4.4 Experimento 3 Evaluación del desempeño de la ILNBD desarrollada en

CENIDET con un Administrador de Diálogo .......................................................... 55

4.5 Experimento 4 Evaluación del desempeño de la interfaz ELF con un corpus

con consultas con economía de palabras de la BD ATIS ...................................... 56

4.6 Experimentos 5.1, 5.2 Evaluación del desempeño de la ILNBD desarrollada

en CENIDET con un corpus con consultas con economía de palabras de la BD

ATIS....................................................................................................................... 57

4.7 Cálculo del número de ciclos de diálogo en la ILNBD desarrollada en

CENIDET ............................................................................................................... 60

4.8 Conclusiones ................................................................................................... 65

5. Conclusiones y Trabajos Futuros...................................................................... 69 5.1 Conclusiones ................................................................................................... 69

5.2 Trabajos Futuros.............................................................................................. 70

Referencias .............................................................................................................. 73 Anexos ..................................................................................................................... 78

Anexo A. Características de la ILNBD desarrollada en CENIDET......................... 78

Anexo B. Gramática de elementos considerados de SQL 1 para la tipificación de

problemas en consultas ......................................................................................... 82

B.1 Subconsultas ................................................................................................... 84

Anexo C. Ejemplo de configuración de la interfaz English Query (EQ).................. 86

Anexo D. Muestra de 102 consultas del corpus de la BD ATIS ............................. 89

Anexo E. Ejemplos de consultas con la interfaz desarrollada en CENIDET

incluyendo un administrador de diálogo................................................................. 93

Anexo F. Ejemplos de seis tipos de problemas en consultas ejecutadas por la

interfaz desarrollada en CENIDET....................................................................... 102

Anexo G. Información de la ILNBD desarrollada en CENIDET............................ 106

Anexo H. Instalación de la ILNBD........................................................................ 111

Anexo I. Diagrama de clases de la ILNBD desarrollada en CENIDET con

traductor............................................................................................................... 118

Anexo J. Resultados publicados.......................................................................... 119

Anexo K. Problemas en la ILNBD desarrollada en CENIDET.............................. 120

iii

Anexo L. Esquema de la BD ATIS....................................................................... 122

iv

Lista de Tablas

Página Tabla 1.2.1 Estado del arte de ILNBDs con independencia de dominio que

emplean un administrador de diálogo ......................................................................... 4

Tabla 3.1.2 Porcentaje de consultas clasificadas para las BDs Northwind, ATIS y

Pubs .......................................................................................................................... 32

Tabla 3.2.1 Tipificación de problemas compuestos considerando

combinaciones de problemas básicos....................................................................... 42

Tabla 3.2.2 Tipificación de problemas considerada para el

administrador de diálogo ........................................................................................... 42

Tabla 4.2.1 Resultados de la ejecución de consultas que involucran seis tipos de

problemas utilizando EQ ........................................................................................... 53

Tabla 4.3.1 Resultados de la ejecución de consultas que involucran seis tipos de

problemas utilizando ELF.......................................................................................... 54

Tabla 4.4.1 Resultados para seis tipos de problemas en consultas

del corpus de la BD Northwind .................................................................................. 55

Tabla 4.5.1 Resultados para cinco tipos de problemas con el corpus

de la BD ATIS y la interfaz ELF................................................................................. 56

Tabla 4.6.1 Resultados para cinco tipos de problemas con el corpus

de la BD ATIS y la ILNBD desarrollada en CENIDET ............................................... 58

Tabla 4.6.2 Resultados para cinco tipos de problemas con una muestra

del corpus de la BD ATIS y la ILNBD desarrollada en CENIDET

con estudiantes de maestría ..................................................................................... 59

Tabla 4.6.3 Resultados para cinco tipos de problemas con una muestra del

corpus de la BD ATIS y la ILNBD desarrollada en CENIDET con estudiantes de

licenciatura en informática......................................................................................... 60

Tabla 4.7.1 Resultados del número de ciclos de diálogo para cinco tipos de

problemas con una muestra del corpus de la BD ATIS y la ILNBD desarrollada en

CENIDET con estudiantes de licenciatura en informática y maestría en ciencias..... 61

v

Tabla 4.7.2 Aplicación del número de procesos de diálogo de acuerdo al tipo de

problemas en consultas en una ILNBD..................................................................... 62

Tabla D.1 Corpus de consultas de la BD ATIS.......................................................... 89

Tabla F.1 Ejemplos de seis tipos de problemas en consultas

para la BD Northwind ..........................................................................................................102

vi

Lista de Figuras

Página Figura 2.2.1 Arquitectura general de un sistema de diálogo.................................. 20

Figura 2.3.1 Flujo en una ILNBD [36]..................................................................... 22

Figura 3.2.1 Conjunto de consultas consideradas y problemas de omisión de

información ............................................................................................................ 34

Figura 3.2.2 Conjunto de consultas consideradas y problemas y de omisión de

información (básicos y compuestos)...................................................................... 36

Figura 3.2.3 Tipos de problemas básicos de omisión de información.................... 41

Figura 3.4.1 Esquema conceptual de la ILNBD desarrollada en CENIDET con un

administrador de diálogo........................................................................................ 48

Figura 4.8.1 Respuesta de ELF a la consulta:

What is the arrival time in Los Angeles? ................................................................ 65

Figura A.1 Arquitectura general de la ILNBD [1, 29]. ............................................. 79

Figura E.1 Selección de BD y consulta con el tipo de problema 3.1...................... 93

Figura E.2 Diálogo de aclaración. .......................................................................... 94

Figura E.3 Pantalla de solicitud de información faltante para “producto”. .............. 95

Figura E.4 Resultado de la consulta: ¿cuál es el precio del producto chang?....... 96

Figura E.5 Consulta con el tipo de problema 4.1 ................................................... 97

Figura E.6 Pantalla de solicitud de información faltante para “fecha” .................... 98

Figura E.7 Pantalla de solicitud de información faltante para “empleado” ............. 99

Figura E.8 Pantalla de solicitud de información faltante para “empleado” ........... 100

Figura E.9 Resultado a la consulta: Dame la fecha de contratación de Margaret

Peacock. .............................................................................................................. 101

Figura G.1 Fragmento de la información de la BD db2.mdb................................ 106

Figura G.2 Fragmento de la información de la BD Bitácora................................. 106

Figura G.3 Fragmento de la información de la tabla ConsultaLN de la BD

baseconsultas ...................................................................................................... 107

Figura G.4 Fragmento de la información de la tabla “specific” de la BD

domespec ............................................................................................................ 107

vii

Figura G.5 Fragmento de la información de la tabla “dom” de la BD dominio ..... 108

Figura G.6 Fragmento de la tabla “lexico” de la BD “lexicon” .............................. 108

Figura G.7 Fragmento de la tabla “sustantivos”de la BD “lexicon”....................... 109

Figura G.8 Fragmento de la tabla “MetadatosValores” de la BD metadatos........ 109

Figura G.9 Fragmento de la tabla “Metadatos” de la BD metadatos.................... 110

Figura H.1 Acceso a propiedades de entorno...................................................... 111

Figura H.2 Acceso a variables de entorno ........................................................... 112

Figura H.3 Creación de nueva variable de entorno.............................................. 113

Figura H.4 Agregar nueva variable de entorno .................................................... 114

Figura H.5 Acceso a “path” del sistema ............................................................... 115

Figura H.6 Modificación de “path” del sistema..................................................... 115

Figura H.7 Ruta para iniciar servidor de aplicaciones.......................................... 116

Figura I.1 Diagrama de clases de la interfaz desarrollada en CENIDET con

administrador de diálogo...................................................................................... 118

Figura L.1 Esquema de la BD ATIS ..................................................................... 122

1

Capítulo 1

Introducción Hoy en día utilizar una computadora y ejecutar aplicaciones o programas a

través de ésta es una tarea cotidiana y normal para muchas personas. Sin embargo,

las aplicaciones no siempre son fáciles de operar. La necesidad de obtener

información de una forma rápida y precisa demanda la existencia de aplicaciones

que no requieran de conocimientos especiales para poder operarlas de una forma

sencilla, sin complicaciones. El uso de lenguaje natural hablado y escrito ha dado

lugar a dos áreas de investigación que hasta la fecha siguen proponiendo nuevas

soluciones. Esta investigación se centra en la segunda de estas áreas: el lenguaje

natural escrito, específicamente, interfaces de lenguaje natural para bases de datos

(ILNBDs).

Una ILNBD permite al usuario acceder a información almacenada en una base de

datos mediante una solicitud en lenguaje natural. Las ILNBDs surgen como una

alternativa a varios problemas que se presentan en los sistemas y medios para

acceder a la información.

Introducción

2

Métodos y medios para acceder a información almacenada en bases de datos han

existido con anterioridad a la aparición de las ILNBDs. Sin embargo, las

características observadas en éstos se presentan como ventajas en unos y

desventajas en otros y viceversa. Por ejemplo, SQL es un lenguaje que presenta una

alta capacidad de formulación de consultas, pero para aplicarlo es necesario un

curso de capacitación, por lo que su aplicación no es fácil. Por otro lado, los sistemas

que permiten facilidad de operación como las interfaces gráficas, están limitadas en

su capacidad para formular consultas, algunos ejemplos de estos sistemas son: una

herramienta de consulta intuitiva para usuarios casuales de la red Internet basada en

consultas del tipo QBE (Query by Example) y una herramienta basada en consultas

del tipo QBE para múltiples BDs en Internet [49].

El desarrollo de sistemas de información involucra la creación de herramientas que al

final pueden ser operadas por un experto u operador del sistema, es decir, un

usuario que ha recibido una capacitación para operar el sistema. De tal forma que, si

otro usuario, un usuario inexperto, requiere operar el sistema, éste deberá recibir la

misma capacitación que el usuario experto. Los sistemas de información no

consideran a usuarios eventuales o inexpertos, especialmente altos ejecutivos de la

organización. A raíz de esta problemática surgen las interfaces de lenguaje natural

(ILN), las cuales permiten al usuario inexperto o experto consultar la información,

utilizando para ello lenguaje natural. Las ILNBDs se basan en las ILNs, ofreciendo

una nueva vertiente para acceder a la información estructurada en bases de datos.

Las ILNBDs han cambiado el enfoque para desarrollar sistemas de información y

permiten a toda clase de usuarios obtener con mayor facilidad la información que

éstos buscan. Sin embargo, en esta área aún existen problemas que hasta la fecha

las metodologías empleadas en las ILNBDs no han podido solucionar de una manera

total. Por lo tanto, es objetivo de este trabajo de tesis continuar con esfuerzos previos

a través de una ILNBD [1, 20] desarrollada en CENIDET. En este trabajo nos

enfocamos al diseño de procesos de diálogo con el fin de resolver uno de los

Introducción

3

problemas más importantes en lenguaje natural escrito y hablado: la economía de

palabras. En este proyecto, este problema se analiza de una manera sistemática

que nunca había sido tratado antes en trabajos previos sobre ILNBDs.

1.1 Motivaciones

Hasta la fecha se han desarrollado muchos trabajos sobre ILNBDs. Cada trabajo ha

propuesto soluciones a distintos problemas. Sin embargo, no todos los problemas

han sido resueltos de una forma satisfactoria. El proceso de traducción de una

consulta de lenguaje natural a un lenguaje de consulta de BDs como SQL es un

problema que no ha sido resuelto en su totalidad. En este proceso uno de los

problemas identificados es el problema de la economía de palabras, que puede

entenderse como la omisión de palabras importantes al formular una consulta en

lenguaje natural. Generalmente, escribimos de la misma forma en que nos

expresamos: omitiendo palabras al referirnos a objetos, personas, lugares, etc. que

suponemos que los que nos escuchan entienden. Aunque cada desarrollador de

ILNBDs ha enfrentado el problema de economía de palabras y ha tenido que tratar

de alguna manera con éste, una investigación exhaustiva sobre la literatura sobre

ILNBDs ha revelado que este problema no ha sido claramente identificado, y mucho

menos sistemáticamente tratado. Este trabajo es una continuación de la interfaz

desarrollada en CENIDET [1, 20], a la cual agregamos un administrador de diálogo,

que permite mejorar el porcentaje de consultas contestadas por la interfaz, basado

en una tipificación de problemas en consultas que proponemos como una alternativa

de solución sistemática al problema de economía de palabras.

1.2 Trabajos Relacionados

Desde los años 60s y hasta la fecha se han desarrollado muchos y diversos trabajos

sobre ILNBDs. Para propósitos de este trabajo consideramos sólo las interfaces más

recientes y la ausencia/presencia de dos características: independencia de dominio y

Introducción

4

administración de diálogo (AD). Las principales ILNBDs dependientes del dominio sin

AD son: ILNES [3], VILIB [4], Kid [5] y CISCO [6]. PLANES [7] es una interfaz

dependiente del dominio que incluye un AD. Las más importantes interfaces

independientes del dominio sin AD son: English Query [8], PRECISE [9], ELF [10],

Edite [11], SystemX [12] y MASQUE/SQL [13]; mientras que, las principales ILNBDs

independientes del dominio con AD son: Rendezvous [14], STEP [15], TAMIC [16] y

CoBase [17]. Otras interfaces comerciales independientes del dominio que incluyen

un administrador de diálogo son: BBN’s PARLANCE [18] e InBase [19].

Además de los trabajos mencionados anteriormente, en la tabla 1.2.1 se muestran

las interfaces con características similares al trabajo de investigación que se

presenta en esta tesis.

Tabla 1.2.1 Estado del arte de ILNBDs con independencia de dominio que emplean un administrador de diálogo

Sistema Descripción

EUFID [24] System Development Corporation

(1983)

Se enfoca en el manejo de tablas para definir un dominio; utiliza un diccionario para la consulta de la BD; presenta características de seguridad; utiliza diálogos de aclaración como medio de respuesta al usuario.

IR-NLI [25] Udine University

(1988)

Se enfoca a técnicas de recuperación de información; utiliza un dominio específico de conocimiento de la BD y un dominio lingüístico para entender solicitudes del usuario; emplea un módulo de razonamiento para capturar metas del usuario mediante mecanismos de inducción e inferencia; utiliza diálogos de aclaración como medio de respuesta al usuario.

CLARE [26] Cambridge Regional College

(1994)

Se enfoca a técnicas de procesamiento de lenguaje natural (PLN); utiliza los componentes: dominio léxico, lenguaje de PLN, definición de equivalencias y definición de relaciones funcionales para definir un dominio específico; utiliza un lenguaje de razonamiento (TRL); utiliza diálogos de aclaración como medio de respuesta al usuario.

CoBase [17] UCLA (1996)

Se enfoca en el manejo de estructuras de datos; crea tipos abstractos de jerarquías (THAs) para modelar la base de conocimientos; mediante los THAs define operaciones de especialización, generalización y asociación; emplea CoSQL una extensión a SQL; utiliza resultados en SQL como medio de respuesta al usuario.

TAMIC [16] Instituto per la Recerca Scientifica e

Tecnologica (1996)

Se basa en un enfoque semántico multinivel; utiliza un diccionario técnico para consulta de la BD; emplea el analizador WEDNESDAY y otros componentes desarrollados en el mismo instituto (IRST); utiliza diálogos de aclaración como medio de respuesta al usuario.

InBase [19] Russian Research Institute

(2003)

Se enfoca en el manejo de patrones semánticos para consultar la BD; emplea Q-language un lenguaje similar a OQL (Object Query Language); emplea Q-Gen un generador de lenguaje natural; utiliza diálogos de aclaración como medio de respuesta al usuario.

Introducción

5

Tabla 1.2.1 Estado del arte de ILNBDs con independencia de dominio que emplean un administrador de diálogo (continúa)

Sistema Descripción

STEP [15] Umea University

(2004)

Se enfoca en un esquema de tuplas de cálculo relacional; utiliza un diccionario de sinónimos de la BD; emplea SPASS un probador de teoremas para consultas; utiliza diálogos de aclaración como medio de respuesta al usuario.

En la tabla 1.2.2 se muestra una comparación de las interfaces anteriores (tabla

1.2.1) con el administrador de diálogo implementado a la interfaz desarrollada en

CENIDET [1, 20]. A diferencia de los trabajos que se muestran en la tabla 1.2.2, la

interfaz desarrollada en CENIDET, en cuanto al dominio, permite la configuración de

diversos dominios de una forma más automatizada y menos tediosa. En lo que

respecta a diálogos de aclaración, los procesos de diálogo implementados en la

interfaz desarrollada en CENIDET están diseñados a partir de una tipificación de

problemas en consultas (capítulo 3), que permiten al usuario obtener la información

que está buscando. Es importante destacar que los procesos de diálogo

implementados en la interfaz desarrollada en CENIDET son independientes del

dominio, es decir, la lógica de implementación de éstos no requiere de cambios para

diferentes dominios. En cuanto a la característica de exactitud en las respuestas, las

respuestas obtenidas a través de los procesos de diálogo implementados son más

exactas. Los procesos de diálogo, como se mencionó anteriormente, permiten

obtener la información que el usuario está buscando y no “adivinan” la información

que el usuario busca. Todo lo anterior en conjunto permite que la interfaz

desarrollada en CENIDET tenga un porcentaje de acierto en las respuestas mayor

que sin un administrador de diálogo.

Introducción

6

(2004) STEP

Medio

Medio

Medio

(2003) InBase

Medio

Medio

Medio

(1999) CoBase

Medio

Medio

Medio

(1994) CLARE

Medio

Medio

Medio

(1988) IR-NLI

En desarrollo

En desarrollo

En desarrollo

(1983) EUFID

Medio

Medio

Medio

Interfaces de Lenguaje Natural para Bases de Datos (ILNBDs)

Sistema propuesto

Avanzado

Medio

Avanzado

Descripción

Alguno de los componentes del administrador de diálogo aún no se ha terminado.

Dominio abierto: se declara como característica, pero las pruebas se han efectuado solamente en un dominio. Diálogos de aclaración: éstos se limitan a respuestas sí/no. Exactitud en las respuestas: la información retornada al usuario no satisface la pregunta inicial.

Dominio abierto: permite varios dominios, pero la configuración de éstos es en general de forma manual o semiautomática (configuración manual y realizada por el sistema). Diálogos de aclaración: no resuelve todos los problemas asociados con sintaxis, semántica, elipsis, anáfora. Exactitud en las respuestas: la información retornada al usuario es más aceptable que una respuesta sí/no, pero aún no se obtiene el grado de exactitud esperado de respuesta.

Dominio abierto: es aplicable a varios dominios y la configuración es desarrollada en su mayoría por el sistema. Diálogos de aclaración: resuelve problemas como sintaxis, semántica, elipsis, anáfora. Exactitud en las respuestas: la información retornada al usuario lo conduce a obtener la respuesta esperada.

Tabla 1.2.2 Comparación de ILNBDs Características

ILNBDs

Dominio abierto

Diálogos de aclaración

Exactitud en las respuestas

Simbología

En desarrollo

Pobre

Medio

Avanzado

Introducción

7

1.3 Descripción del Problema

Una tendencia en el desarrollo de sistemas de información es la de permitir al

usuario comunicarse con el sistema empleando para ello lenguaje natural, ya sea en

forma oral o escrita. Las interfaces de lenguaje natural para bases de datos (ILNBDs)

constituyen una de las tecnologías que emplean el procesamiento y generación de

lenguaje natural. Éstas, en general, permiten al usuario comunicarse con un sistema

de información de una forma más amigable y natural.

Sin embargo, las ILNBDs (sección 1.2) desarrolladas hasta la fecha presentan varios

problemas en los cuales radica la dificultad de este proyecto de tesis. Estos

problemas son: la dificultad de traducción de la consulta en lenguaje natural a un

lenguaje de consulta de bases de datos y la independencia del dominio.

Los métodos y técnicas de traducción utilizados en la mayoría de las ILNBDs

consideran sólo partes de la oración (consulta) para obtener el equivalente en un

lenguaje de consulta de bases de datos, ignorando o descartando con esto algunos

elementos que son necesarios para efectuar una traducción de manera confiable y

precisa. Algunos ejemplos de ILNBDs que consideran sólo partes de la consulta son:

ELF [10] que es una interfaz que no se basa en gramáticas independientes de

contexto para efectuar la traducción de la consulta, la gramática en que se basa ELF

está orientada al lenguaje natural más que a un lenguaje de programación;

CoBase[27] utiliza un método de aproximación a resultados (relaxation), STEP [15]

se enfoca en un esquema de tuplas del cálculo relacional, KRISP [45] relaciona

(mapping) oraciones en lenguaje natural a su representación formal utilizando un

clasificador (string-kernel-based).

El proceso de traducción de la consulta en lenguaje natural a su equivalente a un

lenguaje de consulta de bases de datos involucra problemas como: la ambigüedad,

Introducción

8

información implícita por el ahorro de palabras (economía de palabras), consultas

mal formuladas, etc.

Este trabajo de tesis se enfoca al problema de la economía de palabras, el cual, si

bien ha sido enfrentado por los desarrolladores e investigadores de trabajos

anteriores en ILNBDs, éste no ha sido claramente identificado y mucho menos

sistemáticamente tratado; de hecho, en algunas interfaces el problema ha sido

evadido pasando éste al administrador del sistema de la BD, o quien está a cargo de

la configuración de la interfaz para adaptarla a una BD específica. Por ejemplo, en la

siguiente consulta “how many mammals are there”, los documentos de ELF [3]

sugieren que el administrador configure ELF para que pueda convertir la consulta

“how many mammals are there” a “how many animals are mammals”.

La economía de palabras consiste en la omisión de palabras importantes al redactar

o expresar una consulta en lenguaje natural. En una situación de conversación no se

habla con textos, es decir, no se habla con párrafos, capítulos, o documentos; se

habla con réplicas cortas, y la mayoría de la información omitida es clara en el

contexto previo [28]. La economía de palabras puede ocasionar una interpretación

errónea de una consulta, y por lo tanto, una traducción incorrecta de ésta.

Considérese el siguiente ejemplo: “listar las calificaciones para Jorge Salas”. Aunque

muchos estudiantes de maestría en Ciencias de la Computación podrían traducir

esta consulta a SQL dado el esquema de la BD, ésta podría ser difícil de contestar

por una ILNBD con independencia de dominio. El problema es que la consulta no

especifica la siguiente información: la tabla (cursos tomados) donde se almacenan

las calificaciones obtenidas, la tabla “estudiantes” y la columna “nombre” donde se

almacenan los nombres de los estudiantes. Si la consulta especificara esta

información, entonces podría leerse como sigue: “listar las calificaciones de los

cursos tomados por el estudiante cuyo nombre es Jorge Salas”.

Introducción

9

En este trabajo proponemos un nuevo enfoque para el proceso de traducción de una

consulta en lenguaje natural, el cual trata sistemáticamente el problema de la

economía de palabras. Utilizamos la ILNBD desarrollada en CENIDET [1, 20], y

diseñamos procesos de diálogo, los cuales fueron implementados e integrados a la

ILNBD para aclarar las consultas que presentan el problema de economía de

palabras.

1.4 Objetivos

Para resolver el problema propuesto en este tema de tesis, se plantea la siguiente

directriz u objetivo general (OG):

OG.1) Mejorar el desempeño de una ILNBD [1, 20] mediante el diseño de procesos

de diálogo buscando que éstos permitan al usuario obtener los resultados

esperados.

Para alcanzar el objetivo general (OG.1), se requiere cumplir con los siguientes

objetivos específicos (OE):

OE.1) Diseñar una nueva clasificación de consultas (ver capítulo 3), que incluya:

1) Consultas con información faltante:

• Consultas con información implícita.

2) Consultas mal formuladas.

3) Consultas ilógicas para la semántica de la base de datos.

OE.2) Diseñar los procesos de diálogo correspondientes al inciso (1) de los

problemas presentados en el OE.1 considerado la independencia de dominio.

OE.3) Los procesos de diálogo permitirán al usuario, mediante ciclos pregunta-

respuesta, obtener la información solicitada de forma eficaz.

OE.4) Los procesos de diálogo que se implementen serán incorporados a la ILNBD

desarrollada en CENIDET [1, 20], para verificar que aumenta el porcentaje de

acierto en las consultas.

Introducción

10

1.5 Hipótesis de Investigación

A continuación se describen las hipótesis de investigación como parte del proceso de

solución a la problemática planteada en este proyecto de investigación:

H.1) Es posible mejorar el desempeño de una ILNBD [1, 20] mediante la

incorporación de un proceso de diálogo.

H.2) Es posible que un proceso de diálogo pueda ser fácilmente configurado para

cualquier dominio en una ILNBD [1, 20].

Para demostrar las hipótesis anteriores se requiere de la siguiente hipótesis de

trabajo:

H.3) Es posible clasificar las consultas en base a características comunes, de tal

manera que para cada clase se pueda desarrollar un proceso de diálogo

independiente del dominio, que sea aplicable a todas las consultas de cada

clase.

1.6 Justificación y Beneficios

En el desarrollo de un sistema de información, generalmente se considera que, una

vez completado éste, se requiera de un proceso de capacitación para operarlo. Entre

más grande y complejo sea el sistema, será mayor la capacitación necesaria para

operarlo. En general, en este proceso se considera un solo tipo de usuario: el usuario

experto u operador del sistema (desarrolladores, capturistas, secretarias, etc.),

ignorando a otro tipo de usuarios, los usuarios casuales o inexpertos (ejecutivos de

jerarquía alta y media). De aquí que, hoy en día, debido a la gran dinámica de las

organizaciones, se requiera que los sistemas de información puedan ser utilizados de

manera fácil, rápida y amigable tanto por usuarios expertos como inexpertos. Las

ILNBDs constituyen una solución que cubre estas necesidades.

Introducción

11

Otras características cubiertas por las ILNBDs son la facilidad de operación y el

poder de consulta, características que no existían combinadas en un solo sistema

antes de la aparición de las ILNBDs. Uno de los métodos utilizados para acceder a la

información de una base de datos consiste en utilizar un lenguaje de consulta para

bases de datos como SQL, el cual posee un alto poder de consulta; pero para lograr

usar éste se requiere de capacitación, la cual no es accesible a todos los usuarios ni

tampoco todos los usuarios pueden ser candidatos, en cuanto habilidades, para

recibirla. Otro método de acceso es el empleo de interfaces gráficas, las cuales

ofrecen facilidad de operación, pero en cuanto al poder de consulta están limitadas a

ciertas funciones, de tal forma que un usuario no puede efectuar todas las

operaciones que desee. En tales circunstancias, el usuario tiene que elegir entre

poder de consulta o facilidad de operación. Las ILNBDs permiten combinar ambas

características en una sola interfaz.

Las ILNBDs constituyen una tendencia en el desarrollo de sistemas de información.

Con éstas se llegaron a resolver varios de los problemas encontrados en sistemas

anteriores. Sin embargo, hasta la fecha las ILNBDs existentes siguen presentando

problemas importantes, tales como errores en la traducción de la consulta y la

dificultad para ofrecer independencia de dominio. Las consultas mal interpretadas

pueden originar resultados incorrectos y confusos al usuario, causando que éste

pueda tomar decisiones incorrectas de vital importancia para la toma de decisiones.

Idealmente, una interfaz de lenguaje natural confiable debe responder siempre con

los resultados esperados.

El proceso de traducción de la consulta es uno de los principales problemas en las

ILNBDs. Traducir una consulta en lenguaje natural a su equivalente en un lenguaje

de consultas de bases de datos, como por ejemplo SQL, es un proceso que involucra

problemas como: ambigüedad, contexto de la información, economía de palabras,

etc.

Introducción

12

En este trabajo de tesis se pretende que, mediante la incorporación de un

administrador de diálogo a una ILNBD [1, 20] con independencia de dominio, el

usuario pueda obtener la respuesta esperada mediante ciclos pregunta-respuesta.

Los beneficios que se esperan obtener con este trabajo de investigación son los

siguientes:

1. En general, se espera facilitar la consulta a bases de datos. La incorporación

de procesos de diálogo permitirá al usuario, mediante ciclos de pregunta-

respuesta, obtener los resultados esperados. Este proceso se efectúa de

forma transparente para el usuario, es decir, éste no requiere conocer algún

lenguaje artificial o participar en el proceso de traducción de la consulta.

2. Específicamente, los procesos de diálogo permiten incrementar el porcentaje

de respuestas correctas y confiables al usuario, reduciendo el margen de error

al obtener información no requerida por el usuario. Además, los procesos de

diálogo poseen independencia de dominio y son generales (pueden ser

aplicables a diversos lenguajes como: inglés, francés, italiano, etc.),

características que los trabajos desarrollados hasta la fecha no presentan de

manera directa y transparente.

1.7 Aportaciones

Como resultados de este trabajo de investigación se obtuvieron una tipificación de

problemas en consultas, la cual trata de forma sistemática el problema de la

economía de palabras, y se formalizó la tipificación obtenida (capítulo 3). La

tipificación posee dos características importantes:

(1) Es independiente del dominio, lo que significa que ésta puede aplicarse a las

consultas de cualquier base de datos.

Introducción

13

(2) Es general, lo cual permite que ésta se pueda implementar en diversos

lenguajes como inglés, francés, italiano, etc.

Utilizando la teoría de conjuntos identificamos varios tipos de problemas recurrentes

en el universo de consultas para cualquier BD y logramos definir una solución, que

enmarca los problemas generales, en una tipificación de problemas en consultas

(partición del problema), la cual puede ser aplicable a las consultas de cualquier BD.

La tipificación propuesta (capítulo 3) constituye un enfoque de solución que no se

había presentado antes en ningún trabajo existente relacionado con ILNBDs. Con la

formalización damos soporte a la tipificación presentada en el capítulo 3.

1.8 Alcances y Limitaciones

Entre los alcances que se plantearon al inicio de este trabajo de investigación se

encuentran los siguientes:

a) Se debía diseñar una nueva clasificación de tipos de problemas en consultas,

como se muestra en el capítulo 3.

b) Se debían diseñar procesos de diálogo con propósitos de prueba, para los

tipos de consulta mencionados en la sección 1.4.

c) Los procesos de diálogo deberían funcionar para la ILNBD [1, 20], los cuales

debían poseer la característica de independencia de dominio.

d) Los procesos de diálogo diseñados deberían incrementar el porcentaje de

respuestas satisfactorias.

Entre las limitaciones de este trabajo se encuentran las siguientes:

a) El idioma soportado por el administrador de diálogo es únicamente español.

b) El medio de comunicación del proceso de diálogo es en lenguaje escrito.

c) Sólo se maneja un subconjunto de las consultas de SQL de la versión ISO/IEC

9075:1989(E) (SQL 1). Entre las funciones que no se implementaron se

Introducción

14

encuentran: Group by, Having, Order by, Desc, Asc y todas las funciones que

se relacionen con operaciones de inserción, borrado o actualización de

información.

d) No se trató el problema de la ambigüedad.

e) En cuanto a consultas mal formuladas, no se implementaron procesos de

diálogo, pero sí se detectan y se indican al usuario los diferentes tipos de

problemas.

Además se consideran las limitaciones que posee la ILNBD desarrollada en

CENIDET [1, 20]:

f) Debido a que en SQL una consulta se puede expresar de diferentes maneras,

no se considera el problema de transformar una consulta a su equivalente

optimizada.

g) No proporciona información que no esté explícita en la BD, ya que tendría que

ver con bases de datos deductivas.

h) No se manejan consultas temporales.

i) Las consultas deben ser léxica y sintácticamente correctas. El usuario debe

considerar esta condición para obtener una respuesta satisfactoria.

j) La información solicitada en la consulta a la base de datos debe expresarse

antes que la condición.

k) Las consultas pueden ser en forma interrogativa e imperativa.

l) Si la consulta incluye un valor numérico o tipo fecha, debe tener

explícitamente uno o más sustantivos que hagan referencia a la columna que

almacena el valor en la base de datos.

m) Si la consulta contiene un valor compuesto por dos o más palabras, el cual

corresponde a una columna de la base de datos, debe estar escrito entre

comillas dobles para poder encontrar su ubicación en la base de datos. Por

ejemplo: nombres de personas (“Juan Pérez Fernández”), domicilios, etc.

n) El formato para representar fechas debe ser: dd/mm/aaaa.

Introducción

15

o) En cuanto al tamaño de las BDs, el traductor está limitado por la cantidad de

memoria RAM que se tenga en la máquina donde se esté ejecutando éste; ya

que emplea un grafo donde se incluyen los nombres de las tablas de la BD y

sus relaciones. Además de lo anterior, el traductor presenta problemas en su

proceso de traducción con bases de datos más grandes y complejas en su

diseño.

1.9 Aplicaciones

El objetivo de una ILNBD es facilitar el acceso a información de una BD a todo tipo

de usuarios (inexpertos y expertos). El campo de aplicación de una ILNBD puede ser

muy variado. Algunos ejemplos de áreas de aplicación son: administración pública

(TAMIC [16]), bases de datos geográfica (STEP [15]), reservación de vuelos

(PLANES [7]), desarrollo de ILNBDs (English Query [8]), acceso a BDs de Microsoft

Access (ELF [10]), multimedia kiosks (Edite [11]), bases de datos estadísticas y

ambientales (System X [12]), acceso a BDs en Prolog (MASQUE/SQL [13]),

imágenes médicas (CoBase [17]), acceso a BDs de la marina de E.U. (BBN’s

PARLANCE [18]), etc.

Los alcances y limitaciones que posea una ILNBD serán definidos por la empresa u

organización que haga uso de ésta. Se debe considerar que una ILNBD es un

mecanismo de ayuda para facilitar el acceso a la información de una BD, razón por la

cual este tipo de sistemas no sustituye en su totalidad a un sistema de información

de una empresa u organización donde se consideran aspectos como tipos de usuario,

permisos, etc.

En el caso de la interfaz desarrollada en CENIDET [1, 20], no se consideraron

restricciones en cuanto al acceso a información. Ésta sólo permite acceder a

información, no permite modificar ni eliminar información de las BDs a consultar. La

interfaz desarrollada en CENIDET, como se menciona al inicio de esta sección,

Introducción

16

permite a usuarios inexpertos y expertos acceder a la información de una BD. Sin

embargo, es importante aclarar que el contexto que el usuario tenga con respecto a

la información que desea acceder influye en el uso, no sólo de esta interfaz sino en

general en el uso de ILNBDs. Un usuario sin idea de la información que desea

obtener es probable que formule consultas con un alto porcentaje de información

implícita en éstas, lo que ocasionará que la interfaz ejecute más procesos de diálogo,

y que el usuario, debido a esto, en algún momento pierda el interés en el uso de este

tipo de sistemas.

17

Capítulo 2

Marco Teórico

En este capítulo se definen conceptos y las áreas de investigación que abarca

este trabajo de tesis.

2.1 Introducción

A medida que una organización crece (llámese empresa, institución, universidad,

etc.), la tarea de acceder y recuperar la información se vuelve una actividad de

primordial importancia para tomar decisiones o decidir un curso de acción. Estas

entidades requieren de sistemas que puedan facilitarles recuperar información de la

manera más rápida, fácil y eficaz. Sin embargo, la operación de algunos de estos

sistemas muchas veces requiere de conocimientos previos y capacitación por parte

del usuario para poder operarlos de manera eficaz. Aunado a este problema, la

información a recuperar puede estar almacenada de muy diversas formas, y el

acceso y recuperación de ésta mediante los sistemas puede llegar a ser una tarea no

muy fácil, y los resultados obtenidos muchas veces pueden no satisfacer las

Marco Teórico

18

necesidades del usuario. En este ámbito el uso de interfaces, en la utilización de

estos sistemas para acceder a la información, permite a los usuarios entablar una

comunicación más amigable con el sistema.

La información en dispositivos electrónicos puede ser almacenada de muy diversas

formas, y los sistemas que acceden a la información utilizan diversos métodos o

técnicas para efectuar el acceso a ésta. Considerando lo anterior, esta investigación

se enfoca en el acceso a la información estructurada en bases de datos, utilizando

para ello una interfaz de lenguaje natural para bases de datos (ILNBD) en español

desarrollada en CENIDET [1, 20], y tiene como objetivo principal el diseño de

métodos de diálogo para su implementación en un administrador de diálogo con el fin

de mejorar el desempeño de la ILNBD en español, permitiendo al usuario obtener los

resultados esperados mediante ciclos pregunta-respuesta.

A continuación se detallan las disciplinas y tecnologías relevantes para el desarrollo

de este trabajo de investigación.

2.2 Procesamiento de Lenguaje Natural PLN

Lenguaje

Conjunto de sonidos articulados con que el hombre manifiesta lo que piensa o siente

[38].

Cuando se habla de lenguajes se pueden diferenciar dos clases muy bien definidas

[39]:

a) Los lenguajes naturales como el español, inglés, francés, etc.

b) Los lenguajes formales como los lenguajes de programación, el lenguaje de la

lógica matemática, etc.

Marco Teórico

19

Lenguaje formal

Un lenguaje formal es un lenguaje artificial creado por el hombre, el cual está

formado por símbolos y fórmulas y tiene como objetivo fundamental formalizar la

programación de computadoras o representar simbólicamente un conocimiento [39].

Lenguaje Natural

Lenguaje hablado o escrito por humanos, opuesto a un lenguaje de programación

utilizado para programar o comunicarse con computadoras [40].

Existen dos campos en el estudio del entendimiento del lenguaje natural [41]:

• Entendimiento del lenguaje escrito, que utiliza el conocimiento léxico, sintáctico y

semántico del lenguaje, unido a la información o conocimiento del dominio.

• Entendimiento del lenguaje oral, que comprende todo lo del campo anterior junto

con toda la fonología.

Las técnicas usadas en la comprensión de lenguaje natural derivan de la inteligencia

artificial. Para entender una oración simple, hay que considerar tres aspectos:

• Comprender el significado de cada palabra de la oración.

• Comprender la estructura de la oración o frase.

• Tener conocimiento del contexto en que se pronuncia.

Otra de las consideraciones en la comprensión del lenguaje natural escrito, además

del entendimiento de las palabras por separado, es “entender la estructura de la

oración”, que también es difícil. Este tema se puede dividir en tres análisis diferentes:

• Análisis sintáctico de la oración.

• Análisis semántico.

• Análisis interpretativo.

Marco Teórico

20

Procesamiento de Lenguaje Natural

El procesamiento de lenguaje natural (PLN o NLP en inglés) es un conjunto de

técnicas computacionales para analizar y representar naturalmente textos en uno o

más niveles de análisis lingüísticos, con el fin de llevar a cabo el procesamiento del

lenguaje como un humano para un rango de tareas y aplicaciones [42].

Diálogo

Un diálogo se puede describir como la interacción entre dos partes, en la cual la

información es transferida entre las partes mediante un número de turnos

secuenciales (un turno se refiere a la transferencia ininterrumpida de información de

una parte a la otra) [43].

Sistema de diálogo

Un sistema de diálogo es un sistema hombre máquina, en el cual el usuario puede

solicitar información acerca de un dominio específico. La interacción puede ser

conducida por la máquina, significando que el sistema guía al usuario, a menudo

efectuando preguntas simples y específicas [44] (figura 2.2.1).

Figura 2.2.1 Arquitectura general de un sistema de diálogo

Intérprete

Generador

Administrador de Diálogo

Historia del diálogo

Administrador de Dominio del

Conocimiento

Modelo de Sistema de

Tareas

Modelo de Diálogo

Modelo de Dominio de

Tareas

Módulo de Conocimiento 1

Módulo de Conocimiento 2

Módulo de Conocimiento n

Marco Teórico

21

Administrador de diálogo

El rol de un administrador de diálogo difiere ligeramente entre las diferentes

arquitecturas de sistemas de diálogo, pero su principal responsabilidad es controlar

el flujo del diálogo, decidiendo cómo debe responder el sistema a las expresiones del

usuario. Esto se consigue inspeccionando y especificando contextualmente la

estructura de información producida por un módulo de interpretación. Si falta alguna

información o una solicitud es ambigua, el administrador de diálogo genera preguntas

de aclaración al usuario [45].

Un administrador de diálogo puede utilizar un modelo de diálogo, un modelo de

tareas y una historia del diálogo [45]:

a) El modelo de diálogo mantiene una descripción genérica de cómo se

construye el diálogo; por ejemplo, para decidir qué acción tomar en una cierta

situación. Éste se utiliza para controlar la interacción, lo cual involucra

determinar: a) qué es lo que el sistema debe hacer enseguida, y b) decidir qué

acción comunicativa es apropiada en un estado de diálogo dado.

b) El modelo de sistema de tareas define cómo se ejecutan las tareas del

sistema.

c) La historia del diálogo almacena el foco de atención y contiene información

acerca de objetos, propiedades y relaciones, así como otra información del

diálogo tal como información de actos del habla e información de tareas del

sistema.

Los administradores de diálogo se pueden implementar utilizando alguna de las

siguientes tecnologías: transición de estados finitos, estados de información, planes y

formularios [46].

Marco Teórico

22

2.3 Interfaces de Lenguaje Natural para Bases de Datos ILNBDs

Una ILNBD es un sistema que permite al usuario acceder a la información

almacenada en una base de datos formulando una solicitud en lenguaje natural [35].

La arquitectura general de una ILNBD se muestra en la figura 2.3.1.

Figura 2.3.1 Flujo en una ILNBD [36]

El resultado obtenido por la interfaz varía de acuerdo a los objetivos y la

implementación de ésta; por ejemplo, algunas interfaces pueden retornar una

respuesta en lenguaje natural, utilizar formularios para presentar la información, etc.

En este trabajo de investigación los resultados corresponderán a los retornados por

la ejecución de una instrucción en el lenguaje SQL, como se observa en el siguiente

ejemplo:

Consulta en lenguaje natural: Obtener el número de vuelo y la hora de

partida y llegada de Atlanta a Boston

Consulta en SQL:

Select flight.flight_number, flight.departure_time, flight.arrival_time

From flight

Where flight.from_airport = 'ATL' and flight.to_airport = 'BOS'

Resultado:

Flight number Departure time Arrival time

296 6:36 10:00

314 6:41 08:55

140 7:55 10:19

Usuario

Interfaz

de LN

Consulta en LN

Resultado

BD

Consulta en SQL

Resultado de BD

Marco Teórico

23

El resultado de la consulta muestra la información organizada en columnas (Flight

number, Departure time, Arrival time) y renglones (registros encontrados).

2.4 Sistema Administrador de Bases de Datos SABD

Un SABD consiste en una colección de datos interrelacionados y un conjunto de

programas para acceder a dichos datos. La colección de datos, normalmente

denominada base de datos (BD), contiene información relevante para una

organización. El objetivo principal de un SABD es proporcionar una forma de

almacenar y recuperar la información de una base de datos de manera que sea tanto

práctica como eficiente [37].

2.5 Structured Query Language SQL

SQL (Lenguaje de consultas estructurado) fue desarrollado por IBM, originalmente

denominado Sequel, como parte del proyecto System R a principios de 1970. Hoy en

día numerosos productos son compatibles con el lenguaje SQL, y se ha establecido

como el lenguaje estándar para las bases de datos relacionales. La versión más

reciente publicada por la ANSI (American National Standards Institute) es SQL:2003.

SQL es una combinación de constructores del álgebra relacional y del cálculo

relacional. Usando SQL es posible, además de definir la estructura de los datos,

modificar los datos de la base de datos y especificar restricciones de seguridad [37].

El lenguaje SQL tiene varios componentes:

• Lenguaje de definición de datos (LDD). Proporciona comandos para la

definición de esquemas de relación, borrado de relaciones y modificación de

los esquemas de relación.

Marco Teórico

24

• Lenguaje de manipulación de datos (LMD). Es un lenguaje de consultas

basado tanto en el álgebra relacional como en el cálculo relacional de tuplas.

También contiene comandos para insertar, borrar y modificar tuplas.

• Integridad. El LDD incluye comandos para especificar las restricciones de

integridad que deben cumplir los datos almacenados en la base de datos. Las

actualizaciones que violan las restricciones de integridad se rechazan.

• Definición de vistas. El LDD incluye comandos para la definición de vistas.

• Control de transacciones. Incluye comandos para especificar el comienzo y fin

de las transacciones.

• SQL intercalado y SQL dinámico. SQL intercalado y SQL dinámico definen

cómo se pueden incorporar instrucciones de SQL en lenguajes de

programación de propósito general como C, C++, Java, PL/I, Cobol, Pascal y

Fortran.

• Autorización. El LDD incluye comandos para especificar los derechos de

acceso de los usuarios a las relaciones y a las vistas.

SQL:1999 es conocido también como SQL3. Éste ha sido caracterizado como SQL

orientado a objetos y es la base para varios sistemas administradores de BDs

orientadas a objetos (entre éstos se incluyen ORACLE8 de Oracle, Universal Server

de Informix, DB2 Universal Database de IBM y Cloundscape de Cloundscape, entre

otros). Las características de SQL:1999 se pueden dividir en características

relacionales (características que se relacionan al modelo de datos y de roles

tradicionales de SQL) y características orientadas a objetos. Las características

relacionales se dividen en cinco grupos: nuevos tipos de datos, nuevos predicados,

mejoras semánticas, seguridad adicional y bases de datos activas (a través de

triggers). En cuanto a las características orientadas a objetos, SQL:1999 mejoró la

capacidad denominada “SQL-invoked routines” agregando una tercera clase de

rutina conocida como métodos. Entre otras características se encuentran: tipos

estructurados definidos por el usuario y tipos REF (asociado siempre con un tipo

estructurado) [53].

Marco Teórico

25

Muchos sistemas de bases de datos soportan la mayor parte de la norma SQL-92 y

parte de los nuevos constructores de SQL:1999 y SQL:2003, aunque actualmente

ninguno soporta todos los constructores nuevos [37]. El traductor de la interfaz

desarrollada en CENIDET [1, 20] considera una parte de la gramática de SQL1 en su

proceso de traducción (anexo B).

26

Capítulo 3

Metodología de Solución Ya que este trabajo de investigación es una continuación de la interfaz

desarrollada en CENIDET [1, 20, 29], antes de plantear la metodología de solución,

es necesario explicar de manera general el funcionamiento de esta interfaz.

La interfaz desarrollada en CENIDET utiliza un método para la traducción de

consultas en español a SQL, lo cual permite a los usuarios realizar consultas a una

base de datos sin necesidad de tediosas configuraciones. El manejo de la

independencia del dominio es la característica principal de esta interfaz, y para

lograrlo utiliza un preprocesador que genera automáticamente un diccionario de

dominio y una técnica de traducción que utiliza sustantivos, preposiciones y

conjunciones, ya que estas últimas mantienen el significado en cualquier contexto y

no necesitan ser configuradas para un dominio particular. Las preposiciones y

conjunciones son representadas como operaciones usando la teoría de conjuntos.

Además, utiliza un grafo etiquetado y una taxonomía de la instrucción SELECT para

construir la consulta en SQL. Sin embargo, esta interfaz no permite al usuario un

diálogo de aclaración cuando la consulta no puede ser traducida, lo cual limita su

Metodología de Solución

27

capacidad para obtener un mayor porcentaje de aciertos en las consultas traducidas.

Una explicación más detallada de sus características se presenta en el anexo A.

3.1 Metodología de Solución

La metodología planteada para la solución de este problema parte de la propuesta de

implementar procesos de diálogo independientes del dominio para un administrador

de diálogo en una ILNBD [1, 29]. Esta propuesta implica que los procesos de diálogo

en el administrador de diálogo deberían funcionar para cualquiera de las bases de

datos relacionales existentes y por existir (considerando los alcances y limitaciones

de la ILNBD [1, 29], ver capítulo 1). Aunado a lo anterior, se tiene el hecho de que el

número de consultas que puede efectuarse a una base de datos en particular puede

llegar a ser muy grande; y por lo tanto, si se suman las consultas de todas las bases

de datos relacionales habidas y por haber, el número total resultaría astronómico.

Partiendo del razonamiento anterior, no sería factible (por razones de tiempo) tomar

cada una de las bases de datos relacionales existentes y tratar de implementar

procesos de diálogo para cada una de éstas. Para ilustrar el problema considérese el

caso de un sistema denominado BirdQuest. Esta interfaz fue desarrollada para un

sitio web donde la gente mira programas de televisión de la naturaleza y puede hacer

consultas relacionadas al programa, en este caso para aves nórdicas [43]. Un

ejemplo de diálogo de esta interfaz es el siguiente:

User: Information about Crows System: Birdquest can give information about the following properties for crows: call, habitat, appearance, feed,

breeding. Please specify what you´re interested in. User: I am interested in Call System: Call is vague, BirdQuest can give information about the following aspects of call: general, warning,

song. Please specify what you´re interested in. User: General, please. System: BirdQuest found the following information about general call for the crow: “The crows croak, krah (sic), krah (sic), is well known”

Metodología de Solución

28

En este punto es oportuno aclarar que BirdQuest, como muchas otras, es una ILNBD

dependiente del dominio. Al observar el ejemplo de diálogo de BirdQuest, surge la

siguiente pregunta: ¿se podrá adaptar el proceso de diálogo de BirdQuest para que

pueda aplicarse a otras BDs (v.g., control escolar, historiales clínicos)? Al analizar el

proceso de diálogo de BirdQuest, se observa que es muy dependiente del dominio;

así que la respuesta a la pregunta es no.

En tales circunstancias, surge otra pregunta: ¿será posible diseñar un proceso de

diálogo que pueda usarse con cualquier BD? Ya que el proceso de diálogo en

cuestión debería poder aplicarse a cualquier BD, incluso aquéllas que uno

desconozca, de esta pregunta se derivan las siguientes: ¿será posible diseñar un

proceso de diálogo para una BD desconocida? y ¿cómo podrá diseñarse tal

proceso? Planteadas de esta forma, las preguntas son muy difíciles; así que es

conveniente aplicar la técnica de “divide y vencerás” para atacar el problema.

Considerando que el universo de posibles consultas es extremadamente grande, se

puede plantear la siguiente pregunta: ¿será cada consulta tan diferente de las demás

que requiera un proceso de diálogo particular? Si la respuesta a esta pregunta es

afirmativa, entonces el problema no tiene solución práctica. Sin embargo, una

respuesta negativa a esta pregunta implicaría que existen varias o muchas consultas

que son semejantes en algún sentido, de tal manera que un solo proceso de diálogo

podría aplicarse para aclarar las consultas del grupo. En tales circunstancias, surgen

las siguientes preguntas: ¿puede dividirse el universo de consultas en grupos, tales

que las consultas de cada grupo sean semejantes, de tal suerte que pueda

aplicárseles un solo proceso de diálogo? Y si la respuesta a esta pregunta fuera

afirmativa, ¿en cuántos grupos con estas características puede dividirse el universo

de consultas?

Si la respuesta a esta última pregunta fuera que el número de grupos es muy grande,

digamos 1,000, entonces, aunque el problema sería tratable, de todos modos sería

muy tedioso resolverlo, porque habría que diseñar 1,000 procesos de diálogo

Metodología de Solución

29

diferentes. Por lo tanto, lo deseable sería encontrar una división del universo de

consultas que tuviera un número relativamente pequeño de grupos.

Finalmente, podemos plantear nuestra interrogante de investigación de la siguiente

manera: ¿es posible dividir el universo de consultas en un número relativamente

pequeño de grupos, tales que las consultas de cada grupo sean semejantes, de tal

suerte que pueda aplicárseles un solo proceso de diálogo?

En el resto de este capítulo se presenta el proceso que se siguió para determinar un

conjunto de tipos de consultas que satisfaga los requisitos expresados en esta última

interrogante.

I.- Inicialmente se adoptó la clasificación de consultas propuesta en la ILNBD [20],

agregando a esta clasificación la consideración de dividir la consulta en sus cláusulas

Select y Where, con lo cual se extendió la clasificación original a cincuenta y dos.

Usando esta clasificación, se distribuyeron las consultas de un corpus (BD

Northwind) entre cada una de las clases. Con el estudio de la nueva clasificación, se

observó que en ésta era difícil identificar características comunes que permitieran

diseñar procesos de diálogo generales, con la desventaja potencial de que la

clasificación podía seguir aumentando al analizar nuevos corpus de consultas o

generar nuevas consultas.

II.- En base al resultado anterior se concluyó que el uso de esta tipificación no era el

camino adecuado para conseguir los objetivos propuestos, por lo cual se idearon una

serie de principios para crear una tipificación de problemas en consultas. Para crear

la tipificación analizamos los corpus de tres bases de datos: Northwind (198

consultas en español, detalladas en [20]), Pubs (70 consultas en español, detalladas

en [20]), y ATIS [21] (benchmark de 2884 consultas en inglés); y seguimos los

siguientes principios:

1. Para que cada consulta razonablemente formulada en lenguaje natural pueda

ser traducida a SQL, debe siempre incluir una frase que se relacione a la

Metodología de Solución

30

cláusula Select de SQL, y usualmente incluir una frase que se relacione a la

cláusula Where de SQL. En nuestro análisis tales frases se denominan

cláusula Select y cláusula Where.

2. La economía de palabras en la formulación de una consulta solamente

involucra dos casos generales: omisión de nombres de columnas y omisión de

nombres de tablas.

3. La situación en la cual un nombre de columna o tabla es omitido difiere,

dependiendo de si esto ocurre en la cláusula Select o en la cláusula Where.

4. Un nombre de columna (o tabla) omitido puede referirse a un nombre de

columna (o tabla) o a varios nombres de columnas (o tablas). La primera

situación se considera como unívoca [30] y la segunda multívoca.

5. Aunque cualquier consulta en SQL siempre incluye una cláusula From, ésta

puede ignorarse para nuestros propósitos, ya que todos los nombres de tablas

incluidos en la cláusula From están siempre incluidos en las cláusulas Select y

Where, de esta forma la cláusula From puede generarse automáticamente a

partir de las cláusulas Select y Where.

Considerando los análisis previos obtuvimos una tipificación de problemas en

consultas, la cual se muestra en la tabla 3.1.1. Es importante notar que, de acuerdo a

esta tipificación, una consulta dada puede involucrar más de un problema, y por lo

tanto ésta puede ser clasificada en dos o más tipos.

Tabla 3.1.1 Tipificación de problemas en consultas

Casos Problemas que ocurren en consultas

1 Columnas y tablas explícitas*

1.1 Consultas que incluyen las cláusulas Select y Where y explícitamente incluyen los nombres de columnas y tablas (por lo cual no requiere aclaración de información)

1.2 Consultas que incluyen sólo la cláusula Select y explícitamente incluyen los nombres de columnas y tablas (por lo tanto no, se requiere aclaración de información)

Metodología de Solución

31

Tabla 3.1.1 Tipificación de problemas en consultas (continúa)

Casos Problemas que ocurren en consultas

2 Columna(s) implícita(s) unívoca(s) en la cláusula Select

2.1 Consultas que incluyen un nombre de tabla sin especificar

cuál(es) de sus columnas se solicita(n)

3 Columna(s) implícita(s) unívoca(s) en la cláusula Where

3.1 Consultas que incluyen un nombre de tabla y un valor en la condición de búsqueda sin especificar la columna de la tabla relacionada con el valor

4 Columna(s) implícita(s) multívoca(s) en la cláusula Select

4.1 Consultas que incluyen un nombre de columna sin especificar una de las varias tablas a las que puede estar relacionada

5 Columna(s) implícita(s) multívoca(s) en la cláusula Where

5.1 Consultas que incluyen un nombre de columna sin especificar una de las varias tablas a las que puede estar relacionada

5.2

Consultas que incluyen un valor en la condición de búsqueda sin especificar ni la columna ni la tabla a la cual ésta puede estar relacionada (por lo tanto, el valor puede estar relacionado a cualquier columna de cualquier tabla)

6 Columna(s) inexistente(s)*

6.1 Consultas que incluyen un nombre de columna que puede no estar relacionado a ninguna tabla de la base de datos

7 Tabla(s) inexistente(s)*

7.1 Consultas que incluyen el nombre de una tabla que no pertenece a la base de datos

8 Consultas mal formadas*

8.1 Consultas en las que en la cláusula Select no se especifica ni el nombre de una columna ni el nombre de una tabla

8.2 Consultas que incluyen en la cláusula Where un valor en la condición de búsqueda sin especificar ni el nombre de una columna ni el nombre de una tabla

Metodología de Solución

32

Tabla 3.1.1 Tipificación de problemas en consultas (continúa)

Casos Problemas que ocurren en consultas

8 Consultas mal formuladas

8.3 Consultas que incluyen en la cláusula Where el nombre de una columna y/o el nombre de una tabla sin especificar un valor en la condición de búsqueda

* En el manejador de diálogo no se incluyó el tratamiento de los casos 1, 6, 7 y 8. Para los casos 6 y 7 se indican los problemas aunque no se implementan procesos de diálogo.

Con la tipificación anterior se clasificaron los corpus de consultas de las BDs:

Northwind, Pubs y ATIS (tabla 3.1.2). En este punto, es oportuno destacar que, en la

literatura revisada sobre el tema de ILNBDs (ver lista de referencias y sección 1.2),

no se ha encontrado que una clasificación de esta naturaleza haya sido usada

o propuesta, por algún otro investigador.

Tabla 3.1.2 Porcentaje de consultas clasificadas para las BDs Northwind, ATIS y Pubs

Base de Datos % Clasificadas % No clasificadas Total consultas Northwind 84.00 16.00 198

ATIS 55.07 44.93 2884 Pubs 82.00 18.00 70

Considerando el análisis del benchmark de ATIS en el cual se clasificaron un poco

más del 50% de las consultas, consideramos que esta tipificación cubre la mayor

parte de los problemas básicos recurrentes en cuanto al problema de la economía de

palabras. Además es importante mencionar que del universo de consultas no

clasificadas del corpus de ATIS, algunas de éstas corresponden a consultas que no

entran dentro de los alcances de la ILNBD [1, 20] desarrollada en CENIDET.

Metodología de Solución

33

Varias de estas “consultas” no pueden ser consideradas como tales; por ejemplo

tenemos las siguientes:

1. Eastern, okay.

2. Eliminate American Airlines.

3. Explain E Q P.

4. First class.

5. Give me help on abbreviations.

6. I am in Boston.

7. I need to consider the flights.

Además se tienen conversaciones, lo cual involucra manejo de discurso, lo cual

queda fuera de los alcances de la interfaz desarrollada en CENIDET. Un ejemplo es

el siguiente:

User: Name all the airports. User: Name them. User: Now give me a listing of all flights from Dallas to Atlanta. User: Now give me a listing of all flights returning from Denver to Dallas. User: Now list all the ground transportation to and from Boston airport. User: Now show me all of the flights from D F W to Oakland after five o'clock. User: Number of seats on D8S.

Como puede observarse en este fragmento de diálogo, sólo se incluye el diálogo del

usuario, las respuesta proporcionadas por el sistema no se presentan, lo cual

complica más el problema de economía de palabras.

Por último cabe destacar que esta tipificación posee dos características importantes:

(1) Es general, lo que permite que sea aplicable a diversos lenguajes como:

inglés, francés, italiano, etc.

(2) Es independiente del dominio, ya que puede ser aplicada a diversas bases de

datos.

Metodología de Solución

34

3.2 Formalización de la Tipificación de Problemas en Consultas

En esta sección se presenta una demostración formal de la idoneidad de la

tipificación (tabla 3.1.1) propuesta en este trabajo de investigación.

Una consulta en lenguaje natural será traducida a su equivalente a un lenguaje de

consultas de BDs SQL. Para lo cual utilizaremos la versión SQL1 ISO/IEC

9075:1989(E) [31] (ver Anexo B).

Para desarrollar la formalización de la tipificación de problemas en consultas, es

conveniente definir primero algunos términos:

C: = {c1, c2, ..., cm}, conjunto de todas las consultas que satisfacen las restricciones

de la sección anterior.

CP: = {cP1, cP2, ..., cPn}, conjunto de las consultas que pertenecen a C y que poseen

problemas de omisión de información.

PC: = {pC1, pC2, ..., pCp}, conjunto de todos los problemas compuestos de omisión de

información que existen en las consultas que pertenecen a CP. Un problema

compuesto es aquél que involucra la omisión de uno o más ítems de información

en una consulta.

Figura 3.2.1 Conjunto de consultas consideradas y problemas de omisión de información

La Figura 3.2.1 muestra las relaciones existentes entre los elementos de C, CP y PC.

La flecha que apunta de PC a CP significa que para cada problema compuesto pCi de

C

CP

PC

m 1

1

m

Metodología de Solución

35

PC existe una o muchas consultas de CP en donde se presenta el problema pCi;

mientras que la flecha que apunta de CP a PC significa que en cada consulta cPi de

CP ocurre uno o varios problemas de PC.

El problema de investigación consiste en determinar los problemas de omisión de

información que constituyen el conjunto PC, y encontrar una clasificación (es decir,

partición) de PC tal que posea las siguientes características:

1. Independencia de dominio; es decir, que sea aplicable a las consultas de

cualquier base de datos y que no cambie con diferentes bases de datos.

2. Completitud; es decir, que cualquier problema de omisión de información de

que adolezca una consulta en el conjunto CP, esté considerado en el conjunto

PC; en otras palabras, que no exista ningún problema que no esté considerado

en PC. Esta característica es indispensable para garantizar que no quede

excluído ningún problema que pueda presentarse en alguna consulta del

conjunto CP.

3. Disyunción; es decir, que cualquier problema de omisión de información que

tenga una consulta en el conjunto CP, sólo pueda estar asociado a un y sólo un

tipo en PC. Ésta es una característica deseable con el fin de que, para

cualquier problema que se presente en alguna consulta del conjunto CP,

quede claro a qué tipo pertenece y, por tanto, el proceso aplicable para

resolver el problema.

Formalmente, lo anterior puede expresarse de la siguiente manera, dado PC,

encontrar una partición TC = {tC1, tC2, ..., tCr}, tal que tCi ⊂ PC para i = 1, 2, ..., r, PC =

tC1 ∪ tC2 ∪ ... ∪ tCr, y tCi ∩ tCj = ∅ para todo i, j (donde i≠j). En este punto, es

conveniente aclarar que un elemento de la partición tCi es un conjunto que está

constituído por todos los problemas compuestos que son semejantes de alguna

manera, y por tanto, conviene identificarlos como un tipo.

Metodología de Solución

36

Debido a la complejidad de encontrar una partición de PC que satisfaga las

condiciones mencionadas, es conveniente definir el siguiente concepto:

PB: = {pB1, pB2, ..., pBq}, conjunto de todos los problemas básicos de omisión de

información que existen en las consultas que pertenecen a CP. Un problema

básico se define como aquél que involucra la omisión de un ítem de información

en una consulta.

La Figura 3.2.2 muestra las relaciones existentes entre los elementos de PB y PC. La

flecha que apunta de PB a PC significa que para cada problema básico pBi de PB

existe uno o varios problemas compuestos de PC en donde se presenta el problema

pBi; mientras que la flecha que apunta de PC a PB significa que en cada problema

compuesto pCi de PC ocurre uno o varios problemas de PB.

Figura 3.2.2 Conjunto de consultas consideradas y problemas de omisión de información (básicos y compuestos)

La estrategia consiste en determinar una partición TB del conjunto de problemas

básicos que sea completa y disjunta, la cual facilite encontrar una partición TC que

C

CP

PC

m

1

1

m

PB

m

m

1

1

Metodología de Solución

37

tenga las características antes mencionadas. Entonces, dado PB, el problema

consiste en encontrar una partición TB = {tB1, tB2, ..., tBs}, tal que tBi ⊂ PB para i = 1, 2,

..., s, PB = tB1 ∪ tB2 ∪ ... ∪ tBs, y ti ∩ tj = ∅ para todo i, j (donde i≠j).

Existen muchas particiones posibles TB que satisfacen las condiciones anteriores; así

que para encontrar una partición adecuada, se determinará primero una partición

TB ', con dos subconjuntos que satisfagan las condiciones de completitud y

disyunción; después para cada uno de estos subconjuntos se encontrará una

partición completa y disjunta, de tal suerte que estos nuevos subconjuntos

constituyan una nueva partición TB'' de PB. Este proceso se repetirá hasta obtener

una partición adecuada, la cual tenga las características deseadas de completitud y

disyunción.

Primeramente nótese que una consulta consta de tres cláusulas: Select, From y

Where. Es conveniente observar que en la cláusula From sólo se pueden especificar

tablas, y afortunadamente, éstas quedan automáticamente determinadas por las

tablas que aparezcan en las cláusulas Select y Where. Debido a esto, la cláusula

From puede ser ignorada en el resto de esta demostración, y sólo se considerarán

las cláusulas Select y Where.

Considerando lo anterior, entonces se puede diseñar una partición TB' = {PS, PW},

donde PS denota el conjunto de problemas básicos de omisión de información en la

cláusula Select, y PW denota el conjunto de problemas básicos de omisión de

información en la cláusula Where. La consulta mostrar los proveedores cuya ciudad

es Nueva Orleans es un ejemplo de omisión de información en la cláusula Select, ya

que no se especifica de qué columna(s) de la tabla proveedores se desea

información; en este caso se puede suponer que se desea información de los

nombres o los identificadores de proveedores. La consulta mostrar el descuento para

el almacén 8042 constituye un ejemplo de omisión de información en la cláusula

Metodología de Solución

38

Where, ya que no se especifica la columna de la tabla almacén a la que corresponde

el valor 8042; en este caso se supone que la columna faltante es identificador.

Finalmente, considérese la consulta mostrar el descuento para el identificador 8042,

en la que falta especificar la tabla almacén, lo cual se puede considerar como una

omisión de información tanto en la cláusula Select como en la cláusula Where. Para

simplificar este análisis, este caso se considera como dos problemas básicos:

omisión de información en la cláusula Select y omisión de información en la cláusula

Where.

Del análisis anterior resulta evidente que la partición TB' es completa, ya que

considera todas las secciones posibles de una consulta en las que puede ocurrir una

omisión de información: cláusula Select y cláusula Where. Además, considerando la

última aclaración del párrafo anterior, resulta evidente que no existe un problema

básico que pueda pertenecer a ambos conjuntos (PS y PW) y, por tanto, éstos son

disjuntos.

Continuando con la búsqueda de una partición adecuada, considérese primero el

conjunto PS (problemas básicos de omisión de información en la cláusula Select). En

este punto es conveniente notar que las omisiones de información en la cláusula

Select solamente pueden referirse a los únicos dos elementos que pueden existir en

dicha cláusula: tablas y columnas. Por consiguiente, para diseñar una partición se

deben tomar en cuenta el problema de omisión de información de una tabla y el

problema de omisión de información de una columna.

Considerando lo anterior, entonces se puede diseñar una partición TS'' = {PST, PSC},

donde PST denota el conjunto de problemas básicos de omisión de información de

una tabla en la cláusula Select, y PSC denota el conjunto de problemas básicos de

omisión de información de una columna en la cláusula Select.

Metodología de Solución

39

Se considera como omisión de información de tabla cuando no se especifica

explícitamente una tabla. Esta definición se puede ilustrar con la siguiente consulta:

mostrar el descuento para el identificador 8042, la cual constituye un ejemplo en el

que la tabla almacén ha sido omitida. Por consiguiente, esta consulta tiene un

problema básico que pertenece al conjunto PST.

Además, se considera como omisión de información de columna cuando no se

especifica explícitamente una columna como en la siguiente consulta: mostrar los

proveedores cuya ciudad es Nueva Orleáns, en la que la columna nombre ha sido

omitida, y por consiguiente, esta consulta adolece de un problema básico que

pertenece al conjunto PSC.

Finalmente, puede ocurrir el caso en el que no se mencione ni una columna ni la

tabla a la que pertenece la columna; lo cual queda ejemplificado por la siguiente

consulta: muestra Pittsburgh a Baltimore económica. Entonces, de acuerdo con estas

definiciones, esta última consulta tiene dos problemas básicos: uno que pertenece al

conjunto PSC y otro que pertenece a PST.

Del análisis anterior resulta evidente que la partición TS'' es completa, ya que

considera todos los elementos posibles (tablas y columnas) cuya información puede

estar omitida en la cláusula Select. Además, de acuerdo al párrafo anterior los

conjuntos PST y PSC no poseen elementos comunes, y por lo tanto, son disjuntos.

Continuando con la búsqueda de una partición adecuada, considérese ahora el

conjunto PW (problemas básicos de omisión de información en la cláusula Where). En

este caso las omisiones de información en la cláusula Where solamente pueden

referirse a los únicos tres elementos que pueden existir en dicha cláusula: tablas,

columnas y valores de la condición de búsqueda. Por consiguiente, para diseñar una

partición se deben tomar en cuenta el problema de omisión de información de una

Metodología de Solución

40

tabla, el problema de omisión de información de una columna, y el problema de

omisión de un valor.

Tomando en cuenta lo anterior, se puede diseñar una partición TW'' = {PWT, PWC,

PWV}, donde PWT denota el conjunto de problemas básicos de omisión de información

de una tabla en la cláusula Where, PWC denota el conjunto de problemas básicos de

omisión de información de una columna en la cláusula Where, y PWV denota el

conjunto de problemas básicos de omisión de información de un valor en la cláusula

Where.

La consulta mostrar el descuento para el identificador 8042 constituye un ejemplo de

omisión de información de tabla (almacén) en la cláusula Where, y por lo tanto, esta

consulta tiene un problema básico que pertenece al conjunto PWT. En cambio, la

consulta mostrar el descuento para el almacén 8042 constituye un ejemplo de

omisión de información de columna (identificador) en la cláusula Where, y por

consiguiente esta consulta tiene un problema básico que pertenece al conjunto PWC.

Por último, la consulta mostrar el descuento para el almacén con identificador es un

ejemplo de omisión de información de valor (8042) en la cláusula Where, y por lo

tanto, esta consulta tiene un problema básico que pertenece al conjunto PWV. Cuando

en la cláusula Where de una consulta falta la información de dos o más elementos

(tabla, columna y valor), entonces cada omisión se considera como un problema

básico diferente.

Del análisis anterior resulta evidente que la partición TW'' es completa, ya que

considera todos los elementos posibles (tablas, columnas y valores) cuya

información puede estar omitida en la cláusula Where. Además, de acuerdo al

párrafo anterior los conjuntos PWT, PWC y PWV no poseen elementos comunes, y por

lo tanto, son disjuntos.

Metodología de Solución

41

Como resultado del análisis anterior, se puede establecer la siguiente partición de PB

en todos los tipos de problemas básicos:

TB'' = {PST, PSC, PWT, PWC, PWV}

la cual posee las características de completitud y disyunción. En la Figura 3.2.3 se

muestra gráficamente la partición TB''.

Figura 3.2.3 Tipos de problemas básicos de omisión de información

Como se ha mencionado varias veces, en una misma consulta se pueden presentar

varios problemas básicos simultáneamente; así que, tomando esto en consideración,

en la Tabla 3.2.1 se muestran todas las posibles combinaciones de problemas

básicos que se pueden dar en la cláusula Select y todas las combinaciones posibles

de problemas básicos en la cláusula Where. Las combinaciones de problemas

básicos se han agrupado de tal manera que puedan ser tratadas uniformemente por

un proceso de diálogo para aclaración de la información omitida. En la última

columna de la tabla se indica el tipo de problema correspondiente a cada

combinación según la tipificación que se muestra en la Tabla 3.2.2, la cual fue la que

se consideró para la implementación del administrador de diálogo.

En la Tabla 3.2.1 se ha incluído el símbolo "××××" para denotar el caso de que en la

consulta se especifique una columna o una tabla que no exista en la base de datos.

Select

Tabla Columna Valor

PWC PWV Where PWT

PST PSC

Metodología de Solución

42

Se ha incluído este caso, ya que se puede considerar como una variante del

problema de omisión de información.

Tabla 3.2.1 Tipificación de problemas compuestos considerando combinaciones de problemas básicos

E l e m e n t o Cláusula

Tabla Columna Valor Tipo de

problema � ? 2.1 � ×××× 6 ? � 4.1 ×××× � 7 ? ? 8.1

Select

×××× ×××× 6, 7 � ? � 3.1 � ×××× � 6 ? � � 5.1 ×××× � � 7 ? ? � 8.2 ×××× ×××× � 6, 7

Where

�, ?, ×××× �, ?, ×××× ? 8.3 Notas: El símbolo "�" significa que el elemento está especificado en la consulta, "?" significa que el elemento no está especificado, y "××××" significa que el elemento sí está especificado pero no se encuentra en la base de datos. En el último renglón se excluye la combinación (Tabla, Columna, Valor) = (?, ?, ?), ya que esta combinación implica que no existe cláusula Where.

Tabla 3.2.2 Tipificación de problemas considerada para el administrador de diálogo

Caso Descripción

1 Columnas y tablas explícitas*

1.1 Consultas que incluyen cláusulas Select y Where y que incluyen explícitamente nombres de columnas y tablas (por lo tanto, no se requiere aclaración de información)

1.2 Consultas que incluyen sólo la cláusula Select y que incluyen explícitamente nombres de columnas y tablas (por lo tanto, no se requiere aclaración de información)

Metodología de Solución

43

Tabla 3.2.2. Tipificación de problemas considerada para el administrador de diálogo (continúa)

Caso Descripción 2 Columna implícita unívoca en la cláusula Select

2.1 Consultas que incluyen un nombre de tabla sin especificar cuál(es) de sus columnas se solicita(n)

3 Columna implícita unívoca en la cláusula Where

3.1 Consultas que incluyen un nombre de tabla y un valor en la condición de búsqueda sin especificar la columna de tabla relacionada con el valor

4 Columna implícita multívoca en la cláusula Select

4.1 Consultas que incluyen el nombre de una columna sin especificar una de las varias tablas a las que puede estar relacionada

5 Columna implícita multívoca en la cláusula Where

5.1 Consultas que incluyen el nombre de una columna sin especificar una de las varias tablas a las que puede estar relacionada

5.2

Consultas que incluyen un valor en la condición de búsqueda sin especificar ni la columna ni la tabla a la que puede estar relacionado (por lo tanto, el valor puede estar relacionado a cualquier columna de cualquier tabla)

6 Columna inexistente*

6.1 Consultas que incluyen el nombre de una columna que no puede ser relacionado a ninguna tabla de la base de datos

7 Tabla inexistente*

7.1 Consultas que incluyen el nombre de una tabla que no pertenece a la base de datos

8 Consultas mal formadas*

8.1 Consultas en las que en la cláusula Select no se especifica ni el nombre de una columna ni el nombre de una tabla

8.2 Consultas que incluyen en la cláusula Where un valor en la condición de búsqueda sin especificar ni el nombre de una columna ni el nombre de una tabla

8.3 Consultas que incluyen en la cláusula Where el nombre de una columna y/o el nombre de una tabla sin especificar un valor en la condición de búsqueda

* En el manejador de diálogo no se incluyó el tratamiento de los casos 1, 6, 7 y 8.

Entre más información de columnas, tablas y valores se omita en una consulta, más

difícil resulta entender ésta y, por lo tanto, traducirla correctamente a SQL, aun para

un ser humano. Por ejemplo, considérese la siguiente consulta sin el problema de

omisión de información: mostrar el descuento para el almacén cuyo identificador es

8042; si en esta consulta se omitiera el valor 8042, entonces quedaría de la siguiente

Metodología de Solución

44

manera: mostrar el descuento para el almacén cuyo identificador, la cual es un

ejemplo de consulta del tipo 8.3, y resulta evidente que es una consulta incompleta

que no puede ser traducida. A éste y a otros tipos de consultas, se les ha agrupado

en un tipo general de consultas denominadas "mal formadas", las cuales

comprenden los grupos 8.1, 8.2 y 8.3. En la práctica el tipo de problema 8.3 no

ocurre en las consultas formuladas en lenguaje natural, y cabe mencionar que este

caso no se ha encontrado en ninguno de los corpus de consultas estudiados:

Northwind, Pubs y ATIS.

3.3 Implementación de procesos de diálogo

Considerando la tipificación de la tabla 3.1, a continuación se muestra la

implementación de los procesos de diálogo correspondientes a los problemas de la

tabla 3.1. En el anexo D se muestran ejemplos de la ejecución de procesos de

diálogo en la ILNBD desarrollada en CENIDET [1, 20].

3.3.1 Algoritmo 2.1 Consultas que incluyen un nombre de tabla sin especificar

cuál(es) de sus columnas se solicitan.

1. Identificación del nombre de la tabla.

2. Búsqueda en la BD del nombre de la tabla identificada y de las columnas de la

tabla identificada.

3. Despliegue al usuario de una pantalla de diálogo, en la cual se presenten una

pregunta y los nombres de columnas que pueden corresponder a la

información faltante identificada para aclarar la consulta, en forma de opciones

(lista tipo checkbox).

4. Modificación de la consulta original agregando la nueva información

proporcionada.

5. Ejecución de la consulta modificada.

Metodología de Solución

45

3.3.2 Algoritmo 3.1 Consultas que incluyen un nombre de tabla y un valor en la

condición de búsqueda sin especificar la columna de la tabla relacionada con

el valor.

1. Identificación del nombre de la tabla y el tipo de dato (cadena, entero, fecha,

etc.) del valor proporcionado en la condición.

2. Búsqueda en la BD del nombre de la tabla identificada y de las columnas de la

tabla identificada que correspondan al tipo de dato identificado.

3. Despliegue al usuario de una pantalla de diálogo, en la cual se presenten una

pregunta y los nombres de columnas que pueden corresponder a la

información faltante identificada para aclarar la consulta, en forma de opciones

(lista tipo checkbox).

4. Modificación de la consulta original agregando la nueva información

proporcionada.

5. Ejecución de la consulta modificada.

3.3.3 Algoritmo 4.1 Consultas que incluyen un nombre de columna sin

especificar una de las varias tablas a las que puede estar relacionada.

1. Identificación del nombre de la columna.

2. Búsqueda en la BD de las tablas que contengan el nombre de la columna

especificada en la consulta.

3. Despliegue al usuario de una pantalla de diálogo, en la cual se muestren una

pregunta y los nombres de las tablas (lista tipo checkbox) que contengan el

nombre de la columna especificada en la consulta.

4. Modificación de la consulta original agregando la nueva información

proporcionada.

5. Ejecución de la consulta modificada.

3.3.4 Algoritmo 5.1 Consultas que incluyen un nombre de columna sin

especificar una de las varias tablas a las que puede estar relacionada

1. Identificación del nombre de la columna.

Metodología de Solución

46

2. Búsqueda en la BD de las tablas que contengan el nombre de la columna

identificada.

3. Despliegue al usuario de una pantalla de diálogo, en la cual se presenten una

pregunta y los nombres de tablas que pueden corresponder a la información

faltante identificada para aclarar la consulta, en forma de opciones (lista tipo

radio button).

4. Modificación de la consulta original agregando la nueva información

proporcionada.

5. Ejecución de la consulta modificada.

3.3.5 Algoritmo 5.2 Consultas que incluyen un valor en la condición de

búsqueda sin especificar ni la columna ni la tabla a la cual ésta puede estar

relacionada (por lo tanto, el valor puede estar relacionado a cualquier columna

de cualquier tabla).

1. Identificación del valor proporcionado.

2. Búsqueda en la BD de todas las tablas que componen la BD.

3. Despliegue al usuario de una pantalla de diálogo, en la cual se presenten una

pregunta y los nombres de todas las tablas que componen la BD que puedan

corresponder a la información faltante identificada para aclarar la consulta, en

forma de opciones (lista tipo radio button).

4. Modificación de la consulta original agregando la nueva información

proporcionada.

5. Ejecución de la consulta modificada.

Como puede observarse en los algoritmos anteriores, los procesos de diálogo están

diseñados para obtener la información faltante en forma precisa, es decir, nuestros

algoritmos no “adivinan” lo que el usuario está buscando. Los algoritmos parten de la

información que el usuario proporciona en la consulta y con ésta buscan la

información faltante necesaria para completar la consulta. Además, heredan las

características de generalidad e independencia del dominio de la tipificación de

Metodología de Solución

47

problemas en consultas (tabla 3.1.1). Los algoritmos son aplicados tantas veces

como información faltante exista en la consulta, y éstos se complementan. Por

ejemplo, en el caso del algoritmo 5.2, éste parte del valor proporcionado por el

usuario en la consulta y presenta al usuario todas las tablas de la BD consultada, una

vez que el usuario selecciona una tabla, la consulta es completada con esta

información, pero enseguida se tiene ahora el problema de tener un nombre de tabla

y un valor con lo cual la consulta adquiere ahora el patrón del problema 3.1;

consecuentemente, para resolver este problema se ejecuta el algoritmo para este

caso, y así sucesivamente hasta completar la consulta.

3.4 Diseño Conceptual de la Interfaz con un Administrador de Diálogo

En la figura 3.4.1 se observa el diseño conceptual de la ILNBD [1, 20] con la inclusión

de un administrador de diálogo.

La interfaz original se encuentra encerrada en el rectángulo de línea segmentada;

mientras que el administrador de diálogo se encuentra encerrado en el rectángulo de

línea punteada.

Metodología de Solución

48

Figura 3.4.1 Esquema conceptual de la ILNBD desarrollada en CENIDET con un administrador de diálogo

Detalles más específicos de la interfaz sin diálogo se mencionan en [1, 20] y el anexo

A. La interfaz se compone, de forma general, de dos partes: procesamiento de la

consulta y un administrador de procesos de diálogo. El funcionamiento de la interfaz

es el siguiente:

1. El usuario selecciona una BD, al hacerlo se lleva a cabo un proceso de

configuración de la BD seleccionada (creación de diccionarios: de dominio,

metadatos).

2. El usuario selecciona o escribe una consulta y la ejecuta. Se disparan un pre-

procesamiento y procesamiento de la consulta (detalles en anexo A, [1, 20]).

Durante el procesamiento se genera información de la consulta que es

utilizada para disparar los procesos de diálogo

Diccionario General de Sinónimos

U s u a r i o

Obtiene información

faltante

Enciclopedia Digital

Proceso para Extraer

Sinónimos

BD

Obtiene Metadatos

Diccionario de Metadatos

Diccionario de Dominio de BD

DBMS

Generación Diccionario de Dominio

Procesamiento Consulta

Módulo de Traducción

Consulta SQL

ILNBD

Consulta Lenguaje Natural

Identificación de Problemas

Seleccionar Proceso de

Diálogo

Resultado

Ejecutar Proceso Diálogo

Solicitud Información

¿Problemas?

No

Respuesta

Modificar Consulta Usuario

2

3

1

1

2

3

Escribir

4

4

Administrador de Diálogo

Metodología de Solución

49

3. Con la información generada durante el proceso de traducción, se identifica si

la consulta presenta problemas de economía de palabras (módulo

“Identificación de Problemas“).

a. Si existen problemas, se ejecuta el módulo “Seleccionar Procesos de

Diálogo”, y pasa al punto 4.

b. Si no existen problemas, continúa el flujo normal de la interfaz y la

consulta se traduce a su equivalente en lenguaje SQL.

4. Se ejecuta el proceso de diálogo en base al problema identificado. El proceso

de diálogo obtendrá información de la BD relacionada con la información

faltante. Al dispararse el proceso de diálogo, se generan ventanas para

interactuar con el usuario y solicitar información (flujo 1). Con la información

proporcionada por el usuario (flujo 2), la consulta es modificada y vuelta a

procesar (flujo 3). Regresa al punto 3 (este proceso se repetirá hasta que la

consulta no presente problemas de economía de palabras).

Es oportuno aclarar que el traductor de la ILNBD [1, 20] está limitado para contestar

consultas. Así que, considerando que los procesos de diálogo están enfocados a

resolver exclusivamente los problemas básicos de economía de palabras, para

obtener mejores resultados con el traductor es conveniente seguir las indicaciones

que se mencionan en el anexo A. El traductor presenta algunos problemas en el

proceso de traducción de la consulta que aún se tienen que resolver. Sin embargo,

con las modificaciones que se han hecho a éste, se espera que el usuario, en caso

de error o no traducción, obtenga una respuesta que le indique el estatus de su

consulta (en caso de error) o por qué no fue traducida.

50

Capítulo 4

Experimentación

Las pruebas para este trabajo de investigación se desarrollaron utilizando las

bases de datos: Northwind (198 consultas en español) y ATIS (benchmark de 2884

consultas en inglés). Además se utilizaron las interfaces comerciales English Query

[8] y ELF [10]. Cabe aclarar que estas interfaces no disponen de un administrador de

diálogo. Éstas se configuran automáticamente al asociarlas a una base de datos, y

también cuentan con opciones para configuración en forma manual por el usuario.

Por lo anterior, el objetivo de las pruebas no fue comparar estas interfaces con la

interfaz desarrollada en CENIDET [1, 20], ya que no es válido comparar sistemas

que tienen características diferentes y se aplican a idiomas diferentes (español e

inglés). Sin embargo, el desempeño de English Query y ELF puede servir como

punto de referencia para apreciar la mejoría que se puede obtener con el uso de un

administrador de diálogo.

Experimentación

51

Antes de presentar los experimentos desarrollados en la sección 4.1 se presenta

información de la BD ATIS, con la cual obtuvimos resultados impresionantes en

pruebas efectuadas a ELF y a la interfaz desarrollada en CENIDET.

4.1 La Base de Datos ATIS

ATIS contiene información del dominio de servicios de información de viajes aéreos.

ATIS es un corpus de consultas en lenguaje natural coleccionadas bajo el patrocinio

del programa de desarrollo de tecnología Advanced Research Projects Agency

Spoken Language System (ARPA-SLS). El corpus de ATIS fue diseñado por ARPA-

SLS y por el grupo Multi Site Atis Data COllection Working (MADCOW), y fue

coleccionado en cinco localidades a través de Estados Unidos [51]:

• BBN Systems & Technologies, Cambridge, MA.

• Carnegie Mellon University, Pittsburgh, PA.

• MIT Laboratory for Computer Science, Boston, MA.

• National Institute of Standards and Technology, Gaithersburg, MD.

• SRI International, Menlo Park, CA.

Existen diversos corpus desarrollados en dicho proyecto. Para los experimentos

desarrollados utilizamos la tercera versión de registros de lenguaje natural hablado

en el dominio de ATIS. Las consultas espontáneas originales para este corpus fueron

expresadas oralmente, sin scripts u otras restricciones, a un sistema de simulación

computarizado de una BD que incluye una versión simplificada de la Guía Oficial de

Aerolíneas (OAG) [51].

La BD ATIS fue diseñada para modelar tanto como fuera posible el mundo real. En

particular, se intentó modelar de una manera directa el contenido del documento

escrito por la OAG. La BD ATIS contiene información de vuelos, tarifas, aerolíneas,

ciudades, aeropuertos y servicios de transporte terrestre, y se compone de

veinticinco tablas [52]. El esquema de la BD se muestra en el anexo L.

Experimentación

52

4.2 Experimento 1. Prueba del desempeño de la interfaz comercial English Query con un corpus de consultas con economía de palabras

Este experimento tuvo como objetivo evaluar el desempeño de una ILNBD con un

conjunto de consultas que involucran el problema de economía de palabras. Para

este experimento utilizamos la interfaz comercial English Query (EQ) [8], la cual fue

probada con un subconjunto de 154 consultas, que involucran los tipos de problemas

indicados en la tabla 4.2.1 (algunas de estas consultas involucran dos o más tipos de

problemas, por lo tanto, son contadas más de una vez), de las 198 consultas del

corpus de la BD Northwind (detallado en [20]). Las consultas fueron traducidas al

inglés, y una muestra de 12 consultas representativas para los problemas indicados

en la tabla 4.2.1 fue obtenida del corpus total. Estas consultas fueron utilizadas para

configurar la interfaz EQ y adaptarla a la BD Northwind (un ejemplo de la

configuración obtenida por un usuario se muestra en el anexo C). Después de lo

anterior, ocho estudiantes de maestría en Ciencias de la Computación fueron

invitados a configurar EQ con la muestra de consultas, con lo cual se obtuvieron

ocho configuraciones. Finalmente, 154 consultas se utilizaron como entrada para

cada una de las configuraciones de la interfaz EQ, y los resultados correspondientes

se muestran en la tabla 4.2.1.

Experimentación

53

Tabla 4.2.1 Resultados de la ejecución de consultas que involucran seis tipos de problemas utilizando EQ

Tipos de problemas

Configurador Resultados 3.1 4.1 5.1 5.2 6.1 7.1

Total %

Correctas 7 5 1 13 1 0 27 18 Estudiante 1 Incorrectas/No

contestadas 33 29 19 32 10 4 127 82

Correctas 7 6 0 13 1 0 27 18 Estudiante 2 Incorrectas/No

contestadas 33 28 20 32 10 4 127 82

Correctas 9 4 0 11 1 0 25 16 Estudiante 3 Incorrectas/No

contestadas 31 30 20 34 10 4 129 84

Correctas 9 5 0 12 1 0 27 18 Estudiante 4 Incorrectas/No

contestadas 31 29 20 33 10 4 127 82

Correctas 8 5 0 12 1 0 26 17 Estudiante 5 Incorrectas/No

contestadas 32 29 20 33 10 4 128 83

Correctas 7 5 0 13 1 0 26 17 Estudiante 6 Incorrectas/No

contestadas 33 29 20 32 10 4 128 83

Correctas 7 6 0 12 1 0 26 17 Estudiante 7 Incorrectas/No

contestadas 33 28 20 33 10 4 128 83

Correctas 7 4 1 8 1 0 21 14 Estudiante 8 Incorrectas/No

contestadas 33 30 19 37 10 4 133 86

Correctas 7.6 5.0 0.3 11.8 1.0 0.0 25.6 16.9 Promedio Incorrectas/No

contestadas 32.4 29.0 19.7 33.2 10.0 .4.0. 128.4 83.1

Los resultados de la tabla 4.2.1 muestran que el porcentaje promedio de consultas

correctamente contestadas fue del 16.9%, lo cual comparado con los resultados

reportados por otros trabajos independientes (53%-83% [9], 58% [22]), implica una

reducción del 36%-66%, la cual podría ser atribuida a la dificultad de nuestro corpus

de consultas con economía de palabras. Esto revela la dificultad que tiene EQ para

contestar el tipo de consultas que son el tema de estudio de esta investigación. Los

resultados de este experimento nos sirven como una forma de medir el desempeño

de esta interfaz con un corpus con problemas de economía de palabras.

Experimentación

54

4.3 Experimento 2. Prueba del desempeño de la interfaz comercial ELF con un corpus de consultas con economía de palabras

Este experimento es similar al previo, excepto que en este caso ELF [2] (mencionada

en la literatura como una de las mejores ILNBDs) fue utilizada con el corpus de 154

consultas previamente mencionado. En este experimento se utilizaron dos

configuraciones para ELF: de forma automática (generada por ELF), y de forma

manual (por el usuario). Notas: este experimento fue de naturaleza exploratoria, y

con el fin de economizar tiempo, el usuario fue el propio autor de esta tesis.

Tabla 4.3.1 Resultados de la ejecución de consultas que involucran seis tipos de problemas utilizando ELF

Tipos de problemas Configuración

ELF Resultados

3.1 4.1 5.1 5.2 6.1 7.1 Total %

Correctas 18 26 11 38 7 3 103 67 Incorrectas/No contestadas

22 8 9 7 4 1 51 33 Automática

Total 40 34 20 45 11 4 154 100 Correctas 25 28 13 39 7 4 116 75 Incorrectas/No contestadas

15 6 7 6 4 0 38 25 Modificada

Total 40 34 20 45 11 4 154 100

De acuerdo con la tabla 4.3.1 el promedio de éxito fue del 75%, comparado con

resultados de otros trabajos (81% [22], 50%-80% [23]), implica una reducción del

desempeño del 6%, lo cual puede ser atribuido al problema de economía de palabras.

Al igual que con el experimento anterior, con los resultados de este experimento se

mide el desempeño de esta interfaz con un corpus con problemas de economía de

palabras.

Experimentación

55

4.4 Experimento 3. Evaluación del desempeño de la ILNBD desarrollada en CENIDET con un Administrador de Diálogo

Este experimento evaluó la mejoría del desempeño de una ILNBD [1, 20] con un

administrador de diálogo (AD) con respecto a la misma interfaz sin éste. Para tal

efecto se utilizaron dos versiones de la interfaz: sin AD y con AD (el cual incluyó

diálogos para los tipos de problemas indicados en la tabla 4.3.1). El corpus de 154

consultas, de la BD Northwind, fue utilizado para las dos versiones de la interfaz, y

los resultados correspondientes se muestran en la tabla 4.4.1. Estos resultados

muestran un incremento del 35% en el número de consultas correctamente

contestadas por la interfaz desarrollada en CENIDET [1, 20] cuando se incluye un AD.

Con los resultados de este experimento se comprueba el logro del objetivo general

de este trabajo de tesis OG.1 y los objetivos específicos OE.3 y el OE.4, y además

de la hipótesis H.1.

En el anexo E se muestran pantallas de ejemplos de la ILNBD [1, 20] desarrollada en

CENIDET con administrador de diálogo. En el anexo F se muestran algunos de los

resultados obtenidos por la interfaz correspondientes a la tabla 4.4.1.

Tabla 4.4.1 Resultados para seis tipos de problemas en consultas del corpus de la BD Northwind

Tipos de problemas ILNBD Resultados

3.1 4.1 5.1 5.2 6.1 7.1 Total %

Correctas 22 17 8 30 0 0 77 50 Incorrectas/ No contestadas

18 17 12 15 11 4 77 50 Sin diálogo

Total 40 34 20 45 11 4 154 100 Correctas 36 29 16 38 9 3 131 85 Incorrectas/ No contestadas

4 5 4 7 2 1 23 15 Con diálogo

Total 40 34 20 45 11 4 154 100 Mejora en el promedio de éxito: 35

Experimentación

56

4.5 Experimento 4. Evaluación del desempeño de la interfaz ELF con un corpus de consultas con economía de palabras de la BD ATIS

Al igual que en el experimento 4.3, el objetivo de este experimento fue evaluar

nuevamente el desempeño de la interfaz ELF, pero en este caso utilizando el

benchmark de la BD ATIS (2884 consultas en inglés). Para este caso se obtuvo una

muestra de 20 consultas representativas (correspondientes a los tipos de problemas

indicados en las tabla 4.5.1), y se invitó a participar inicialmente a 30 estudiantes de

maestría en Ciencias de la Computación con especialidades en Ingeniería de

Software y Sistemas Distribuidos.

El teorema del límite central [32] establece que la distribución normal estándar ofrece

una buena aproximación a una distribución con una desviación estándar desconocida

para muestras de tamaño 30 o más. Con el resultado de las configuraciones se

probó la interfaz ELF con un corpus de 102 consultas del total de 2884 (anexo D).

Sin embargo, durante el desarrollo de las pruebas, la interfaz ELF manifestó un

comportamiento con nula variación, es decir, independientemente de las

configuraciones, la interfaz se comporta de la misma forma: para cada tipo de

problema se obtienen los mismos números de consultas contestadas, no contestadas

e incorrectas. Cuando se presenta esta situación no se necesita una muestra de

tamaño 30, y por lo tanto, se decidió reducir el número de estudiantes a 20. Los

resultados se muestran en la tabla 4.5.1.

Tabla 4.5.1 Resultados para cinco tipos de problemas con el corpus de la BD ATIS y la interfaz ELF

Tipos de Problemas Configurador Resultados

2.1 3.1 4.1 5.2 6.1 Total %

Correctas 1 2 1 3 0 7 7

Incorrectas 7 9 2 11 9 38 37

No contestadas 10 19 7 11 10 57 56

20

estudiantes

de maestría Total 18 30 10 25 19 102 100

Experimentación

57

Como se puede observar en la tabla 4.5.1, el promedio obtenido de consultas

contestadas correctas es muy bajo. Aunque la interfaz ELF permite reconocer

patrones cuando se configura, para este tipo de problemas el desempeño de la

interfaz es impresionantemente bajo.

4.6 Experimentos 5.1, 5.2. Evaluación del desempeño de la ILNBD desarrollada en CENIDET con un corpus de consultas con economía de palabras de la BD ATIS

Experimento 5.1

En este experimento se evaluó el desempeño de la ILNBD [1, 20] desarrollada en

CENIDET con el corpus de 102 consultas del experimento 4.5 de la BD ATIS

(detalles en el anexo D). Para este experimento se tradujeron las consultas de inglés

a español y se ejecutaron en la interfaz con y sin diálogo. Los resultados se muestran

en la tabla 4.6.1. Como se puede observar, el porcentaje obtenido de consultas

contestadas correctamente es del 40% con diálogo, lo cual muestra una mejora del

30% comparado con el traductor sin diálogo y una mejora del 33% comparado con el

7% obtenido por ELF en el experimento 4 de la sección 4.5.

Cabe aclarar que el porcentaje de las consultas que no se contestaron o se

contestaron incorrectamente para este experimento se debe principalmente a errores

del traductor de la interfaz utilizada, ya que en muchos de los casos no traducidos los

procesos de diálogo son ejecutados correctamente pero la traducción es incorrecta.

Aunado a los problemas anteriores, la BD ATIS presenta problemas en su diseño, lo

cual usualmente no se presenta en BD diseñadas ad hoc, lo cual puede afectar el

desempeño de cualquier interfaz en general.

Experimentación

58

Tabla 4.6.1 Resultados para cinco tipos de problemas con el corpus de la BD ATIS y la ILNBD desarrollada en CENIDET

Experimento 5.2

Al igual que en el experimento 5.1 en este experimento se evalúo el desempeño de

la ILNBD [1, 20] desarrollada en CENIDET. Para este experimento se realizaron dos

pruebas: una con estudiantes de maestría (2do cuatrimestre de la especialidad en

ingeniería de software) y la otra con estudiantes de licenciatura (6to, 7mo y 8vo

semestre de la carrera de licenciatura en informática), con un corpus de 20 consultas

(traducidas de inglés a español) representativas de la BD ATIS para los problemas

que se muestran en las tablas 4.6.2 y 4.6.3. Estas pruebas fueron efectuadas con el

traductor con diálogo.

Tipos de Problemas ILNBD Resultados

2.1 3.1 4.1 5.2 6.1 Total %

Correctas 0 5 2 2 1 10 10

Incorrectas 16 22 7 13 7 65 64

No contestadas 2 3 1 10 11 27 26

Sin

diálogo

Total 18 30 10 25 19 102 100

Correctas 4 14 6 8 9 41 40

Incorrectas 7 9 3 3 3 25 25

No contestadas 7 7 1 14 7 36 35

Con

diálogo

Total 18 30 10 25 19 102 100

Experimentación

59

Tabla 4.6.2 Resultados para cinco tipos de problemas con una muestra del corpus de la BD ATIS y la ILNBD desarrollada en CENIDET

con estudiantes de maestría

Tipos de problemas Configurador Resultados

2.1 3.1 4.1 5.2 6.1 Total %

Correctas 3 5 2 4 4 18 90 Estudiante 1 Incorrectas 1 0 1 0 0 2 10 Correctas 2 5 2 4 4 17 85 Estudiante 2 Incorrectas 2 0 1 0 0 3 15 Correctas 2 4 3 4 4 17 85 Estudiante 3 Incorrectas 2 1 0 0 0 3 15 Correctas 2 5 3 4 4 18 90 Estudiante 4 Incorrectas 2 0 0 0 0 2 10 Correctas 3 5 3 4 4 19 95 Estudiante 5 Incorrectas 1 0 0 0 0 1 5 Correctas 2.4 5.8 2.6 4 4 18.8 89

Promedio Incorrectas 1 0.12 0.4 0 0 1.52 11

Como puede observarse, en los resultados obtenidos los porcentajes promedio de

acierto van del 79% (para estudiantes de licenciatura) al 89% (para estudiantes de

maestría). Estos resultados, al igual que en el experimento 5.1, muestran una mejora

comparados con los resultados obtenidos con las interfaces comerciales. Es

importante aclarar que la diferencia de incremento en porcentajes de los resultados

de los experimentos 5.1 y 5.2 se debe en parte a que el número de consultas

utilizadas en ambos experimentos difiere considerablemente: en el experimento 5.1

se utilizaron 102 consultas mientras en el experimento 5.2 se utilizaron 20. Además,

la dificultad de las consultas para el experimento 5.2 era menor que la del

experimento 5.1.

Además, se puede observar que el grado de preparación de los usuarios influye

perceptiblemente en cuanto a los resultados obtenidos. Se menciona el grado de

preparación ya que a estos usuarios se les proporcionó un esquema de la BD ATIS,

debido a que ninguno de estos usuarios tenía conocimiento del contexto de la

información, factor que influye de manera importante en el proceso de aclaración de

la información implícita en las consultas.

Experimentación

60

Tabla 4.6.3 Resultados para cinco tipos de problemas con una muestra del corpus de la BD ATIS y la ILNBD desarrollada en CENIDET

con estudiantes de licenciatura en informática

Tipos de problemas Configurador Resultados

2.1 3.1 4.1 5.2 6.1 Total %

Correctas 3 3 1 4 3 14 70 Estudiante 1 Incorrectas 1 2 2 0 1 6 30 Correctas 1 5 2 4 3 15 75 Estudiante 2 Incorrectas 3 0 1 0 1 5 25 Correctas 3 4 2 4 4 17 85 Estudiante 3 Incorrectas 1 1 1 0 0 3 15 Correctas 2 5 2 4 3 16 80 Estudiante 4 Incorrectas 2 0 1 0 1 4 20 Correctas 2 5 2 4 4 17 85 Estudiante 5 Incorrectas 2 0 1 0 0 3 15 Correctas 2.2 4.4 1.8 4 3.4 15.8 79

Promedio Incorrectas 1.8 0.6 1.2 0 0.6 4.2 21

Con los resultados de los experimentos 5.1 y 5.2 podemos concluir que los procesos

de diálogo implementados cumplen con el objetivo de aclarar consultas (objetivo

general OG.1) que presentan problemas con economía de palabras y mejoran el

porcentaje de consultas correctamente contestadas: objetivos específicos OE.3 y

OE.4. Además, se comprueba la hipótesis H.1.

4.7 Cálculo del número de ciclos de diálogo en la ILNBD desarrollada en CENIDET

El número de ciclos de diálogo es el número de iteraciones pregunta-respuesta que

se llevan acabo entre la interfaz y el usuario cuando una consulta no es lo

suficientemente explícita para que pueda ser traducida correctamente por la ILNBD.

En la tabla 4.7.1 se muestra el número de ciclos de diálogo correspondientes al

experimento 5.2, del cual se obtuvieron las tablas 4.6.2 y 4.6.3.

Experimentación

61

Tabla 4.7.1 Resultados del número de ciclos de diálogo para cinco tipos de problemas con una muestra del corpus de la BD ATIS y la ILNBD desarrollada en CENIDET con estudiantes de licenciatura en informática y maestría en ciencias

Ciclos de usuarios de licenciatura

Ciclos de usuarios de maestría

Promedio Tipo de proble-ma

Consul-tas

1 2 3 4 5 1 2 3 4 5 LI MC 1 3 3 3 3 3 3 3 3 3 3 2 4 2 6 10 5 3 3 3 3 8 3 6 6 4 5 15 4 5 5 10 11 4 2 2 4 2 2 2 2 2 2 2

2.1

Promedio 3.7 3.2 4.2 5 6.2 3 3.2 3.2 4.5 6

4.46 3.98

1 1 1 2 2 1 1 1 1 1 1 2 2 2 2 7 2 2 4 2 2 2 3 1 1 1 2 2 1 1 1 1 1 4 4 10 4 4 8 4 4 4 4 4 5 1 1 1 1 1 1 1 1 1 3

3.1

Promedio 1.8 3 2 3.2 2.8 1.8 2.2 1.8 1.8 2.2

2.56 1.96

1 1 1 1 1 1 1 1 1 1 1 2 11 4 8 8 5 4 4 6 6 6 3 1 1 1 1 1 1 1 1 1 1

4.1

Promedio 4.3 2 3.3 3.3 2.3 2 2 2.6 2.6 2.6

3.04 2.36

1 2 2 2 2 2 2 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 3 X X X X X X X X X X 4 2 2 4 2 2 2 2 2 2 2

5.2

Promedio 2 2 3.3 2 2 2 2 2 2 2

2.26 2

1 3 5 3 1 1 1 1 1 1 1 2 X X X X X X X X X X 3 X X X X X X X X X X 4 4 7 3 4 5 3 3 4 4 4

6.1

Promedio 3.5 6 3 2.5 3 2 2 2.5 2.5 2.5

3.6 2.3

Promedio de ciclos de diálogo 3.1 2.5 Nota: Las casillas marcadas con “X” corresponden a consultas que presentaron dos tipos de problemas, uno de los cuales corresponde a los subtipos del tipo 8, por lo cual no se toman en cuenta en los promedios, ya que no se ejecutaron diálogos.

Símbología:

LI: Licenciatura en Informática

MC: Maestría en Ciencias

Como puede observarse en la tabla 4.7.1, el número de ciclos de diálogo que se

deban ejecutar para aclarar la consulta (recuérdese que una consulta puede incluir

varios problemas simultáneamente) dependerá del tipo de problema(s) que

Experimentación

62

aparezcan en la consulta. Un factor importante que también influye

considerablemente en el número de ciclos de diálogo a ejecutarse es el relacionado

con qué tan familiarizado esté un usuario con el contexto de la información que

desea obtener.

Basándonos en la tipificación de problemas en consultas, definimos fórmulas para

determinar el número mínimo de ciclos de diálogo que debe ejecutar la interfaz para

cada tipo de problema. Estas fórmulas se resumen en la tabla 4.7.2.

Tabla 4.7.2 Aplicación del número de ciclos de diálogo de acuerdo al tipo de problemas en consultas en una ILNBD

Tipo de

problema Descripción Fórmula

No. ciclos en el

mejor de los casos

2.1 Consultas que incluyen un nombre de tabla sin especificar cuál(es) de sus columnas se solicita(n)

No. ciclos = 1 1

3.1

Consultas que incluyen un nombre de tabla y un valor en la condición de búsqueda sin especificar la columna de tabla relacionada con el valor

No. ciclos = número de valores en la condición de búsqueda

1

4.1

Consultas que incluyen el nombre de una columna sin especificar una de las varias tablas a las que puede estar relacionada

No. ciclos = número de tablas donde se encuentre la descripción de la columna

1

5.1

Consultas que incluyen el nombre de una columna sin especificar una de las varias tablas a las que puede estar relacionada

No. ciclos = número de tablas donde se encuentre la descripción de la columna

1

5.2

Consultas que incluyen un valor en la condición de búsqueda sin especificar ni la columna ni la tabla a la que puede estar relacionado (por lo tanto, el valor puede estar relacionado a cualquier columna de cualquier tabla)

No. ciclos = número de tablas de la BD + columna + número de valores en la condición de búsqueda

3

Experimentación

63

Las ILNBDs facilitan el acceso a información a usuarios inexpertos desde el punto de

vista de que el usuario no requiera conocer cómo acceder a la información, pero no

necesariamente a usuarios que, aparte del problema de cómo acceder a la

información, también desconozcan en absoluto el contexto de la información de la

BD o lo que desean obtener de la BD. Por lo tanto, la tabla 4.7.2 representa una

aproximación teórica del número de ciclos de diálogo que un usuario podría realizar

para obtener la información buscada, de acuerdo al tipo de problemas presentes en

la consulta a ejecutar. Por ejemplo, un usuario que acceda a información de una BD

que almacena información de aves nórdicas sin nunca antes haber investigado al

respecto, tendrá más dificultad para efectuar consultas que un usuario que se dedica

a investigar tales aves o tiene conocimientos al respecto.

Algunos ejemplos de la aplicación de la formulas se muestran a continuación:

1. Consulta: “Dame los proveedores de México”.

Problemas: 2.1 (no se especifica qué se desea obtener de la tabla

“proveedores”) y 3.1 (se especifica una tabla “proveedores” y un valor “México”

pero no se especifica a qué columna de la tabla “proveedores” corresponde el

valor “México”).

Solución: el número de diálogos generados es dos.

Al resolver el problema 2.1, primer proceso de diálogo, la consulta podría quedar

como “Dame los nombres de los proveedores de México”. Posteriormente se

ejecutaría el segundo proceso de diálogo para resolver el problema 3.1, con el

cual el usuario tendría que elegir de las columnas desplegadas en pantalla para la

tabla “proveedores” cuál de éstas corresponde al valor “México”.

Consulta final: “Dame los nombres de los proveedores de la ciudad igual a

México”.

2. Consulta: "Dame la dirección de Nancy Davolio".

Experimentación

64

Problemas: inicialmente 4.1 (especifica una columna “dirección”, pero no indica a

qué tabla pertenece). Para esta consulta, que corresponde al corpus de la BD

Northwind, se tienen 3 tablas (Empleados, Clientes y Proveedores) donde se

encuentra la columna “dirección”. Para este caso cabe hacer mención del

comentario antes hecho, si un usuario no está contextualizado con la información

tendría que ejecutar más procesos de diálogo que un usuario que sabe en forma

más precisa qué información desea obtener.

Solución: en el mejor de los casos se tendrían que ejecutar tres procesos de

diálogo. Con el primero el usuario seleccionaría la tabla “Empleado”, con lo cual la

consulta quedaría como “Dame la dirección del Empleado Nancy Davolio”, y

ahora la consulta presentaría el problema 3.1 (presencia de una tabla “Empleado”

y dos valores: “Nancy” y “Davolio”) lo cual origina dos procesos de diálogo, ya que

se tienen dos valores.

En el peor de los casos, y conociendo el mejor de los casos, el usuario tendría

que ejecutar hasta nueve procesos de diálogo: 1 diálogo por cada tabla más 2

diálogos en cada tabla seleccionada, nos da 3 diálogos en total para cada tabla.

Consulta final: “Dame la dirección del Empleado con nombre igual a Nancy y

apellido igual a Davolio”.

Con los ejemplos anteriores nos podemos dar una idea de lo que implica que un

usuario conozca o desconozca el contexto de la información que desea obtener. Es

natural que un usuario no contextualizado con la información terminará por enfadarse

o perderá el interés al utilizar este tipo de sistemas. Sin embargo, el número de ciclos

de diálogo que se disparan en la ILNBD [1, 20] pueden reducirse más. Por ejemplo,

para el caso 2 podría cargarse en una estructura dinámica aparte de las tablas, las

columnas pertenecientes a las tablas, y en el momento que el usuario seleccione una

tabla se desplieguen al instante que columnas se desean obtener, con lo cual se

podría ahorrar un ciclo de diálogo en el mejor de los casos.

Experimentación

65

4.8 Conclusiones

Los resultados obtenidos con los experimentos llevados a cabo son en algunos de

los casos impresionantes, tal como se observa en los experimentos de las secciones

4.2 y 4.3 con la BD Northwind y las interfaces English Query y ELF, y en la sección

4.5 con la BD ATIS y la interfaz ELF. En estos experimentos el porcentaje de

consultas contestadas es sorprendentemente bajo. Por ejemplo, considérese el

experimento 4.5 en el que a la interfaz ELF [2] (considerada en la literatura como una

de las mejores ILNBDs comerciales existentes) aplicada a consultas del corpus de la

BD ATIS (constituido por consultas apegadas a la realidad), se observa que

prácticamente ELF no considera en sus alcances resolver el problema de la

economía de palabras. Por ejemplo, con una consulta incluida en este experimento

(“What is the arrival time in Los Angeles?” ), ELF sugiere: “Ask me something I can

answer“ (figura 4.8.1).

Figura 4.8.1 Respuesta de ELF a la consulta: What is the arrival time in Los Angeles?

Los resultados obtenidos de las pruebas a las interfaces comerciales EQ y ELF

sirvieron para comparar y medir la dificultad del problema de economía de palabras.

Con los resultados obtenidos con la interfaz desarrollada en CENIDET y las BDs

Northwind y ATIS se cumple el objetivo general OG.1 de este trabajo de

investigación, ya que en estas pruebas se comprobó que fue posible mejorar el

Experimentación

66

desempeño de la interfaz. Así mismo, se cumplieron los objetivos específicos OE.3 y

OE.4 (se implementaron los procesos de diálogo a la interfaz desarrollada en

CENIDET, los cuales mediante ciclos pregunta-respuesta ayudaron al proceso de

aclarar consultas con economía de problemas).

Con la formalización de la tipificación de problemas en consultas se logró alcanzar el

objetivo específico OE.1.

El cumplimiento del objetivo específico OE.2 se demuestra con los procesos de

diálogo descritos, los cuales no requirieron de ningún cambio al traductor para ser

aplicados en diversos dominios usando la ILNBD desarrollada en CENIDET.

Además del cumplimiento del objetivo general y los objetivos específicos, se

cumplieron las hipótesis:

H.1) Es posible mejorar el desempeño de una ILNBD [1, 20] mediante la

incorporación de un proceso de diálogo. Se demuestra con los experimentos

realizados a la interfaz desarrollada en CENIDET.

H.2) Es posible que un proceso de diálogo pueda ser fácilmente configurado para

cualquier dominio en una ILNBD [1, 20]. Se demuestra con los procesos de

diálogo descritos en la sección 3, los cuales no necesitan más información de la

que se usa para configurar el traductor de lenguaje natural a SQL.

H.3) Es posible clasificar las consultas en base a características comunes, de tal

manera que para cada clase se pueda desarrollar un proceso de diálogo

independiente del dominio, que sea aplicable a todas las consultas de cada

clase. Se demuestra con los procesos de diálogo descritos en la sección 3, los

cuales no requirieron de ningún cambio al probarse con diversos dominios en la

interfaz desarrollada en CENIDET.

Experimentación

67

Los resultados obtenidos con estos experimentos van más allá de lo que

originalmente se había comprometido en la propuesta de tesis, ya que se

implementaron, no sólo algunos, sino todos los procesos de diálogo de la tipificación

de problemas (tabla 3.1.1) a la interfaz desarrollada en CENIDET, que se definieron

en los alcances propuestos, con lo cual se logró mejorar el porcentaje de consultas

correctamente contestadas. La tipificación propuesta de problemas en consultas

constituye un enfoque completamente innovador para atacar el problema de la

economía de palabras, un problema difícil y complejo de resolver como lo revelan los

resultados obtenidos en los experimentos con interfaces comerciales.

En general la ILNBD desarrollada en CENIDET [1, 20] presenta varios problemas en

sus procesos de traducción: análisis léxico, sintáctico y semántico, y en la técnica de

traducción para identificar las partes de una oración: cláusulas Select y Where. Estos

problemas ocasionan que la interfaz no tenga un buen desempeño cuando se

analizan BDs más grandes y complejas en su diseño. Varios problemas se

presentaron en las pruebas realizadas con la BD ATIS que, aunque no es una BD

muy grande, posee cierta complejidad en su diseño. Algunos ejemplos de problemas

encontrados en el proceso de traducción se describen en el anexo K.

Es conveniente mencionar que el desempeño de las ILNBDs en general no depende

del número de renglones de las tablas, pero disminuye cuando la complejidad de la

BD (número de columnas y tablas) aumenta, lo cual queda de manifiesto con los

resultados de las pruebas del experimento 4 (pruebas de ELF con la BD ATIS, tabla

4.5.1) en comparación con los del experimento 2 (pruebas de ELF con la BD

Northwind, tabla 4.3.1). Este mismo fenómeno también ocurre con la ILNBD de este

proyecto, pero se debe en mayor medida a deficiencias del traductor que al módulo

de diálogo.

El objetivo de una ILNBD es facilitar el acceso a información de una BD a usuarios

inexpertos, es decir, usuarios que no conocen de lenguajes de consulta a BDs o que

Experimentación

68

no conocen la operación o el manejo de un sistema de información. Un punto

importante que aclarar acerca de esta afirmación es que un usuario puede

desconocer o ignorar cómo acceder a la información, pero no necesariamente

ignorar o desconocer el contexto de la información. Un usuario no contextualizado

con la información de una BD tendrá más problemas para formular consultas y

obtener la información que busca en una BD. Esta característica en un usuario es

muy importante, ya que puede afectar el desempeño de cualquier ILNBD en general.

69

Capítulo 5

Conclusiones y Trabajos Futuros

En este capítulo se presentan las conclusiones de este trabajo de

investigación, el cual aborda el problema de la economía de palabras y presenta

soluciones a este problema mediante una tipificación de problemas y el diseño de

procesos de diálogo a partir de la tipificación. Además, se mencionan las

aportaciones principales de este trabajo y algunos trabajos futuros para mejorar aún

más los resultados obtenidos.

5.1 Conclusiones

El problema de economía de palabras es un problema sumamente complejo, como

se pudo observar en los resultados de los experimentos realizados. Éstos revelaron

una reducción del desempeño de 36%-66% en la interfaz English Query cuando se

probó con un corpus de consultas con economía de palabras. Otros resultados

experimentales, alentadores, mostraron que la inclusión de un administrador de

diálogo basado en nuestra tipificación a una ILNBD [1, 20] puede incrementar su

Conclusiones y Trabajos Futuros

70

desempeño (porcentaje de consultas correctamente contestadas) en un rango del 30

al 35% (experimentos 3 y 5).

La tipificación de problemas en consultas propuesta constituye un enfoque

completamente innovador respecto a los trabajos previos sobre ILNBDs, y el

problema de economía de palabras se abordó de una forma sistemática como se

refleja en la tipificación. Dos características destacables de la tipificación propuesta

son: generalidad, la cual permite que pueda ser aplicada a diversos lenguajes: inglés,

francés, italiano, etc., y la independencia del dominio, lo cual implica que puede ser

aplicada a diferentes bases de datos. La implementación de procesos de diálogo

basados en esta tipificación heredan por ende sus características, además de que su

implementación no es compleja. Los procesos de diálogo conducen al usuario a

obtener la información que está buscado, y a diferencia de los trabajos de otros

investigadores, nuestros procesos no “adivinan” sino que buscan “entender” lo que el

usuario expresa.

Aún existen otros tipos de problemas que resolver, por lo cual podemos establecer

que la tipificación propuesta no es definitiva, ésta puede seguir creciendo según se

analicen nuevos problemas.

Para finalizar podemos concluir que los objetivos propuestos se lograron, las

hipótesis propuestas se comprobaron y los resultados que esperábamos obtener

fueron más allá, en cuanto a la complejidad del problema, de lo que habíamos

vislumbrado en la propuesta de tesis. Todo lo anterior, resultado de este nuevo

enfoque propuesto.

5.2 Trabajos Futuros

En cuanto a la ILNBD [1, 20] utilizada se propone:

Conclusiones y Trabajos Futuros

71

1) Mejorar la técnica de traducción utilizada.

2) Incrementar el tipo de problemas a resolver.

3) Mejorar la interfaz gráfica propuesta.

4) Implementar la interfaz como una aplicación Web para propósitos de prueba y

retroalimentación que contribuyan a nuevas mejoras.

5) Efectuar pruebas con estudiantes de áreas ajenas a la computación con el

propósito de mejorar la interfaz.

6) Adaptar la interfaz para trabajar con diversos manejadores de BDs como:

PostgreSQL, Oracle, DB2, etc.

7) Considerar el manejo de valores compuestos sin necesidad de encerrar éstos

entre comillas.

8) Incorporar al traductor el manejo de consultas temporales.

9) Incorporar al traductor un analizador sintáctico para corregir consultas

escritas con errores sintácticos.

10) Incorporar al traductor el manejo de más instrucciones en SQL como: MAX,

MIN, etc. y permitir operaciones con fechas.

11) Implementar una ILNBD para manejar BD orientadas a objetos.

12) Implementar el manejo del discurso en el proceso de traducción.

En cuanto a la tipificación propuesta:

(1) Incluir tipos adicionales de problemas a resolver, tales como: consultas mal

formuladas, el problema de la ambigüedad, consultas ilógicas para la

semántica de la BD.

(2) Probar la tipificación con otras ILNBDs.

(3) Mejorar los procesos de diálogo, es decir, que éstos permitan más interacción

entre la ILNBD y el usuario.

(4) Analizar otros corpus de consultas para BDs de igual o mayor complejidad a la

de ATIS (principalmente corpus reales).

Conclusiones y Trabajos Futuros

72

En general en cuanto a los insumos a una ILNBD como lo son las BDs, existen

diversos problemas a tratar, uno de éstos es el concerniente al diseño de la BD, el

cual es un problema complejo que, no sólo involucra conocer y aplicar reglas de

diseño de BDs, sino que también es necesario utilizar los conocimientos de

administradores de BDs con experiencia. En cuanto al lenguaje de consulta de BDs

SQL, existen varias instrucciones para las que no es fácil implementar procesos de

traducción y diálogo, como por ejemplo: GROUP BY, HAVING, ORDER BY, etc.

73

Referencias

1. PAZOS R.A., GONZALEZ J., GELBUKH A., SIDOROV G. A Domain Independent

Natural Language Interface to Databases Capable of Processing Complex

Queries. LNCS: pp.833-842, Springer, 2005.

2. ELF SOFTWARE. Access ELF FAQ (Frequently Asked Questions),

http://www.elfsoft.com/help/accelf/ HowDoI.htm, 2002.

3. ROCHER G. Traducción de Queries en Prolog a SQL. BS thesis, Universidad de

las Américas, Puebla, México, 1999.

4. VILIB Virtual Library, http://www.islp.uni-koeln.de/aktuell/vilib/, 1999.

5. CHAE J., LEE S. Frame Based Decomposition Method for Korean Language

Query Processing. Computer Processing of Oriental Languages, 1998.

6. Procesamiento de Lenguaje Natural, http://gplsi.dlsi.ua.es/gplsi/areas.htm, 1998.

7. WALT D. An English Language Question Answering System for a Large

Relational Database. Communications of the ACM, 1978.

8. Microsoft Tech-Net, “Chapter 32 English Query Best Practices”,

http://www.microsoft.com/technet/prodtechnol/sql/2000/reskit/part9/c3261.mspx?

mfr=true, 2008.

9. POPESCU A., ETZIONI O., KAUTZ H. Towards a Theory of Natural Language

Interfaces to Databases, In Proc. IUI-2003, Miami, USA, 2003.

10. ELF Software, “ELF Software Documentation Series”, http://www.elfsoft.com/

help/accelf/Overview.htm, 2002.

11. REIS P., MATIAS J., MAMEDE N. A Natural Language Interface to Databases a

New Dimension for an Approach, 1997.

12. CERCONE N., McFETRIDGE P., POPOWISH F., FASS D., GROENEBOER C.,

HALL G. The System X, Natural Language Interface: Design, Implementation and

Evaluation, Centre for System Science, Simon Fraser University, British, Columbia,

1993.

Referencias

74

13. ANDROUTSOPOULUS I., RITCHIE G., THANISH P. MASQUE/SQL, An Efficient

and Portable Language Query Interface for Relational Databases, Department of

Artificial Intelligence, University of Edinburgh, 1993.

14. MINOCK M. A STEP Towards Realizing Codd´s Vision of Rendezvous with the

Casual User. Proc. 33rd International Conference on Very Large Databases (VLDB

2007), Demonstration Session, Vienna, Austria, 2007.

15. MINOCK M. Natural Language Access to Relational Databases through STEP.

Technical report, Department of Computer Science, Umea University, 2004.

16. BAGNASCO C., BRESCIANI P., MAGNINI B., STRAPPARAVA C. Natural

Language Interpretation for Public Administration Database Querying in the

TAMIC Demonstrator. In the Proc. Second International Workshop on Applications

of Natural Language to Information Systems, 1996.

17. W. CHU, YANG H., CHIANG K., MINOCK M., CHOW G., LARSON C. Cobase: A

Scalable and Extensible Cooperative Information System. Journal of Intelligent

Information System, vol. 6, pp. 253-259, 1996.

18. OTT N. Aspects of the Automatic Generation of SQL Statements in a Natural

Language Query Interface, Information Systems, 17(2): 147-159, 1992.

19. BOLDASOV M., SOKOLOVA G. QGen – Generation Module for the Register

Restricted InBASE System. Computational Linguistics and Intelligent Text

Processing, 4th International Conference, vol. 2588, pp. 465-476, 2003.

20. GONZALEZ, B. Traductor de Lenguaje Natural Español a SQL para un Sistema

de Consultas a Bases de Datos. PhD dissertation, Centro Nacional de

Investigación y Desarrollo Tecnológico, Cuernavaca, México, 2005.

21. DARPA Air Travel Information System (ATIS0), http://www.ldc.upenn.edu/

Catalog/readme_files/atis/sdtd/ trn_prmp.html, 1990.

22. BOOTHRA R. Natural Language Interfaces: Comparing English Language Front

End and English Query. MS thesis, Virginia Commonwealth University, 2004.

23. CONLON S., CONLON J., JAMES T. The Economics of Natural Language

Interfaces: Natural Language Processing Technology as a Scarce Resource,

Referencias

75

Decision Support Systems, Vol 38:141-159, Elsevier Science Publishers, The

Netherlands, 2004.

24. TEMPLETON, M., BURGER G. Problems in Natural Language Interfaces to

DBMS, Proceedings Conference on Applied Natural Language Processing, 1983.

25. BRAJNIK, G., GUIDA, G. IR-NLI II: Applying Man-Machine Interaction and

Artificial Intelligence Concepts to Information Retrieval, Proceedings of the

Eleventh Annual International ACM SIGIR Conference on Research and

Development in Information Retrieval, Interfaces (2), pp. 387-399, 1988.

26. ALSHAWI, H., CARTER, D., CROUCH, R., PULMAN, S., RAYNER, M., SMITH, A.

“CLARE: A Contextual Reasoning and Cooperative Response Framework for the

Core Language Engine”, Report CRC-028 (273 pages), 1994.

27. W., WESLEY, MERZBACHER, M., BERKOVICH, L. The Design and

Implementation of CoBase, Proceedings of ACM SIGMOD , 1993.

28. GELBUKH, A., SIDOROV, G. Procesamiento Automático del Español con

Enfoque en Recursos Léxicos Grandes, IPN , ISBN 970-36-0264-9, 2006.

29. GONZÁLEZ, B., PAZOS, R., CRUZ, C., FRAIRE, H., AGUILAR de L., y PÉREZ, O.

Issues in Translating from Natural Language to SQL in a Domain-Independent

Natural Language Interface to Databases, MICAI2006 , pp.922-931, 2006.

30. Diccionario de la lengua española, “Real Academia Española”, http://

buscon.rae.es/drael/SrvltConsulta?TIPO_BUS=3&LEMA=unívoco, vigésima se-

gunda edición, 2007.

31. International Standard ISO/IEC 9075:1989 (E). Information processing systems-

Database Language SQL with integrity enhacement, Second edition, 1989.

32. MENDENHALL, SCHEAFFER, WACKERLY, D. Estadística Matemática con

Aplicaciones, Grupo Editorial Iberoamérica, sexta edición, 2002.

33. PAZOS R., SANTAOLAYA S., ROJAS, P., PÉREZ, O. Shedding Light on a

Troublesome Issue in NLIBDs: Word Economy in Query Formulation, TSD 2008,

pp. 641-648, 2008.

Referencias

76

34. PAZOS R., SANTAOLAYA S., ROJAS, P., MARTÍNEZ, F., PÉREZ, O, CRUZ, R.

Domain Independent Dialog Processes for Solving the Word-Economy Problem in

a NLIDB, ACS 2008, Polish Journal of Environmental Studies, 2008.

35. ANDROUTSOPOULUS, I., GRAEME, D. Database Interfaces ”, In R. Dale, H.

Moisl, y H. Somers(Eds), Handbook of Natural Language Processing, chapter 9,

pp.209-240, Marcel Dekker Inc, 2000.

36. InBase, “Project InBase. Welcome”, http://www.inbase.artint.ru/english/default-

eng.asp, 2000.

37. S SILBERSCHATZ, KORTH, y SUDARSHAN, Fundamentos de Bases de Datos,

5ta edición, McGraw- Hill, 2006.

38. Real Academia Española, “Diccionario de la lengua española”,

http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=lenguaje.

39. Monogragias.com, “Procesamiento de lenguaje natural en la inteligencia artificial”,

http://www.monografias.com/trabajos17/lenguaje-natural/lenguaje-natural.shtml#

LENGUAJE, 1997.

40. The Free Dictionary by Farlex, “TheFreeDictionary”, http://

encyclopedia2.thefreedictionary.com/natural+language.

41. ANDRADE, G. Supresión de Ambigüedades Léxicas en Galena mediante

Métodos Estadísticos, Tesis de Licenciatura, Universidade Da Coruña, 1997.

42. D., LIDDY. Natural Language Processing for Information Retrieval & Knowledge

Discovery, School of Information Studies, Syracuse University, 2001.

43. R., NIESLER y C. ROUX. “Natural Language Understanding in the DACST-AST

Dialogue System”, Proceedings of the 12th Annual Symposium of the Pattern

Recognition Association of South Africa (PRASA 2001), pp 134-137, 2001.

44. Electronic and Information Systems, “Research Groups Electronic and Information

Systems”, http://www.elis.rug.ac.be/ELISgroups/speech/cost249/report/chapters/

chapter6.pdf, 2006.

45. ROHIT, K., MOONEY, R. Using String-Kernels for Learning Semantic Parsers,

COLING/ACL-2006, pp. 913-920, 2006.

Referencias

77

46. FLYCHT-ERIKSSON, A., JÖNSSON. Dialogue and Domain Knowledge

Management in Dialogue Systems, Proceedings of the First SIGdial Workshop on

Discourse and Dialogue, 2002.

47. CAMA project Home Page, “Tran Manh, Research Engineer, Research CAMA”,

http://diuf.unifr.ch/people/thangt/dialog-research-guideline.pdf, 2003.

48. A., JÖNSSON, MERKEL, M. Some Issues in Dialogue-Based Question-Answering,

New Directions in Question Answering, AAAI Press, pp. 45-48, 2003.

49. RASGADO, F. Herramienta para Consultas Basadas en ejemplos (QBE) para una

Base de Datos en Internet. Tesis de Maestría, Centro Nacional de Investigación y

Desarrollo Tecnológico, Cuernavaca, Mexico, 1999.

50. MAY, A. Herramienta para Consultas Basadas en ejemplos (QBE) para

MultiBases de Datos en Internet. Tesis de Maestría, Centro Nacional de

Investigación y Desarrollo Tecnológico, Cuernavaca, Mexico, 2000.

51. Linguistic Data Consortium, “The LDC Corpus Catalog“, http://

www.ldc.upenn.edu/Catalog/CatalogEntry.jsp?catalogId=LDC95S26, 1992-2008.

52. HEMPHILL, C., GODFREY, J., DODDINGTON, G. The ATIS spoken language

systems pilot corpus, Proceedings of the workshop on Speech and Natural

Language, pp. 96-101, 1990.

53. EISENBERG, A., MELTON, J. SQL:1999, formerly known as SQL3, ACM

SIGMOD, v.28, pp. 131-138, 1999.

54. Microsoft TechNet, “Biblioteca”, http://technet.microsoft.com/es-es/library/

ms189575.aspx.

78

Anexos

Anexo A. Características de la ILNBD desarrollada en CENIDET

La ILNBD [1, 20] fue diseñada para traducir consultas en lenguaje natural español a

SQL.

Las características de esta interfaz son las siguientes [29]:

• Es independiente de dominio y el proceso de configuración es automático. Para

lograr esto se basa en la creación de varios diccionarios: diccionario de

sinónimos, diccionario de metadatos de la base de datos y un diccionario del

dominio de la base de datos.

• Durante el proceso de traducción la ILNBD [1, 20] no requiere de la intervención

del usuario.

• Ejecuta un análisis de sustantivos, fechas y valores numéricos para determinar

las columnas y tablas involucradas en la consulta, y un tratamiento de la

preposición “de” y la conjunción “y” utilizando teoría de conjuntos.

Anexos

79

• La técnica de traducción implementada utiliza un algoritmo que construye un

grafo relacional de la base de datos para encontrar relaciones implícitas

involucradas en la consulta.

A continuación se describe de manera general el funcionamiento de los módulos que

constituyen esta interfaz, y se muestra en la figura A.1 la arquitectura general [29]:

� Procesamiento de la consulta. El procesador analiza cada palabra de la oración

y se obtiene información léxica y sintáctica (mediante el parser), e información

semántica (mediante interacción con el diccionario de dominio). La salida de este

módulo consiste en una consulta etiquetada. La consulta se divide en palabras, y

para cada palabra se incluye información de los siguientes tipos: léxica (forma de

la palabra, sinónimos y antónimos), morfosintáctica (categorías gramaticales de

acuerdo a su función en la oración) y semántica (significado de la palabra con

respecto a la base de datos).

Figura A.1 Arquitectura general de la ILNBD [1, 29]

� Módulo de traducción. Este módulo recibe la consulta etiquetada y la procesa

en tres fases: Fase 1: Identificación de las frases select y where. Se identifican las frases select

y where, para definir las columnas y tablas referidas por estas frases que incluyen al

menos un sustantivo (y posiblemente preposiciones, conjunciones, artículos,

Consulta en LN

Consulta en SQL

BD Diccionario de Dominio

Construcción del Diccionario

de Dominio

Procesamiento de la Consulta

Módulo de Traducción

Anexos

80

adjetivos, etc.). Se supone que la frase que define la cláusula select siempre precede

a la cláusula where. En español las palabras que separan estas frases son: cuyo,

que, con, de, donde, en, dentro de, tal que, etc.

Fase 2: Identificación de tablas y columnas. Para localizar las columnas y tablas

referidas por los sustantivos en las frases select y where, la preposición de y la

conjunción y que relacionan a los sustantivos, se representan por operaciones

utilizando la teoría de conjuntos, debido al rol que juegan en la consulta.

Si existe una frase select/where que incluya dos sustantivos p y q relacionados por la

preposición de (of), entonces la frase se refiere a elementos comunes (columnas o

tablas) referidas por p y q. Formalmente, S(p prep_de q) = S(p) ∩ S(q), donde S(x)

es el conjunto de columnas o tablas referidas por la frase x.

La conjunción y expresa la noción de adición o acumulación, tal que si hay una frase

select que involucre dos sustantivos p y q relacionados por la conjunción y, entonces

la frase se refiere a todos los elementos referidos por p y q. Formalmente, S(p conj_y

q) = S(p) ∪ S(q)

Antes de pasar a la fase 3 y continuando con el proceso de determinación de tablas y

columnas, se efectúa un proceso de marcado de tablas y columnas observando una

serie de condiciones previamente definidas [20].

La salida de esta fase es la interpretación semántica de las frases select y where (por

ejemplo, las columnas y tablas referidas por estas frases), la cual se utiliza en la fase

3 para traducirla a su expresión correspondiente en SQL.

Fase 3: Construcción del grafo relacional. El módulo de traducción tiene una

estructura de grafo que representa el esquema de la base de datos, donde se

incluyen las relaciones entre tablas. Las columnas, tablas y condiciones de búsqueda

obtenidas en las fases previas se marcan en el grafo, y desde esta estructura se

construye un subgrafo que representa la consulta del usuario.

Anexos

81

La construcción del grafo se lleva a cabo mediante los siguientes pasos [20]:

1. Considerando que la base de datos debe ser relacional y debe estar

modelada de acuerdo al modelo relacional o entidad-relación, se construye

un grafo no dirigido con base en el modelo relacional de la base de datos.

Cada nodo representa una tabla y sus arcos una relación referencial entre

tablas.

2. Se marcan los nodos de las tablas permanentemente marcadas en la Fase

2.

3. Se marca el arco incidente a los nodos que representan dos tablas para

cada condición de selección simple, donde la frase where involucre

columnas de estas tablas.

4. Si todas las condiciones de selección se enuncian explícitamente en la

consulta, entonces el subgrafo consistente de todos los nodos y arcos

marcados es un grafo conectado. De aquí se pude obtener la traducción a

SQL.

5. Un subgrafo desconectado significa que existen condiciones de selección

implícitas en la consulta, o que la consulta está formulada incorrectamente.

Además de lo anterior y como parte de la solución planteada en esta interfaz, se

diseñó la clasificación de las consultas en varios tipos [30], los cuales se listan a

continuación:

(1) Información de tablas y columnas explícita.

(2) Información de tablas explícita e información implícita de columnas.

(3) Información de tablas implícita e información explícita de columnas.

(4) Información implícita de tablas y columnas.

(5) Que involucra funciones especiales.

(6) Imposibles o difíciles de contestar.

En [20] se pueden encontrar más detalles de la implementación de la ILNBD.

Anexos

82

Anexo B. Gramática de elementos considerados de SQL 1 para la tipificación de problemas en consultas Basándonos en algunos de los elementos la versión SQL1 ISO/IEC 9075:1989(E),

una consulta tendría la siguiente forma básica (nota: los elementos subrayados no

son considerados ya que no forman parte de los alcances del traductor desarrollado

en CENIDET [1, 20, 29]):

<query specification> ::=

SELECT [ALL | DISTINCT] <select list> <table

expression>

<select list> ::= <value expression> , [{<value expression}…] | *

<value expression> es una secuencia en la cual cada <value expression> es una

<column specification>

<select list> ‘*’ es equivalente a la secuencia <value expression>

<column specification> ::= [<qualifier>.] | [<column name>]

<qualifier> ::= <table name> | <correlation name>

<table expression> ::=<from clause>[<where clause>] [group by clause] [having

clause]

<where clause> ::=WHERE <search condition>

<search condition> ::= <boolean term> | <search condition> OR <boolean term>

<search condition> ::= <boolean term> | <search condition> OR <boolean term>

<boolean term> ::= <boolean factor> | <boolean term> AND <boolean factor>

<boolean factor> ::= [NOT] <boolean primary>

Anexos

83

<boolean primary> ::= <predicate> | (<search condition>)

<predicate> ::= <comparison predicate>

| <between predicate>

| <in predicate>

| <like predicate>

| <null predicate>

| <quantified predicate>

| <exists predicate>

<comparison predicate> ::= <value expression> <comp op>{<value expression> |

<subquery>}

<comp op> ::= < >| < | > | <= | >=

<between predicate> ::=<value expression> [ NOT ] BETWEEN <value expression>

AND <value expression>}

<like predicate> ::=<column specification> [NOT] LIKE <pattern> [ESCAPE

<escape character>]

<pattern> ::= <value specification>

<escape character> ::=<value specification>

Notación:

1. [ ] indican elementos opcionales.

2. { } agrupan secuencias de elementos.

3. < > se utilizan para definer reglas de producción en notación BNF.

Anexos

84

4. ::= operador de definición. Se utiliza en una regla de producción para separar

los elementos definidos por la regla de su definición, donde el símbolo no-

terminal de la izquierda es sustituido por los símbolos de la derecha.

B.1 Subconsultas

Una subconsulta es una consulta anidada en una instrucción SELECT, INSERT,

UPDATE, DELETE, o bien en otra subconsulta [54]. La sintaxis que se define en la

versión SQL1 ISO/IEC 9075:1989(E) es la siguiente:

<subquery> ::= (SELECT | ALL | DISTINCT | <result specification>

<table expression>)

<result specification> ::= <value expression> | *

De acuerdo con la sintaxis anterior, las subconsultas como tal, no se manejan en el

traductor desarrollado en CENIDET [20]. Algunas subconsultas pueden

representarse también mediante diferentes tipos de la instrucción “join”. La

instrucción “join” no forma parte de la versión de SQL1. Sin embargo, para la versión

SQL1 se maneja una forma de “join interno”, el cual consiste en la selección de

información de dos o más tablas, las cuales son definidas en la cláusula “from”

separadas por comas. Un ejemplo de “join interno” se observa en la siguiente

consulta sql:

Select Empleado.Nombre, Ordenes.Producto From Empleados, Ordenes Where Empleado.Empleado_Id = Ordenes.Empleado_Id

Como puede observarse en la consulta sql anterior, en la cláusula “From” se tienen

dos tablas separadas por comas, y en la cláusula “Where” se utiliza el nombre de las

tablas y sus identificadores para poder efectuar una unión (join) entre las dos tablas y

obtener la información solicitada en la cláusula “Select”. Esta forma de “join” es la

forma más sencilla y la más comúnmente utilizada. En el caso del traductor

Anexos

85

desarrollado en CENIDET se considera este tipo de “join interno” para el manejo de

subconsultas.

Anexos

86

Anexo C. Ejemplo de configuración de la interfaz English Query (EQ)

Ejemplo de un fragmento de archivo xml generado por EQ para la BD Northwind,

resultado de las pruebas desarrolladas en la sección 4.2. Las etiquetas en este

fragmento establecen las relaciones que existen entre las tablas de la BD Northwind.

<?xml version="1.0" encoding="ISO-8859-1" ?> - <MODULE ID="MODULE:User4" VERSION="1.2"> - <SEMANTICS> - <RELATIONSHIP ID="RELATIONSHIP:categories_have_category_descriptions"> <JOINTABLE TABLE="TABLE:dbo.Categories" /> <ROLE ID="ROLE:categories_have_category_descriptions.category" HREF="ENTITY:category" /> <ROLE ID="ROLE:categories_have_category_descriptions.category_description" HREF="ENTITY:category_description" /> - <PHRASINGS> - <TRAITPHRASING ID="PHRASING:categories_have_category_descriptions.categories..20have..20category_descriptions"> <SUBJECT ROLEREF="ROLE:categories_have_category_descriptions.category" /> <OBJECT ROLEREF="ROLE:categories_have_category_descriptions.category_description" /> </TRAITPHRASING> </PHRASINGS> </RELATIONSHIP> - <RELATIONSHIP ID="RELATIONSHIP:categories_have_category_ids"> <JOINTABLE TABLE="TABLE:dbo.Categories" /> <ROLE ID="ROLE:categories_have_category_ids.category" HREF="ENTITY:category" /> <ROLE ID="ROLE:categories_have_category_ids.category_id" HREF="ENTITY:category_id" /> - <PHRASINGS> - <TRAITPHRASING ID="PHRASING:categories_have_category_ids.categories..20have..20category_ids"> <SUBJECT ROLEREF="ROLE:categories_have_category_ids.category" /> <OBJECT ROLEREF="ROLE:categories_have_category_ids.category_id" /> </TRAITPHRASING> </PHRASINGS> </RELATIONSHIP> - <RELATIONSHIP ID="RELATIONSHIP:categories_have_category_names"> <JOINTABLE TABLE="TABLE:dbo.Categories" /> <ROLE ID="ROLE:categories_have_category_names.category" HREF="ENTITY:category" /> <ROLE ID="ROLE:categories_have_category_names.category_name" HREF="ENTITY:category_name" /> - <PHRASINGS> - <TRAITPHRASING ID="PHRASING:categories_have_category_names.categories..20have..20category_names"> <SUBJECT ROLEREF="ROLE:categories_have_category_names.category" /> <OBJECT ROLEREF="ROLE:categories_have_category_names.category_name" />

</TRAITPHRASING> </PHRASINGS> </RELATIONSHIP>

Anexos

87

+ <RELATIONSHIP ID="RELATIONSHIP:category_names_are_adjectives_describing_category_descriptions"> + <RELATIONSHIP ID="RELATIONSHIP:customer_company_names_have_customer_contact_names"> + <RELATIONSHIP ID="RELATIONSHIP:customer_customer_demos_have_customer_customer_demo_customer_ids"> + <RELATIONSHIP ID="RELATIONSHIP:customer_customer_demos_have_customer_demographics"> + <RELATIONSHIP ID="RELATIONSHIP:customer_demographics_have_customer_demographic_customer_descs"> + <RELATIONSHIP ID="RELATIONSHIP:customer_demographics_have_customer_demographic_customer_type_ids"> + <RELATIONSHIP ID="RELATIONSHIP:customer_ids_are_the_unique_ids_of_customers"> + <RELATIONSHIP ID="RELATIONSHIP:customers_have_customer_addresses"> + <RELATIONSHIP ID="RELATIONSHIP:customers_have_customer_cities"> + <RELATIONSHIP ID="RELATIONSHIP:customers_have_customer_company_names"> + <RELATIONSHIP ID="RELATIONSHIP:customers_have_customer_contact_names"> + <RELATIONSHIP ID="RELATIONSHIP:customers_have_customer_countries"> + <RELATIONSHIP ID="RELATIONSHIP:customers_have_customer_faxes"> + <RELATIONSHIP ID="RELATIONSHIP:customers_have_customer_phones"> + <RELATIONSHIP ID="RELATIONSHIP:customers_have_customer_postal_codes"> + <RELATIONSHIP ID="RELATIONSHIP:customers_have_customer_regions"> + <RELATIONSHIP ID="RELATIONSHIP:employee_names_are_the_names_of_employees"> + <RELATIONSHIP ID="RELATIONSHIP:employee_territories_have_employee_territory_territory_ids"> + <RELATIONSHIP ID="RELATIONSHIP:employee_territories_have_employees"> + <RELATIONSHIP ID="RELATIONSHIP:employees_have_employee_addresses"> + <RELATIONSHIP ID="RELATIONSHIP:employees_have_employee_birth_dates"> + <RELATIONSHIP ID="RELATIONSHIP:employees_have_employee_cities"> + <RELATIONSHIP ID="RELATIONSHIP:employees_have_employee_countries"> + <RELATIONSHIP ID="RELATIONSHIP:employees_have_employee_extensions"> + <RELATIONSHIP ID="RELATIONSHIP:employees_have_employee_hire_dates"> + <RELATIONSHIP ID="RELATIONSHIP:employees_have_employee_home_phones"> + <RELATIONSHIP ID="RELATIONSHIP:employees_have_employee_ids"> + <RELATIONSHIP ID="RELATIONSHIP:employees_have_employee_notes"> + <RELATIONSHIP ID="RELATIONSHIP:employees_have_employee_photo_paths"> + <RELATIONSHIP ID="RELATIONSHIP:employees_have_employee_postal_codes"> + <RELATIONSHIP ID="RELATIONSHIP:employees_have_employee_regions"> + <RELATIONSHIP ID="RELATIONSHIP:employees_have_employee_reports_tos"> + <RELATIONSHIP ID="RELATIONSHIP:employees_have_employee_title_of_courtesies"> + <RELATIONSHIP ID="RELATIONSHIP:employees_have_employee_titles"> + <RELATIONSHIP ID="RELATIONSHIP:order_details_have_order_detail_discounts"> + <RELATIONSHIP ID="RELATIONSHIP:order_details_have_order_detail_order_ids"> + <RELATIONSHIP ID="RELATIONSHIP:order_details_have_order_detail_quantities"> + <RELATIONSHIP ID="RELATIONSHIP:order_details_have_order_detail_unit_prices"> + <RELATIONSHIP ID="RELATIONSHIP:order_details_have_products"> + <RELATIONSHIP ID="RELATIONSHIP:order_ids_are_the_unique_ids_of_orders"> + <RELATIONSHIP ID="RELATIONSHIP:orders_have_order_customer_ids"> + <RELATIONSHIP ID="RELATIONSHIP:orders_have_order_dates"> + <RELATIONSHIP ID="RELATIONSHIP:orders_have_order_employee_ids"> + <RELATIONSHIP ID="RELATIONSHIP:orders_have_order_freights"> + <RELATIONSHIP ID="RELATIONSHIP:orders_have_order_required_dates"> + <RELATIONSHIP ID="RELATIONSHIP:orders_have_order_ship_addresses"> + <RELATIONSHIP ID="RELATIONSHIP:orders_have_order_ship_cities">

Anexos

88

+ <RELATIONSHIP ID="RELATIONSHIP:orders_have_order_ship_countries"> + <RELATIONSHIP ID="RELATIONSHIP:orders_have_order_ship_names"> + <RELATIONSHIP ID="RELATIONSHIP:orders_have_order_ship_postal_codes"> + <RELATIONSHIP ID="RELATIONSHIP:orders_have_order_ship_regions"> + <RELATIONSHIP ID="RELATIONSHIP:orders_have_order_ship_vias"> + <RELATIONSHIP ID="RELATIONSHIP:orders_have_order_shipped_dates"> + <RELATIONSHIP ID="RELATIONSHIP:products_have_product_category_ids"> + <RELATIONSHIP ID="RELATIONSHIP:products_have_product_ids"> + <RELATIONSHIP ID="RELATIONSHIP:products_have_product_quantity_per_units"> + <RELATIONSHIP ID="RELATIONSHIP:products_have_product_reorder_levels"> + <RELATIONSHIP ID="RELATIONSHIP:products_have_product_supplier_ids"> + <RELATIONSHIP ID="RELATIONSHIP:products_have_product_unit_prices"> + <RELATIONSHIP ID="RELATIONSHIP:products_have_product_units_in_stocks"> + <RELATIONSHIP ID="RELATIONSHIP:products_have_product_units_on_orders"> + <RELATIONSHIP ID="RELATIONSHIP:region_ids_are_the_unique_ids_of_regions"> + <RELATIONSHIP ID="RELATIONSHIP:regions_have_region_descriptions"> + <RELATIONSHIP ID="RELATIONSHIP:shipper_ids_are_the_unique_ids_of_shippers"> + <RELATIONSHIP ID="RELATIONSHIP:shippers_have_shipper_company_names"> + <RELATIONSHIP ID="RELATIONSHIP:shippers_have_shipper_phones"> + <RELATIONSHIP ID="RELATIONSHIP:supplier_ids_are_the_unique_ids_of_suppliers"> + <RELATIONSHIP ID="RELATIONSHIP:suppliers_have_supplier_addresses"> + <RELATIONSHIP ID="RELATIONSHIP:suppliers_have_supplier_cities"> + <RELATIONSHIP ID="RELATIONSHIP:suppliers_have_supplier_company_names"> + <RELATIONSHIP ID="RELATIONSHIP:suppliers_have_supplier_contact_names"> + <RELATIONSHIP ID="RELATIONSHIP:suppliers_have_supplier_contact_titles"> + <RELATIONSHIP ID="RELATIONSHIP:suppliers_have_supplier_countries"> + <RELATIONSHIP ID="RELATIONSHIP:suppliers_have_supplier_faxes"> + <RELATIONSHIP ID="RELATIONSHIP:suppliers_have_supplier_home_pages"> + <RELATIONSHIP ID="RELATIONSHIP:suppliers_have_supplier_phones"> + <RELATIONSHIP ID="RELATIONSHIP:suppliers_have_supplier_postal_codes"> + <RELATIONSHIP ID="RELATIONSHIP:suppliers_have_supplier_regions"> + <RELATIONSHIP ID="RELATIONSHIP:territories_have_territory_descriptions"> + <RELATIONSHIP ID="RELATIONSHIP:territories_have_territory_region_ids"> + <RELATIONSHIP ID="RELATIONSHIP:territory_ids_are_the_unique_ids_of_territories"> </SEMANTICS>

</MODULE>

Anexos

89

Anexo D. Muestra de 102 consultas del corpus de la BD ATIS El siguiente corpus (Tabla D.1) corresponde a las consultas que fueron utilizadas

para la evaluación de la sección 4.5

Tabla D.1 Corpus de consultas de la BD ATIS

Tipo de Problema

Consulta

2.1 Consultas que incluyen un nombre de tabla sin especificar cuál(es) de sus columnas se solicita(n).

1 All flights from ATL to SFO on Delta first class

2 Show me all the one-way flights from DFW to BOS

3 Tell me the fare for number 18 one-way

4 Listing of all flights from ATL to BOS

5 Find me a list of transportation from downtown OOAK to SSFO downtown

6 Flights between SFO and Dallas between 12:00 and 5:00

7 Give a flight coach economy class

8 List fares for all flights leaving after 12:00 from BOS to BWI

9 List flights from ATL to Washington, D.C. on Delta Airlines

10 List meals served on DL 589 from PHL to Dallas

11 Give me the flights from SFO to DEN

12 Show me the Delta flights from DFW to DEN

13 Show fares United flight 880 from SFO to DEN on 06/01/1990

14 Show flights from DEN to SFO on 06/07/1990

15 What airlines fly from DEN to BOS on a 733

16 What ground transportation is available from SFO airport into the city?

17 What are the fares for flight 96?

18 Give me a economy class flight from DFW to BWI one-way

3.1 Consultas que incluyen un nombre de tabla y un valor en la condición de búsqueda sin especificar la columna de la tabla relacionada con el valor

1 Get me a date on flight 294 leaving ATL to Washington 2 What kind of airplane is US 1581. 3 What kind of ground transportation is available from the airport to downtown

BWI?

4 What kind of plane is flight 301? 5 Show the cost for flight 71 from ATL to SFO leaving on 08/14/1990 6 Show distance between airport BWI and city Baltimore 7 Show me all the type aircraft that flies from DFW to BOS 8 Show me departing flights from DFW to ATL 9 Show me departing flights from SFO to DFW arriving in DFW by 13:00

Anexos

90

Tabla D.1 Corpus de consultas de la BD ATIS (continúa)

Tipo de Problema

Consulta

3.1 Consultas que incluyen un nombre de tabla y un valor en la condición de búsqueda sin especificar la columna de la tabla relacionada con el valor

10 What day is 6? 11 What is the fare code for flight 351? 12 What is the name of the airport at DEN? 13 What kind of a plane is J31? 14 What kind of aircraft is Delta 314? 15 What restriction is VU? 16 What time zone is in Atlanta? 17 What type fare is QS? 18 Where does flight 1083 stop? 19 What types of aircraft fly from ATL to SFO? 20 What types of ground transportation are in ATL? 21 What's the price of ground transportation in DEN? 22 What's the type of aircraft for flight 5140? 23 What's the flight number for the 10:39 flight? 24 What meals are served on first class flights from BOS to DFW? 25 What time does flight 102136 leave Atlanta Hartsfield to Dallas? 26 What state is Dallas in? 27 What is the capacity of aircraft equipment 733? 28 List the type of aircraft for flights from PHL to ATL on 05/07/1990 29 Give me the types of ground transportation in ATL 30 How much is the Q fare for the flights from BOS to DFW?

4.1 Consultas que incluyen un nombre de columna sin especificar una de las varias tablas a las que puede estar relacionada

1 What is cost from DFW to ATL? 2 What is cost of flight 102166? 3 What is restriction AP/80? 4 What is the code for SFO? 5 What is the cost of 1006? 6 What type of meal is on American Airlines flight 288? 7 Which cities have taxis? 8 Show me departure time 9 What is the arrival time in Los Angeles? 10 When does Midway 589 leave PHL?

5.2

Consultas que incluyen un valor en la condicón de búsqueda sin especificar la columna ni la tabla a la cual ésta puede estar relacionada (por lo tanto, el valor puede estar relacionado a cualquier columna de cualquier tabla)

1 Give me First class Delta Airlines DFW to PHL 2 Give me a list of the cities served by Delta 3 How many engines does an M80 have? 4 How many passengers are on a 727? 5 How many passengers does a Boeing 733 carry?

Anexos

91

Tabla D.1Corpus de consultas de la BD ATIS (continúa)

Tipo de Problema

Consulta

5.2

Consultas que incluyen un valor en la condicón de búsqueda sin especificar la columna ni la tabla a la cual ésta puede estar relacionada (por lo tanto, el valor puede estar relacionado a cualquier columna de cualquier tabla)

6 How many seats are on an M80? 7 How much is a first class ticket from BOS to SFO? 8 How much is the coach fare on American Airlines flight 155? 9 Give me a limousine from Logan to Boston? 10 List number of seats on D9S 11 Show kind of aircraft for Continental 1631 12 How much is Delta flight 539 13 Show me a list of taxi services in Philadelphia 14 Show the meal plan from PHL to BOS 15 Show the names of cities served by both Midway and Eastern 16 What kind of plane is United flight number 438 departing Denver at 10:29 for

Dallas/Fort Worth? 17 What cities does Lufthansa Airlines fly from? 18 What cities does Midway Airlines fly to? 19 What days does DL 111 fly? 20 What is arrival time Delta 605? 21 What is the distance between Atlanta and Peachtree City? 22 What is the round-trip cost of DL 234? 23 What is the weight of a D10? 24 What is the speed of a 767? 25 Which carriers go to Boston?

6.1 Consultas que incluyen un nombre de columna que puede no estar relacionado a ninguna tabla de la base de datos

1 Book Continental 1215 from BOS to DEN 2 Give a description of the aircraft for Delta flight 16. 3 How long will it take to fly from Oakland to Boston? 4 How much does a coach flight from Baltimore to Philadelphia cost? 5 What is the price of flight 460 6 Cost of flight 1028 7 Flight schedule for Boston on 05/30/1990 8 Flights exiting Fort Worth and entering Dallas 9 How far is BWI from Washington, D.C.? 10 How fast can the Concorde fly? 11 I want to travel from DFW to SFO 12 I'd like to book a ticket for Delta flight 219 13 List the cost for limousines 14 List the movies that are available on all United Airlines flights 15 List the physical characteristic of a Douglas DC10 16 Show the size of the jets

Anexos

92

Tabla D.1 Corpus de consultas de la BD ATIS (continúa)

Tipo de Problema

Consulta

6.1 Consultas que incluyen un nombre de columna que puede no estar relacionado a cualquier tabla de la base de datos

17 What is equipment MD80? 18 What is the menu for flight 368? 19 What are the car rental agencies in Atlanta?

Anexos

93

Anexo E. Ejemplos de consultas con la interfaz desarrollada en CENIDET incluyendo un administrador de diálogo Primeramente se mostrará un ejemplo correspondiente al Problema 3.1: Consultas

que incluyen un nombre de tabla y un valor en la condición de búsqueda sin

especificar la columna de la tabla relacionada al valor.

Consulta: ¿cuál es el precio del producto chang? En esta consulta se proporciona un

nombre de tabla (producto) y un valor en la condición (chang) pero no se sabe a qué

columna de la tabla corresponde, por lo cual la interfaz ejecuta un proceso de diálogo

para completar la información faltante.

Figura E.1 Selección de BD y consulta con el tipo de problema 3.1

Explicación del ejemplo de la Figura E.1. El usuario selecciona la BD. Una vez

seleccionada la BD, si existe un archivo previo con consultas, éste es cargado en

una lista. El usuario selecciona una consulta de la lista o escribe una nueva consulta.

Anexos

94

Una vez escrita la consulta presiona el botón “Consultar”, y el traductor comienza el

proceso de traducción. Si existe algún problema en la consulta y éste se encuentra

dentro de los implementados, el proceso es ejecutado. Para esta consulta el

problema es del tipo 3.1, así que la interfaz comienza el diálogo con una ventana de

aclaración como se observa en la figura E.2.

Figura E.2 Diálogo de aclaración

Figura E.2. Si el usuario presiona el botón “Si”, la interfaz procede mostrando una

pantalla con la información identificada y la información faltante (botones checkbox

de la figura E.3) correspondiente a la información identificada. En este caso se

muestran los nombres de columna: “Nombre del Producto” y “Cantidad por unidad”.

El algoritmo para este tipo de problema busca primero en la tabla “producto” los

datos de tipo cadena, ya que previamente identificó, de acuerdo con el valor

Anexos

95

proporcionado por el usuario, que el tipo de dato del valor “chang” es de tipo cadena

(tipo string en Java).

Durante las pruebas efectuadas observamos que el diseño de una BD varía de

acuerdo al Administrador de la BD y principalmente a las necesidades del cliente, por

ejemplo en la siguiente consulta: “Dame los datos del proveedor 235” lo que para

nosotros puede representar o entenderse como un número como “235”, este dato

representado en una columna de una BD puede ser tanto un dato tipo numérico

como un dato tipo cadena. Por lo tanto, el algoritmo para este tipo de problema

identifica primero todos los tipos de dato correspondiente al valor proporcionado (en

este caso numéricos), y después agrega columnas restantes que podrían

corresponder al valor proporcionado (en este caso tipo cadena).

Si la información faltante se encuentra en las opciones, el usuario selecciona ésta y

presiona el botón “Aceptar” (Figura E.3).

Figura E.3 Pantalla de solicitud de información faltante para “producto”

Con la información seleccionada la interfaz modifica la consulta y ejecuta

nuevamente ésta. El proceso se repetirá hasta que la consulta no tenga ningún

problema (dentro de los identificados e implementados en la tipificación de la sección

3.1). Para este caso la respuesta se observa en la figura E.4.

Anexos

96

Figura E.4 Resultado de la consulta: ¿cuál es el precio del producto chang?

Enseguida se presenta un ejemplo correspondiente al Problema 4.1 Consultas que

incluyen un nombre de columna sin especificar una de las varias tablas a las cuales

puede estar relacionada.

Consulta: Dame la fecha de contratación de Margaret Peacock.

Al igual que en la consulta anterior, después de presionar el botón “Consultar”, la

interfaz muestra una pantalla para aclaración de la consulta (figura E.2). El usuario

presiona el botón “Aceptar” y comienza la aclaración (figura E.6).

Anexos

97

Figura E.5 Consulta con el tipo de problema 4.1

Esta consulta presenta varios problemas, a simple vista el usuario proporciona dos

datos: “fecha de contratación” que podemos relacionarla con el nombre de una

columna y “Margaret Peacock” que un ser humano puede relacionarlo con un

nombre: de una persona, razón social, etc., pero para una interfaz no resulta

evidente. Para este caso la interfaz muestra una pantalla donde se muestran

nombres de varias tablas a las cuales podría pertenecer el dato “fecha de

contratación” identificado como una columna (figura E.6). El algoritmo para este

problema busca en las tablas de la BD si existen columnas con el nombre “fecha de

contratación” y muestra las tablas que presenten este nombre de columna.

Anexos

98

Figura E.6 Pantalla de solicitud de información faltante para “fecha”

Una vez proporcionada la información, la consulta es modificada a: Dame la fecha de

contratación del Empleado Margaret Peacock. La consulta es ejecutada nuevamente

pero ahora presenta el tipo de problema 3.1, por lo cual se repite el mismo proceso

como en el caso de la consulta anterior. En tales circunstancias se presenta la

pantalla de la figura E.2 y posteriormente la pantalla de la figura E.7.

Anexos

99

Figura E.7 Pantalla de solicitud de información faltante para “empleado”

Al seleccionar “Nombre de Empleado” la consulta nuevamente se modifica, pero

como podemos observar, aún existe un dato más por aclarar como se muestra en la

pantalla E.8.

Anexos

100

Figura E.8 Pantalla de solicitud de información faltante para “empleado”

El resultado final se observa en la figura E.9. Al aplicar los procesos de diálogo

implementados no todas las consultas pueden ser resueltas. Esto tiene que ver con

el proceso de traducción de la interfaz utilizada [1, 20] y no precisamente con los

procesos de diálogo implementados, aunque éstos pueden ser mejorados.

Anexos

101

Figura E.9 Resultado a la consulta: Dame la fecha de contratación de Margaret Peacock

Las pantallas mostradas anteriormente son Java Server Pages (JSPs). Parte de la

información mostrada en éstas se forma dinámicamente con los resultados obtenidos

de la BD consultada.

Anexos

102

Anexo F. Ejemplos de seis tipos de problemas en consultas ejecutadas por la interfaz desarrollada en CENIDET

En la tabla F.1 se muestran ejemplos del corpus de consultas correspondientes a la

BD Northwind. Estas consultas fueron ejecutadas en la interfaz desarrollada en

CENIDET aplicando procesos de diálogo. En la columna “Resultado” se muestra la

conversión de la consulta de LN a SQL una vez aplicado el proceso de diálogo

correspondiente.

Tabla F.1 Ejemplos de seis tipos de problemas en consultas

para la BD Northwind

Problema Consulta Resultado

3.1 Consultas que incluyen un nombre de tabla y un valor en la condición de búsqueda sin especificar la columna de la tabla relacionada al valor

¿Cuál es el precio del producto ¿? chang?

SELECT Products.UnitPrice FROM Products WHERE ((Products.ProductName LIKE 'chang'))

Muéstrame las órdenes que se hayan realizado el ¿? 16/07/1996

SELECT Orders.OrderDate, Orders.OrderID FROM Orders WHERE ((Orders.OrderDate = #1996/07/16# OR Orders.RequiredDate = #1996/07/16# OR Orders.ShippedDate = #1996/07/16#))

Muestra el nombre del contacto que tiene el producto ¿? Chai

SELECT Customers.ContactName, Suppliers.ContactName, Products.ProductID, Products.ProductName FROM Products WHERE ((Products.ProductName LIKE 'Chai'))

Dame la fecha de envío de la orden ¿? 10277

SELECT Orders.ShippedDate FROM Orders WHERE ((Orders.ShippedDate = '10277'))

Listar el nombre del producto que cueste ¿? 10

SELECT Products.ProductName FROM Products WHERE ((Products.ProductName LIKE 'cueste' OR Products.QuantityPerUnit LIKE 'cueste') OR (Products.ProductName = '10'))

Anexos

103

Tabla F.1 Ejemplos de seis tipos de problemas en consultas para la BD Northwind (continúa)

Problema Consulta Resultado

4.1 Consultas que incluyen un nombre de columna sin especificar una de las varias tablas a las cuales puede estar relacionada

Dame la dirección ¿? de Around the Horn

SELECT Customers.Address, Employees.Address, Suppliers.Address, Employees.PhotoPath, Orders.ShipAddress FROM Customers, Employees, Orders, Suppliers, Products, OrderDetails WHERE ((Customers.ContactTitle LIKE '%de%' OR Customers.Address LIKE '%de%' OR Employees.Title LIKE '%de%' OR Orders.ShipAddress LIKE '%de%' OR Suppliers.ContactTitle LIKE '%de%' OR Suppliers.Address LIKE '%de%') OR (Customers.CustomerID LIKE '%the%' OR Customers.CompanyName LIKE '%the%' OR Customers.ContactName LIKE '%the%' OR Orders.CustomerID LIKE '%the%' OR Orders.ShipName LIKE '%the%' OR Suppliers.HomePage LIKE '%the%') OR (Customers.CompanyName LIKE '%Horn%' OR Orders.ShipName LIKE '%Horn%')) AND Suppliers.SupplierID = Products.SupplierID AND Products.ProductID = OrderDetails.ProductID AND OrderDetails.OrderID = Orders.OrderID AND Employees.EmployeeID = Orders.EmployeeID

Cuál es el nombre de la compañía que tiene fecha de envío 12/07/1996

SELECT Customers.CompanyName, Shippers.CompanyName, Suppliers.CompanyName, Orders.OrderID, Orders.OrderDate FROM Orders WHERE ((Orders.ShippedDate = #1996/07/12#))

5.1 Consultas que incluyen un nombre de columna sin especificar una de las varias tablas a las cuales puede estar relacionada

Dame el nombre de la compañía con el identificador 1

SELECT Customers.CompanyName, Shippers.CompanyName, Suppliers.CompanyName FROM Customers, Shippers, Suppliers, Products, OrderDetails, Orders WHERE ((Customers.CustomerID = '1' OR Shippers.ShipperID = 1 OR Suppliers.SupplierID = 1)) AND Suppliers.SupplierID = Products.SupplierID AND Products.ProductID = OrderDetails.ProductID AND OrderDetails.OrderID = Orders.OrderID AND Orders.ShipVia = Shippers.ShipperID

Anexos

104

Tabla F.1 Ejemplos de seis tipos de problemas en consultas para la BD Northwind (continúa)

Problema Consulta Resultado

5.1 Consultas que incluyen un nombre de columna sin especificar una de las varias tablas a las cuales puede estar relacionada

Dame el nombre del contacto que lleva el nombre de la compañia Toms Spezialitaten

SELECT Customers.ContactName, Suppliers.ContactName FROM Customers, Suppliers, Orders, OrderDetails, Products WHERE ((Customers.CompanyName LIKE '%Toms%' OR Suppliers.CompanyName LIKE '%Toms%') OR (Customers.CompanyName LIKE '%Spezialitaten%' OR Suppliers.CompanyName LIKE '%Spezialitaten%')) AND Customers.CustomerID = Orders.CustomerID AND OrderDetails.OrderID = Orders.OrderID AND Products.ProductID = OrderDetails.ProductID AND Suppliers.SupplierID = Products.SupplierID

5.2

Consultas que incluyen un valor en la condición de búsqueda sin especificar ni la columna ni la tabla a la cual ésta puede estar relacionada (por lo tanto, el valor puede estar relacionado a cualquier columna de cualquier tabla)

Dame la fecha de contratacion de ¿? Margaret Peacock

SELECT Employees.HireDate FROM Employees WHERE ((Employees.FirstName LIKE 'Margaret') OR (Employees.LastName LIKE 'Peacock'))

Dame el identificador de ¿? United Package

SELECT Shippers.ShipperID FROM Shippers WHERE ((Shippers.CompanyName LIKE '%United%') OR (Shippers.CompanyName LIKE '%Package%'))

Anexos

105

Tabla F.1 Ejemplos de seis tipos de problemas en consultas para la BD Northwind (continúa)

Problema Consulta Resultado

6.1 Consultas que incluyen un nombre de columna que puede no estar relacionado a cualquier tabla de la base de datos

Muestra los surtidores de ¿? Nueva Orleans

SELECT Suppliers.SupplierID, Customers.CustomerID, Customers.CustomerID, Orders.OrderID, Orders.OrderDate FROM Customers, Orders, Suppliers, Products, OrderDetails WHERE ((Customers.Region LIKE '%nueva%' OR Orders.ShipRegion LIKE '%nueva%') OR (Suppliers.CompanyName LIKE '%Orleans%' OR Suppliers.City LIKE '%Orleans%')) AND Suppliers.SupplierID = Products.SupplierID AND Products.ProductID = OrderDetails.ProductID AND OrderDetails.OrderID = Orders.OrderID

Detalles de la orden 10250 La palabra detalle no existe como COLUMNA ni como TABLA de la Base de Datos seleccionada. Modifique su consulta por favor.

7.1 Consultas que incluyen el nombre de una tabla que no pertenece a la base de datos

Dame la dirección de la taquería Antonio Moreno

No hay respuesta

En ésta se muestran algunos ejemplos de consultas con problemas de información

implícita. En la columna “Resultado” se observan algunas consultas subrayadas,

éstas son consultas que no tradujo en forma correcta la interfaz. Como se menciona

en otros capítulos, la ILNBD utilizada presenta algunos problemas en su proceso de

traducción.

Anexos

106

Anexo G. Información de la ILNBD desarrollada en CENIDET

La interfaz para su operación requiere de las bases de datos: db2.mdb, Bitácora.mdb,

baseconsultas.mdb, domespec.mdb, dominio.mdb, baseconsultas.mdb, lexicon.mdb,

metadatos.mdb y palabras.mdb. Cada una de estas BDs se detalla a continuación.

Figura G.1 Fragmento de la información de la BD db2.mdb

La BD db2.mdb se compone de la tabla “sinonimo”, la cual se utiliza como diccionario.

Figura G.2 Fragmento de la información de la BD Bitácora

En la BD Bitácora se guarda información del resultado de los diálogos empleados por

el traductor.

La BD baseconsultas se compone de varias tablas (ConsultaLN, InterCampos,

InterTabla, auxCampos, auxCondiciones, auxTabla, resultadoCampos,

Anexos

107

resultadoCondiciones y resultadoTabla), que se emplean para guardar la consulta

que se esta traduciendo, información de la consulta y su procesamiento. Estas tablas

constituyen la base principal de esta BD. En esta base de datos también se crean y

borran tablas durante el procesamiento de cada consulta, las cuales no están

descritas en este anexo.

Figura G.3 Fragmento de la información de la tabla ConsultaLN de la BD baseconsultas

La BD domespec contiene a la tabla “specific”, en la cual se guarda información de

las palabras identificadas en la consulta y su relación con la información de la BD

(Figura G.4).

Figura G.4 Fragmento de la información de la tabla “specific” de la BD domespec

En la BD dominio se guarda información de cada palabra de la consulta y sus

sinónimos. Esta información es mapeada contra la información de la BD que se está

consultando. Esta BD se compone de la tabla “dom” (figura G.5).

Anexos

108

Figura G.5 Fragmento de la información de la tabla “dom” de la BD dominio

La BD “lexicon” se compone de las tablas: “lexico” y “sustantivos”, en las cuales se

guarda información léxica de palabras.

Figura G.6 Fragmento de la tabla “lexico” de la BD “lexicon”

Anexos

109

Figura G.7 Fragmento de la tabla “sustantivos” de la BD “lexicon”

La BD “metadatos” se compone de las tablas: “MetadatosValores” y “Metadatos”, en

las cuales se guarda información de la BD consultada.

Figura G.8 Fragmento de la tabla “MetadatosValores” de la BD metadatos

Anexos

110

Figura G.9 Fragmento de la tabla “Metadatos” de la BD metadatos

Anexos

111

Anexo H. Instalación de la ILNBD

Para instalar la ILNBD con administrador de diálogo se deben seguir los siguientes

pasos:

1. Instalación del software general.

• Desempaquetar el servidor de aplicaciones tomcat:

C:\java\apache-tomcat-6.0.13.zip

• Instalar el jdk de java:

C:\jdk-1_5_0_11-windows-i586-p.exe

• Instalar el jre de java:

C:\jre-1_5_0_11-windows-i586-p.exe

2. Instalación de variables de ambiente

• Crear la variable de ambiente JAVA_HOME:

(1) Acceder a mi PC y presionar botón derecho para acceder al menú de

propiedades:

Figura H.1 Acceso a propiedades de entorno

Anexos

112

(2) En propiedades presionar botón izquierdo, en el siguiente menú

seleccionar la carpeta de opciones avanzadas y presionar el botón

“Variables de Entorno”.

Figura H.2 Acceso a variables de entorno

(3) En el menú de variables de entorno presionar el botón “Nueva” de

“Variables de usuario para nombre del usuario”.

Anexos

113

Figura H.3 Creación de nueva variable de entorno

(4) Enseguida agregar la variable proporcionando el nombre de la variable,

en este caso nombre de variable: JAVA_HOME y valor de variable:

C:\jdk1.5.0_11. Presionar Aceptar.

Anexos

114

Figura H.4 Agregar nueva variable de entorno

(5) En el menú inferior seleccionar la variable del sistema “Path” y

presionar el botón “Modificar”.

Anexos

115

Figura H.5 Acceso a “path” del sistema

(6) Enseguida agregar la variable de usuario al Path de la siguiente forma:

Figura H.6 Modificación de “path” del sistema

(7) Colocarse al final de la línea de la opción “Valor de variable:” y agregar

la variable de usuario:

Anexos

116

;%JAVA_HOME%\jre\bin;%JAVA_HOME%\jre\lib.

Presionar Aceptar y reiniciar el sistema para que tome estos valores.

3. Dar de alta orígenes de datos.

Utilizando “Herramientas administrativas” del panel de control de Windows,

ejecutar el programa “Orígenes de datos ODBC” y dar de alta las BDs

siguientes: bdatis, Bitacora, consultas, contar, diccionario, domcon, domespec,

dominio, grafo, lexicon, metadatos, northwind, palabra, Pubs y sinonimo.

4. Instalación de la herramienta.

• Una vez instalado el software y las variables de ambiente (en caso de instalar

las que s e requieran), la instalación del proyecto consistirá en desempaquetar

el archivo traductor.jar dentro de la carpeta siguiente:

C:\Java\apache-tomcat-6.0.13\webapps.

• Crear la carpeta “Traductor” en el directorio raíz: C:\Traductor.

5. Ejecutar el programa.

• Iniciar el servidor de aplicaciones desde una ventana del sistema:

Figura H.7 Ruta para iniciar servidor de aplicaciones

Anexos

117

Teclear startup para iniciar y presiona enter.

• Para cerrar el servidor de aplicaciones, teclear shutdown desde el mismo

directorio de la ventana anterior: c:\Java\apache-tomcat-6.0.13\bin>shutdown.

• Abrir un navegador y teclear la dirección: http://localhost:8080/traductor.

Anexos

118

Anexo I. Diagrama de clases de la ILNBD desarrollada en CENIDET con traductor

Figura I.1 Diagrama de clases de la interfaz desarrollada en CENIDET con administrador de diálogo

Anexos

119

Anexo J. Resultados publicados

Con los resultados de este trabajo de investigación se publicaron los artículos:

•••• PAZOS R., SANTAOLAYA S., ROJAS, P., PÉREZ, O. Shedding Light on a

Troublesome Issue in NLIBDs: Word Economy in Query Formulation, Lecture

Notes in Computer Science, Vol. 5246, pp. 641-648, 2008.

•••• PAZOS R., SANTAOLAYA S., ROJAS, P., MARTÍNEZ, F., PÉREZ, O, CRUZ,

R. Domain Independent Dialog Processes for Solving the Word-Economy

Problem in a NLIDB, ACS 2008, Polish Journal of Environmental Studies, 2008.

Anexos

120

Anexo K. Problemas en la ILNBD desarrollada en CENIDET

A continuación se presentan algunos problemas en la ILNBD desarrollada en

CENIDET.

Consulta Problemas

Muéstrame los vuelos de DFW a DEN en Delta

Interpreta la palabra “DEN” como “dar”.

Listar el nombre del producto que cueste 10

Traduce la consulta en forma errónea: SELECT Products.ProductName FROM

Products WHERE

((Products.QuantityPerUnit LIKE

'%cueste%') AND (Products.UnitPrice =

10)). ¿Cuáles son los nombres de las compañías que estén situadas en Mexico DF?

Traduce la consulta en forma errónea: SELECT Customers.CompanyName FROM

Customers WHERE ((Customers.Country

LIKE 'Mexico') OR (Customers.Region

LIKE 'DF')). Muestra la descripción del producto Aniseed Syrup Dame la fecha de cumpleaños de ¿? Andrew Fuller

En el proceso de traducción no se identifican campos, por lo cual las consultas no pueden ser traducidas.

Consulta Problemas

Dame la clase de comida que dan en los vuelos con destino a Baltimore y Tempoal y "Poza Rica

No existe la palabra comida en la BD lexicon, existe la palabra comer en la tabla lexico. Esto ocasiona que esta palabra no sea identificada como columna o tabla y el proceso de traducción en consultas con esta palabra ocasiona problemas.

Dame la aplicación del mínimo de permanencia igual a “3”.

Problemas en la identificación de sinónimos. Cambia la palabra “mínimo” por “pequeño”, lo cual ocasiona que cambie la semántica de la consulta y se convierte a “Dame la aplicación del pequeño de permanencia igual a 3.

Anexos

121

Debe revisarse cuidadosamente el proceso para describir el nombre de las columnas

al español en las tablas de la BD analizada. Cuando una columna incluye en su

nombre una palabra que puede ser catalogada como tabla o columna, el proceso de

traducción se complica. Por ejemplo, en la tabla Vuelos (Flight) de la BD ATIS

existen las columnas to_airport y from_airport, entonces al crear las descripciones en

español se tienen “aeropuerto origen” y “aeropuerto destino”; además, la palabra

“aeropuerto” existe también en la BD como una tabla, lo cual ocasiona que el

traductor encuentre problemas al procesar una consulta que incluya estos datos.

Por ejemplo, en la consulta “Dame los vuelos de ATL a SFO”, al traducir la consulta,

ésta quedaría como “Dame los vuelos del aeropuerto origen ATL al aeropuerto

destino SFO”. El proceso de traducción analiza cada palabra y la etiqueta como

tabla, columna, valor, preposición o conjunción. Al etiquetar esta consulta, en el

proceso de traducción, el traductor asocia el valor “ATL” a la tabla “Aeropuerto” en

lugar de la tabla “Vuelos”. Este problema puede ser resuelto por la interfaz con

procesos de diálogo. Sin embargo, el número de procesos de diálogo que se

generan es mayor comparado con la consulta formulada en la forma “Dame los

vuelos con origen ATL y destino SFO”, es decir, las descripciones de las columnas

“”to_airport” y “from_airport” en la tabla Vuelos deberían ser descritas como “origen” y

“destino”, para que el traductor no tenga problemas o genere más diálogos.

Anexos

122

Anexo L. Esquema de la BD ATIS

Figura L.1 Esquema de la BD ATIS