Gramáticas lógicas. Programación Lógica InCo



Documentos relacionados
PROLOG Inteligencia Artificial Universidad de Talca, II Semestre Jorge Pérez R.

Curso PHP Módulo 1 R-Luis

MLM Matemática Discreta

UNIDAD I: LÓGICA PROPOSICIONAL

Nociones Básicas de Sémantica: Semántica Denotacional

Cuantos números de tres cifras distintas se pueden formar con las nueve cifras significativas del sistema decimal?

ANÁLISIS SEMÁNTICO. Especificación formal: Semántica Operacional, semántica denotacional, semántica Axiomática, Gramáticas con Atributos.

BPMN Business Process Modeling Notation

CAPÍTULO 1 PROYECTO JURÍDICO PRÁCTICAS MONOPÓLICAS EN LOS CONTRATOS DE FRANQUICIAS EN MÉXICO

La lección de hoy es sobre Resolver Ecuaciones. El cuál es la expectativa para el aprendizaje del estudiante SEI.2.A1.1

Sistemas de amortización

Análisis de medidas conjuntas (conjoint analysis)

Medias Móviles: Señales para invertir en la Bolsa

GENERACIÓN DE CÓDIGO

Lógica de Predicados 1

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

1. MEDIDAS DE TENDENCIA CENTRAL

Temas de electricidad II

DOCUMENTOS PARA ELABORAR UNA SECUENCIA DIDÁCTICA SOBRE LA RECETA DE COCINA. (TEXTO PRESCRIPTIVO).

Ajustes Técnicos y Ajustes Comerciales

Estadística y Método Científico Hugo S. Salinas. Fuente:

SISTEMAS NUMERICOS CAMILO ANDREY NEIRA IBAÑEZ UNINSANGIL INTRODUCTORIO A LA INGENIERIA LOGICA Y PROGRAMACION

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas


ANÁLISIS DE DATOS NO NUMERICOS

MICROECONOMÍA II PRÁCTICA TEMA III: MONOPOLIO

Universidad Autónoma de Baja California Facultad de Ingeniería Mexicali

A estas alturas de nuestros conocimientos vamos a establecer dos reglas muy prácticas de cómo sumar dos números reales:

ESTRUCTURAS ALGEBRAICAS 1

Cómo crear un libro en Moodle?

Guía para comparar presupuestos de Traducción

Toda base de datos relacional se basa en dos objetos

Clases de apoyo de matemáticas Fracciones y decimales Escuela 765 Lago Puelo Provincia de Chubut

SOLUCIONES A LAS ACTIVIDADES DE CADA EPÍGRAFE

Capítulo 1 Lenguajes formales 6

Módulo 9 Sistema matemático y operaciones binarias

Comparación entre Active Reports, Crystal Reports, y MS Reporting Services

Funciones Condicionales

La Evaluación como Proceso Comparación de Costos y Beneficios. Pedro Misle Benítez / Gustavo Briceño Torres

Semántica española. César Antonio Aguilar Facultad de Lenguas y Letras 26/05/2015. caguilara@uc.cl

Ejercicios Resueltos Combinatoria. 1. De cuántas maneras pueden sentarse 10 personas en un banco si hay 4 sitios disponibles?

CAPITULO 3 VRML-JAVA-WWW

Aplicaciones lineales

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Antes de empezar con la resolución de este caso vamos a analizar las funciones financieras que vamos a utilizar.

Semana 08 [1/15] Axioma del Supremo. April 18, Axioma del Supremo

Lección 9: Polinomios

Publicación de la Cifra de Desocupación Resultados del Tercer Trimestre de 2014 INSTITUTO NACIONAL DE ESTADISTICAS Y CENSOS

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

Nota 2. Luis Sierra. Marzo del 2010

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

ESTRUCTURAS CONDICIONALES EN PHP: SWITCH, CASE, BREAK. EJEMPLOS DE USO Y EJERCICIOS RESUELTOS. (CU00820B)

IIC Matemática Discreta

Trabajo Semanal Alternativo

Programa de Evaluación del estado de Nueva York Contenidos Básicos Comunes de 3.º a 8.º Evaluación de Artes del idioma inglés

COMBINATORIA VARIACIONES. Las variaciones son aquellas formas de agrupar los elementos de un conjunto teniendo en cuenta que:

INGLÉS ORAL E INGLÉS GRAMATICAL 1º BACHILLERATO

Operación de Microsoft Excel

Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades:

Curso creado por Enrique Areyán.

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS

x

Covarianza y coeficiente de correlación

Relación entre formación y empleo

XVI Olimpiada Colombiana de Computación Nivel Superior Prueba Final Dia 2

COMUNICACIÓN. El Folleto como medio de comunicación impreso. L.C.C. Ojuky del Rocío Islas Maldonado

