Sei sulla pagina 1di 28

Laureando: Michele Filannino

Sviluppo di un algoritmo di similarità


a supporto dell’annotazione
semantica di web services
Relatori: Prof. G.Semeraro, Prof. P.Lops
Correlatrice: Dott.ssa E.Tinelli

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tesi  di  laurea
> Titolo  sezione  parte  1
Titolo  sezione  parte  2

* Obiettivo
della  tesi

Realizzazione  di  un  algoritmo  per  il  


calcolo  della  similarità  semantica  
tra  testi,  che  sia  di  supporto  alla  
fase  di  annotazione  semantica  di  web  
service  tramite  standard  SAWSDL.

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea
1
Introduzione ai
[Semantic]* Web Services
dall’architettura  SOA  ai  semantic  web  services

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea
> Introduzione  ai
Semantic  Web  Services

WEB SERVICE
In   una   SOA,   quando   il   mezzo   di   trasmissione   è   il   Web,   la   componente   più  
utilizzata  per  implementare  i  servizi  offerti  dal  Service  Provider   è   il   Web  
Service.  Ogni   attore   di   una   rete  offre   servizi   ed  usa   quelli   offerti   dagli  
altri  attori.

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea
<wsdl:description
   targetNamespace="http://www.w3.org/2002/ws/sawsdl/spec/wsdl/order#"
Definizione  dei  TIPI  DI  DATO  
   xmlns="http://www.w3.org/2002/ws/sawsdl/spec/wsdl/order#"
con  sintassi  in  linguaggio  
   xmlns:wsdl="http://www.w3.org/ns/wsdl"
XML.
   xmlns:xs="http://www.w3.org/2001/XMLSchema">

   <wsdl:types>
       <xs:schema  targetNamespace="http://www.w3.org/2002/ws/sawsdl/spec/wsdl/order#"
           elementFormDefault="qualified">
           <xs:element  name="OrderRequest">
               ...
           </xs:element>
           <xs:complexType  name="item">
               ...
           </xs:complexType>
           <xs:element  name="OrderResponse"  type="confirmation"  />
           <xs:simpleType  name="confirmation">

Web service
               <xs:restriction  base="xs:string">
                   <xs:enumeration  value="Confirmed"  />
                   <xs:enumeration  value="Pending"  />
                   <xs:enumeration  value="Rejected"  />
               </xs:restriction> Definizione  dell’interfaccia  
(insieme  di  operazioni)  con  i  
           </xs:simpleType>
relativi  INPUT  ed  OUTPUT  
       </xs:schema>
attesi.
   </wsdl:types>

   <wsdl:interface  name="Order">
       <wsdl:operation  name="order"  pattern="http://www.w3.org/ns/wsdl/in-­‐out">
           <wsdl:input  element="OrderRequest"  />
           <wsdl:output  element="OrderResponse"  />
       </wsdl:operation>
   </wsdl:interface>
</wsdl:description>
> Introduzione  ai
Semantic  Web  Services

* Semantic Web Service


evoluzione  dei  web  service

sono  costruiti  a  partire  dai  web  


service
integrano  annotazioni  semantiche
migliorano  la  fase  di  ricerca
migliorano  la  fase  di  composizione

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea
> Introduzione  ai
Semantic  Web  Services

** Annotazione semantica
SAWSDL
Standard  W3C:  SAWSDL
estende  lo  standard  WSDL  (Web  
Service  Description  Language)
associa  ad  un  elemento  WSDL  un  
insieme  di  riferimenti  URL  a  classi  
ontologiche
è  ulteriormente  estendibile

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea
Semantic web service (SAWSDL)
ONTOLOGIE  di  dominio  
contenenti  classi  ontologiche  
alle  quali  puntano  i  
RIFERIMENTI  SEMANTICI.

Un  servizio  web  per  la  


