Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico

Pagina creata da Francesca Perini
 
CONTINUA A LEGGERE
Definizione di un servizio di pagine gialle ontologico per la realizzazione di un sistema di retrieval semantico
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
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
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
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
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
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
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
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
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
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