21.06.2013 Views

esercizi di preparazione alla prova finale: reti semantiche

esercizi di preparazione alla prova finale: reti semantiche

esercizi di preparazione alla prova finale: reti semantiche

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ESERCIZI DI PREPARAZIONE ALLA PROVA FINALE:<br />

RETI SEMANTICHE<br />

1. Costruire la rete semantica conseguente ad una interpretazione personale del seguente<br />

testo in Linguaggio Naturale:<br />

Internet può essere definita come una rete composta da un insieme <strong>di</strong> siti web. Ogni sito web ha<br />

un in<strong>di</strong>rizzo IP univoco ed è curato da un tecnico informatico specializzato, chiamato<br />

webmaster. Tra le tante tipologie <strong>di</strong> siti, le più importanti sono quelle relative ai siti:<br />

commerciali, personali (curati però da un proprietario e non da un webmaster), istituzionali e<br />

governativi. I siti commerciali sono solitamente gestiti da aziende, mentre quelli istituzionali da<br />

specifiche istituzioni. Esistono poi siti connessi solo a <strong>reti</strong> locali, detti siti intranet, che<br />

costituiscono delle eccezioni, avendo la caratteristica <strong>di</strong> poter essere acceduti solo da comunità<br />

locali, e non da tutta la comunità web. Ogni comunità è formata da un insieme <strong>di</strong> utenti: gli<br />

utenti della comunità web sono detti internet users.<br />

Negli ultimi anni si è avuto un particolare sviluppo <strong>di</strong> siti <strong>di</strong> e-commerce, ovvero siti<br />

commerciali il cui accesso è ristretto da password e che mostrano vetrine virtuali <strong>di</strong> prodotti<br />

specifici, acquistabili da un normale internet user. Il sito <strong>di</strong> questo tipo forse più conosciuto è<br />

Amazon, che vende libri, CD e DVD.<br />

Il sito dell’Università <strong>di</strong> Tor Vergata, insieme a quello <strong>di</strong> Roma La Sapienza, è invece un<br />

esempio <strong>di</strong> sito universitario. I siti universitari, come quelli <strong>di</strong> altre organizzazioni sono siti<br />

istituzionali. Il Sito <strong>di</strong> Tor Vergata consente <strong>di</strong> ottenere informazioni su corsi e sui docenti, e <strong>di</strong><br />

iscriversi ad esami , corsi, esoneri e seminari. Il sito della Presidenza del Consiglio è un sito<br />

governativo.


utente<br />

formata da<br />

comunità<br />

kind_of<br />

kind_of<br />

comunità web<br />

comunità<br />

locale<br />

formata da<br />

kind_of<br />

rete locale<br />

accede a<br />

accede a<br />

connesso a<br />

Internet user<br />

kind_of<br />

rete internet<br />

sito intranet<br />

formata da<br />

kind_of<br />

sito web<br />

commerciale<br />

gestito da curato da<br />

azienda<br />

kind_of<br />

proprietario<br />

curato da<br />

kind_of<br />

kind_of<br />

personale<br />

istituzione<br />

webmaster<br />

kind_of<br />

istituzionale<br />

gestito da<br />

E-commerce<br />

acquista<br />

mostra<br />

necessita<br />

universitario<br />

prodotti<br />

libri<br />

kind_of<br />

kind_of<br />

is_a<br />

CD DVD<br />

Amazon<br />

vende<br />

password<br />

kind_of<br />

is_a<br />

is_a<br />

kind_of<br />

Sito RTV Sito RM1<br />

info su iscrizione a<br />

doc. corsi esam eson sem<br />

governativo<br />

organizzazioni<br />

is_a<br />

Presid. del C.


2. Implementare la rete in Prolog, utilizzando i pre<strong>di</strong>cati:<br />

- prop(X,Prop,Y) per in<strong>di</strong>care le proprietà e le relazioni tra le entità della rete<br />

- is_a(X,Classe) per esprimere la relazione <strong>di</strong> appartenenza <strong>di</strong> un oggetto ad una<br />

classe<br />

- kind_of(Classe, Superclasse) per rappresentare la relazione <strong>di</strong> sottoclasse.<br />

Scrivere inoltre le regole <strong>di</strong> accesso alle informazioni istanza_<strong>di</strong>(X,Superclasse) e<br />

sottoclasse(C, Superclasse), che restituiscano ricorsivamente tutte le superclassi <strong>di</strong> un<br />

istanza X o <strong>di</strong> una classe C.<br />

is_a(sitoRTV,universitario).<br />

is_a(sitoRM1,universitario).<br />

……<br />

kind_of(commerciale,sito_web).<br />

kind_of(personale,sito_web).<br />

