Costruzione di un sistema a regole per la gestione di un albero genealogico
Step 1: creazione file .clp
1)Creare un file albero.clp in cui si inserianno fatti e regole per la gestione di un albero
genealogico
2)Usare il costrutto deffacts per asserire fatti ordinati del tipo
λ (genitore anna carlo) λ (uomo carlo)
λ (donna anna)
N.B.: l'utilizzo del comando assert piuttosto che deffacts in un file clp genera un messaggio di errore al momento del caricamento del file
Step 2
λ Caricare il file albero.clp usando il comando
load o da menuFile--> load
λ Eseguire nell'ordine i comandi facts, reset, facts λ Scrivere nel file albero.clp la regola 'padre'
(defrule padre
(genitore ?x ?y) (uomo ?x) => (assert (padre ?x ?y)) )
λ Eseguire il comando (clear) dal prompt
λ Ricaricare il file albero.clp
λ Eseguire nell'ordine i comandi: reset, facts, run,
Step 3
λ Definire nel file albero.clp le altre regole per
madre, nonno, nonna, zio, zia, cugino, fratello (nipote, cognato...)
λ ATTENZIONE: le relazioni cugino e fratello
sono simmetriche quindi....
λ Esercizio: Ristrutturare la base di conoscenza,
definendo i fatti come template
a) Definire i template: genitore, sesso
b) Ridefinire il deffacts in base ai template c) Ridefinire le regole