Cómo encontrar en la Biblia lo que usted desea

Sistemas de numeración y aritmética binaria

Ecuaciones de primer grado con dos incógnitas

TIPO DE CAMBIO, TIPOS DE INTERES Y MOVIMIENTOS DE CAPITAL

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Centro de Capacitación en Informática

15 CORREO WEB CORREO WEB

ANÁLISIS DE BONOS. Fuente: Alexander, Sharpe, Bailey; Fundamentos de Inversiones: Teoría y Práctica; Tercera edición, 2003

Arquitectura de Aplicaciones

Generación de Números Pseudo-Aleatorios

Análisis de propuestas de evaluación en las aulas de América Latina

TUTORIAL DE PHP. M. en C. Erika Vilches. Parte 2.

Unidad: Representación gráfica del movimiento

Un juego curioso con conexiones interesantes

Matemáticas Básicas para Computación. Sesión 7: Compuertas Lógicas

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

MATERIAL DE CLASE-4: Estructura del sujeto (II). Sujeto e impersonalidad. Trabaja detenidamente con:

FUNCIONES LOGICO-VERBALES

UNIDAD DE APRENDIZAJE IV

SOLUCIÓN CASO GESTIÓN DE PERSONAL I

ORMEN / Manuales. Venta de Lotería. Manual de Operación. Serie de Manuales del Departamento Técnico ORMEN S.A. NÚMERO 23

- MANUAL DE USUARIO -

Lección 24: Lenguaje algebraico y sustituciones

CAPÍTULO IV. Análisis e interpretación de resultados. 4.1 Relación entre las universidades y el gusto por los distintos tipos de comida.

GLOSARIO DE COMUNICACIÓN AUMENTATIVA Y ALTERNATIVA

GUIA DE ALCANCE JURÍDICO VENTAS ATADAS Y VENTAS CONJUNTAS

Tarea 4 Soluciones. la parte literal es x3 y 4

CAPÍTULO 5 GRACILEWeb: Traductor Japonés-Inglés en Internet

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

7.- Seleccionando funciones friend o funciones miembro para sobrecarga de operadores.

LICENCIATURA EN EDUCACION FISICA RECREACION Y DEPORTES

Transcripción:

Gramáticas lógicas Programación Lógica InCo

DCG: Definite clause grammars Gramáticas escritas con una sintaxis similar a la usual que se traducen a cláusulas definidas y, por lo tanto, a predicados Prolog.

DCG: Definite clause grammars Ejemplo: Gramática para el lenguaje regular a* b* c* s --> a, b, c. a --> [a], a. a --> []. b --> [b], b. b --> []. c --> [c], c. c --> [].

DCG: Definite clause grammars Sintaxis: Los símbolos no terminales se representan usando átomos Prolog. Los símbolos terminales se encierran entre [ ]. Los símbolos de la parte derecha de la regla van separados por comas. Cada regla termina con un punto.

DCG: Definite clause grammars Las DCGs permiten manejar argumentos para los símbolos no terminales y llamadas a predicados dentro de las reglas. Estas extensiones permiten representar lenguajes sensibles al contexto con gramáticas muy similares a las anteriores.

DCG: Definite clause grammars Gramática para el lenguaje sensible al contexto a N b N c N s --> a(n), b(n), c(n). a(n) --> [a], a(n1), {N is N1 + 1}. a(0) --> []. b(n) --> [b], b(n1), {N is N1 + 1}. b(0) --> []. c(n) --> [c], c(n1), {N is N1 + 1}. c(0) --> [].

DCG para el lenguaje natural Gramática para una estructura simple del español: El niño corre. o gn gv art sust verbo

DCG para el lenguaje natural Gramática para la oración El niño corre. oracion --> gn, gv. gn --> art, sust. gv --> verbo. art --> [el]. sust --> [niño]. verbo --> [corre].

DCG para el lenguaje natural Esta gramática solamente reconoce la oración del ejemplo. Para que reconozca otras oraciones con la misma estructura hay que generar más reglas para art, sust y verbo. El hombre lee. El estudiante estudia. El niño come. Qué pasa si agregamos además : Los niños leen?

DCG para el lenguaje natural Para que la gramática reconozca la oración: Los niños corren. Pero no reconozca: * El niños corre. * El niño corren.

DCG para el lenguaje natural Para que la gramática reconozca la oración: Los niños corren. Pero no reconozca: * El niños corre. * El niño corren. Hay que manejar un argumento extra que garantice la concordancia de número, por un lado, entre gn y gv, por otro lado, dentro del gn.

DCG para el lenguaje natural Gramática para oraciones con variación en el número oracion --> gn(n), gv(n). gn(n) --> art(n), sust(n). gv(n) --> verbo(n). art(sg) --> [el]. art(pl) --> [los]. sust(sg) --> [niño]. sust(pl) --> [niños]. verbo(sg) --> [corre]. verbo(pl) --> [corren].