prenotazione  di  biglietti  di  
voli  aerei,  rappresentato  in  
WSDL  (con  XML).
<wsdl:description
targetNamespace="http://www.w3.org/2002/ws/sawsdl/spec/wsdl/order#"
xmlns="http://www.w3.org/2002/ws/sawsdl/spec/wsdl/order#"
xmlns:wsdl="http://www.w3.org/ns/wsdl"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:sawsdl="http://www.w3.org/ns/sawsdl">
<wsdl:types>
<xs:schema targetNamespace="http://www.w3.org/2002/ws/sawsdl/spec/wsdl/order#"
elementFormDefault="qualified">
<xs:element name="OrderRequest"
sawsdl:modelReference="http://www.w3.org/2002/ws/sawsdl/spec/ontology/
purchaseorder#OrderRequest"
sawsdl:loweringSchemaMapping="http://www.w3.org/2002/ws/sawsdl/spec/mapping/

File WSDL arricchito


RDFOnt2Request.xml">
...
</xs:element> Esempio  di  PUNTATORE  
<xs:complexType name="item"> SEMANTICO  al  concetto  di  
... “conferma  ordine”.
</xs:complexType>
<xs:element name="OrderResponse" type="confirmation" />
<xs:simpleType name="confirmation"
sawsdl:modelReference="http://www.w3.org/2002/ws/sawsdl/spec/ontology/
purchaseorder#OrderConfirmation">
<xs:restriction base="xs:string">
<xs:enumeration value="Confirmed" />
<xs:enumeration value="Pending" />
<xs:enumeration value="Rejected" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
</wsdl:types>
<wsdl:interface name="Order"
sawsdl:modelReference="http://example.org/categorization/products/electronics">
<wsdl:operation name="order" pattern="http://www.w3.org/ns/wsdl/in-out"
sawsdl:modelReference="http://www.w3.org/2002/ws/sawsdl/spec/ontology/
purchaseorder#RequestPurchaseOrder">
<wsdl:input element="OrderRequest" />
<wsdl:output element="OrderResponse" />
</wsdl:operation>
</wsdl:interface>
</wsdl:description>
2
Semantic WS Oriented Platform
il progetto SWOP
caso  di  studio,  caratteristiche,  annotazione  
semantica,  architettura  generale,  ontologia

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea
> semantic  web  service  oriented  platform
il  progetto  SWOP

* Progetto SWOP
semantic  web  service  oriented  platform

Progetto  SWOP:  POR  2007-­‐2013,  Asse  I,  


Linea  intervento  1.1,  Regione  Puglia
Obiettivo:  creare  una  piattaforma  di  
annotazione  e  ricerca  di  web  services
Caso  d’uso:  Adventure  Works  (vendita/
acquisto  di  beni  e  servizi)
* SWOP: A Semantic Web services Oriented Platform, E. Tinelli, M. Filannino, D. Casulli, and L. Iaquinta, 6th
Workshop on Semantic Web Application and Perspective SWAP2010 21-22 Sept 2010, Bressanone, Italy, (2010)

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea
> semantic  web  service  oriented  platform
il  progetto  SWOP

Annotazione semantica
Ogni   documento   WSDL   viene   annotato   in   s u g g e r i r e   d e i   c o n c e t t i   o n t o l o g i c i  
linguaggio   naturale   da  uno   sviluppatore   e   pertinenti.   Lo   sviluppatore,   previo  
tali   annotazioni   vengono   elaborate   per   controllo,  produce  il  file  SAWSDL.  

Descrizioni in Approvano/respingono
linguaggio naturale i suggerimenti prodotti

Documento Documento
Tool di annotazione Tool di annotazione
WSDL SAWSDL

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea
SAWA logo
Algoritmo  per  il  calcolo  

Architettura generale
della  SIMILARITÀ  SEMANTICA  
tra  frasi  espresse  in  
linguaggio  naturale.

Ontologia  contenente  
tutti  i  CONCETTI  DEL  
DOMINIO  APPLICATIVO  di  
riferimento.
> semantic  web  service  oriented  platform
il  progetto  SWOP

** Ontologia
caratteristiche

1064  classi
ogni  classe  ha  una  
definizione  in  
lingua  inglese

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea
3
L’algoritmo di similarità semantica
SAWA
Similarity  Algorithm  based  on  Wikipedia

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea
> L’algoritmo  di  similarità  semantica
SAWA

