Tools e ambienti per lo sviluppo di ontologie per il ... - CHERSI/libri
Tools e ambienti per lo sviluppo di ontologie per il ... - CHERSI/libri
Tools e ambienti per lo sviluppo di ontologie per il ... - CHERSI/libri
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
PROLOG e la conoscenza implicita<br />
Inserire <strong>il</strong> tito<strong>lo</strong> della tesi <strong>di</strong> laurea come intestazione<br />
Nelle regole e nei fatti talvolta è presente della "conoscenza implicita": essa è nel<br />
significato del pre<strong>di</strong>cato, ad esempio dati i fatti prima(a,b) e prima(b,c), la conoscenza<br />
implicita è prima(a,c) <strong>per</strong>ché prima è una relazione <strong>di</strong> or<strong>di</strong>ne, o nelle relazioni tra fatti<br />
<strong>di</strong>versi, ad esempio dai fatti e dalle regole evidenziati nei paragrafi precedenti si capisce<br />
che a Mario piacciono le maserati, e a Elena piacciono tutte le automob<strong>il</strong>i. Ma non c'è<br />
una regola o un fatto che <strong>di</strong>ca qualcosa del genere: se a Tizio piacciono le Automob<strong>il</strong>i, la<br />
Marca dell'automob<strong>il</strong>e preferita non è specificata. Pro<strong>lo</strong>g <strong>per</strong>mette <strong>di</strong> generare dei fatti,<br />
tramite <strong>il</strong> pre<strong>di</strong>cato assert(...), quin<strong>di</strong> potrebbe generare <strong>il</strong> fatto<br />
marca_preferita(<strong>per</strong>sona,marca), e poi elencar<strong>lo</strong>.<br />
Le regole relative ad Anna e Car<strong>lo</strong> fanno riferimento al tipo <strong>di</strong> auto, quin<strong>di</strong> se la regola è<br />
verificata (Pro<strong>lo</strong>g ha trovato la Marca dell'automob<strong>il</strong>e) si possono mo<strong>di</strong>ficare le due<br />
precedenti regole, come segue:<br />
piace(anna,auto): tipo(Automob<strong>il</strong>e,fam<strong>il</strong>iare),<br />
tipo(Automob<strong>il</strong>e,ut<strong>il</strong>itaria),<br />
assert(marca_preferita(anna,Automob<strong>il</strong>e));<br />
assert(marca_preferita(anna,Automob<strong>il</strong>e)).<br />
piace(car<strong>lo</strong>,auto): tipo(Automob<strong>il</strong>e,sportiva),Automob<strong>il</strong>e "ferrari",<br />
assert(marca_preferita(car<strong>lo</strong>,Automob<strong>il</strong>e)).<br />
Questo vale solamente <strong>per</strong> Anna e Car<strong>lo</strong>, <strong>per</strong> tutti gli altri occorre aggiungere (in coda)<br />
un'ulteriore regola:<br />
piace(X,auto):tipo(Auto,_),X "anna",X "car<strong>lo</strong>",<br />
assert(marca_preferita(X,Auto)).<br />
Infine occorre scrivere le regole "procedurali" <strong>per</strong> eseguire <strong>il</strong> tutto, un esempio è <strong>il</strong><br />
seguente:<br />
121