DCG para el lenguaje natural Para controlar la concordancia de género, se trabaja con un nuevo argumento. En este caso, sólo se chequea la concordancia entre art y sust.

DCG para el lenguaje natural Llamadas a predicados para introducir el léxico Podemos tener una sola regla para cada categoría léxica: sust(n) --> [Sust], {es_sust(n, Sust)}. E introducir el léxico como hechos: es_art(sg, el). es_art(pl, los). es_sust(sg, niño).

DCG para el lenguaje natural Gramática con una sola regla por categoría y llamadas a predicados oracion --> gn(n), gv(n). gn(n) --> art(n), sust(n). gv(n) --> verbo(n). gv(n) --> verbo(n), gn(n1). art(n) --> [Art], {es_art(n, Art)}. sust(n) --> [Sust], {es_sust(n, Sust)}. verbo(n) --> [Ver], {es_ver(n, Ver)}.

DCG para el lenguaje natural Gramática con gv más complejo : Los niños comen el postre. oracion --> gn(n), gv(n). gn(n) --> art(n), sust(n). gv(n) --> verbo(n). gv(n) --> verbo(n), gn(_). art(sg) --> [el]. art(pl) --> [los]. sust(sg) --> [niño]. sust(pl) --> [niños]. sust(sg) --> [postre]. sust(pl) --> [postres]. verbo(sg) --> [come]. verbo(pl) --> [comen]. Se controla concordancia sujeto verbo. Puede haber anomalías semánticas

DCG para el lenguaje natural El símbolo inicial puede tener argumentos: oracion(n) --> gn(n), gv(n).......

DCG: Traducción a predicados Traducción de las DCGs a predicados comunes. El intérprete traduce las DCGs (las reconoce por sintaxis) a predicados Prolog. Asumimos que la gramática trabaja sobre una oración representada como lista de palabras. Las palabras son términos ya que no se analiza su estructura interna. Cada símbolo no terminal va a generar un predicado.

DCG: Traducción a predicados Una traducción natural sería: oracion(o) :- append(l1, L2, O), gn(l1), gv(l2). gn(l) :- append(l1, L2, L), art(l1), sust(l2). gv(l) :- verbo(l). art([el]). sust([niño]). verbo([corre]).

DCG: Traducción a predicados PROBLEMA: Ineficiencia del predicado append. Para la consulta:?- oracion([el, niño, corre]). Se instancia la variable O pero L1 y L2 quedan sin instanciar. Esto genera las siguientes posibilidades: L1 = [] L1 = [el] L1 = [el, niño] L2 = [el, niño, corre] L2 = [niño, corre] L2 = [corre] Recién en el tercer intento la cláusula gn(l1) va a ser verdadera. Ídem para art y sust.

DCG: Traducción a predicados Solución: Se representan las listas como 2 argumentos: La lista completa El resto oracion(o, R) :- gn(o, R1), gv(r1, R).

DCG: Traducción a predicados [ oracion ] [ resto ] [ gn ] [ resto1 ] [ gv ] [ resto ] Se llama al predicado instanciando R con [ ], entonces: [ oracion ] [ ] [ gn ] [ resto1 ] [ gv ] [ ]

DCG: Traducción a predicados El programa completo queda: oracion(o, R) :- gn(o, R1), gv(r1, R). gn(l, R) :- art(l, R1), sust(r1, R). gv(l, R) :- verbo(l, R). art([el R], R). sust([niño R], R). verbo([corre R],R).

DCG: Traducción a predicados Si agregamos control de concordancia de número, el predicado oracion quedaría: oracion(o, R) :- gn(o, R1, N), gv(r1, R, N).

DCG: Traducción a predicados Consultas: oracion([el,niño, corre],[ ]). oracion(o, [ ]). Usando el predicado phrase/2: phrase(oracion, [el niño,corre]). phrase(oracion, O). Probar phrase/3.

DCG: Otros ejemplos 1. Números escritos con letras, del cero al cien Cero, dos, veinticinco, cuarenta y ocho, 2. Cambio de formato de fecha 3/2/2004 3 de enero de 2004

DCG: Reconocimiento y generación Analizar si todos los ejemplos que vimos sirven tanto para reconocer como para generar tiras.

Referencias Principales Clocksin, W. F. and Mellish, C. S., Programming in Prolog, 3 rd Edition, Springer-Verlag, New York, 1987. Sterling, L. and Shapiro, E., The Art of Prolog, 2 nd Edition, MIT Press, Cambridge, Massachusetts, 1994. Complementarias O'Keefe, R. A., The Craft of Prolog, MIT Press, Cambridge, Massachusetts, 1990.