Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Università degli Studi di Salerno Facoltà di Scienze Matematiche Fisiche e Naturali Corso di laurea in Informatica Specialistica Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sistemi ad Agenti 23 febbraio 2008 A cura di: Fortino Vittorio Frola Bernardino Ingenito Antonio
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti Sommario 1 Introduzione ....................................................................................................................... 4 1.1 Overview .................................................................................................................... 4 1.1.1 Il Semantic WEB ................................................................................................. 4 1.1.2 Cosa manca ........................................................................................................ 5 1.2 Tecnologie utilizzate e non studiate al corso............................................................. 6 1.2.1 Jena e OWL......................................................................................................... 6 1.2.2 WordNet e JWLN ............................................................................................... 6 1.2.3 JML ..................................................................................................................... 6 1.2.4 Standford NLP..................................................................................................... 6 1.2.5 AUML (documentazione) ................................................................................... 7 1.3 Statistiche e Schedulazione attività ........................................................................... 7 1.4 Struttura del documento............................................................................................ 8 1.4.1 Utilizzo del sistema............................................................................................. 8 1.4.2 Architettura del sistema..................................................................................... 8 1.4.3 Ontologie............................................................................................................ 8 1.4.4 Estensione del DF di Jade ................................................................................... 8 1.4.5 Repository semantico......................................................................................... 8 1.4.6 Sviluppi futuri ..................................................................................................... 8 2 Utilizzo del sistema............................................................................................................. 9 2.1 Interfaccia del sistema ............................................................................................... 9 2.1.1 Sessioni............................................................................................................... 9 2.1.2 Interazione ....................................................................................................... 10 2.2 Avvio ......................................................................................................................... 11 2.2.1 Server – jade..................................................................................................... 11 2.2.2 Client ................................................................................................................ 12 3 Architettura del sistema................................................................................................... 13 3.1 Overview .................................................................................................................. 13 3.2 Componenti del sistema .......................................................................................... 13 3.2.1 Retrieval ........................................................................................................... 13 3.2.2 Registrazione .................................................................................................... 14 3.3 Distribuzione dei componenti.................................................................................. 15 3.4 Modello dinamico .................................................................................................... 16 3.4.1 Retruieval ......................................................................................................... 16 3.4.2 Registrazione .................................................................................................... 17 4 Ontolgie ............................................................................................................................ 18 4.1 Profilo di un servizio ................................................................................................. 18 4.1.1 Struttura – classes ........................................................................................... 18 4.1.2 Istanze dello schema – individuals................................................................... 19 2
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti 4.2 Ontologia di comunicazione di Jade......................................................................... 21 4.2.1 FIPA REQUEST PROTOCOL................................................................................ 21 4.2.2 AchieveReResponder ....................................................................................... 23 4.2.3 SimpleAchiveREResponder .............................................................................. 23 4.3 RSOntology ( Service Retrieval Semantic Ontology ) ............................................... 25 4.4 Ontologia per la comunicazione tra l’agente SearchAgent e l’agente DF semantico 29 5 Estensione del DF di Jade ................................................................................................. 30 5.1 La classe ServiceSemanticDescription...................................................................... 30 5.2 Estensione della classe DFService ............................................................................ 31 5.2.1 Registrazione di un servizio semantico ............................................................ 31 5.2.2.................................................................................................................................. 34 5.2.3 Ricerca di un servizio semantico ...................................................................... 34 5.3 Le classi SemanticSearch e SemanticRegister.......................................................... 39 5.4 Estensione della classe DFFipaAgentManagementBehaviour ................................. 39 5.5 Estensione della classe DF........................................................................................ 40 6 Repository semantico....................................................................................................... 41 6.1 Struttura ................................................................................................................... 41 6.2 Integrazione del SKB nel DF di JADE........................................................................ 42 6.3 Algoritmo di ricerca semantica ................................................................................ 42 6.3.1 Descrizione ....................................................................................................... 42 6.3.2 Pseudo‐codice: ................................................................................................. 42 6.4 Struttura del database ............................................................................................. 45 6.4.1 Schema ER ........................................................................................................ 45 6.4.2 Struttura delle tabele ....................................................................................... 45 6.5 Implementazione ..................................................................................................... 47 6.5.1 Classi create...................................................................................................... 47 6.5.2 Classi modificate............................................................................................... 47 6.6 Estendibilità.............................................................................................................. 47 7 Sviluppi futuri ................................................................................................................... 49 Appendice A: Esempio di utilizzo ............................................................................................. 51 Appendice B: Wordnet............................................................................................................. 53 Bibliografia ............................................................................................................................... 58 3
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti 1 Introduzione 1.1 Overview Il progetto consiste nella realizzazione di una infrastruttura sulla base del Directory Facilitator (DF) di Jade, che permetta l’uso di ontologie semantiche nella localizzazione degli agenti in base ai servizi offerti. Questo infrastruttura deve consentire ad un agente di registrare un suo servizio, a cui è associata una descrizione semantica, in modo tale che esso possa essere reperito da altri agenti attraverso una ricerca semantica. Lo scenario appena introdotto potrebbe permettere, attraverso un semplice client MSN, di realizzare la richiesta di un servizio web mediante un linguaggio quanto più vicino a quello naturale. Tale richiesta sarà analizzata da un agente che avrà il compito di eseguire un match semantico fra una descrizione del servizio richiesto e una descrizione del servizio offerto da un’altro agente. La realizzazione di questo progetto costituisce un ulteriore passo verso il Semantic Web, poiché metterebbe a disposizione all’utente del web, uno strumento semplicissimo ed efficace per la ricerca semantica di un servizio web offerto attraverso un agente software intelligente. In questo caso e nel seguito del documento, la parola “intelligente” va interpretata non per il significato generico del termine ma come la capacità di effettuare operazioni di ragionamento sui dati a disposizione, andando oltre le restrizioni dei sistemi di ricerca classica. 1.1.1 Il Semantic WEB Oggigiorno il Semantic Web è un insieme di tecnologie che si pone l'obiettivo di rendere le informazioni comprensibili e manipolabili da programmi, in modo da creare nuova conoscenza, in una serie di computazioni finite, a partire dalle informazioni iniziali e dalle loro relazioni. Con le tecnologie del Semantic Web è possibile definire una base cognitiva distribuita che va oltre il singolo dato, aggregando le fonti informative in un'unica entità di conoscenza strutturata, interrogabile da agenti di ricerca basati su criteri semantici. Quindi il Semantic Web ha come obiettivo quello di creare una rete spontaneamente predisposta alle ricerche semantiche. Per raggiungere tale obiettivo sono state definite diverse tecnologie sulla base di XML, come OWL e RDF che servono, appunto, a definire la struttura semantica delle informazioni. Attraverso l’utilizzo di queste tecnologie è stato possibile estendere le applicazioni web esistenti e crearne delle nuove, che fossero basate sull’utilizzo della semantica. Tale intento ancora non è stato raggiunto, perché non basta soltanto associare una semantica ai servizi web, ma bisogna in qualche modo rendere le “vecchie” piattaforme, che realizzano il retrivial di servizi web, semantiche, cioè che siano in grado fornire strumenti per la ricerca semantica di un servizio web. Una delle prime applicazioni web, che sono state coinvolte da questo processo di trasformazione del web (si parla appunto di WEB 2.0), sono i web services. Infatti per i servizi web è stato definito uno standard basato sulla tecnologia OWL, ossia OWL‐S, attraverso il quale è possibile definire, mediante un’ontologia, una descrizione semantica di un servizio web. I servizi web semantici si propongono i seguenti ambiziosi obiettivi: • Ricerca (semantica): ricerca di servizi web che forniscano un determinato servizio e soddisfino a particolari vincoli. 4
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti • Invocazione automatica: invocazione da parte di un agente o di un programma di un servizio precedentemente identificato. L’esecuzione di un servizio web può essere pensata come un insieme di chiamate a funzioni. I servizi web semantici offrono un modo dichiarativo per descrivere i parametri in ingresso e in uscita di tali funzioni, in modo che agenti software intelligenti determinino automaticamente il tipo di parametri di cui hanno bisogno, il valore di ritorno della funzione e come eseguire automaticamente la chiamata. • Composizione automatica: data una descrizione di alto livello di un obiettivo, gli agenti semantici permettono di comporre chiamate a servizi web elementari per raggiungere l’obiettivo prefissato. Questo in linea teorica dovrebbe essere possibile anche in caso i servizi web elementari non siano noti in partenza, ma vengano selezionati al momento della definizione dell’obiettivo. 1.1.2 Cosa manca In questa breve descrizione del Semantic Web e in particolar modo dei servizi web semantici si è più volte parlato di AGENTE. Un agente, in generale, è un sistema computazionale che può vivere in ambienti dinamici e complessi, che ha dei sensi, i quali gli permettono di percepire l’ambiente e, in particolare, di interagire con i suoi simili e con gli umani; agisce autonomamente soddisfando i suoi obiettivi e eseguendo i compiti per cui è stato progettato. Quindi l’agente è una componente fondamentale per risolvere problemi di ricerca semantica e di invocazione automatica dei servizi web. La piattaforma, oggi, più usata per la realizzazione di sistemi distribuiti multi‐agente è JADE. JADE permette la registrazione dei servizi offerti da un agente e la ricerca di tali servizi attraverso un agente: il Directory Facilitator (DF). Tale DF, attualmente, non è in grado di gestire la ricerca semantica di un servizio offerto da un agente, ne tanto meno una registrazione semantica del servizio stesso. Da qui la necessità di estendere il DF per ottenere un SDF (Semantic Directory Facilitator), il quale deve fornire una serie di strumenti di registrazione e ricerca di un servizio semantico, simili a quelli già presenti per la registrazione normale di un servizio. Siccome il SDF dovrà gestire una serie di informazioni aggiuntive per ogni servizio registrato da un agente, sarà necessaria una descrizione del servizio semantico data da un file OWL proprietario che chiameremo OWL‐A (dove “A” sta per “Agent”). XML Permette di definire i propri tag e di strutturare le informazioni XMLS Definisce la struttura sintattica di un documento XML RDF Permette di esprimere relazioni esistenti tra istanze concettuali RDFS Permette di definire relazioni e concetti Poggia su RDFS e permette di esprimere pienamente classi, relazioni, istanze, OWL vincoli, ecc OWL‐S Istanza di OWL che descrive un web‐service OWL‐A Istanza di OWL che descrive un servizio fornito da un agente 5
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti Un altro problema che riguarda il Semantic Web è l’accessibilità ai servizi web semantici. Idealmente un utente dovrebbe essere in grado di utilizzare un servizio web mediante un linguaggio quanto più vicino a quello naturale. Infatti la ricerca dei servizi web dovrebbe essere basata sul match semantico fra una descrizione del servizio richiesto e una descrizione del servizio offerto. Attualmente esistono diversi progetti, alcuni realizzati, altri in fase di sviluppo, che mirano alla definizione di un algoritmo di match tra la richiesta “naturale” di un servizio ed i servizi web offerti. Tale soluzione non è efficiente perché richiederebbe la definizione di un complesso algoritmo che sia in grado di confrontare il profilo della richiesta con il profilo di un qualunque servizio web pubblicato. Vi è, dunque, la necessità di definire una piattaforma che sia in grado di fornire e far condividere i profili dei servizi web, attraverso un repository semantico all’interno del quale siano memorizzate, temporaneamente, le descrizioni dei servizi offerti. In questo modo si renderebbe la ricerca di tutti quei profili di servizi web che in qualche modo hanno a che fare con il profilo di richiesta fornito dall’utente, più veloce, ma soprattutto più efficiente. 1.2 Tecnologie utilizzate e non studiate al corso 1.2.1 Jena e OWL Queste tecnologie, largamente usate, sono descritte nel corso del documento. 1.2.2 WordNet e JWLN Le API JWLN sono state utilizzate come porta di accesso alle funzionalità di WordNet. WordNet è considerato uno dei più importanti lessici standard per la lingua inglese, è stato sviluppato all’Università di Princeton. Esso è una risorsa linguistica che organizza, definisce, descrive i concetti rilevanti della lingua inglese. La concettualizzazione del lessico è realizzata attraverso il synset, insieme di termini dal significato equivalente (sinonimi), strutturati in nodi e collegati da relazioni di senso: iper/iponimia, mereonimia, ruolo, etc..; in ogni concetto, o synset, le differenze di senso (polisemie) sono distinte, numerate e definite mediante relazioni tassonomiche e associative. Il discorso continua all’interno della Appendice B. 1.2.3 JML JML (acroniomo di Java MSN Messenger Library) è un libreria java che implementa i proticolli Messenger da MSNP8 a MSNP12. 1.2.4 Standford NLP NLP (acronimo di Natural Language Processing) è un parser sviluppato dall’università di Stanford. Esso permette di comprendere i concetti espressi dal documento nel nostro caso quello che ha digitato l’utente nel client di messenger, l'analisi testuale. NLP riesce a comprendere e generare testi che gli uomini possano comprendere in maniera naturale, come se stessero comunicando con un altro interlocutore umano e non un computer. Il parser NLP processa il testo in due fasi la prima è la fase di analisi detta NLA (Natural Language Analysis) che data una frase ha l’obiettivo di darne una rappresentazione della sua analisi. Si occupa della riduzione di un testo in linguaggio naturale in una rappresentazione formale e univoca ciò richiede la risoluzione ambiguità interpretative presenti in un testo in linguaggio naturale in più esso richiede la capacità di trattare strutture sintattiche non lineari ma interdipendenti e gerarchiche. La seconda fase è composta dal Natural Language Generation (NLG) che data una grammatica di una lingua ha lo scopo di produrne frasi di 6
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti senso compiuto. Si occupa della costruzione di automi capaci di produrre frasi corrette rispetto a una data lingua L (nel nostro caso l’inglese) questa richiede un rappresentazione della lingua di interesse (l’inglese), la possibilità di selezione ed elaborazione dei contenuti e la realizzazione di frasi con l’ausilio della rappresentazione della lingua e di un dizionario‐ macchina offertoci da WordNet. 1.2.5 AUML (documentazione) Per potersi uniformare con le tecniche di project design (lato client/server lato web ecc), gli sviluppatori di sistemi ad agenti per migliorare l’agent design hanno adottato una estensione di UML chiamata AUML dato che l’UML non si adatta in tutto e per tutto alla modellazione di agenti o sistemi agent‐based. FIPA e OMG Agent Work Group stanno progettando un’estensione di UML ufficiale(raccomandata). L’estensione allo standard UML (AUML) è incentrato nella specifica dei protocolli di interazione agente (AIP), e altri protocolli usati comunemente per sistemi agent‐based. Sono stati scelti protocolli di interazione perché sono abbastanza complessi per illustrare l’uso uso nontrivial di AUML e sono utilizzati in vari progetti per rendere questo sottoinsieme di AUML utile ad altri ricercatori. Una specificazione di AIP fornisce un esempio che noi o analogia che si potrebbe utilizzare per risolvere i problemi nel sistema di analisi e progettazione. Un protocollo di interazione dell’agente (AIP) descrive un modello di comunicazione come una sequenza di permessi messaggi tra agenti e dei vincoli sul contenuto di questi messaggi. 1.3 Statistiche e Schedulazione attività Nella seguente figura è riportata la schedulazione delle attività avvenuta nel corso del progetto. La durata totale del lavoro è stata di poco meno di due mesi, dal 20 di dicembre 2007 al 13 del mese di febbraio 2008. Le maggiori difficoltà sono state riscontrate nella comprensione delle meccaniche di gestione delle ontologie e del funzionamento del DF di Jade, nonché la realizzazione del repository semantico, dovuta, quest ultima, alla necessità di comprensione delle potenzialità del linguaggio ontologico OWL.. 2008 Dicembre Gennaio Febbraio Modifica dell’ontologia di Aggiunta delle funzionalità Creazione ontologie di comunicazione con il DF di ricerca e registrazione di comunicazione tra l’agenti descrizioni semantiche al MSN, loader, searcher e invoker DF Creazione Studio dell’accesso al Creazione del repository semantico Modulo del profilo repository semantico ed integrazione in JADE reperimen OWL‐A con Jena to concetti Studio e Creazione agente Riconoscitore di frasi (parser) creazione MSN dell’interfaccia con MSN Inizio Consegna 20/12/08 13/02/08 7
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti Il diagramma non riporta lo sforzo intrapreso nel testing di unità effettuato al ternine di ogni singolo task e del testing di sistema ed integrazione effettuato nella settimana antecedente la consegna. 1.4 Struttura del documento 1.4.1 Utilizzo del sistema Questa sezione descrive l’interfaccia del sistema e come è possibile approcciare all’uso del service retrieval semantico. 1.4.2 Architettura del sistema Modello statico e dinamico del sistema con la presentazione dei componenti e la loro distribuzione sui livelli harware. 1.4.3 Ontologie Descritte le ontologie di comunicazione che supportano i processi interni di retrieval semantico, nonché lo schema OWL alla base delle descrizioni semantiche. 1.4.4 Estensione del DF di Jade Sono discusse le modifiche, sia intermini di estensione che di aggiunta, del DF di Jade. 1.4.5 Repository semantico Come è strutturato il repository dedicato all’immagazinamento delle descrizioni semantiche dei servizi. 1.4.6 Sviluppi futuri Sono discusse le carenze e le possibili ottimizzazioni del sistema realizzato. 8
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti 2 Utilizzo del sistema 2.1 Interfaccia del sistema L’interfaccia del sistema è realizzata mediante un account MSN. Il nome dell’account è lasaproject@live.it ed è necessario aggiungerlo alla propria lista degli amici MSN per poter utilizzare l’applicazione. In Figura 2‐1 è mostrato la schermata dell’interfaccia utente. Figura 2‐1 2.1.1 Sessioni Le sessioni sono gestite in modo molto semplice. Come vedremo nella descrizione dell’architettura del sistema, esiste un agente perennemente attivo che si occupa dell’interlocuzione con l’utente. L’interfaccia MSN fa si che ogniqualvolta un utente “contatta” l’agente MSN viene avviata una nuova sessione se non è già attiva una sessione con il medesimo utente. Affinché l’agente MSN sia in grado di distinguere le nuove sessioni da quelle già in corso, è utilizzata una lista di associazioni , dove contatto utente rappresenta l’e‐mail MSN univoca dell’utente e gestore utente rappresenta il sistema l’istanza del gestore dedicato alla sessione utente. 9
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti Figura 2‐2 Nell’esempio riportato in Figura 2‐2 esistono due contatti che hanno una sessione attiva ed un terzo senza. In blu riportati i messaggi istantanei inviati dai contatti. I messaggi dei due contatti aventi la sessione subiscono una immediata ridirezione al gestore dedicato. Il messaggio di un contatto “sconosciuto” è invece accompagnato dalle operazioni di creazione di un nuovo gestore dedicato e dell’inserimento del contatto nella tabella delle sessioni. All’interno del capitolo 4 sono riportati dettagli più maggiori suo concetto di gestore dedicato. Concludiamo il discorso dicendo che la sessione scade dopo un certo periodo di tempo che l’utente non è più attivo, cioè non invia più alcun messaggio. In Figura 2‐3 è mostrato il semplice diagramma di stati che rappresenta questo concetto. Figura 2‐3 Nella sezione successiva sono riportati dettagli riguardo lo stato Internal. 2.1.2 Interazione Nella Figura 2‐4 è mostrato il diagramma degli stati dell’interfaccia con l’utente, che rappresentano il contenuto dello stato Internal visto nella sezione precedente. Questi stati sono gestiti direttamente dal sistema di parsing dei messaggi inviati dall’utente, questo perché un determinato stato decide il tipo di input che deve essere riconosciuto e valicato. 10
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti Figura 2‐4 2.2 Avvio 2.2.1 Server – jade L’avvio della piattaforma ad agenti è quella classica riportatata in . per garantire il corretto funzionamento del sistema bisogna specificare i seguenti parametri al comando Boot di Jade: Comando Descrizione Un possibile valore -jade_domain_df_db-driver com.mysql.jdbc.Driver URL del database gestito direttamente da jdbc:mysql:// -jade_domain_df_db-url Jade localhost/kbrepository URL del database gestito per l’immagazinamento delle descrizioni jdbc:mysql:// -jade_domain_df_db-skb-url semantiche (per non creare confusione si localhost/skbrepository consiglia che sia diverso da quello usato da Jade) -jade_domain_df_db-skb-type Tipo di database utilizzato MySql Username usato per la connessione ad -jade_domain_df_db-username DBuser entrambi i DB Password usata per la connessione ad -jade_domain_df_db-password DBpassword entrambi i DB SRS-LoaderAgent: Specifica il path della classe Java che com.lasa.srs.agents.LoaderAgent implementa l’agente di caricamento SRS-SearchAgent: Specifica il path della classe Java che com.lasa.srs.agents.SearchAgent implementa l’agente di ricerca SRS-MSNAgent: Specifica il path della classe Java che com.lasa.srs.agents.MSNAgent implementa l’agente di MSN [Agenti fornitori del servizio] Specifica il path 11
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti 2.2.2 Client L’applicazione usata tramite un comune client MSN. Avviandolo, aggiungendo alla propria lista amici di MSN il contatto lasaproject@live.it ed, infine, inviando un messaggio istantaneo suddetto contatto si avvia una sessione dedicata per l’utilizzo dell’applicazione. 12
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti 3 Architettura del sistema 3.1 Overview Il sistema è diviso in due sezioni principali: • Retrieval: parte del sistema dedicata alla fase di ricerca semantica e fruizione di uno dei servizi registrati presso il DF. • Registrazione: si occupa della registrazione di un nuovo servizio sul DF e l’immagazzinamento della descrizione semantica nel repository integrato. 3.2 Componenti del sistema I componenti del sistema sono: • Agente di interfacciamento MSN: gestisce l’interazione con l’utente. Il suo compito è quello di reperire le informazioni fornite in linguaggio naturale dall’utente, strutturarle e smistarle alle componenti specifiche del sistema. • Agente di ricerca: Fa da tramite tra l’utente e la ricerca di servizi fornita dal DF. • DF‐semantico: DF per la ricerca di servizi con descrizione semantica. • Agente di caricamento: si occupa della creazione ed l’inizializzazione di un agente di invocazione dedicato. • Agente di invocazione dedicato: invoca i servizi ed analizza i concetti correlati. • Agente fornitore del servizio: si tratta dell’agente che registra un servizio semantico. Nelle due seguenti sottosezioni sono mostrati i diagrammi dei componenti suddivisi per sezioni di Retrieval e Registrazioni. 3.2.1 Retrieval Lo schema della sezione di retrieval è riportato in Figura 3‐1. 13
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti Figura 3‐1 La struttura è suddivisa nei classici tre strati software: • presentation per l’interfacciamento con l’utente, ovvero tutto ciò che serve per comunicare con un client MSN. • logic per la realizzazione della logica del servizio, fanno parte di questo strato tutti gli agenti che implemento il servizio; • business, per l’accesso ai dati, fanno parte di questo livello le API per l’accesso al dizionario di WordNet e il sistema di knoloege‐base: o KB: il classico sistema di reperimento dati adottato dal DF di Jade. o SKB: si tratta del KB semantico per l’accesso alle descrizioni semantiche ed i concetti ad esse correlati. La sezione 4.3 si occupa approfonditamente di questo argomento. L’agente fornitore del servizio è stato riportato al di fuori del sistema realizzato in quanto facente parte del sistema solamente in maniera “passiva”. 3.2.2 Registrazione In Figura 3‐2 è riportato lo schema della fase di registrazione. Le componenti in gioco sono un sottoinsieme di quelle già descritte nella sezione precedente. 14
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti Figura 3‐2 3.3 Distribuzione dei componenti Figura 3‐3 15
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti In Figura 3‐3 è mostrata una possibile distribuzione dei componenti descritti nella sezione precedente. Le etichette delle connessioni riportano i protocolli utilizzati per le comunicazione tra i vari nodi. 3.4 Modello dinamico Vediamo ora quali sono i messaggi scambiati tra i componenti del sistema. 3.4.1 Retruieval La sezione di retrieval è suddivisa nelle parte riguardante la ricerca, il cui diagramma di sequenza è mostrato in Figura 3‐4, e di invocazione, mostrato in Figura 3‐5. In riferimento al diagramma sono da prendere due particolari assunzioni: • Per semplicità visiva le transazioni che coinvolgono l’MSNAdapter e l’utente sono state ommesse, si tratta infatti di un passaggio inalterato del messaggio in forma nauturale fino al clientMSN. • La fase che descrive la ricerca semantica a partire dalla “Richiesta di ricerca con descr. Semantica” effettuata dall’agente di ricerca è, in realtà, più complessa. Una approfondita analisi di questa operazione è presente nella sezione 4.3. Figura 3‐4 16
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti Figura 3‐5 3.4.2 Registrazione Tutto ciò che riguarda la comunicazione durante la fase di registrazione è mostrato in Figura 3‐6. Figura 3‐6 17
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti 4 Ontolgie 4.1 Profilo di un servizio Il modello di servizio è ispirato allo standard W3C OWL‐S. Alcuni elementi sono stati eliminati ed altri sono stati aggiunti al fine di rendere la descrizione semantica conforme al tipo di servizio che può essere offerto da un agente in Jade. Di seguito sono riportati i campi principali di un descrittore di servizio. Tali campi sono codificati in un file formato XML chiamato OWL. Da questo punto in poi, per indicare l’istanza OWL utilizzata in questo progetto per la descrizione di un servizio useremo OWL‐A, dove “A” sta per “Agent”. Nella seguente sezione vediamo come è composto lo schema che una descrizione semantica di un servizio deve rispettare. 4.1.1 Struttura – classes Nella Figura 4‐1 è mostrata la struttura dello schema OWL che descrive il profilo di un servizio fornito da un agente. Figura 4‐1 18
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti Per semplicità in figura sono state omesse le sottoclassi anonime che definiscono le restrizioni sulla cordialità delle varie proprietà. Le restrizioni sono utilizzate per codificare le seguenti tre regole: • Il vincolo di restrizione sulla cordialità strettamente pari a 1 sussiste sulle seguenti datatypeProperty: serviceName, textDescription, serviceAID, serviceOntologyClass e serviceActionName per la classe Profile e parameterType, parameterName e parameterBeanClass per la classe Parameter. • Il vincolo di restrizione sulla cordialità minima pari a 1 sussiste sulle datatypeProperty, serviceCategory della classe Profile. • Il vincolo di restrizione sulla cordialità massima pari a 1 sussiste sulle datatypeProperty, parameterValue della classe Parameter Nella Figura 4‐2 e Figura 4‐3 nella sono mostrate le schermate di Protègè che documentano la creazione dei suddetti vincoli. Figura 4‐2 Figura 4‐3 4.1.2 Istanze dello schema – individuals Vediamo ora un esempio di un profilo di un servizio, per meglio capire il significato di ogni campo dello schema. In Figura 4‐4 è mostrata la schermata di Protègè che descrive un profilo di un servizio. 19
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti Figura 4‐4 • I campi serviceName e textDescription non hanno bisogno di ulteriori spiegazioni. • Il campo serviceCategory, non completamente visibile, contiene l’URL della classe ontologica che descrive la categoria di appartenenza. • serviceAID è l’identificatore univoco dell’agente che fornisce il servizio. • serviceActionClass è il path della classe Java associata all’azione da invocare sull’agente fornitore. • serviceOntologyClass è il path della classe Java che descrive l’ontologia di comunicazione con l’agente fornitore ed alla quale bisogna registrarsi al momento dell’invocazione. • hasInput ed hasOutput contengono al loro interno il riferimento alle classi Input e Output che ne descrivono le caratteristiche. Nella Figura 4‐5 e nella Figura 4‐6 sono mostrate gli individual di input e output, indicati dalle objecProperty, rispettivamente, hasInput e hasOutput. Figura 4‐5 20
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti Figura 4‐6 Vediamo il significato dei vari campi: • il campo parameterType contiene l’URI della classe ontologica OWL che descrive il tipo di input/output. • parameterBeanClass è il path della classe Java che implementa il bean usato al momento dell’invocazione. Da notare che tale bean deve rispecchiare in tutto e per tutto la descrizione ontologica il cui riferimento è contenuto nel campo parameterType. • parameterValue serve per eventuali informazioni di inizializzazione. 4.2 Ontologia di comunicazione di Jade In questa sezione del documento di progettazione discuteremo dei protocolli adottati per la comunicazione tra gli agenti del Service Retrieval Semantic. 4.2.1 FIPA REQUEST PROTOCOL Il protocollo FIPA Request è utilizzato dagli agenti del Service Retrieval Semantic ogni volta che devono richiedere ad un altro agente del SRS l’esecuzione di un’azione. 21
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti FIPA-Request-Protocol Initiator Participant request refuse [refused] agree [agreed and notification necessary] failure inform-done : inform [agreed] inform-result : inform Figura 4‐7: FIPA Request Interaction Protocol (usando AUML) L’INITIATOR invia un messaggio ACL di richiesta . Nel nostro caso tali oggetti conterranno un concetto dell’ontologia SRSOntology, indicante l’azione richiesta al PARTICIPANT. Il PARTICIPANT processa la richiesta e decide se accettarla o meno. Nel nostro caso accetterà la richiesta se è in grado di comprenderne il contenuto usando l’ontologia SRSOntology. Il PARTICIPANT comunicherà la decisione presa all’INITIATIOR. Una volta che la richiesta è stata accettata il PARTICIPANT può rispondere in tre modi diversi: - una failure (fallimento) se non riesce nel suo tentativo di compilare la richiesta; - un inform‐done se completa con successo la richiesta ed invia DONE soltanto per indicare all’INITIATIOR che la richiesta è stata soddisfatta; - un inform‐result se completa con successo la richiesta ed invia RESULT l’oggetto contenente il risultato della richiesta. L’utilizzo del protocollo FIPA Request è garantito dai servizi di utilità che la classe SRSService fornisce agli agenti del SRS, ossia: - creazione di un messaggio ACL di tipo REQUEST, con il parametro setProtocol impostato come: request.setProtocol(FIPANames.InteractionProtocol.FIPA_REQUEST); con il parametro ReplyWith settato: request.setReplyWith("rw-"+sender.getName()+System.currentTimeMillis()+'-'+n); in questo modo l’INITIATOR attende l’arrivo di un messaggio corrispondente alla richiesta che precedentemente aveva inviato; quindi non c’è il rischio che un messaggio possa arrivare ad un agente INITIATOR. MessageTemplate mt = MessageTemplate.MatchInReplyTo(request.getReplyWith()); ACLMessage reply = a.blockingReceive(mt, timeout); 22
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti - possibilità, ad un agente, di calarsi nel ruolo di INITIATOR del protocollo FIPA‐Request e quindi di inviare una richiesta ad un agente del SRS, per chiedergli di eseguire una determinata azione. - ricerca di un agente del SRS, inviando un messaggio di richiesta all’AMS. 4.2.2 AchieveReResponder Questa classe implementa il ruolo di Responder. E’ importante passare il template giusto come argomento al suo costruttore, poiché il template è usato per selezionare solo determinati messaggi ACL che arrivano all’agente a cui viene associato questo ruolo. Questa classe può essere facilmente estesa, sovrascrivendo un solo o tutti i metodi per gestire gli stati del protocollo e per inviare la risposta. Il metodo prepareResponse è chiamato quando un Messaggio ACL, da parte di un INITIATOR, è stato ricevuto e la prima risposta (cioè l’agree) deve essere inviata; invece, il metodo prepareResultNotification è chiamato quando un rational effect deve essere ottenuto, cioè l’INITIATOR chiede di eseguire un azione al RESPONDER, tale azione deve essere eseguita solo se il messaggio ACL ricevuto dal Responder ha come protocollo di interazione FIPA Request. 4.2.3 SimpleAchiveREResponder Questa classe è una semplice implementazione di AchiveREResponder. La differenza principale è che questa versione non permette al programmatore di registrare Behaviours come gestori dello stato del protocollo. SRSRequestManagementBehaviour Questa classe è stata definita per costruire ruoli di RESPONDER specifici per gli agenti del SRS. Essa estende SimpleAchiveREResponder , e sovrascrive il metodo PrepareResponse, il quale si aspetta che, il Messaggio ACL ricevuto, contenga un oggetto Action il quale sarà passato al metodo astratto performAction. Tale metodo dovrà essere esteso da tutti gli agenti del SRS che in generale offrono servizi ad altri agenti del SRS, più precisamente: - per l’agente SEARCHAgent è stato definito il ruolo SearchAgentSRSManagementBehaviour una classe che estende SRSRequestManagementBehaviour e che implementa il metodo astratto performAction il quale si preoccupa realizzare l’azione richiesta dall’INITIATOR (che invia all’interno del messaggio di richiesta ACL l’oggetto SEARCH). 23
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti per l’agente LOADERAgent è stato definito il ruolo LOADERAgentSRSManagementBehaviour una classe che estende SRSRequestManagementBehaviour e che implementa il metodo astratto performAction il quale si preoccupa realizzare l’azione richiesta dall’INITIATOR (che invia all’interno del messaggio di richiesta ACL l’oggetto LOADAGENT). 24
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti - per l’agente INVOKEAgent è stato definito il ruolo INVOKEAgentSRSManagementBehaviour una classe che estende SRSRequestManagementBehaviour e che implementa il metodo astratto performAction il quale si preoccupa realizzare l’azione richiesta dall’INITIATOR (che invia all’interno del messaggio di richiesta ACL l’oggetto GETINPUT o CALLSERVICE). 4.3 RSOntology ( Service Retrieval Semantic Ontology ) Ontologie per la comunicazione tra i diversi agenti che collaborano per fornire servizi di retrieval semantici: - MSNAgent; - SearchAgent; - LoaderAgent; - InvokeAgent; - ProviderAgent; - DF (semantico). 25
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti package com.lasa.srs.SRSOntology; /** * This interface contains all the string constants for management of agents * involved in the semantic system retrieval. */ public interface SRSManagementVocabulary { /** * A symbolic constant, containing the name of this ontology. */ public static final String SRSNAME = "SRS-Agent-Management"; // Concepts public static final String SEARCHACT = "search"; public static final String SEARCHACT_PARAMATERSERVICES = "paramaterServices"; public static final String LOADAGENT = "loader-agent"; public static final String LOADAGENT_EXPIRATIONTIME = "expirationTime"; public static final String LOADAGENT_SSDCONTENT = "selectedSSDContent"; public static final String LOADAGENT_SSDURI = "selectedSSDUri"; public static final String GETINPUT = "get-input"; public static final String CALLSERVICE = "call-service"; public static final String CALLSERVICE_INPUTPARAMETERS = "inputParameters"; public static final String PARAMATER = "paramater"; public static final String PARAMATER_NAME = "name"; public static final String PARAMATER_VALUE = "value"; public static final String PARAMATER_TYPE = "type"; public static final String CALLRESULT = "call-result"; public static final String CALLRESULT_MESSAGERESULT = "messageResult"; public static final String CALLRESULT_OUTPUTPARAMETERS = "outputParameters"; } Qui di seguito riportiamo la descrizione del contenuto dei messaggi ACL che si scambiano gli agenti del ServiceRetrievalSemantic. In generale tali messaggi conterranno oggetti che estendono uno dei concetti base ontologici di JADE, ossia AgentAction il quale indica la richiesta di un servizio fornito dall’agente a cui è destinato il messaggio. Invece le risposte fornite dagli agenti, che forniscono servizi, saranno sempre concetti dell’ontologia SRS- Agent-Management ma racchiusi nel concetto ontologico Result di JADE. AgentAction SEARCHACT: rappresenta il comando emesso per l’agente SearchAgent , da parte del MSNAgent, che si occupa di eseguire una ricerca semantica del servizio richiesto dall’utente, attraverso il client MSN. Il SearchAgent restituirà una lista di descrittori di servizi semantici che il MSNAgent mostrerà al client MSN sottoforma di un elenco di servizi disponibili relativi alle richieste fatte dall’utente. • List paramaterServices o Rappresenta una lista di oggetti di tipo Paramater, cioè le informazioni necessarie per ottenere la costruzione parziale di un file OWLA, rappresentante il servizio richiesto. Tale file OWLA sarà utilizzata tal SearchAgent per comunicare al DF semantico la richiesta di ricerca di un servizio semantico in base alle informazioni contenute nel file OWLA. La comunicazione tra il SearchAgent ed il DF semantico avverà attraverso un estensione dell’ontologia di FIPAAgentManagementOntology di JADE. 26
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti LOADAGENT: rappresenta il comando emesso per l’agente LoaderAgent il quale si occupa di creare un nuovo agente di invocazione, InvokeAgent, per soddisfare la richiesta pervenuta da un client MSN. Il messaggio ACL contenente l’azione LOADAGENT è stato spedito dall’agente MSNAgent dopo che l’utente, attraverso il client MSN, ha selezionato uno dei servizi semantici che gli sono stati proposti. dall’utente Inoltre, siccome si conosce l’OWL‐A corrispondente al servizio scelto dall’utente attraverso il client MSN, conosciamo l’ontologia di input‐output del servizio offerto da un agente provider, che chiamiamo GenericServiceAgent. Questo agente può essere contattato per ottenere la specifica dell’input; ossia se l’input del servizio richiesto è un oggetto “città”, bisogna sapere da quanti campi sia composto affinché si possa indicare all’utente del client di MSN quali informazioni deve dare in input affinché possa utilizzare tale servizio. • Integer expirationTime o rappresenta il tempo massimo di attesa dell’InvokeAgent. L’InvokeAgent attende che il MSNAgent gli invii la richiesta degli inputs necessari per richiedere il servizio che il ProviderAgent fornisce. • String selectedSSDContent o Contiene le informazioni (sottoforma di stringhe di caratteri) relative ad un servizio semantico (SemanticServiceDescription) selezionato dall’utente, attraverso il client MSN. • List selectedSSDUri o Rappresenta l’uri del file OWLA contenente la descrizione semantica del servizio richiesto e le informazioni relative al ProviderAgent che lo fornisce. Inoltre il file OWLA contiene l’ontologia a cui deve registrarsi l’InvokeAgent per poter dialogare con il ProviderAgent, e di conseguenza realizzare l’intero processo di invocazione del servizio richiesto dall’utente attraverso il client MSN. GETINPUT: rappresenta il comando emesso per l’InvokeAgent il quale si occupa di recuperare le informazioni relative all’input del servizio semantico richiesto dall’utente attraverso il client MSN. Il messaggio ACL contenente la richiesta GETINPUT è spedito dal MSNAgent, esso non contiene nessuna informazione, serve soltanto ad indicare il tipo di operazione che l’InvokeAgent dovrà eseguire. Mentre la risposta, che l’InvokeAgent spedirà, conterrà un oggetto Result che include una lista di oggetti Paramater: … N.B.: i campi value sono vuoti poiché conterranno le informazioni che l’utente dovrà darà attraverso il client MSN per ottenere il servizio da lui richiesto. 27
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti CALLSERVICE: rappresenta il comando emesso per l’InvokeAgent, il quale dopo aver soddisfatto la richiesta GETINPUT inviata dal MSNAgent, attende da quest’ultimo gli inputs necessari per richiedere il servizio semantico al ProviderAgent . • List inputParameters o rappresenta la lista di oggetti parameter da passare all’agente InvokeAgent, il quale li utilizzerà per richiedere il servizio al ProviderAgent. … Concept CALLRESULT: non rappresenta un’azione, ma il risultato dell’invocazione del servizio semantico richiesto dall’utente. Il messaggio ACL contenente il concetto CALLRESULT è inviato dall’InvokeAgent il quale lo costruisce dopo aver concluso la comunicazione col ProviderAgent, e quindi ottenuto il servizio richiesto. • String messageResult o un messaggio d’informazione per indicare l’esito dell’esecuzione del servizio semantico richiesto. • List outputParameters o rappresenta l’output che l’agente InvokeAgent ha ricevuto dal ProviderAgent. L’ InvokeAgent trasforma l’output ricevuto in una lista di oggetti di tipo parameter da passare al MSNAgent. … PARAMATER: rappresenta un informazione generica scambiata tra due agenti del servizio retrivial semantico. • String name o indica il nome del parametro; • String value o indica il valore del parametro; • String type o Idica il tipo di parametro; 28
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti 4.4 Ontologia per la comunicazione tra l’agente SearchAgent e l’agente DF semantico Per la comunicazione tra l’agente SearchAgent e il DF semantico non è stata creata una nuova ontologia ma è stata estesa l’ontologia di FIPAAgentManagementOntology di JADE. In particolare sono stati estesi i seguenti concetti: SERVICEDESCRIPTION Î SERVICESEMANTICDESCRIPTION REGISTER Î SEMANTICREGISTER SEARCH Î SEMANTICSEARCH Inoltre per il concetto generale SERVICESEMANTICDESCRIPTION sono stati aggiunti i seguenti concetti (nodi‐figlio): • SERVICESEMANTICDESCRIPTION_CONTENT, il quale rappresenta la descrizione semantica associata ad una descrizione “semplice” di un servizio sotto JADE, data dal file proprietario OWL‐A; • SERVICESEMANTICDESCRIPTION_URI, il quale contiene l’uri del file OWL‐A; • SERVICESEMANTICDESCRIPTION_RANKVALUE, un valore float che indica il valore del servizio semantico trovato, rispetto al tipo di servizio richiesto dall’utente, ad esempio se l’utente riceve un servizio la cui descrizione è lontana da quella del servizio richiesto il rankvalue sarà basso; • SERVICESEMANTICDESCRIPTION_RANKVINFO, contiene i dettagli dell’operazione di matching, in pratica rappresenta una descrizione del valore rankvalue ottenuto. 1) SSDVocabulary In effetti non si tratta di un ontologia ma di un vocabolario di concetti utilizzati per descrivere il file proprietario OWL‐A, generato in automatico da JENA. (listare i concetti del vocabolario suddetto) 2) Ontologia per la comunicazione tra l’ InvokeAgent e il ProviderAgent. In generale si tratta di ontologie costituite da concetti che rappresentano gli input e gli output dei servizi che l’agente è in grado di fornire. I servizi che gli agenti forniscono sono visti come azioni, quindi per comunicare la richiesta di un servizio ad un ProviderAgent, l’InvokeAgent deve costruire un oggetto “AgentAction” contenente gli input (o “Concept”) necessari per ottenere il servizio richiesto. 29
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico Progetto per il corso di Sisteme ad Agenti 5 Estensione del DF di Jade Affinché il DF sia in grado di supportare la ricerca di un servizio semantico è stato necessario modificare e aggiungere nuove funzionalità ad esso. Modifiche apportate alla struttura di JADE: • estensione dell’ontologia di comunicazione FIPAAgentManagementOntology di JADE; o estensione delle classi: jade.domain.FIPAAgentManagement.FIPAManagementOntology ; jade.domain.FIPAAgentManagement.FIPAManagementVocabulary ; (per ulteriori dettagli consultare la Sezione 4, in cui vengono descritte le ontologie create ed estese) • aggiunta dei nuovi servizi offerti dal DF: o possibilità di costruire una descrizione di un servizio semantico aggiunta della classe jade.domain.FIPAAgentManagement.ServiceSemanticDescription ; o registrazione di un servizio semantico: estensione della classe jade.domain.DFService; estensione della jade.domain.DFFipaAgentManagementBehaviour; aggiunta della classe jade.domain.FIPAAgentManagement.SemanticRegister; o ricerca di un servizio semantico; estensione della classe jade.domain.DFService; estensione della jade.domain.DFFipaAgentManagementBehaviour; aggiunta della classe jade.domain.FIPAAgentManagement.SemanticSearch; 5.1 La classe ServiceSemanticDescription La classe ServiceSemanticDescription consente di costruire la descrizione di un servizio semantico, così come la classe ServiceDescription permette di realizzare la descrizione di un normale servizio fornito da un agente. ServiceSemanticDescription estende ServiceDescription ed aggiunge i seguenti campi privati: • CONTENT : un oggetto stringa, il quale rappresenta la descrizione semantica associata ad una descrizione “semplice” di un servizio sotto JADE, data dal file proprietario OWL‐A; • URI: un oggetto stringa che contiene l’uri del file OWL‐A; • RANKVALUE: un valore float indicante il valore del servizio semantico trovato, rispetto al tipo di servizio richiesto dall’utente; ad esempio se l’utente riceve un servizio la cui descrizione è lontana da quella del servizio richiesto, il rankvalue sarà basso; 30
Puoi anche leggere