Lo studio diretto dei monumenti antichi rappresenta, per gli architetti e gli addetti all’edilizia, uno dei momenti pi¨ alti del processo di apprendimento dei fondamenti dell’arte di costruire.
La possibilitÓ di datare singole strutture, avvalendosi, oltre che dei giÓ collaudati parametri valutativi storico-architettonici, delle capacitÓ di classificare cronologicamente gli apparecchi murari, costituisce una preziosa risorsa, finora poco adoperata, a causa dell’assenza di studi di riferimento di adeguata ampiezza. Ad esempio, nel caso di Napoli, uno dei maggiori centri storici italiani per dimensione e ricchezza di valori, ad una diffusa conoscenza dei caratteri architettonici, urbanistici e ambientali, si associa una scarsa conoscenza sui materiali da costruzione e sul loro uso.
La difficoltÓ nel datare un edificio del centro storico di Napoli, viene accentuata dal fatto che, nel corso dei circa due millenni e mezzo di vita della cittÓ, si Ŕ fatto quasi esclusivamente uso, come materiale da costruzione, del tufo giallo napoletano, prelevato direttamente dal sottosuolo, o da cave localizzate alle pendici delle colline circostanti, messo in opera, soprattutto negli ultimi cinque o sei secoli, secondo tessiture non molto differenti tra loro.
Le stesse considerazioni valgono per gli altri due materiali presenti sul suolo partenopeo, il laterizio e il piperno. Il primo, utilizzato in maniere molto limitata, non essendo un prodotto locale, ad eccezione dei mattoni di Ischia, di qualitÓ alquanto scadente. Il secondo, abbastanza diffuso ma utilizzato prevalentemente in funzione ornamentale. Inoltre, nel medesimo arco temporale, gli edifici sono stati soggetti a stratificazioni e ristrutturazioni antiche, medievali e moderne, motivate prevalentemente da esigenze di consolidamento. Un esempio significativo Ŕ quello del palazzo della Repubblica Veneta, in cui sono riscontrabili ben tre lapidi, le cui epigrafi ricordano le opere effettuate nel 1646, nel 1688 e nel 1737, a seguito dei danni provocati da altrettanti terremoti.
Al fine di acquisire la suddetta capacitÓ R. Pane [Pa67] osservava che "Solo registrando le variazioni avvenute attraverso i secoli, entro il tessuto murario, si pu˛ pervenire ad una casistica abbastanza precisa da poterne trarre una generale esperienza".
A tal proposito, un gruppo di lavoro della FacoltÓ di architettura della Seconda UniversitÓ di Napoli, in collaborazione con un gruppo dell’Istututo di Cibernetica del CNR di Arco Felice, ha analizzato un numero elevato di campioni murari ben osservabili, appartenenti ad edifici napoletani la cui datazione Ŕ filologicamente documentata, raccogliendo i dati in un database.

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 dall’elaborazione del suddetto database, sono servite da complemento alla conoscenza dell’esperto.
I frequenti dialoghi con l’esperto hanno rafforzato la nostra convinzione che il ragionamento da lui adoperato, non comprenda i laboriosi calcoli numerici, comuni agli approcci probabilistici visti nel precedente capitolo (Certainty Factor (ž 3.1), Bayesian Belief Network (ž 3.2), ecc.), ma sia simile ad un ragionamento qualitativo (ž 3.3): egli prende atto dei segni immediatamente disponibili nella muratura, intrattiene una prima serie di ipotesi, e comincia la fase di test andando a cercare i segni che rafforzano o eventualmente indeboliscono una o pi¨ tra le ipotesi intrattenute.
Riteniamo importante ricordare che la scelta di uno dei suddetti approcci probabilistici, renderebbe estremamente complicato il trasporto del nostro sistema in contesti diversi, e poco agevole un suo eventuale miglioramento o una sua estensione (ž 3.1, 3.2), diversamente dal nostro (ž 3.3)
L’ individuazione degli elementi costituenti la base di conoscenza e di un motore inferenziale adeguato Ŕ frutto di una collaborazione con un gruppo di esperti coordinati dal Prof. Arch. G. Fiengo della facoltÓ di Architettura della II UniversitÓ di Napoli.
La base di conoscenza Ŕ stata strutturata in maniera tale da rendere il sistema altamente modulare, e in modo da essere comprensibile, portabile, facilmente aggiornabile e facilmente manipolabile.
Il motore inferenziale adottato Ŕ simile a quello usato nel ragionamento qualitativo (ž3.3), a cui Ŕ stata aggiunta una componente di meta-conoscenza che guida il sistema nella selezione delle domande di test, sulla base delle ipotesi ritenute plausibili.

