AI*IA Notizie 11(4)
December 1998
La costruzione del software per componenti sta enfatizzando sempre più il ruolo dell'interazione e della interoperabilità come dimensioni di progetto essenziali. Tuttavia, comunicazione fra oggetti o fra agenti e interoperabilità non bastano per supportare efficacemente il progetto di un sistema interattivo complesso, come un sistema multi-agente. Occorre invece poter descrivere, e quindi disciplinare e controllare, l'interazione tra componenti / agenti. E' questo l'obiettivo principale dei modelli di coordinazione. Fra questi, i modelli basati sul concetto di blackboard e su spazi di tuple, come Linda, rendono effettivamente separate e ortogonali la dimensione della computazione, interna al singolo oggetto o agente, e quella della coordinazione, che concerne solo l'interazione fra essi. Ciò permette di supportare in modo naturale anche la dimensione della eterogeneità degli agenti. Tuttavia, le astrazioni di comunicazione cosi' definite hanno un comportamento stabilito a priori dal modello: per comunicare, gli agenti devono adattarsi a esse. Se le funzionalità e i comportamenti forniti non bastano o non sono adatti, tocca agli agenti costruirsi nuovi protocolli sopra tali comportamenti di base. In questo modo, però, il progetto del sistema diviene complesso, perche' gli agenti risultano sovraccaricati, dovendosi occupare non solo dei loro compiti, ma anche di gestire i dettagli dell'interazione. Cio' non consente di progettare gli agenti stessi a un adeguato livello di astrazione. Partendo da queste premesse, la tesi presenta l'idea di una astrazione di comunicazione intelligente, programmabile in modo da supportare i comportamenti richiesti dagli agenti: il "centro di tuple" ("tuple centre"). Evoluzione del tradizionale spazio di tuple ("tuple space"), il centro di tuple e' programmabile per mezzo di reazioni agli eventi di comunicazione, espresse mediante un linguaggio (ReSpecT) basato su tuple logiche del primo ordine, il cui modello si è dimostrato essere Turing-equivalente. Con questo approccio, l'astrazione di comunicazione cessa di essere semplicemente un canale passivo, ma diventa un componente intelligente e centrale del progetto: infatti, la sua presenza consente di progettare l'interazione fra gli agenti al livello di astrazione desiderato, delegando al canale stesso il compito di rendere disponibili tali comportamenti evoluti, mediante la programmazione di reazioni idonee. Un caso particolare è il centro di tuple logico, le cui tuple sono clausole del primo ordine: ciò consente una doppia interpretazione del canale di comunicazione, come semplice astrazione di comunicazione e come teoria logica. Questa seconda interpretazione suggerisce la possibilità di effettuare deduzioni sullo stato corrente della comunicazione. A questo fine, per coniugare la natura evolutiva dell'astrazione di comunicazione con la visione di verità immutabile delle teorie logiche, il modello proposto (ACLT) definisce un modello di classificazione della conoscenza che distingue fra conoscenza transiente e conoscenza persistente. Inoltre, viene definito un modello (a "snapshot") per supportare il non-determinismo "don't-know" e il backtracking nell'accesso alla conoscenza (persistente). Il risultato è una famiglia di primitive "demo" ibride, che combinano aspetti di dimostrazione logica con il supporto alla sincronizzazione tra i processi deduttivi e gli eventi di comunicazione.