• Non ci sono risultati.

Alcuni suggerimenti per la Realizzazione

N/A
N/A
Protected

Academic year: 2021

Condividi "Alcuni suggerimenti per la Realizzazione"

Copied!
12
0
0

Testo completo

(1)

Sistema Esperto per il Consiglio

di vini data una portata

(2)

Struttura della conoscenza

• Template per i vini

• Template per la generalizzazione della carne

• Template per il pesce

• Template per i primi

(3)

Struttura dei Template

(deftemplate vino

(slot nome)

(slot colore)

(slot gusto)

(slot prezzo)

(slot annata)

(multislot abbinamenti)

)

(4)

Struttura dei Template

(deftemplate carne

(slot tipo_carne)

%si generalizza solo sul tipo

(multislot modo_cottura)

(multislot istanza_tipo_carne))

(deftemplate pesce

(multislot istanze_pesce))

(deftemplate primi_piatti

(multislot istanze_primi))

(5)

Regole...

Regola per la scelta della portata (primo, secondo..)

(defrule scelta_pasto

(not (scelto pasto ?))

=>

(bind ?pasto (Domanda "Pasto scelto: "

antipasto carne pesce formaggio) )

(assert (scelto pasto ?pasto)))

(6)

…Regole Carne...

Regola che consiglia il vino per la carne, incluso quelli indicati solo per un certo tipo di carne o per un piatto

(defrule risposta_vino_su_carne (scelto pasto carne)

(carne (tipo_carne ?tipo_carne) (modo_cottura $?modo_cottura)

(istanza_tipo_carne $?istanza_tipo_carne) ) (vino (abbinamenti $?abb &: (or (member$

carne ?abb) (member$ ?tipo_carne ?abb)

(Appartiene ?abb ?modo_cottura)(Appartiene ? abb ?istanza_tipo_carne))))) (nome ?

nome_vino)) =>

(printout t "Vini ADEGUATI per la carne: " ? nome_vino crlf))

(7)

…Regole...

Funzione appartiene: restituisce vero se almeno un elemento del 1 multislot appartiene al 2, falso altrimenti

(deffunction Appartiene (?multislot_elementi ?multislot_insieme_origine) (bind ?length (length$ ?multislot_elementi)) ( if (<> ?length 0) then

(while (<> ?length 0) do

(bind ?slot (nth$ ?length ?multislot_elementi)) (if (member$ ?slot ?multislot_insieme_origine) then (bind ?appartenenza (member$ ?slot

?multislot_insieme_origine)) (bind ?length 0)

else (bind ?appartenenza FALSE)

(bind ?length (- ?length 1)))) else (bind ?appartenenza FALSE))

(8)

…Regole Carne...

Regola per la scelta del tipo di carne (bianca/rossa)

(defrule scelta_tipo_carne (not (scelto carne ?)) (scelto pasto carne) =>

(bind ?tipo_carne (Domanda "Che tipo di carne vuoi ?" rossa bianca))

(assert (scelto carne (sym-cat carne_ ?tipo_carne))))

• La regola per il consiglio del vino sarà la stessa del caso precedente con in meno la condizione su “carne”

• Analoga alla regola di cui sopra sarà invece la regola per la domanda sul modo di cottura della carne

(9)

…Regole Carne...

(defrule risposta_vino_su_scelta_cottura_carne

(scelto carne ?tipo_carne)

(scelto carne ?tipo_carne ?modo_cottura)

(carne (tipo_carne ?tipo_carne) (modo_cottura ?modo_cottura)

(istanza_tipo_carne $?istanza_tipo_carne)) (vino (abbinamenti $?abb &: (or (member$

?modo_cottura ?abb)(Appartiene ?abb

?istanza_tipo_carne))) (nome ?nome_vino) ) =>

(printout t "Vino adeguati per la " ? modo_cottura ": " ?nome_vino crlf))

• Si noti che ora ?modo_cottura non è più un multislot ma un semplice slot perché è stato scelto

(10)

…Regole Carne...

• La regola per la domanda sull’istanza della carne da scegliere.

• La regola per il consiglio del vino sull’istanza scelta sarà:

(defrule risposta_vino_su_scelta_istanza_carne

(scelto carne ?tipo ?cottura ?istanza)

(vino (abbinamenti $?abb &: (member$ ?istanza ? abb)) (nome ?nome_vino) )

=>

(printout t "Vino adeguati per la " ?modo_cottura ": " ?nome_vino crlf))

Si noti che ora si verifica solo l’appartenenza

(11)

…Regole Pesce...

Le regole per le domande relativamente al pesce hanno la stessa struttura della carne; una volta scelto il pesce si passa direttamente a scegliere l’istanza

(defrule scelta_vino_pesce

(scelto pasto pesce)

(pesce (istanze_pesce $?istanze))

(vino (abbinamenti $?abb&: (or (member$ pesce

?abb)(Appartiene ?abb ?istanze))) (nome ?nome)) =>

(printout t "Vini ADEGUATI per il pesce: " ?nome crlf))

(12)

…Regole Pesce...

(defrule scelta_vino_istanza_pesce

(scelto pesce ?istanza_pesce)

(vino (abbinamenti $?abb&: (member$ ?istanza_pesce ?abb)) (nome ?nome)) =>

(printout t "Vini ADEGUATI per il pesce: " ?nome))

• Le regole per la scelta del primo (sia per le domande che per le risposte sono del tutto analoghe a quelle per la scelta del pesce)

Riferimenti

Documenti correlati

mais o polenta con fagioli neri o rossi, leguminose passate da spalmare sul pane con erbe / cipolle leguminose con latticini: fiocchi di soia con yogurt, insalata di

“Diritti senza rovesci” perché la cultura della sicurezza e della non discriminazione – lo sa bene Inail che da anni si occupa di questo – si costruisce, si diffonde, si

Pomodoro pelato Oro del Vesuvio, Fior di latte 100% latte italiano,Bresaola di Manzo,Champignon freschi a crudo dopo cottura,scaglie di ricotta salata e Olio Evo €9

pepe nero, mollica di pane, capperi, olive, acciughe, prezzemolo, uovo, olio Evo 5 - ZUPPA DI PESCE E CROSTINI DI PANE FRITTO € 25,00.. Pescato del giorno, aglio, olio

Come il “padre” della frollatura del pesce (nel senso moderno del termine si intende 1 ), l’australiano Josh Niland, ha più volte specificato, il pesce frollato non è essiccato:

Come si trincia il Fraolino, la Triglia, l’Orate &amp; altri simili pesci Il Fraolino, la Triglia, l’Orata &amp; altri pesci simili non vengono molto grossi, &amp; sono buoni cotti

«La nostra carne di pollo svizzera è certificata SSRA, vale a dire che proviene da sistemi di stabulazione particolarmente rispettosi degli animali, controllati regolarmente

pEscHERia GastRONOMia sapORi DEl MaRE staBUlaRiO pEscHERia GastRONOMia sapORi DEl MaRE staBUlaRiO Fano (pU) - lungomare Mediterraneo, 2 - tel.. 0721 1712739