4.1 La base di conoscenza

La scarsitÓ di documenti sulle murature e sulle tecniche costruttive fino alla fine del XIX secolo, ha reso difficile l’individuazione di modelli, dei vari tipi di apparecchiature murarie.
Nel database, frutto dell’analisi di un grande numero di campioni murari di datazione filologicamente documentata, sono conservate circa 400 schede relative ad altrettante unitÓ stratigrafiche, contenenti informazioni riguardanti le principali caratteristiche macroscopiche: tipo di materiale impiegato, geometria e dimensione dei conci1, tracce di lavorazione superficiale, tessitura, ecc.
La sua elaborazione ha permesso di raccogliere numerose informazioni, che hanno in parte confermato e in parte migliorato le conoscenze empiriche dell’esperto.
Il continuo dialogo con l’esperto ha consentito, tra le altre cose, di identificare le informazioni fondamentali (elementi e segni) e le regole empiriche (ragionamento) da lui utilizzate per intrattenere una plausibile ipotesi di datazione.
I risultati di tale dialogo sono stati:

- la suddivisione della base di conoscenza in diverse parti indipendenti;

- l’identificazione degli elementi costituenti ognuna di tali parti;

- l’identificazione delle regole con cui tali elementi vanno trattati;

- l’individuazione 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.
Le caratteristiche con cui tali oggetti sono presenti nella muratura (dimensioni, lavorazione, ecc.), nonchÚ i modi di utilizzo (posizione o presenza nella muratura, ecc.) vengono detti ‘segni’.
Le regole definiscono i modi con cui tali segni vanno trattati in funzione del modello di apparecchitura muraria preso in considerazione.
Nel seguito verrÓ abbandonato il termine ‘modello’ sostituto dal termine ‘ipotesi di datazione’.
E’ conveniente rappresentare le connessioni tra le ipotesi di datazione ed i segni mediante un grafo bipartito.

Figura B Le connessioni tra le ipotesi di datazione e i segni possono essere rappresentate mediante un grafo bipartito

In questo modo l’insieme dei nodi del grafo risulta suddiviso in due sottoinsiemi: uno relativo ai segni e l’altro alle ipotesi di datazione.
E’ stato successivamente introdotto un insieme di domande mediante le quali il sistema, interagendo con l’utente, chiede informazioni pi¨ particolareggiate della muratura, mirate alla ricerca dei segni (presenza di un particolare segno, rilievo delle dimensioni dei conci, ecc.). Tali domande corrispondono in linea di principio alle domande di test introdotte nel ragionamento qualitativo (ž 3.3).Per rappresentarle Ŕ stato ampliato il precedente grafo, inserendo un ulteriore insieme di nodi associato all’insieme delle domande.

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.
Al fine di esprimere in qualche modo la plausibilitÓ di un ipotesi, si Ŕ pensato di associare ad ogni coppia segno-ipotesi un indice, in relazione all’importanza che la presenza del segno ha nel far intrattenere o scartare l’ipotesi. Tale indice Ŕ ben lungi dall’essere un valore di certezza o un coefficiente di probabilitÓ, esso Ŕ semplicemente in relazione con l’importanza che l’esperto dÓ al segno (molto importante, poco importante, ecc). Il fatto che sia espresso mediante un valore numerico serve solo per rendere agevole eventuali ordinamenti. Ad esempio ad un segno ritenuto ‘importante’ per rafforzare un’ipotesi viene associato un indice 1, ad uno ‘molto importante’ indice 2, ecc. Un indice negativo invece, sta ad indicare che la presenza del segno tende ad indebolire l’ipotesi. In questo modo l’indice di plausibilitÓ di una ipotesi Ŕ dato dalla somma degli indici di importanza dei segni verificati ad essa associati.
E’ stato necessario introdurre nel nostro sistema una componente di meta-conoscenza, allo scopo di adoperare delle strategie di ricerca della soluzione. Per tale motivo, le domande sono state divise in classi sulla base della loro importanza, relazionata al potere che i segni, da essa attivati, hanno nel rafforzare o indebolire un’ipotesi. In questo modo il motore inferenziale sceglie ad ogni passo, tra tutte le domande proponibili, quella che sembra la pi¨ promettente.
Il comportamento del sistema tende cosý ad avvicinarsi a quello dell’esperto. Egli infatti per verificare l’ipotesi che sta intrattenendo, cercherÓ i segni ad essa collegati guidato da un euristica; in particolare cercherÓ i segni che ritiene pi¨ importanti per la verifica di plausibilitÓ.
Nel prossimo paragrafo verranno dati ulteriori approfondimenti su tale argomento.
Per delucidare il comportamento del sistema Ŕ stata introdotta una componente di giustificazione delle domande, che unisce, alla domanda posta, delle spiegazioni che ne giustificano l’uso, e una componente di spiegazione delle ipotesi intrattenute, che esplicita all’utente i motivi che spingono il sistema ad intrattenere quelle ipotesi. Per tale motivo nella base di conoscenza sono stati inseriti sia i testi delle giustificazioni alle domande, sia i testi relativi alla spiegazione dei segni. I principali vantaggi offerti da una tale rappresentazione sono:

- 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 l’esperto, 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, l’aggiunta di altre componenti, non produce effetti collaterali.

4.2 Componente inferenziale

La componente di inferenza del sistema Ŕ divisa in due moduli: il primo pone le domande all’utente, 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).L’azione 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 l’ipotesi 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 l’aiuto 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 all’ipotesi. Una casella piena indica che Ŕ stato giÓ risposto ad una domanda in quella classe.

Mediante un ragionamento deduttivo, vengono selezionate le domande proponibili relative all’ipotesi in testa.

Figura G Selezione delle domande

Tra di esse viene poi scelta la prima, se esiste, appartenente alla classe di domanda associata all’ipotesi (ž 4.3);

3. Aggiornamento dell’insieme delle ipotesi: i segni generati dalla risposta alla domanda vengono utilizzati, per aggiornare l’insieme delle ipotesi in competizione.

Il livello oggetto pone la domanda all’utente 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 l’ipotesi in testa (si Ŕ risposto ad almeno una domanda per classe); ad esaurimento delle domande disponibili. In quest’ultimo 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 l’esperto quando ha davanti a se una muratura poco visibile, ricoperta per buona parta da intonaco. In questo caso le informazioni reperibili dall’analisi 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.
Durante il ciclo computazionale, il grafo di figura c viene percorso per intero: la deduzione esegue il passaggio dall’insieme delle ipotesi all’insieme delle domande; la generazione dei segni in funzione della risposta alla domanda, porta nell’insieme dei segni; l’abduzione porta dall’insieme dei segni di nuovo all’insieme delle ipotesi.

 

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 all’utente. Le risposte a tale domanda rappresentano gli archi dal nodo padre ai nodi figlio.

Il sistema pone la seguente domanda iniziale:

"Tipo di materiale utilizzato"

Rispondendo "Tufo giallo napoletano" il sistema prosegue ponendo la seguente domanda:

"Geometria dei conci"

Risponderemo "irregolare". In questo modo si accede alla componente della base di conoscenza relativa al tufo giallo napoletano irregolare (Figura 1).
Il sistema pone quindi la seguente domanda:

"La muratura Ŕ a cantieri ?"

Rispondendo "SI" verrÓ visualizzata una prima risposta, ad informarci che la muratura appartiene al periodo 1400-1688. Successivamente, verrÓ chiesto di misurare il campo di variazione dell’altezza dei cantieri.
Risponderemo "Altezza cantieri = 40 - 55 cm"

Entra ora in gioco la parte ‘intelligente’ del sistema, che esordisce col generare la seguente lista di ipotesi in competizione:

lista = [ (1508-1564), (1565 - 1629), (1630 - 1688) ]

Viene scelta la seguente domanda:

"Quale tipo di pietrame Ŕ presente nella muratura ?"

Supponiamo di rispondere nel seguente modo:

spaccate = diffuse
spaccatelle = assenti
spaccatoni = assenti
rustiche = presenti

Tale risposta causa un aggiornamento della lista che viene riordinata:

lista = [ (1565 - 1629), (1630 - 1688), (1508-1564) ]

Il sistema allora sceglie la seguente domanda:

"Il materiale minuto Ŕ talvolta utilizzato solo per pareggiare il piano superiore di ciascun corso di pietrame"

Risonderemo "NO". In tal modo viene rafforzata la seconda ipotesi che passa in testa.

lista = [ (1630 - 1688), (1508-1564), (1565 - 1629) ]

Il sistema sceglierÓ la seguente domanda:

"I filari sono realizzati autonomamente ?"

Una risposta affermativa rafforzerebbe l’ipotesi in testa. Viceversa una risposta negativa inficerebbe l’ipotesi, che retrocederebbe in ultima posizione

Figura J Esempio di una parte di elaborazione. Per esempi di elaborazioni complete si rimanda all’appendice 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.
Identifichiamo:

- L’insieme delle ipotesi

H = { h1, h2, ... , hn }

- L’insieme delle domande

D = { d1, d2, ... , dm }

- L’insieme delle risposte, o segni

S = { s1, s2, ... , sk }

Il grafo G(V, E) Ŕ definito nel seguente modo:

- L’insieme 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
Per guadagnarne in semplicitÓ scomponiamo la relazione E in tre relazioni binarie, irriflessive e antisimmetriche:

- 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".
Ad ogni coppia (h, d) E1 Ŕ associato un numero intero i che indica la classe della domanda d rispetto ad h.
Si definiscono allora gli insiemi

- 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 l’indice di importanza del segno s rispetto ad h.
Sono stati inoltre definiti i seguenti insiemi:

- 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 descrizione istantanea del sistema Ŕ identificata dai seguenti insiemi e valori:

- la lista delle ipotesi in competizione:

Hcomp = { hi, hj, ... ,hl } = { h H : indice(h) 0 } ( Hcomp H )

- l’insieme delle risposte date dall’utente:

Sver = { sk, sp, ..., sq } ( Sver S )

- l’indice di plausibilitÓ relativo all’ipotesi h:

La lista Hcomp Ŕ sempre ordinata in ordine decrescente di indice di plausibilitÓ.

- l’insieme delle domande giÓ poste:

Out = { o1, o2, ...,os } ( Out D )

- la classe di domanda relativa all’ipotesi h:

classe(h) = c ( " d : (h, d) Di, d Out i < c )

- la domanda da porre all’utente

domanda = d $ h ipotesi in testa ad Hcomp : (h, d) Di i = classe(h)

- l’insieme delle spiegazioni dei segni relativi all’ipotesi 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 l’ordinale associato alla posizione di x nella lista), e, per ogni elementi di Hplaus, di una lista di spiegazioni:

- E’(h) = { E(h): h Hplaus }

4.4 Implementazione

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

4.4.1 Base di conoscenza

Tutte le componenti della base di conoscenza sono implementate nel modo di seguito riportato.
Il grafo viene rappresentato mediante le seguenti clausole:

arco_domanda( Ipotesi, Domanda, Classe )

dove i primi due argomenti esprimono la relazione E1, e il terzo rappresenta la classe della domanda in relazione all’ipotesi.

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)
Le giustificazioni alle domande sono rappresentate dalla clausola

giust( Domanda, Testo )

che lega la domanda al testo che ne esprime la giustificazione.
Le spiegazioni ai segni sono rappresentate mediante la clausola

spiega( Segno, Testo )

che lega il segno al testo che ne esprime la spiegazione.
La clausola

datazione( Ipotesi, Data )

lega i simboli associati alle ipotesi con il rispettivo periodo.
La clausola

domanda( D )

visualizza l’interfaccia di comunicazione con l’utente.
Il linguaggio MacProlog versione 3.5 mette a disposizione una serie di procedure, mediante le quali Ŕ possibile costruire interfaccie di comunicazioni user friendly in maniera estremamente semplice. In particolare permette di costruire finestre di dialogo munite di bottoni etichettati, di cornici con immagini, di men¨ a finetra, ecc. Permette inoltre di gestire gli eventi del mouse (click, move, ecc).
Per le domande a risposta "SI", "NO", "NON SO" la struttura dell’interfaccia Ŕ standard1 : Ŕ necessario solo specificare il testo della domanda e l’immagine da mostrare mediante le clausole

