PDF de programación - NQL (Natural Query Language)

Imágen de pdf NQL (Natural Query Language)

NQL (Natural Query Language)gráfica de visualizaciones

Publicado el 24 de Octubre del 2019
327 visualizaciones desde el 24 de Octubre del 2019
492,7 KB
75 paginas
Creado hace 7a (01/01/2013)
INGENIERIA EN INFORMÁTICA

Memoria del Proyecto Final de Carrera

NQL (Natural Query Language)

Autor: Daniel Boerner

Consultor: Jordi Duran Cals

Enero - 2013

UOC Proyecto Final de Carrera NQL (Natural Query Language)

Daniel Boerner

Resumen

En paralelo al aumento de los datos que se crean en nuestro entorno

actual y que se procesan mediante gestores de bases de datos, crecen

las necesidades de información de usuarios de sistemas de

información. Como usuarios, no necesariamente disponen de los

conocimientos técnicos necesarios para extraer la información que

requieren. Así pues, conviene simplificar y facilitar el acceso a la

información almacenada en sistemas de bases de datos.

En este sentido y enmarcado como proyecto final de carrera de los

estudios de ingeniería informática y específicamente del área de

compiladores, presento el desarrollo de un sistema capaz de procesar

consultas en lenguaje natural introducidas por el usuario mediante el

teclado. El sistema es capaz de responder a consultas en castellano,

relacionadas con un dominio de aplicación representado mediante una

base de datos relacional.

A través de la presente memoria, primeramente introduzco el proyecto

mediante su motivación, sus objetivos, su planificación, sus resultados

y los requisitos del sistema presentado. Después expongo el principal

problema relacionado con el procesamiento del lenguaje natural: la

ambigüedad. Sigue una breve descripción del lenguaje estructurado de

consultas SQL (Structured Query Language) concentrada en la

sentencia SELECT, utilizada para recuperar determinadas filas de una

tabla de una base de datos. Como punto central, describo el diseño y la

implementación de un sistema interfaz entre un lenguaje natural y una

base de datos relacional. A continuación describo las limitaciones del

sistema desarrollado así como las pruebas realizadas sobre el mismo.

Finalmente y después de una conclusión y un apartado de referencias

siguen como anexos, detalles sobre la instalación y ejecución del

sistema, las preguntas que reconoce el sistema y finalmente las

especificaciones del léxico y de la gramática correspondientes a la

implementación del núcleo del sistema.

Página 2 de 75

UOC Projecte Final de Carrera NQL (Natural Query Language)

Daniel Boerner

Contenido
1.Introducción............................................................................................6

1.1.Análisis del problema..........................................................................6

1.2.Objetivos...........................................................................................7

1.3.Estructura de la memoria.....................................................................8

2.Estudio de viabilidad.................................................................................9

2.1.Planificación.......................................................................................9

2.2.Resultados.......................................................................................12

2.3.Partes interesadas.............................................................................12

2.4.Recursos humanos............................................................................12

2.5.Presupuesto.....................................................................................12

2.6.Riesgos............................................................................................12

2.7.El procesamiento del lenguaje natural.................................................13

2.7.1.La ambigüedad en el procesamiento del lenguaje natural.................13

2.8.La sentencia SELECT de SQL..............................................................15

2.9.Requisitos del sistema.......................................................................20

2.10.Sistemas de referencia.....................................................................22

3.Diseño e implementación de NQL..............................................................23

3.1.Arquitectura del sistema....................................................................24

3.2.Entorno de desarrollo........................................................................26

3.3.Front end. Interfaz gráfico de usuario..................................................31

3.4.Núcleo. Analizadores léxico y sintáctico................................................33

3.4.1.Consultas en primera persona......................................................40

3.5.Back end. Base de datos....................................................................40

3.6.Tratamiento de errores......................................................................42

4.Limitaciones y pruebas del sistema...........................................................43

4.1.Limitaciones.....................................................................................43

4.2.Pruebas...........................................................................................43

5.Conclusiones..........................................................................................44

5.1.Ampliación.......................................................................................44

5.1.1.Correcciones y sugerencias..........................................................45

5.1.2.Portabilidad................................................................................46

5.2.Valoración personal...........................................................................47

5.3.Conclusión final................................................................................47

6.Referencias............................................................................................48

7.Anexos..................................................................................................49

Página 3 de 75

UOC Proyecto Final de Carrera NQL (Natural Query Language)

Daniel Boerner

Anexo I. Instalación y ejecución...............................................................49

Anexo II. Consultas reconocidas...............................................................50

Anexo III. Léxico JLex: archivo NQL.jlex....................................................54

Anexo IV. Gramática CUP: archivo NQL.cup................................................57

Página 4 de 75

UOC Projecte Final de Carrera NQL (Natural Query Language)

Daniel Boerner

Figuras
Figura 1. Diagrama temporal de la planificación del proyecto...........................11

Figura 2. Diagrama de casos de uso.............................................................21

Figura 3. Arquitectura del sistema NQL.........................................................24

Figura 4. Diagrama de secuencia del sistema NQL.........................................26

Figura 5. Estructura de desarrollo en Eclipse.................................................27

Figura 5. Estructura de desarrollo en Eclipse (continuación)............................28

Figura 6. Pantalla del interfaz gráfico de usuario............................................31

Figura 7. Diagrama de flujo de datos del núcleo del sistema............................33

Figura 8. Diagrama sintáctico correspondiente a la producción pregunta...........37

Figura 9. Diagrama sintáctico correspondiente a la producción PP_1................37

Figura 10. Diagrama sintáctico correspondiente a la producción PP_1_1...........38

Figura 11. Diagrama sintáctico correspondiente a la producción PE_1...............38

Figura 12. Diagrama sintáctico correspondiente a la producción PE_1_1...........39

Figura 13. Diagrama sintáctico correspondiente a la producción PA_1...............39

Figura 14. Diagrama sintáctico correspondiente a la producción PA_1_1...........40

Figura 15. Diagrama del modelo Entidad - Relación........................................41

Página 5 de 75

UOC Proyecto Final de Carrera NQL (Natural Query Language)

Daniel Boerner

1. Introducción

Cada día es más importante obtener información a partir de los datos almacenados en

bases de datos. La cantidad de usuarios que requieren información aumenta con el

tiempo y las consultas de información son cada vez más complejas. Todo ello conlleva a

una necesidad de simplificar y optimizar la interacción entre los usuarios y los sistemas

de información que procesan bases de datos.

En este sentido, un primer paso fue en su día el desarrollo, la normalización, la

implementación y la aceptación del lenguaje SQL. Aún conociendo este lenguaje y

disponiendo de cierta habilidad en su uso, para obtener la información deseada es

necesario un conocimiento de la estructura de la base de datos relacional que se

consulta. Esto presenta un importante obstáculo a usuarios que no disponen de dichos

conocimientos.

1.1. Análisis del problema

Desde finales de los años sesenta se investiga en sistemas NLIDB (Natural Language

Interfaces to Databases) que permiten al usuario acceder a la información almacenada

en una base de datos tecleando consultas expresadas en un lenguaje natural.

Aunque algunos de los sistemas desarrollados a mediados de los años ochenta

presentan impresionantes características aplicados a áreas determinadas, su aceptación

y comercialización no ha progresado mucho desde entonces.

En un principio, los usuarios de estos sistemas no necesitan aprender un lenguaje

artificial como SQL para interactuar con la base de datos. En la práctica, sin embargo,

los sistemas en cuestión suelen responder únicamente a un sub
  • Links de descarga
http://lwp-l.com/pdf16764

Comentarios de: NQL (Natural Query Language) (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad