ESERCIZI DI PREPARAZIONE ALLA PROVA FINALE: RETI SEMANTICHE 1. Costruire la rete semantica conseguente ad una interpretazione personale del seguente testo in Linguaggio Naturale: Internet può essere definita come una rete composta da un insieme di siti web. Ogni sito web ha un indirizzo IP univoco ed è curato da un tecnico informatico specializzato, chiamato webmaster. Tra le tante tipologie di siti, le più importanti sono quelle relative ai siti: commerciali, personali (curati però da un proprietario e non da un webmaster), istituzionali e governativi. I siti commerciali sono solitamente gestiti da aziende, mentre quelli istituzionali da specifiche istituzioni. Esistono poi siti connessi solo a reti locali, detti siti intranet, che costituiscono delle eccezioni, avendo la caratteristica di poter essere acceduti solo da comunità locali, e non da tutta la comunità web. Ogni comunità è un insieme di utenti: gli utenti della comunità web sono detti internet users. Negli ultimi anni si è avuto un particolare sviluppo di siti di e-commerce, ovvero siti commerciali il cui accesso è ristretto da password e che mostrano vetrine virtuali di prodotti specifici, acquistabili da un normale internet user. Il sito di questo tipo forse più conosciuto è Amazon, che vende libri, CD e DVD. Il sito dell Università di Tor Vergata, insieme a quello di Roma La Sapienza, è invece un esempio di sito universitario. I siti universitari, come quelli di altre organizzazioni sono siti istituzionali. Il Sito di Tor Vergata consente di ottenere informazioni su corsi e sui docenti, e di iscriversi ad esami, corsi, esoneri e seminari. Il sito della Presidenza del Consiglio è un sito governativo.
utente comunità comunità web comunità locale rete locale accede a accede a Internet user acquista connesso a rete sito intranet prodotti libri commerciale gestito da azienda mostra CD E-commerce DVD Amazon internet vende sito web curato da proprietario curato da necessita personale istituzione password info su webmaster istituzionale gestito da Sito RTV universitario iscrizione a Sito RM1 doc. corsi esam eson sem governativo organizzazioni Presid. del C.
2. Implementare la rete in Prolog, utilizzando i predicati: - prop(x,prop,y) per indicare le proprietà e le relazioni tra le entità della rete - (X,Classe) per esprimere la relazione di appartenenza di un oggetto ad una classe - (Classe, Superclasse) per rappresentare la relazione di sottoclasse. Scrivere inoltre le regole di accesso alle informazioni istanza_di(x,superclasse) e sottoclasse(c, Superclasse), che restituiscano ricorsivamente tutte le superclassi di un istanza X o di una classe C. (sitortv,universitario). (sitorm1,universitario). (commerciale,sito_web). (personale,sito_web). (istituzionale,sito_web). prop(internet,formato_da,sito_web). prop(sito_web,curato_da,webmaster). prop(amazon,vende,[cd,dvd,libri]). prop(sitortv,info_su,[docenti,corsi]). prop(sitortv,iscrizione_a,[corsi,seminari,esami,esoneri]). istanza_di(x,classe1) :- istanza_di(x,classe1) :- (X,Classe1). (X,Classe2), sottoclasse(classe2,classe1). sottoclasse(classe1,classe2) :- a_(classe1, Classe2). sottoclasse(classe1,classe2) :- a_(classe1, Classe3), sottoclasse(classe3,classe2). ha_proprietà(y,prop,val):- prop(y, Prop,Val). ha_proprietà(x,prop,val):- istanza_di(x,classe), prop(classe,prop,val). ha_proprieta(classe,prop,val):- sottoclasse(classe,classe1), prop(classe1,prop,val).
3. Indicare quali sono le eccezioni della rete Il sito personale è curato dal proprietario. prop(personale,curato_da,proprietario). La comunità web è internet users. prop(comunità_web,formata_da,internet_user). 4. Scrivere le queries Prolog per: 1. restituire le istanza di un sito commerciale 2. restituire le proprietà di un internet user 3. restituire tutte le superclassi di Amazon 1. istanza_di(x,commerciale). 2. ha_proprietà(internet_user,x,y). 3. istanza_di(amazon,x). 5. Scrivere quali sono i risultati delle seguenti Prolog forzando il backtracking: 1. sottoclasse(istituzionale,x). 2. istanza_di(x,sito_web). 3. ha_proprieta(internet_user,x,y). 1. X=universitario; X=organizzazione 2. X=amazon; X=sitoRTV; X=sitoRM1 3. X= acquista Y=prodotti 6. Scrivere la modifica da apportare alle regole di accesso alla rete sottoclasse(x,classe), in modo che, forzando il backtracking, venga restituita solamente la superclasse più specifica di un una classe X. sottoclasse(classe1,classe2) :- a_(classe1, Classe2),!. sottoclasse(classe1,classe2) :- a_(classe1, Classe3), sottoclasse(classe3,classe2).
7. Scrivere l implementazione errata della regola ricorsiva (Classe,Superclasse) che porterebbe il prolog ad un loop infinito. sottoclasse(classe1,classe2) :- sottoclasse(classe3,classe2), a_(classe1, Classe3). sottoclasse(classe1,classe2) :- a_(classe1, Classe2). 8 Definire la proprietà sito_interessante(x,lista) che sia vero per un sito X che venda tutti i prodotti indicati in Lista, e che sia protetto da password. (Ad esempio sito_interessante(x,[cd,libri]) dovrebbe restituire X=amazon) sito_interessante(x,lista):- ha_proprieta(x,necessita,password), ha_proprieta(x,vende,listasito), contiene(listasito,lista). contiene(listasito,[]). contiene(listasito,[h T]) :- member(h,listasito), contiene(listasito,t). 9. Definire il predicato servizi_offerti(x,l) che restituisca la lista di servizi offerti da un sito universitario. Un servizio può essere sia una informazione sia l iscrizione ad un evento servizi_offerti(x,l) :-ha_proprieta(x,info_su,l1), ha_proprieta(x,iscrizione_a,l2), concatena(l1,l2,l). concatena([],l,l). concatena([h T],L1,[H L2]):- concatena(t,l1,l2).