kind_of(istituzionale,sito_web).<br />

……<br />

prop(internet,formato_da,sito_web).<br />

prop(sito_web,curato_da,webmaster).<br />

prop(amazon,vende,[cd,dvd,libri]).<br />

prop(sitoRTV,info_su,[docenti,corsi]).<br />

prop(sitoRTV,iscrizione_a,[corsi,seminari,esami,esoneri]).<br />

……<br />

istanza_<strong>di</strong>(X,Classe1) :- is_a(X,Classe1).<br />

istanza_<strong>di</strong>(X,Classe1) :- is_a(X,Classe2),<br />

sottoclasse(Classe2,Classe1).<br />

sottoclasse(Classe1,Classe2) :- a_kind_of(Classe1, Classe2).<br />

sottoclasse(Classe1,Classe2) :- a_kind_of(Classe1, Classe3),<br />

sottoclasse(Classe3,Classe2).<br />

ha_proprietà(Y,Prop,Val):- prop(Y, Prop,Val).<br />

ha_proprietà(X,Prop,Val):- istanza_<strong>di</strong>(X,Classe),<br />

prop(Classe,Prop,Val).<br />

ha_proprieta(Classe,Prop,Val):- sottoclasse(Classe,Classe1),<br />

prop(Classe1,Prop,Val).


3. In<strong>di</strong>care quali sono le eccezioni della rete<br />

Il sito personale è curato dal proprietario.<br />

prop(personale,curato_da,proprietario).<br />

La comunità web è formata da internet users.<br />

prop(comunità_web,formata_da,internet_user).<br />

4. Scrivere le queries Prolog per:<br />

1. restituire le istanza <strong>di</strong> un sito commerciale<br />

2. restituire le proprietà <strong>di</strong> un internet user<br />

3. restituire tutte le superclassi <strong>di</strong> Amazon<br />

1. istanza_<strong>di</strong>(X,commerciale).<br />

2. ha_proprietà(internet_user,X,Y).<br />

3. istanza_<strong>di</strong>(amazon,X).<br />

5. Scrivere quali sono i risultati delle seguenti Prolog forzando il backtracking:<br />

1. sottoclasse(istituzionale,X).<br />

2. istanza_<strong>di</strong>(X,sito_web).<br />

3. ha_proprieta(internet_user,X,Y).<br />

1. X=universitario; X=organizzazione<br />

2. X=amazon; X=sitoRTV; X=sitoRM1<br />

3. X= acquista Y=prodotti<br />

6. Scrivere la mo<strong>di</strong>fica da apportare alle regole <strong>di</strong> accesso <strong>alla</strong> rete<br />

sottoclasse(X,Classe), in modo che, forzando il backtracking, venga restituita solamente<br />

la superclasse più specifica <strong>di</strong> un una classe X.<br />

sottoclasse(Classe1,Classe2) :- a_kind_of(Classe1, Classe2),!.<br />

sottoclasse(Classe1,Classe2) :- a_kind_of(Classe1, Classe3),<br />

sottoclasse(Classe3,Classe2).


7. Scrivere l’implementazione errata della regola ricorsiva kind_of(Classe,Superclasse)<br />

che porterebbe il prolog ad un loop infinito.<br />

sottoclasse(Classe1,Classe2) :- sottoclasse(Classe3,Classe2),<br />

a_kind_of(Classe1, Classe3).<br />

sottoclasse(Classe1,Classe2) :- a_kind_of(Classe1, Classe2).<br />

8 Definire la proprietà sito_interessante(X,Lista) che sia vero per un sito X che<br />

venda tutti i prodotti in<strong>di</strong>cati in Lista, e che sia protetto da password. (Ad esempio<br />

sito_interessante(X,[cd,libri]) dovrebbe restituire X=amazon)<br />

sito_interessante(X,Lista):- ha_proprieta(X,necessita,password),<br />

ha_proprieta(X,vende,ListaSito),<br />

contiene(ListaSito,Lista).<br />

contiene(ListaSito,[]).<br />

contiene(ListaSito,[H|T]) :- member(H,ListaSito),<br />

contiene(ListaSito,T).<br />

9. Definire il pre<strong>di</strong>cato servizi_offerti(X,L) che restituisca la lista <strong>di</strong> servizi offerti da<br />

un sito universitario. Un servizio può essere sia una informazione sia l’iscrizione ad un evento<br />

servizi_offerti(X,L) :-ha_proprieta(X,info_su,L1),<br />

ha_proprieta(X,iscrizione_a,L2),<br />

concatena(L1,L2,L).<br />

concatena([],L,L).<br />

concatena([H|T],L1,[H|L2]):- concatena(T,L1,L2).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!