Proyecto Autómatas
Premier League
&
Liga BBVA
Realizado por:
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
P. A: Premier League & Liga BBVA
• El problema.
• Arquitectura funcional.
– Jflex y Cup.
• Descripción del sistema.
• Objetivos alcanzados.
– Académicos.
– Técnicos.
• Tecnología usada y líneas futuras.
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
P. A: Premier League & Liga BBVA
• El problema.
• Arquitectura funcional.
– Jflex y Cup.
• Descripción del sistema.
• Objetivos alcanzados.
– Académicos.
– Técnicos.
• Tecnología usada y líneas futuras.
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
El Problema:
• Combinación de fuentes de información
heterogéneas.
• Nuestro dominio de información es la relativa a
los equipos de la premier league y la liga bbva.
• Utilización de una gramática propia para realizar
las consultas.
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
Gramática:
Gramática (S. Terminales, S. No Terminales, consulta, P)
- S. Terminales: SEMI, COMA, DONDE, AND, OR, NOT, PIZQUIERDO, PDERECHO, SUM, REST,
MULT, DIV, ID, NUMERO, PALABRA, OPCOND;
- S. No Terminales: lista_campos, condicion, expresion, consulta;
- P={
consulta ::= lista_campos DONDE condicion SEMI
|lista_campos:lc SEMI
lista_campos ::= ID COMA lista_campos
|ID:i
condicion ::= condicion AND condicion
|condicion OR condicion
|NOT condicion
|PIZQUIERDO condicion PDERECHO
|expresion OPCOND expresion
expresion ::= expresion SUM expresion
|expresion REST expresion
|expresion MULT expresion
|expresion DIV expresion
|PIZQUIERDO expresion PDERECHO
| NUMERO
|PALABRA
|ID
}
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
P. A: Premier League & Liga BBVA
• El problema.
• Arquitectura funcional.
– Jflex y Cup.
• Descripción del sistema.
• Objetivos alcanzados.
– Académicos.
– Técnicos.
• Tecnología usada y líneas futuras.
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
Arquitectura funcional:
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
Jflex:
• Analizador léxico.
• Reconoce tokens.
• Envía resultado al cup.
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
Jflex:
Patrón
Acción
;
Devolver symbol(sym.SEMI);
no
Devolver symbol(sym.NOT);
donde
Devolver symbol(sym.DONDE);
/
Devolver symbol(sym.DIV);
*
Devolver symbol(sym.MULT);
+
Devolver symbol(sym.SUM);
-
Devolver symbol(sym.REST);
{opcondicional}
Devolver symbol(sym.OPCOND+yytext()););
{Numero}
Devolver symbol(sym.NUMERO+yytext()););
y
Devolver symbol(sym.AND);
o
Devolver symbol(sym.OR);
{id}
Devolver symbol(sym.ID+yytext()););
,
Devolver symbol(sym.COMA);
.
Devolver NULL
(
Devolver symbol(sym.PIZQUIERDO);
)
Devolver symbol(sym.PDERECHO);
{palabra}
Devolver symbol(sym.PALABRA+yytext());
Cup:
• Analizador sintáctico.
• Recoge lo que le pasa el jflex y en base a
una gramática realiza la acción asociada.
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
Cup:
Ev(consulta):
Ev(lc)+”Where”+Ev(c) si consulta = lista_campos:lc DONDE condicion:c SEMI
Ev(lc) si consulta = lista_campos:lc SEMI
Ev(lista_campos):
Ev(i)+”,”+Ev(lc) si lista_campos = ID:i COMA lista_campos:lc
Ev(i) si lista_campos = ID:i
Ev(condicion):
Ev(c1)+ +"#AND#"+Ev(c2) si condicion = condicion:c1 AND condicion:c2
Ev(c1)+"#OR#"+Ev(c2) si condicion = condicion:c1 OR condicion:c2
"#NOT#"+Ev(c) si condicion = NOT condicion:c
"#(#"+Ev(c)+"#)#" si condicion = PIZQUIERDO condicion:c PDERECHO
Ev(e1)+"_"+Ev(o)+"_"+Ev(e2) si condicion = expresion:e1 OPCOND:o expresion:e2
Ev(expresión):
Ev(e1)+"+"+Ev(e2) si expresión = expresion:e1 SUM expresion:e2
Ev(e1)+"-"+Ev(e2) si expresión = expresion:e1 REST expresion:e2
Ev(e1)+"*"+Ev(e2) si expresión = expresion:e1 MULT expresion:e2
Ev(e1)+"/"+Ev(e2) si expresión = expresion:e1 DIV expresion:e2
"("+Ev(e)+")" si expresión = PIZQUIERDO expresion:e PDERECHO
Ev(n) si expresión = NUMERO:n
Ev(p) si expresión = PALABRA:p
"?"+Ev(i)+"?" si expresión = ID:i
P. A: Premier League & Liga BBVA
• El problema.
• Arquitectura funcional.
– Jflex y Cup.
• Descripción del sistema.
• Objetivos alcanzados.
– Académicos.
– Técnicos.
• Tecnología usada y líneas futuras.
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
Descripción general del sistema:
• El programa recoge una consulta,
realizada por el usuario, utilizando la
gramática ya descrita.
• Es interpretada por el sistema y a partir de
la misma construye dos consultas SQL.
• Recoge los resultados de las mismas y los
une para mostrárselos al usuario.
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
Uso y funcionamiento:
• Introducción de la consulta:
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
Traducción y transformación:
Consulta
Dividir en:
Traducir para formar dos
sentencias SQL:
Campos
y
Condición
SELECT nombre,ciudad FROM ligaesp.esp
WHERE
presupuesto*1.00>70000000
AND
ciudad<>"Barcelona";
SELECT name,ciudad FROM ligaing.ing
WHERE
presupuesto*1.12>70000000
AND
ciudad<>"Barcelona";
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
Unión de los resultados de ambas
consultas:
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
P. A: Premier League & Liga BBVA
• El problema.
• Arquitectura funcional.
– Jflex y Cup.
• Descripción del sistema.
• Objetivos alcanzados.
– Académicos.
– Técnicos.
• Tecnología usada y líneas futuras.
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
Académicos:
• Aplicar la teoría de gramáticas y
autómatas.
• Aplicar autómatas y lenguajes formales a
un problema real, en concreto, al acceso a
fuentes de información discrepantes.
• Facilitar el aprendizaje desarrollando el
trabajo en grupo.
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
Técnicos:
• Definición de un lenguaje orientado al
usuario, que permite realizar una consulta
unificada a dos bases de datos.
• Facilidad de representación de datos de
diversos orígenes, mostrándose
adaptadas al usuario.
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
P. A: Premier League & Liga BBVA
• El problema.
• Arquitectura funcional.
– Jflex y Cup.
• Descripción del sistema.
• Objetivos alcanzados.
– Académicos.
– Técnicos.
• Tecnología usada y líneas futuras.
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
Tecnología utilizada
(conclusiones):
• Se descarto la utilización de autómatas
por su complejidad y un menor aporte de
funcionalidades. Utilizando las
herramientas CUP y JFlex, las cuales
resolvieron el problema.
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
Líneas Futuras:
• Poder detectar la existencia de
información común en ambas tablas,
mostrando la máxima información
sin redundancia.
• Mostrar al usuario posibles
resultados válidos, pero no
confirmados al 100%.
• Que el sistema permita insertar y
datos en la base de datos, utilizando
una sentencia global.
• Mapear varias bases de datos y crear
los diccionarios automáticamente. Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
Proyecto Autómatas
Premier League
&
Liga BBVA
Realizado por:
Rodrigo de Diego Melón
Daniel Villarreal Camps
Enrique Márquez Turrillo
Descargar

Proyecto Autómatas