Práctica 1 Sistema Expertos: CLIPS Manejo de Hechos Ordenados y No-Ordenados A continuación, encontrarás una serie de acciones a realizar en CLIPS. Anota la solución para cada apartado tras haberla probado en el intérprete de CLIPS en tu VM. 1. Define una plantilla denominada persona que represente una relación de personas con los siguientes cuatro campos simples: nombre, apellido, color- ojos y altura. CLIPS>(deftemplate persona "Relación persona" (slot nombre) (slot apellido) (slot color-ojos) (slot altura) ) 2. Define una plantilla persona2 pero con campos multislot para nombre y apellidos. CLIPS> (deftemplate persona2 "Relacion persona" (multislot nombre) (multislot apellido) (slot color-ojos) (slot altura) ) 3. Añade 2 hechos de tipo persona con assert. Invéntate la información de los campos nombre (cadena de caracteres, como por ejemplo “Juan”), apellido (otra cadena de caracteres), color-ojos (símbolo, como por ejemplo negros) y altura (entero, como por ejemplo 179). CLIPS>(assert ( persona (nombre "Juan") (apellido "García") (color-ojos marrones) Modelos de Inteligencia Artificial (altura 189) ) ) <Fact-1> CLIPS>(assert (persona (nombre "Marta") (apellido "Fernández") (color-ojos marrones) (altura 165) ) ) <Fact-2> 4. Vuelve a introducir los datos de la segunda persona. ¿Qué pasa? CLIPS>(assert (persona (nombre "Marta") (apellido "Fernández") (color-ojos marrones) (altura 165) ) ) <Fact-2> 5. Muestra todos los hechos. CLIPS>(facts) f-1 (persona (nombre "Juan") (apellido "García") (color-ojos marrones) (altura 189)) f-2 (persona (nombre "Marta") (apellido "Fernández") (color-ojos marrones) (altura 165)) For a total of 2 facts. 6. Muestra todos los hechos desde el primero hasta el número 1. CLIPS>(facts 0 2) f-1 (persona (nombre "Juan") (apellido "García") (color-ojos marrones) (altura 189)) f-2 (persona (nombre "Marta") (apellido "Fernández") (color-ojos marrones) (altura 165)) For a total of 2 facts. 7. Muestra sólo el hecho número 1. Modelos de Inteligencia Artificial CLIPS>(facts 1) f-1 (persona (nombre "Juan") (apellido "García") (color-ojos marrones) (altura 189)) 8. Muestra los hechos desde el número 1 hasta el 1, y como máximo 0 hechos. CLIPS>(facts 1 1 0) 9. Muestra los hechos desde el número 0 hasta el 1, y como máximo 0 hechos. CLIPS>(facts 0 1 0) 10. Muestra los hechos desde el número 1 hasta el 1, y como máximo 1 hecho. CLIPS>(facts 1 1 1) f-1 (persona (nombre "Juan") (apellido "García") (color-ojos marrones) (altura 189)) For a total of 1 fact. 11. Borra el hecho número 1. CLIPS>(retract 1) 12. Vuelve a borrar el hecho número 1 … ¿qué ocurre? CLIPS>(retract 1) [PRNTUTIL1] Unable to find fact f-1. 13. Muestra todos los hechos. CLIPS>(facts) f-2 (persona (nombre "Marta") (apellido "Fernández") (color-ojos marrones) (altura 165)) For a total of 1 fact. Modelos de Inteligencia Artificial 14. Intenta borrar todos los hechos, sin especificar para ello ningún índice .. ¿qué ocurre? CLIPS>(retract) [ARGACCES1] Function 'retract' expected at least 1 argument. 15. Borra el hecho número 0. CLIPS>(retract 0) [PRNTUTIL1] Unable to find fact f-0. CLIPS> 16. Muestra ahora todos los hechos. CLIPS>(facts) f-2 (persona (nombre "Marta") (apellido "Fernández") (color-ojos marrones) (altura 165)) For a total of 1 fact. 17. Vuelve a añadir 2 hechos de tipo persona con “assert”. CLIPS>(assert ( persona (nombre "Antonio") (apellido "Gutierrez") (color-ojos azules) (altura 190) ) ) CLIPS>(assert ( persona (nombre "Ana") (apellido "Pérez") (color-ojos verdes) (altura 170) ) ) <Fact-4> 18. Modifica el primer hecho cambiando la altura de la persona y comprueba que Modelos de Inteligencia Artificial se ha cambiado. CLIPS>(modify 2 (altura 174)) <Fact-2> CLIPS> (facts) f-2 (persona (nombre "Marta") (apellido "Fernández") (color-ojos marrones) (altura 174)) 19. Modifica el segundo hecho cambiando el color de los ojos de la persona y comprueba que se ha cambiado. CLIPS>(modify 3 (color-ojos negros)) <Fact-3> CLIPS> (facts 3) f-3 (persona (nombre "Antonio") (apellido "Gutierrez") (color-ojos negros) (altura 190)) f-4 (persona (nombre "Ana") (apellido "Pérez") (color-ojos verdes) (altura 170)) For a total of 2 facts. 20. Duplica el tercer hecho cambiando el nombre de la persona. CLIPS>(duplicate 2 (nombre "Aitana")) <Fact-5> 21. Duplica el primer hecho cambiando la altura de la persona. CLIPS>(duplicate 2 (altura 171)) <Fact-6> 22. Muestra todos los hechos. CLIPS>(facts) f-2 (persona (nombre "Marta") (apellido "Fernández") (color-ojos marrones) (altura 174)) Modelos de Inteligencia Artificial f-3 (persona (nombre "Antonio") (apellido "Gutierrez") (color-ojos negros) (altura 190)) f-4 (persona (nombre "Ana") (apellido "Pérez") (color-ojos verdes) (altura 170)) f-5 (persona (nombre "Aitana") (apellido "Fernández") (color-ojos marrones) (altura 174)) f-6 (persona (nombre "Marta") (apellido "Fernández") (color-ojos marrones) (altura 171)) For a total of 5 facts. 23. Activa mediante “watch” la depuración de hechos CLIPS>(watch facts) 24. Modifica nuevamente la altura de la primera de las personas. ¿Cómo hay que interpretar la salida por pantalla en base a la acción efectuada? CLIPS>(modify 2 (altura 180)) <== f-2 (persona ... (altura 174)) ==> f-2 (persona ... (altura 180)) <Fact-2> 25. ¿Cómo podemos desactivar la salida ampliada de hechos para volver al estado previo? CLIPS> (unwatch facts) 26. Borra todos los hechos almacenados hasta el momento y comprueba que sea así. CLIPS> (retract 2 3 4 5 6) 27. Declara dos personas nuevas usando “deffacts” en lugar de “assert” y comprueba que constan como hechos … ¿aparecen? Modelos de Inteligencia Artificial CLIPS> (deffacts persona "Relación persona" (persona (nombre "Julián") (apellido "Martínez") (color-ojos azules) (altura 195)) (persona (nombre "Verónica") (apellido "Zamora") (color-ojos verdes) (altura 165))) 28. Si los hechos no aparecen listados después de introducir “facts”, necesitarás introducir un nuevo comando … ¿cuál en concreto? CLIPS>(unwatch facts) CLIPS> (reset) CLIPS> (facts) f-1 (persona (nombre "Julián") (apellido "Martínez") (color-ojos azules) (altura 195)) f-2 (persona (nombre "Verónica") (apellido "Zamora") (color-ojos verdes) (altura 165)) For a total of 2 facts. Modelos de Inteligencia Artificial