Lo studio diretto dei monumenti antichi rappresenta, per gli architetti
e gli addetti alledilizia, uno dei momenti più alti del processo di apprendimento
dei fondamenti dellarte di costruire. Il lavoro sperimentale oggetto di questa tesi è lo studio e la
progettazione di un sistema esperto che faccia da complemento alla complessa attività di
analisi delle murature di un edificio del centro storico di Napoli, esponendo, come
risultato, delle plausibili ipotesi di datazione. A tal fine le informazioni ottenute
dallelaborazione del suddetto database, sono servite da complemento alla conoscenza
dellesperto. La scarsità di documenti sulle murature e sulle
tecniche costruttive fino alla fine del XIX secolo, ha reso difficile
lindividuazione di modelli, dei vari tipi di apparecchiature murarie. - la suddivisione della base di conoscenza in diverse parti indipendenti; - lidentificazione degli elementi costituenti ognuna di tali parti; - lidentificazione delle regole con cui tali elementi vanno trattati; - lindividuazione di modelli approssimati di apparecchiature murarie, ognuno dei quali individua una particolare ipotesi di datazione. 4.1.1 Rappresentazione della conoscenza La base di conoscenza è stata suddivisa, in primo luogo, sulla base del tipo di materiale utilizzato: tufo giallo napoletano, laterizio, pietra da taglio. Il tufo giallo napoletano può essere ulteriormente suddiviso in base alla geometria dei conci: regolare, irregolare, sbozzato1 (figura a), il laterizio sulla base della lavorazione: a mano o a macchina e la pietra da taglio in piperno e pietrarsa2.Ognuna delle parti così ottenute forma un ben determinato dominio indipendente dal resto. Verranno nel seguito chiamate componenti della base di conoscenza.
Figura A Illustrazione della base di conoscenza e relative ipotesi di datazione Gli oggetti costituenti la muratura, quali ad esempio i vari
tipi di conci, il cantiere, la malta, ecc. sono gli elementi della base di conoscenza.
Figura B Le connessioni tra le ipotesi di datazione e i segni possono essere rappresentate mediante un grafo bipartito In questo modo linsieme dei nodi del grafo risulta
suddiviso in due sottoinsiemi: uno relativo ai segni e laltro alle ipotesi di
datazione.
Figura C Grafo associato alle varie componenti della base di conoscenza Un ipotesi è collegata alle domande caratteristiche mediante
gli archi domanda, una domanda è collegata ai segni che può attivare mediante gli archi
domanda-segno, ed un segno, è collegato alle ipotesi mediante gli archi segno. Ogni
domanda è associata ad certo insieme di segni. Possiamo trovare, tra le altre, domande a
risposta multipla, in cui le risposte associate non sono mutuamente esclusive,
(rispondendo alla domanda, vengono attivati più segni contemporaneamente) e domande di
verifica a cui sono associate le risposte "SI", "NO", in funzione
della presenza di un segno. - Semplicità di lettura, esplorazione e manipolazione della base di conoscenza. In particolare, mediante gli archi domanda e gli archi segno i meccanismi di deduzione e abduzione diventano estremamente semplici. - Semplicità di modifica ed aggiornamento della base di conoscenza. Si presume che lesperto, nel corso della sua attività, affini le proprie conoscenze e la propria perizia, per cui non bisogna escludere la possibilità di estendere e modificare successivamente la base di conoscenza. Inoltre non è da escludere il trasporto del sistema in contesti differenti. - Rapidità nel reperimento delle spiegazioni ai segni e delle giustificazioni alle domande. - Alta modularità: le componenti della base di conoscenza e il motore inferenziale sono completamente indipendenti e la modifica di uno non ha ripercussioni sugli altri. Inoltre, laggiunta di altre componenti, non produce effetti collaterali. La componente di inferenza del sistema è divisa in due moduli: il primo pone le domande allutente, seguendo un protocollo standard, al fine di orientare la ricerca della soluzione ad una delle componenti indipendenti in cui è divisa la base di conoscenza; il secondo, che è quella di maggior interesse, rappresenta la parte intelligente del sistema che inferisce sulla componente selezionata, per raggiungere la soluzione, e rappresenta il vero motore inferenziale.
Figura D Illustrazione delle funzioni associate alle due parti in cui è diviso il motore inferenziale. Il motore inferenziale presenta un livello oggetto e un livello meta e può essere classificato in uno del tipo "Reflect and Act" (§ 1.6).Lazione congiunta del livello oggetto e del meta-livello produce un ciclo di generazione, test ed aggiornamento delle ipotesi esplicative, simile a quello visto nel ragionamento qualitativo (§3.3).
Figura E Ciclo del motore inferenziale Si identificano le seguenti fasi: 1. Evocazione delle ipotesi esplicative: sulla base delle risposte alle domande iniziali, dopo la selezione della componente, vengono generate le prime ipotesi esplicative. Si forma in questo modo una lista di ipotesi in competizione, ordinata in base ad un indice di plausibilità. Tale indice viene calcolato, per ogni ipotesi, sommando gli indici di importanza dei segni verificati ad essa associati. (§ 4.3) 2. Test delle ipotesi: la scelta delle domande viene effettuata con un protocollo "hypothesis driven": viene scelta, tra le altre, la domanda più promettente al fine di rafforzare lipotesi che sembra essere più plausibile (corrispondente a quella in testa alla lista di ipotesi in competizione). Il meta-livello, introdotto a tal fine nel sistema, con laiuto della suddivisione in classi delle domande effettua tale scelta: ad ogni ipotesi in lista è associata un informazione, detta classe di domanda, che rappresenta la classe in cui scegliere la domanda qualora tale ipotesi dovesse essere in testa alla lista.
Figura F Partendo da sinistra la prima casella vuota rappresenta la classe di domanda relativa allipotesi. Una casella piena indica che è stato già risposto ad una domanda in quella classe. Mediante un ragionamento deduttivo, vengono selezionate le domande proponibili relative allipotesi in testa.
Figura G Selezione delle domande Tra di esse viene poi scelta la prima, se esiste, appartenente alla classe di domanda associata allipotesi (§ 4.3); 3. Aggiornamento dellinsieme delle ipotesi: i segni generati dalla risposta alla domanda vengono utilizzati, per aggiornare linsieme delle ipotesi in competizione. Il livello oggetto pone la domanda allutente esponendo le dovute giustificazioni, genera i segni in base alle risposte, esegue la fase di abduzione, ed aggiorna la lista di ipotesi in competizione.
Figura H Fase di abduzione e conseguente aggiornamento dell indice di plausibilità delle ipotesi. La computazione si interrompe quando: sono stati verificati tutti i segni ritenuti importanti per lipotesi in testa (si è risposto ad almeno una domanda per classe); ad esaurimento delle domande disponibili. In questultimo caso, se le informazioni acquisite non sono sufficienti, il sistema non è in grado di dare una risposta. Tale situazione è analoga a quella in cui si trova lesperto quando ha davanti a se una muratura poco visibile, ricoperta per buona parta da intonaco. In questo caso le informazioni reperibili dallanalisi risultano insufficienti per intrattenere una ragionevole ipotesi di datazione. La particolare struttura della base di conoscenza semplifica i
meccanismi di deduzione e abduzione: il primo avviene mediante gli archi domanda, il
secondo attraverso gli archi segno.
Figura I Albero di computazione
La computazione può essere rappresentata mediante un albero (figura i) i cui nodi rappresentano gli stati del sistema. Ogni nodo è caratterizzato, tra le altre cose, dalla lista delle ipotesi in competizione, e dalla domanda da porre allutente. Le risposte a tale domanda rappresentano gli archi dal nodo padre ai nodi figlio.
Figura J Esempio di una parte di elaborazione. Per esempi di elaborazioni complete si rimanda allappendice B. 4.3 Formalizzazione del sistema In questo paragrafo verranno formalizzati gli elementi
che compongono le singole parti in cui e suddivisa la base di conoscenza, nonché gli
elementi utilizzati nella computazione. - Linsieme delle ipotesi H = { h1, h2, ... , hn } - Linsieme delle domande D = { d1, d2, ... , dm } - Linsieme delle risposte, o segni S = { s1, s2, ... , sk } Il grafo G(V, E) è definito nel seguente modo: - Linsieme dei vertici V V = H È D È S - La relazione binaria di adiacenza E xEy Û ( ( x Î H Ù y Î D ) Ú ( x Î D Ù y Î S ) Ú (x Î S Ù y Î H ) ) ne segue che E è antiriflessiva e antisimmetrica - E1 : xE1y Û ( x Î H Ù y Î D ) identifica gli archi diretti dalle ipotesi alle domande, detti archi domanda - E2 : xE2y Û ( x Î D Ù y Î S ) identifica gli archi diretti dalle domande alle risposte, detti archi domanda-segno - E3 : xE3y Û ( x Î S Ù y Î H ) identifica gli archi diretti dalle risposte alle ipotesi, detti archi
segno, che rappresentano gli inversi delle "regole di produzione". - Di = { (h, d) : (h, d) Î E1 Ù d è di classe i rispetto ad h } Ad ogni coppia (s, h) Î E3 è
associato un numero intero v(s, h) che rappresenta lindice di importanza del segno s
rispetto ad h. - Giust = { g1, g2, ..., gm } i cui elementi rappresentano i testi delle giustificazioni alle domande, - Spieg = { e1, e2, ..., ek } i cui elementi rappresentano i testi delle spiegazioni ai segni. - la lista delle ipotesi in competizione: Hcomp = { hi, hj, ... ,hl } = { h Î H : indice(h) ³ 0 } ( Hcomp Í H ) - linsieme delle risposte date dallutente: Sver = { sk, sp, ..., sq } ( Sver Ì S ) - lindice di plausibilità relativo allipotesi h:
La lista Hcomp è sempre ordinata in ordine decrescente di indice di plausibilità. - linsieme delle domande già poste: Out = { o1, o2, ...,os } ( Out Ì D ) - la classe di domanda relativa allipotesi h: classe(h) = c Û ( " d : (h, d) Î Di, d Î Out Û i < c ) - la domanda da porre allutente domanda = d Û $ h ipotesi in testa ad Hcomp : (h, d) Î Di Ù i = classe(h) - linsieme delle spiegazioni dei segni relativi allipotesi h. E (h) = { ei, ej,...,ek } ( E(h) Ì Spieg ) Il risultato della computazione è la generazione di una lista ordinata di ipotesi plausibili: - Hplaus = { h Î H : indice(h) > 0 } che rispetta la seguente proprietà " hi Î Hplaus " hj Î Hplaus (ord(hi) < ord(hj) Û indice(hi) > indice(hj) ) ( la funzione ord(x) rappresenta lordinale associato alla posizione di x nella lista), e, per ogni elementi di Hplaus, di una lista di spiegazioni: - E(h) = { E(h): h Î Hplaus } La scelta del linguaggio implementativo è ricaduta sul linguaggio PROLOG, che consente di esprimere la base di conoscenza in un linguaggio predicativo (§ 2.2), e dispone di un motore inferenziale basato sulla risoluzione (§ 2.2), che può funzionare sia in modo forward, sia in modo backward Tutte le componenti della base di conoscenza sono implementate nel
modo di seguito riportato. arco_domanda( Ipotesi, Domanda, Classe ) dove i primi due argomenti esprimono la relazione E1, e il terzo rappresenta la classe della domanda in relazione allipotesi. arco_domanda_segno( Domanda , Segno ) i cui gli argomenti esprimono la relazione E2 arco_segno( Ipotesi, Segno, Indice di importanza ) dove i primi due argomenti esprimono la relazione E3,
e il terzo rappresenta il valore v(s,h). (§ 4.3) giust( Domanda, Testo ) che lega la domanda al testo che ne esprime la giustificazione. spiega( Segno, Testo ) che lega il segno al testo che ne esprime la spiegazione. datazione( Ipotesi, Data ) lega i simboli associati alle ipotesi con il rispettivo periodo. domanda( D ) visualizza linterfaccia di comunicazione con
lutente. testo( Domanda, Testo ) pic( Domanda, Immagine ). Per altri tipi di domanda è invece necessario ricostruire
linterfaccia in base alle esigenze. parziale( Domanda ) permette di visualizzare spiegazioni parziali allutente,
in occasione di particolari domande.
Figura K Struttura generale di una componente della base di conoscenza. Qualora si volesse creare un nuova componente o modificarne una già esistente, è necessario seguire questo schema
Il motore inferenziale è stato progettato in modo da essere il
più possibile indipendente dalla base di conoscenza. motore( Ipotesi Plausibili ) Largomento Ipotesi Plausibili rappresenta un
parametro, che al termine del processo di inferenza conterrà la lista delle ipotesi
plausibili. rifletti( Lista di ipotesi in competizione ). Organizza le azioni del livello oggetto in funzione del contenuto della lista delle ipotesi in competizione e di una serie di attributi associati alle ipotesi in lista (indice di plausibilità, classe di domanda, lista di spiegazioni). In particolare, il meta-livello effettua la scelta della domanda più promettente da porre. Tali attributi sono gestiti attraverso le clausole macro intrinseche al MacProlog remember( Ipotesi, Lista di attributi ), recall( Ipotesi, Lista di attributi). Alla scelta della domanda contribuisce anche la clausola: out( Domanda ) che determina le domande già poste. rispondi( Domanda ) ordina_ipotesi( Lista di ipotesi ordinata ) esegue i compiti del livello oggetto: porre allutente la
domanda scelta fornendo le dovute giustificazioni; aggiornare la lista delle ipotesi in
competizione mediante abduzione e ordinamento; aggiornare la lista di spiegazioni. abduzione( Domanda ) seleziona i segni attivati dalla risposta a Domanda
attraverso gli archi domanda-segno, individua le ipotesi associate a tali segni e i
relativi indici di importanza attraverso gli archi segno, e ne aggiorna lindice di
plausibilità (sommando ad esso lindice di importanza dei segni), e la classe di
domanda. Inserisce inoltre i segni selezionati nella lista di spiegazioni. spiega( Segno, Testo) saranno reperiti i testi di spiegazione da proporre allutente. Al fine di agevolare la computazione e la comprensione del
programma è stata aggiunta un libreria di procedure di utilità. Troviamo, tre le altre,
procedure di inizializzazione, per ripristinare lo stato iniziale del sistema ad ogni
nuova elaborazione (cancellazione di residui di precedenti elaborazioni, ecc), procedure
di gestione dello schermo (creazione e cancellazione di finestre, manipolazione di
immagini, ecc), procedure per la comunicazione con lutente (visualizzazione delle
spiegazioni, visualizzazione di messaggi vari, ecc.), procedure di controllo della
comunicazione con lutente (controllo dati immessi, gestione di errori, ecc.) e
procedure di help, che mettono a disposizione dellutente un semplice help context
sensitive, in grado di aiutarlo nella coprensione e guidarlo nella risposta alle
domande. In riferimento allesempio di elaborazione in figura j, analizzeremo, passo per passo, la computazione del sistema,
soffermandoci in particolar modo sulle azioni compiute dal motore inferenziale. :-inizio Susseguono diverse operazioni di inizializzazione (chiusura di
finestre, cancellazione di dati derivanti da computazioni precedenti, ecc), nonchè la
prima domanda, in cui viene chiesto di scegliere il materiale di cui è composta la
muratura. - Lista di ipotesi in competizione = [(1565-1629), (1630-1688), (1508-1564)] - (1565-1629) : Classe di domanda = 3 Indice di plausibilità = 3 - (1630-1688) : Classe di domanda = 3 Indice di plausibilità = 3 - (1508-1564) : Classe di domanda = 3 Indice di plausibilità = 2 Viene attivato il meta-livello: rifletti ( [(1565-1629), (1630-1688), (1508-1564)] ) che sceglie la seguente domanda in classe 3 per lipotesi (1565-1629): "Il materiale minuto è talvolta utilizzato solo per pareggiare il piano superiore di ciascun corso di pietrame ?" Essa viene passata al livello oggetto mediante la clausola rispondi ( Domanda ) che la pone allutente visualizzando le dovute giustificazioni, ed avvia, in seguito alla risposta, la fase di abduzione: abduzione ( Domanda ) In tale fase, vengono reperiti i segni attivati dalla risposta,
le ipotesi ad essi legate, e i relativi indici di importanza. Nel nostro caso, il segno
associato alla risposta "NO" ha un indice di importanza -1 rispetto
allipotesi (1565-1629), e tende quindi ad indebolirla. ordina_ipotesi( Lista di ipotesi in competizione ordinata ) La nuova descrizione istantanea sarà: - Lista di ipotesi in competizione = [(1630-1688), (1508-1564), (1565-1629)] - (1630-1688) : Classe di domanda = 3 Indice di plausibilità = 3 - (1508-1564) : Classe di domanda = 3 Indice di plausibilità = 2 - (1565-1629) : Classe di domanda = 4 Indice di plausibilità = 2 Il processo si ripeterà fino a quando: si è risposto ad almeno una domanda per classe relativa allipotesi in testa; ad esaurimento delle domande. |