Introduccion PROLOG
1. ¿Qué es el PROLOG?
2. Los elementos de PROLOG
3. Un programa de ejemplo
4. Ejercicios propuestos
1. ¿Qué es el PROLOG?
1.1. Un poco de historia
PROgramming in LOGic
Desarrollado en Europa en la década de los años
70 (Edimburgo y Marsella)
Base del proyecto 5ª Generación en Japón
Aplicaciones IA
En EEUU LISP
PROLOG hubiese sido su lenguajemáquina
Estándar ISO desde 1996: basándose en la
sintaxis de Edimburgo
Prácticas de IA-I
Tema 1. Introducción al Prolog
1.2. PROLOG y la programación lógica
Paradigmas de programación: imperativa,
orientación a objetos, funcional y declarativa
Programación declarativa frente a imperativa
Orientada a objetivos vs orientada a datos
Enfoque what-to-do frente a how-to-do
Sólo seespecifican las propiedades del problema,
no como alcanzar la solución
Programación lógica
Conjunto de fórmula + motor de inferencias
Prácticas de IA-I
Tema 1. Introducción al Prolog
1.2. PROLOG y la programación lógica
PROLOG
Programa Prolog: conjunto de cláusulas Horn
Ejecución: inferencias lógicas (búsqueda)
Puede que no se encuentre la solución óptima o de
la forma máseficiente
Influye el orden de las cláusulas
Además, tiene cláusulas ejecutables
Prácticas de IA-I
Tema 1. Introducción al Prolog
1.2. PROLOG y la programación lógica
Resolución de problemas planteados en base a
objetos y las relaciones entre ellos
Los hechos describirán propiedades de los objetos
tiene(juan, libro)
Las reglas describirán relaciones entre objetos
Objetos: juan, libro
Dos personas son hermanas si ambas son mujeres y
tienen los mismos padres
Programa en PROLOG
Prácticas de IA-I
Declarar hechos sobre objetos (tuplas de relaciones)
Definir reglas (describir relaciones)
Hacer consultas sobre objetos o relaciones en la Base de
Conocimiento
Tema 1. Introducción al Prolog
1.3. SWI-PROLOG
Software de libre disposición
http://www.swi-prolog.org/
Basado en la sintaxis de Edimburgo
Tradicionalmente interpretado, ahora
compilado
Disponible manual de referencia
Prácticas de IA-I
Tema 1. Introducción al Prolog
2. Elementos de Prolog
1.
2.
3.
4.
5.
Hechos
Consultas
Variables
Conjunciones
Reglas
Prácticas de IA-I
Tema 1. Introducción al Prolog
2.1. Hechos
Un hecho describe una propiedad de un objeto
Elprogramador debe definir la interpretación de los
objetos y las relaciones entre ellos:
Ejemplo: el diamante es valioso
Hecho:
valioso(diamante).
Objetos: juan, libro
Relación:
tiene(juan, libro).
El orden de la relación es importante
Prácticas de IA-I
Tema 1. Introducción al Prolog
2.1. Hechos
Ejemplo:
Objetos: Juan, Maria, Cocido, Vino.
Relaciones: A
Hechos:
PROLOG:
Prácticas de IA-I
A Juan le gusta el cocido
A Juan le gusta el vino
A Maria le gusta el vino
le_gusta_a(juan, cocido).
le_gusta_a(juan, vino).
le_gusta_a(maria, vino).
Tema 1. Introducción al Prolog
2.1. Hechos
El nombre de los objetos y relaciones
empiezan por minúscula
Primero se escribe la relación y después los
objetos a modo de argumento
Sepermite “_” para separar caracteres
Al final debe aparecer un punto
Prácticas de IA-I
Tema 1. Introducción al Prolog
2.1. Hechos
Los predicados pueden ser:
Monádicos
valioso(diamante).
mujer(ana).
Poliádicos
tiene(juan, libro).
da(juan, libro, maria).
Prácticas de IA-I
El diamante es valioso
Ana es una mujer.
Juan tiene el libro.
Juan da el libro a María.
Tema 1. Introducciónal Prolog
2.2. Consultas
Comienzan por:
?Equivale a preguntar: “la consulta se deduce de la
base de conocimiento (hechos + reglas).”
Ante una consulta, PROLOG intenta hacer un
matching sobre la base de conocimiento:
Prácticas de IA-I
Mismo predicado
Mismo número de argumentos
Mismos argumentos: términos / variables (instanciadas)
Tema 1. Introducción al Prolog
2.2....
Regístrate para leer el documento completo.