Este documento resume los conceptos básicos de Prolog como lenguaje de programación lógica. Los hechos son la información básica, mientras que las reglas describen el comportamiento del programa en función de los hechos existentes. Las reglas tienen condiciones y acciones, y la estructura básica de una regla es (condición) => (acción). También presenta conceptos como definición de hechos, reglas, plantillas, variables y restricciones.
1. Sistemas Expertos
Resumen Prolog
Andrade Zambrano David Alejandro
10 A Informática
2. Paradigma de la programación basada en reglas
Los hechos son las pieza básica de información , mientras que las reglas describen el
comportamiento del programa en función de los hechos existentes.
Ejemplo de una regla: <Condiciones> => <Acciones>
Las condiciones pueden darse por la: Existencia de cierta información, Ausencia de
cierta información y Relación entre datos; mientras que las acciones pueden Incluir
nueva información, Eliminar información o Mostrar información en Pantalla.
Estructura de una hecho: (<símbolo><datos>*)
1. Ej.: (conjunto a b 1 2 3)
2. (1 2 3 4) no es un hecho valido.
La acción de añadir hechos: (assert <hecho>*)
Hechos iniciales: (deffacts <nombre><hecho>*)
3. Definición de reglas
Estructura de una regla
(defrule <nombre><condición>*=><acción>*)
<condición> := <hecho>
Ej.:
(defrule mamifero-1 (tiene-pelos)=>(assert (es-mamífero)))
Cargar el contenido de un archivo
Se utiliza la siguiente metodología: (load <archivo>)
Trazas
Hechos añadidos y eliminados: (watch facts)
Activación y desactivación de reglas: (watch activations)
Utilización de reglas: (watch rules).
Inicialización: (reset)
Ejecución: (run)
Limpiar base de conocimiento: (clear)
Ayuda del Sistema: (help)
4. Ejemplo de base de conocimiento
(deffacts hechos-iniciales
(tiene-pelos)
(tiene-pezuñas)
(tiene-rayas-negras))
(defrule mamifero-1
(tiene-pelos)
=>
(assert (es-mamífero)))
(defrule mamifero-2
(da-leche)
=>
(assert (es-mamífero)))
(defrule ungulado-1
(es-mamífero)
(tiene-pezuñas)
=>
(assert (es-ungulado)))
5. El modelo de ejecución en Estructura de una plantilla :
CLIPS
1. Base de hechos (deftemplate <nombre><campo>*)
2. Base de reglas
3. Activación de reglas y agenda <campo> := (slot <nombre-campo>)
4. Disparo de reglas
Ej.:
(deftemplate persona
(slot nombre)
(slot ojos))
Variables: ?x, ?y, ?gv32
Toman un valor simple
6. Restricciones:
Son condiciones sobre las variables que se comprueban en el momento de velicar las
condiciones de una regla.
Algunos tipos de restricciones:
Negativas: (dato ?x&~a)
Disyuntivas: (dato ?x&a|b)
Conjuntivas: (dato ?x&~a&~b)
La acción de presentar información en pantalla:
(printout t <dato>*)