testo( Domanda, Testo )

pic( Domanda, Immagine ).

Per altri tipi di domanda Ŕ invece necessario ricostruire l’interfaccia in base alle esigenze.
La clausola

parziale( Domanda )

permette di visualizzare spiegazioni parziali all’utente, in occasione di particolari domande.
Per aggiungere una nuova componente alla base di conoscenza, al fine di ampliare il dominio di applicazione del sistema o per aggiornare una delle componenti giÓ esistenti Ŕ necessario attenersi allo schema riportato in figura k

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

 

4.4.2 Motore inferenziale

Il motore inferenziale Ŕ stato progettato in modo da essere il pi¨ possibile indipendente dalla base di conoscenza.
La parte di selezione delle componenti (figura d) comprende una serie di clausole che implementano il protocollo standard di domande. La parte inferenziale, presenta, oltre a clausole di utilitÓ, che facilitano la computazione, clausole che implementano il livello meta, distinte da altre che implementano il livello oggetto.
E’ attivato dalla cluausola

motore( Ipotesi Plausibili )

L’argomento Ipotesi Plausibili rappresenta un parametro, che al termine del processo di inferenza conterrÓ la lista delle ipotesi plausibili.
Il meta-livello Ŕ attivato mediante la clausola

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.
L’azione congiunta delle clausole

rispondi( Domanda )

ordina_ipotesi( Lista di ipotesi ordinata )

esegue i compiti del livello oggetto: porre all’utente la domanda scelta fornendo le dovute giustificazioni; aggiornare la lista delle ipotesi in competizione mediante abduzione e ordinamento; aggiornare la lista di spiegazioni.
L’abduzione viene effettuata mediante la clausola

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 l’indice di plausibilitÓ (sommando ad esso l’indice di importanza dei segni), e la classe di domanda. Inserisce inoltre i segni selezionati nella lista di spiegazioni.
Tale lista di spiegazioni, contribuirÓ, al termine della computazione, alla costruizione delle spiegazioni della conclusione raggiunta. In essa saranno contenuti, per ogni ipotesi, tutti i segni verificati, con i quali, mediante la clausola

spiega( Segno, Testo)

saranno reperiti i testi di spiegazione da proporre all’utente.

4.4.3 Procedure di utilitÓ

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 l’utente (visualizzazione delle spiegazioni, visualizzazione di messaggi vari, ecc.), procedure di controllo della comunicazione con l’utente (controllo dati immessi, gestione di errori, ecc.) e procedure di help, che mettono a disposizione dell’utente un semplice help context sensitive, in grado di aiutarlo nella coprensione e guidarlo nella risposta alle domande.
In Appendice A Ŕ riportato per intero il listato del programma sorgente.

4.5 Esempio di esecuzione

In riferimento all’esempio di elaborazione in figura j, analizzeremo, passo per passo, la computazione del sistema, soffermandoci in particolar modo sulle azioni compiute dal motore inferenziale.
Il sistema viene attivato dal comando

:-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.
Supponiamo di aver risposto alle domande iniziali come in figura j e osserviamo l’evolversi della computazione susseguente alla risposta alla domanda riguardante il tipo di pietrame presente nella muratura.
Avremo la seguente descrizione istantanea:

- 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 l’ipotesi (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 all’utente 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 all’ipotesi (1565-1629), e tende quindi ad indebolirla.
La fase di abduzione prosegue con l’aggiornamento dell’ indice di plausibilitÓ di tali ipotesi: esso viene sommato all’indice importanza del segno, (ottenendo nel nostro caso il valore 2), continua con l’aggiornamento della classe di domanda delle ipotesi legate alla domanda (avendo risposto ad una domanda in classe 3 per l’ipotesi (1565-1629), la sua classe di domanda viene aggiornata con il valore 4) e si conclude aggiungendo il segno alla lista di spiegazioni.
Il compito del livello oggetto si conclude con l’ordinamento della lista di ipotesi in competizione:

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 all’ipotesi in testa; ad esaurimento delle domande.