Similarità
Sia   E  l’insieme  di  entità   che   con  caratteristiche  comuni,   allora   è   possibile   definire  
la  funzione  che  ad  ogni  coppia  di  elementi  e₁,  e₂  ∈  E  associa  un  numero  reale  com-­‐
preso  tra  0  ed  1.  Tale  valore  è  noto  con  il  nome  di  Coefficiente  di  similarità.

* A semantic similarity measure for expressive description logics, C. d'Amato, N. Fanizzi, and F. Esposito, Proceedings
of Convegno Italiano di Logica Computazionale CILC05 21-22 June 2005, Rome, Italy, (2005)

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea
> L’algoritmo  di  similarità  semantica
SAWA

* Similarità tra parole


algoritmi,  corpus
API:
LinguaTools
Corpus:
WikipediA
Algoritmo  di  similarità:
Lin

* DISCO: A Multilingual Database of Distributionally Similar Words, P. Kolb, In Proceedings of KONVENS-2008,


Berlin, Germany, (2008).

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea
> L’algoritmo  di  similarità  semantica
SAWA

Dalla similarità tra parole a quella tra testi


Si   procede   alla   rimozione   di   tutte   le   discriminatorio,   oltre   che  degli   articoli  
parole   che   occorrono   molto   spesso   nel   e  dei  segni  di  punteggiatura.
c o r p u s ,   a v e n t i   s c a r s o   p o t e r e  

“Returns the first and last name of each customer who is categorized
as an individual consumer”

STOPWORD

| name | customer | categorized | individual | consumer |

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea
> L’algoritmo  di  similarità  semantica
SAWA

Algoritmo di Corley, Mihalcea


Per  ogni  parola  della  prima  frase  si  moltiplica  il  coefficiente  di  similarità  ottenuto  
dal   confronto   con   la   parola   più   simile   nella   seconda   frase   e   si   moltiplica   per   la  
frequenza   del   termine   nel   corpus.   Tutti   gli   score   vengono   sommati   e   normalizzati   in  
base  alle  frequenze  dei  termini  nei  corpus.  La  funzione  non  è  simmetrica.

* Corpus-based and knowledge-based measures of text semantic similarity, Rada Mihalcea, Courtney Corley, and
Carlo Strapparava, In AAAI'06, page 775-780. (2006)

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea
> L’algoritmo  di  similarità  semantica
SAWA

** Costo computazionale
complessità

SAWA:  O(n)

Annotazione:

SAWA  *  #onto_classi  *  #wsdl_elem  ≈


SAWA  *          1064          *          10          =
SAWA  *                        10640

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea
4
Risultati &
sviluppi futuri
performance,  qualità,  interfacce  

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea
> Risultati  &
sviluppi  futuri

* Performance
tempo  di  computazione

10  elementi  WSDL  da  annotare  (media  


di  13  parole  ciascuno)  
31  classi  ontologiche  (media  di  7  
parole  ciascuna)
tempo  di  accesso  al  disco:  26ms
11  minuti  -­‐>  4,39  secondi  (-­‐93,35%)

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea
> Risultati  &
sviluppi  futuri

** Performance
qualità  dei  risultati

Spearman’s  ρ Pearson’s  r

STATIS 0,8126 0,8162


LSA 0,8714 0,8384
STS 0,8380 0,8530
Omiotis 0,8905 0,8560
SAWA 0,8935 0,8740

* Sentence Similarity Based on Semantic Nets and Corpus Statistics, Y. Li, et al., IEEE Transactions on Knowledge
and Data Engineering, 18(8), page 1138-1150, (2006)

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea
interfaccia web
*http://tinyurl.com/sawa-filannino
interfaccia web
> Risultati  &
sviluppi  futuri

* Sviluppi futuri
breve  e  lungo  periodo

sperimentazione  in  vivo  


dell’algoritmo
sviluppo  di  un  algoritmo  di  
similarità  tra  parole
rilascio  del  codice  sorgente  sotto  
licenza  open-­‐source

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea

A tutti voi,
grazie per l’attenzione.
;)

Università  degli  Studi  di  Bari | cdl  informatica  magistrale | aa  2009/2010 || tema:  tesi  di  laurea