Quickribbon WeB dE iNfOrMaTiCa: Traductor de Lenguaje natural a sentecias SQL...!!!

Traductor de Lenguaje natural a sentecias SQL...!!!

Traductor: Parte I
En una de las materias de la faculta, tenía que crear un traductor de Lenguaje Natural (osea castellano) a Sentencias de SQL.
Lo cual fue bastantes entretenido, básicamente el sistema fue desarrollado en tres etapas.
A traves de pequeños informes le voy a ir comentando como se fue realizando todo el trabajo.

Basta de hablar y comencemos ...!!!

Los primero que hice fue en definir el formato en que se trabajara la forma de escribir la consulta. De manera que cuando el usuario ingrese la consulta, siempre debe ingresar el CAMPO luego la palabra DE seguido del nombre de la TABLA.

Ejemplos :
instrucción incorrecta: campo tabla (nombre clientes)
instrucción correcta : campo de tabla (nombre de cliente)

Ahora se debe definir la producción de gramática, que se van a utilizar en las Entradas:

consulta : prmonstrar compuesta
compuesta : simple
compuesta : compuesta coma simple
simple: campo prde tabla
prmostrar : 'mostrar'
coma : ' , '
campo : identificador
tabla : identificador
prde : ' de'
identificador : letra (letra)*
letra : [A-Z][a-z]
Atravez de estas gramatica, permite ingresar la siguiente consulta .
Ej. : mostrar apellido de clientes, nombre de clientes

Ahora creamos los atributos integrados, que corresponden a la sentencias en SQL .

consulta.a : prmostrar.a | compuesta.a
compuesta.a : compuesta.a | coma.a | simple.a
compuesta.a : simple.a
simple.a : tabla.a | punto.a | campo.a
prmostrar.a : 'SELECT '
coma.a : ' , '
punto.a : ' .'
campo.a : identificador.a
tabla.a : identificador.a
identificador.a : letra (letra)*
letra.a : [A-Z][a-z]


nota: prmostrar, prde, coma son palabra reservada

1 Comentario:

EVG dijo...

hola estoy realizando la practica y me asignaron un proyecto que consiste en traducir de lenguaje natrural a sql, tu dices que ya lo has hecho, pero nunca publicaste las demas partes del informe, si puedes enviame un copia o cualkier documentación que me pueda servir.
O cualkier persona que tenga documentacion es bienvenida.
Gracias