Tecniche di gestione delle meta-informazioni nel Semantic
Transcript
Tecniche di gestione delle meta-informazioni nel Semantic
UNIONE EUROPEA FONDO EUROPEO DI SVILUPPO REGIONALE. REGIONE PUGLIA AREA POLITICHE PER LO SVILUPPO IL LAVORO E L’INNOVAZIONE Modello M14 – Allegati RTA POR PUGLIA 2007-2013 - Asse I Linea 1.1 – Azione 1.1.2 Bando “Aiuti agli Investimenti in Ricerca per le PMI” BENEFICIARIO Code Architects S.r.l. TITOLO DEL PROGETTO SWOP Semantic web-service Opened Platform CODICE DEL PROGETTO B2SO201 RAPPORTO TECNICO ATTIVITA‟: A 2.2 (OR2) - Analisi delle tecniche per l’utilizzo delle metainformazioni e delle ontologie esistenti nel Semantic Web Allegato 2 - D2.2 – Tecniche di gestione delle metainformazioni nel Semantic Web e analisi delle ontologie esistenti Indice dei contenuti 1. CONTENUTO DELL’ ALLEGATO ...................................................... 4 2. CORPO DELL’ALLEGATO ................................................................. 5 2.1 Il Semantic Web ......................................................................... 5 2.1.1 Resource Description Framework (RDF) .......................................7 2.1.2 Web Ontology Language (OWL) ................................................ 10 2.1.3 I ragionatori ........................................................................... 14 2.1.3.1 Fact++ ............................................................................ 14 2.1.3.2 Racer ............................................................................... 16 2.1.3.3 Pellet ............................................................................... 17 2.2 La gestione della conoscenza nella piattaforma SWOP ............. 18 2.2.1 Una semplice metodologia di sviluppo di ontologie ...................... 19 2.2.2 Protégé 4 ............................................................................... 21 2.2.3 Il caso d‟uso per la piattaforma SWOP ....................................... 22 2.2.4 Dominio e scopo dell‟ontologia .................................................. 24 2.2.5 I moduli dell‟ontologia ............................................................. 26 2.3 Ontologie esistenti per il dominio Enterprise ............................ 27 2.3.1 Le ontologie e le imprese ......................................................... 27 2.3.2 I processi aziendali e la loro rappresentazione sintattica .............. 28 2.3.3 Le ontologie formali esistenti .................................................... 30 2.3.3.1 Standard per la classificazione di prodotti e servizi ................ 30 2.3.3.2 Standard per la classificazione dei processi aziendali .............. 31 2.3.3.3 NeOn - UBL Invoice Ontology .............................................. 32 2.3.3.4 DIP - Business Data Ontology ............................................. 35 2.3.3.5 SET Harmonized Ontology .................................................. 38 2.3.3.6 GoodRelations ................................................................... 39 2.3.3.7 Le ontologie del progetto SUPER .......................................... 48 2.3.3.8 Business Management Ontology .......................................... 49 2.3.3.9 ONTOMODA-ML ................................................................. 58 2.4 Progettazione dell’ontologia SWOP .......................................... 60 2.4.1 Costruzione dell‟ontologia BusinessObject .................................. 61 2.4.1.1 Enumerazione dei termini e dei concetti ............................... 61 2.4.1.2 Organizzazione dei concetti in una gerarchia ......................... 62 2.4.1.3 Definizione di proprietà e restrizioni ..................................... 63 2.4.2 La classe top-level Business Obejct ........................................... 64 2.4.2.1 La classe BusinessObject estesa per il dominio enterprise ....... 66 2.4.2.2 La classe Concept estesa per il dominio Enterprise ................. 67 2.4.2.3 La classe Attribute estesa per il domino enterprise................. 74 2.4.3 Le Object Property della Business Object Ontology ...................... 79 2.4.4 Le Data Property della Business Object Ontology ........................ 81 2.4.5 Le ontologie per modellare i servizi ........................................... 82 2.4.5.1 Categories Ontology .......................................................... 82 2.4.5.2 Business Process Ontology .................................................. 84 2.4.5.3 Services Ontology............................................................. 87 Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 2 di 104 2.4.5.4 Swop Integration Ontology ................................................ 94 2.5 Bibliografia............................................................................. 100 3. APPENDICI ................................................................................ 102 3.1 Dati riepilogativi dell‟ontologia SWOP ............................................ 102 Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 3 di 104 1. Contenuto dell’ Allegato Obiettivo di questo allegato è presentare l‟ontologia modellata per rispondere alle esigenze di rappresentazione della conoscenza della piattaforma SWOP. Il caso d‟uso considerato è quello dei processi aziendali legati alla vendita e all'acquisto di prodotti, al recupero delle informazioni dei clienti e così via. L'ontologia sviluppata modella sia le caratteristiche funzionali sia le caratteristiche non funzionali di un web service. Per prima cosa vengono illustrati i principali formalismi di rappresentazione della conoscenza per il Semantic Web, con particolare riferimento ad OWL, il linguaggio utilizzato per lo sviluppo dell'ontologia. Successivamente viene ripresa l‟architettura di massima della piattaforma SWOP ed il caso d‟uso scelto, in modo da definire le esigenze semantiche della piattaforma SWOP e produrre quindi una visione d‟insieme dei requisiti dell‟ontologia SWOP. Per facilitare lo sviluppo dell'ontologia, sono stati individuati alcuni esempi di ontologie esistenti che rappresentano il dominio enterprise e vengono presentate alcune linee guida utilizzabili per la definizione di un‟ontologia del dominio enterprise (standard di classificazione e modellazione dei processi). Infine, vengono descritte le ontologie sviluppate in termini di classi, proprietà e restrizioni. Le ontologie principali sono le seguenti: un‟ontologia del dominio enterprise per il caso d‟uso del progetto, un'ontologia delle categorie tassonomiche, un‟ontologia funzionale ed un‟ontologia dei servizi. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 4 di 104 2. Corpo dell’Allegato 2.1 Il Semantic Web L‟obiettivo del Semantic Web [1] è lo sviluppo di tecnologie e standard progettati per rendere le informazioni presenti sul Web comprensibili alle macchine. Per raggiungere questo obbiettivo sono stati formalizzati i principi [2] sui quali dovrà poggiare il Semantic Web e la sua architettura. Figura 1 - L’architettura del Semantic Web L‟architettura de Semantic Web (Figura 1) è composta da strati sovrapposti che, partendo dalla base, forniscono: un meccanismo per l‟identificazione univoca delle risorse; uno strato di mark-up, cosicché le risorse possano auto-descriversi; un modello per la rappresentazione della conoscenza; lo strato delle ontologie per esprimere concetti; lo strato logico in grado di fare inferenze per dedurre le implicazioni delle definizioni dei termini e le loro relazioni; un meccanismo in grado di dimostrare la veridicità delle informazioni (proof); un meccanismo per garantire l‟affidabilità (trust). Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 5 di 104 Il primo strato utilizza standard e tecnologie sviluppate e largamente utilizzate nel Web. Queste sono utili poiché specificano un meccanismo per identificare le risorse (URI1) e una codifica non ambigua del contenuto testuale (UNICODE2). A partire da questo strato sono stati rilasciati alcuni standard che soddisfano i requisiti emersi per alcuni dei livelli dell‟architettura, in particolare questi: garantiscono interoperabilità sintattica ai dati attraverso XML [3]; forniscono un framework in grado di rappresentare meta-informazioni che riguardano tali dati con RDF; utilizzano una semantica formale (dapprima con RDF Schema ed in seguito con OWL), rappresentando mediante ontologie l‟organizzazione (tassonomica e non) di tali meta-dati. Attualmente il lavoro della comunità di ricerca è incentrato sul livello logico. La sua implementazione consentirà di asserire principi logici permettendo alle macchine di inferire nuova conoscenza applicando questi principi logici ai dati esistenti. Poiché vi sono molti sistemi d‟inferenza presenti sul Web che non sono completamente interoperabili, l‟obiettivo è quello di sviluppare un linguaggio logico universale in grado di rappresentare le dimostrazioni logiche così da abilitare il loro scambio nel Semantic Web. Il completamento del livello logico è di fondamentale importanza per la costruzione dei due livelli superiori. Poiché l‟utilizzo dei meta-dati permetterà di asserire qualsiasi cosa su qualsiasi altra cosa, si verificheranno situazioni in cui si affermerà qualcosa da qualche parte e l‟esatto contrario da un‟altra parte. I livelli Proof e Trust serviranno per risolvere conflitti di questo tipo mediante l‟inserimento di meccanismi che verificheranno la veridicità delle informazioni presenti nel Semantic Web (Firma digitale, catene di fiducia, ecc.). La proposta di linguaggio più accreditata in questo momento a livello logico è Semantic Web Rule Language (SWRL). Nel corso dello sviluppo dei vari standard sono nati strumenti (reasoner) in grado di elaborare l‟informazione, o più propriamente la conoscenza, descritta attraverso detti linguaggi. L‟obiettivo generale dei reasoner (strumenti per l‟automazione dell‟inferenza) è quello di esplicitare l‟informazione implicita e valutare la coerenza delle basi di conoscenza in esame. Nei prossimi paragrafi esamineremo i livelli fin qui sviluppati per la modellazione della conoscenza comprensibile dalle macchine (RDF, Ontologico e Logico) e le relative tecnologie. 1 W3C Architecture Domain, “Naming and Addressing: URIs, URLs, ...”, available at: http://www.w3.org/Addressing/ 2 Unicode Home Page : http://www.unicode.org Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 6 di 104 2.1.1 Resource Description Framework (RDF) RDF (Resource Description Framework) [4] è uno standard del W3C progettato per la definizione e il trattamento di meta-dati nel contesto del Semantic Web. W3C descrive RDF come un linguaggio per la rappresentazione di informazioni inerenti risorse Web. Una caratteristica importante di RDF è la possibilità di scambiare meta-dati tra applicazioni preservando il loro il significato [5]. RDF ha le seguenti caratteristiche: un modello dei dati semplice [6]; una semantica formale [7]; utilizza un vocabolario (basato sulle URI) estendibile (RDFSchema) [8]; è serializzabile in tre modi differenti, ma equivalenti (con XML, attraverso triple, o come un grafo); permette a chiunque di creare asserzioni su qualunque risorsa. Il modello dei dati RDF RDF fornisce un modello per descrivere le risorse. Le risorse hanno delle proprietà (o anche attributi o caratteristiche). RDF definisce una risorsa come un qualsiasi oggetto che sia identificabile univocamente mediante un Uniform Resource Identifier (URI). Il modello dei dati di RDF è molto semplice, ed è basato su tre tipi di oggetti: Resource - Qualunque cosa descritta da un‟espressione RDF è detta risorsa (resource). Una risorsa può essere una pagina Web, o una sua parte, o un elemento XML all‟interno del documento sorgente. Una risorsa può anche essere un‟intera collezione di pagine web, o anche un oggetto non direttamente accessibile via Web (per es. un libro, un dipinto, etc.). Le risorse sono sempre individuate da una URI. Property - Una proprietà (property) è un aspetto specifico, una caratteristica, un attributo, o una relazione utilizzata per descrivere una risorsa. Ogni proprietà ha un significato specifico, definisce i valori ammissibili, i tipi di risorse che possono essere descritte, e le sue relazioni con altre proprietà. Le proprietà associate alle risorse sono identificate da un nome, e assumono dei valori. Statement - Una risorsa, con una proprietà distinta da un nome, e un valore della proprietà per la specifica risorsa, costituisce un RDF statement. Uno statement è quindi una tupla composta da un soggetto (risorsa), un predicato (proprietà) e un oggetto (valore). L‟oggetto di uno statement può essere un‟espressione (sequenza di caratteri o qualche altro tipo primitivo definito da XML) oppure un‟altra risorsa. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 7 di 104 Graficamente, le relazioni tra Resource, Property e Value sono rappresentate mediante grafi etichettati orientati, in cui le risorse vengono identificate come nodi (graficamente delle ellissi), le proprietà come archi orientati etichettati, e i valori (corrispondenti a sequenze di caratteri) come rettangoli. Un insieme di proprietà che fanno riferimento alla stessa risorsa viene detto descrizione (description). Un esempio di descrizione RDF rappresentata mediante grafo è quella di Figura 2. Figura 2 - Un grafo RDF che descrive Eric Miller Per evitare la verbosità nelle descrizioni si utilizzano nomi fittizi che individuano i namespace3, cioè si dichiara un nome fittizio per identificare la URI. 3 Namespaces in XML 1.0 (Second Edition), W3C Recommendation 2006. http://www.w3.org/TR/REC-xml-names/ Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 8 di 104 RDFSchema RDF consente di definire un semplice modello dei dati per descrivere le proprietà delle risorse e loro relazioni. In RDF però non esistono livelli d‟astrazione: ci sono le risorse e le loro relazioni, tutte organizzate in un grafo piatto. In altri termini non è possibile definire tipi (o classi) di risorse con loro proprietà specifiche, per questo motivo RDF è stato arricchito con un semplice sistema di tipi detto RDF Schema. In RDF Schema una risorsa può essere definita come istanza di una classe (o di più classi) e le classi possono essere organizzate in modo gerarchico. RDF Schema utilizza il modello RDF stesso per definire il sistema dei tipi, fornendo un insieme di risorse e proprietà predefinite che possono essere utilizzate per definire classi e proprietà a livello utente. L‟insieme delle risorse e delle proprietà di base delle risorse è detto vocabolario. Le definizioni di classi in RDF Schema si basano su due classi predefinite (rdf:Resource e rdf:Class) e due proprietà predefinite (rdf:type e rdf:subClassOf). La classe rdf:Resource è la classe di base di RDF Schema, in quanto ogni oggetto definito in RDF è una risorsa. Attraverso la proprietà rdf:type è possibile specificare che una risorsa è una istanza di una classe. Si osservi che anche le classi sono risorse. Quando si definisce una nuova classe si specifica come valore di rdf:type la risorsa predefinita http://www.w3c.org/2000/01/rdf-schema#Class. Una risorsa può essere istanza di più classi. rdf:subClassOf consente di definire relazioni di sovra/sotto-insieme fra le classi. La relazione rdf:subClassOf è transitiva. In generale le classi sono caratterizzate da proprietà. A differenza di quanto accade in molti linguaggi, in RDF Schema proprietà e classi hanno definizioni separate e, in particolare, le proprietà sono definite in termini sia delle classi che costituiscono il loro range sia delle classi a cui tali proprietà si applicano (e non le classi in termini di proprietà). Le proprietà possono essere definite utilizzando la risorsa predefinita rdf:Property con le proprietà predefinite: rdf:domain, rdf:range, rdf:subPropertyOf. Il valore di rdf:range indica la classe alla quale appartengono le risorse che la proprietà definita può assumere come valori. rdf:domain specifica che la proprietà si applica a risorse di una certa classe. Una proprietà può avere diversi rdf:domain specificati ma se non ne ha nessuno è valida in generale e può essere usata per tutte le risorse. Quindi di default lo scope di una proprietà è l‟universo; è poi possibile restringerlo tramite opportune specifiche. Sebbene questa scelta riduca il controllo sull‟appropriatezza d‟uso delle proprietà, consente di estendere facilmente l‟uso di proprietà a situazioni non previste da chi le ha inizialmente definite. In Figura 3 è riportato un esempio di gerarchia di classi in RDFSchema. RDF Schema è un linguaggio che consente di definire vocabolari RDF in modo molto basilare. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 9 di 104 Vi sono alcune capacità espressive necessarie per esprimere vocabolari che si coniugano con gli obiettivi del Semantic Web. In particolare, RDFSchema non ha le seguenti capacità espressive: 1. vincoli di cardinalità (es. una persona ha una sola madre e un solo padre); 2. possibilità di indicare che due classi definite in schemi differenti rappresentano lo stesso concetto; 3. possibilità di indicare che due istanze, definite separatamente, rappresentano lo stesso individuo; 4. possibilità di indicare che una proprietà è transitiva; 5. possibilità di definire una nuova classe come combinazione di più classi esistenti. La definizione e la realizzazione di queste capacità espressive sono lo scopo dei gruppi di lavoro sui linguaggi per la definizione di ontologie. Figura 3 - Un esempio di gerarchia di classi in RDFSchema 2.1.2 Web Ontology Language (OWL) Il linguaggio standard per la definizione di ontologie è OWL [10]. Il W3C raccomanda OWL 2 per la creazione di ontologie. OWL, che è un estensione di RDFS, comprende tre sotto-linguaggi utilizzabili in base alle esigenze espressive che emergono durante la fase di progettazione dell‟ontologia: Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 10 di 104 OWL Lite è utile quando nella costruzione dell‟ontologia si ha bisogno soltanto di gerarchie di classificazione e restrizioni semplici sulle proprietà. OWL DL è utile quando è necessaria la massima espressività mantenendo la completezza computazionale e la decidibilità. L‟acronimo DL sta per Description Logic, il linguaggio logico alla base di OWL. OWL Full è utile quando si ha bisogno del massimo potere espressivo e della libertà sintattica di RDF senza che vi siano garanzie computazionali (in pratica è utile solo per la rappresentazione dei contenuti, ma non per il loro utilizzo). Ognuno di questi sotto-linguaggi è un‟estensione del suo predecessore, sia in termini di cosa può essere rappresentato, sia in termini di cosa può essere validamente dedotto dalle informazioni rappresentate. Vale il seguente insieme di relazioni ma non il loro inverso: ogni ontologia OWL-Lite valida è una ontologia OWL-DL valida; ogni ontologia OWL-DL valida è una ontologia OWL-FULL valida; ogni conclusione valida in OWL-Lite è una conclusione valida in OWLDL; ogni conclusione valida in OWL-DL è una conclusione valida in OWLFULL. Tutti i documenti OWL sono documenti RDF, e tutti i documenti RDF sono documenti OWL-Full, ma non tutti i documenti RDF possono essere dei documenti OWL-Lite e OWL-DL validi. Perciò la conversione di documenti RDF in OWL è da effettuarsi con attenzione. Anche quando l‟espressività di OWL-DL e OWL-Lite sembra appropriata, devono essere adottate delle precauzioni per assicurare che il documento RDF originale soddisfi i vincoli aggiuntivi di questi due sottolinguaggi. Tra tutti ricordiamo i seguenti: ogni URI che è usato come nome di una classe, deve essere dichiarato esplicitamente come un tipo owl:Class; ogni individuo deve appartenere ad almeno una classe; gli URI utilizzati per le classi, le proprietà e gli individui devono essere entità disgiunte. OWL eredita alcune caratteristiche dell‟RDF-Schema come: Class, rdfs:subClassOf, rdf:Property, rdfs:subPropertyOf, rdfs:domain, rdfs:range, Individual. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 11 di 104 Una tipica ontologia OWL comincia con una dichiarazione dello spazio dei nomi (namespace) che fornisce un modo per l‟interpretazione non ambigua degli identificatori. I nomi in OWL sono riferimenti a URI mentre i tipi di dato corrispondono a quelli di XML Schema(4). Inoltre un‟ontologia può importare informazioni relative ad altre ontologie. Questi gli elementi base di un‟ontologia: classi; proprietà; istanze delle classi; relazioni tra le istanze. Ogni nuova classe definita dall'utente è una sottoclasse di owl:Thing. Ognuna delle espressioni che sono contenute all'interno della definizione della classe, restringe le proprietà che possono essere applicate alle istanze della classe definita. Le istanze della classe appartengono all'intersezione delle restrizioni su di essa. In aggiunta alle classi, OWL permette di descrivere anche i loro membri. Un individuo è introdotto principalmente dichiarando la sua appartenenza ad una classe. Gli individui rappresentano gli oggetti del dominio d‟interesse. OWL permette che due nomi diversi si riferiscano al medesimo individuo. Deve essere esplicitamente dichiarato se due individui sono equivalenti o diversi tra loro, altrimenti è valida l‟assunzione che potrebbero essere equivalenti o potrebbero essere diversi tra loro. Gli individui sono anche detti istanze o istanze di classi. OWL-Lite comprende costrutti per esprimere uguaglianza e disuguaglianza: equivalentClass: due classi sono equivalenti se condividono le stesse istanze; equivalentProperty: due proprietà sono equivalenti se mettono in relazione tutti gli individui a cui si riferiscono; sameAs: due individui sono identici. Il costrutto può essere usato per creare diversi nomi che si riferiscono allo stesso individuo; differentFrom: un individuo è diverso da un altro. Dichiarare ciò in maniera esplicita è utile con i linguaggi come OWL che non assumono che gli individui abbiano uno ed un solo nome. Le proprietà OWL sono relazioni binarie che permettono di asserire fatti generali riguardo i membri delle classi e di asserire fatti specifici riguardo gli individui. Si distinguono due tipi di proprietà: datatype property: relazioni tra le istanze delle classi ed elementi letterali o tipi di dati; object property: relazioni tra le istanze di due classi. 4 http://www.w3.org/XML/Schema.html Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 12 di 104 Quando si definisce una proprietà si utilizzano alcuni meccanismi per restringere tale relazione. I più semplici sono: specificare il dominio e l'intervallo (range) della proprietà; specializzare una proprietà esistente (sotto-proprietà), ma OWL ne include molti altri che sono più specifici (property restrictions). OWL-Lite comprende diversi costrutti sulle proprietà: inverseOf: una proprietà è l‟inversa di un‟altra . TransitiveProperty: due proprietà possono essere transitive. Se una proprietà è transitiva, allora se la coppia (x,y) è una istanza della proprietà transitiva P, e la coppia (y,z) è una istanza di P, allora la coppia (x,z) è una istanza di P. OWL-Lite (e OWL-DL) impone che le proprietà transitive non possano avere un vincolo di cardinalità massima pari ad 1, altrimenti essi diverrebbero linguaggi indecidibili. SymmetricProperty: le proprietà possono essere simmetriche. Se una proprietà è simmetrica, se la coppia (x,y) è una istanza della proprietà simmetrica P, allora la coppia (y,x) è ancora una istanza di P. FunctionalProperty: le proprietà possono avere un solo valore. Se una proprietà è funzionale non può avere più di un valore per individuo, ma può comunque non avere valore per un individuo. Una proprietà funzionale è equivalente ad una proprietà con cardinalità minima pari a 0 e una cardinalità massima pari ad 1. InverseFunctionalProperty: le proprietà possono essere inversamente funzionali. Se una proprietà è inversamente funzionale, la sua inversa è funzionale, ovvero contiene al massimo un valore per ogni individuo. OWL-Lite permette di applicare restrizioni su come le proprietà possono essere utilizzate dalle istanze delle classi. Le restrizioni sono specificate nel contesto di una sezione owl:Restriction e l‟elemento owl:onProperty indica la proprietà a cui viene applicata la restrizione, che possono essere le seguenti: allValuesFrom: si applica su una proprietà in relazione ad una classe. Indica che la proprietà può essere valorizzata solo con individui appartenenti alla classe specificata. In questo modo se un individuo A è collegato ad un individuo B attraverso una proprietà con questa restrizione, può essere automaticamente inferito che l‟individuo B appartiene alla classe indicata dalla restrizione. someValuesFrom: si applica su una proprietà in relazione ad una classe. Una classe potrebbe avere una restrizione in modo che una proprietà abbia almeno un valore di un determinato tipo. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 13 di 104 OWL-Lite include una forma limitata di restrizione di cardinalità, che può essere applicata solo localmente ad una proprietà in relazione ad una classe specifica. Le restrizioni di cardinalità OWL-Lite sono limitate perchè permettono solo valori di cardinalità pari a 0 o ad 1, quindi non permettono valori di cardinalità arbitrari come in OWL-DL e OWL-Full quali: minCardinality: la cardinalità è specificata su una proprietà in relazione ad una classe specifica. Se minCardinality ha valore pari ad 1, allora qualsiasi istanza di quella classe sarà in relazione tramite la proprietà, con almeno un individuo. La proprietà richiede di essere valorizzata per tutte le istanze della classe. In OWL-Lite le sole cardinalità minime permesse sono 0 ed 1. Una cardinalità minima uguale a 0 indica che la proprietà è opzionale per una classe. maxCardinality: la cardinalità è specificata su una proprietà in relazione ad una classe specifica. Se maxCardinality ha valore pari ad 1, allora qualsiasi istanza di quella classe sarà in relazione tramite la proprietà, con al più un individuo. Una cardinalità massima pari ad 1 è anche chiamata proprietà funzionale o unica. In alcuni casi può essere utile stabilire che certe classi non possono avere valori rispetto ad una determinata proprietà, specificando una cardinalità massima pari a 0 alla proprietà applicata a quelle classi. cardinality: è presente per comodità nel caso in cui una proprietà di una classe ha allo stesso tempo lo stesso valore per la cardinalità minima e massima. 2.1.3 I ragionatori 2.1.3.1 Fact++ FaCT++ [10,11] è un reasoner per la logica descrittiva, basato sugli algoritmi di ragionamento tableau. Supporta i linguaggi ontologici basati sulla logica descrittiva ed espressi in OWL e OWL2. Esso incarna l‟evoluzione del ragionatore FaCT: condivide gli stessi algoritmi testati ed ottimizzati di FaCT, ma ha una diversa architettura interna ed utilizza il linguaggio C++, allo scopo di accrescere l‟efficienza, la velocità e la portabilità del software. Nella fase di preprocessing [12], il reasoner carica la base di conoscenza che viene normalizzata e trasformata in una rappresentazione interna, alla quale vengono applicate ottimizzazioni sintattiche. In seguito viene effettuata la classificazione, selezionando l‟insieme di concetti che minimizza il numero di test di sussunzione da effettuare. Il classificatore contiene un modulo altamente ottimizzato che controlla la soddisfacibilità della base di conoscenza. FaCT++ offre i seguenti servizi: controlli sulla consistenza delle ontologie; controlli sulla soddisfacibilità di un singolo concetto/gruppo di concetti; Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 14 di 104 controlli sulle relazioni di sussunzione tra due concetti; la classificazione dell‟intera ontologia, creando una tassonomia; FaCT++ è attualmente il reasoner di default presente in Protégé 4. Esso fornisce un supporto completo per la logica descrittiva SHIF(D). Inoltre, ha le seguenti caratteristiche: interfaccia per la logica di primo ordine: FaCT++ è in grado di creare problemi in logica del primo ordine, per il controllo della sussunzione e della soddisfacibilità utilizzando la logica SHOIQ e una sintassi standard che è supportata dalla maggior parte dei software per la dimostrazione dei teoremi del primo ordine; supporto limitato agli individui: tutti gli individui sono trattati come concetti, e il ragionamento è effettuato su una ontologia modificata. Questo approccio elimina la perdita di inferenza nel caso in cui l‟ontologia non contenga relazioni tra individui, una situazione che si verifica per molte utili e diffuse ontologie. Anche se sono presenti relazioni tra individui, è talvolta possibile ottenere risposte corrette a interrogazioni sulla soddisfacibilità e/o sussunzione. In questo caso FaCT++ fornisce la risposta assieme ad informazioni sulla sua correttezza; incorporamento di regole di dominio e di range: il software di ragionamento supporta nativamente i costrutti di dominio e range, evitando di trattare questi ultimi come assiomi generali. Il processo di ragionamento risulta più veloce rispetto al precedente FaCT. FaCT++ è disponibile come: software stand-alone da invocare in modalità batch. Gli input, i comandi e le opzioni per il programma, devono essere contenuti in un file di configurazione; reasoner DIG, implementato come una libreria C++ dinamica. Una classe Java inoltre, implementa l‟interfaccia DIGReasoner. Attraverso il linguaggio DIG, uno standard per la descrizione di ontologie, è possibile il dialogo tra reasoner e i software che gestiscono la rappresentazione delle ontologie; servlet, accessibile via http utilizzando il linguaggio DIG ed utilizzabile in qualsiasi ambiente server in grado di eseguire servlet, come Apache Tomcat. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 15 di 104 2.1.3.2 Racer RACER è l‟acronimo di Renamed Abox and Concept Expression Reasoner. RacerPro [13] è il nome commerciale del software. RacerPro è nato come strumento di lavoro nell‟ambito della logica descrittiva ed è basato sul linguaggio Lisp. Poiché negli standard internazionali del semantic web, la logica descrittiva costituisce la base per la formalizzazione delle ontologie, RacerPro può essere utilizzato anche come strumento per la loro gestione. RacerPro supporta ontologie OWL e può essere usato come reasoner in ambienti come Protégé. Inoltre è adoperabile anche come base di dati RDF. Il reasoner è in grado di processare ontologie OWL-Lite, OWL-DL e dati in formato RDF, fornendo i seguenti servizi: controllo di consistenza dell‟ontologia e di un insieme di descrizioni di dati; ricerca di relazioni di sussunzione implicite a partire dalle dichiarazioni presenti nell‟ontologia; ricerca di sinonimi di risorse. RacerPro è un sistema di rappresentazione della conoscenza che implementa algoritmi di calcolo tableau altamente ottimizzati. Offre servizi di ragionamento per T-Box e A-Box multiple. Il sistema implementa la logica descrittiva ALCQHIR+ anche conosciuta come SHIQ. Tale logica è basata sulla logica ALC ma è potenziata con restrizioni numeriche qualificate, gerarchia di ruoli, ruoli inversi e ruoli transitivi. RacerPro implementa lo standard DIG per l‟accesso via HTTP al reasoner esponendo interfacce con cui le applicazioni possono dialogare utilizzando un protocollo basato su XML. Data una T-box possono essere effettuate query tra cui: verifica della sussunzione tra concetti; verifica della consistenza tra concetti ed individuazione di eventuali errori di modellazione; individuazione delle relazioni padre-figlio dei concetti. In una query è possibile specificare concetti come argomento, utilizzando sia nomi predefiniti, sia parametri ed espressioni che potranno essere completate anche dopo la fase di progettazione dell‟ontologia. Su una A-box invece possono essere effettuate query come: verifica della consistenza tra A-box e T-box; verifica delle istanze nella A-box rispetto alle definizioni della T-box; recupero delle istanze nella A-box che corrispondono a dei concetti della T-box; recupero delle istanze che soddisfano determinate condizioni applicate all‟A-box e alla T-box; computazione dei filler di un ruolo in riferimento ad un determinato individuo; Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 16 di 104 computazione del most specific concept (MSC) di un determinato individuo. RacerPro supporta il linguaggio di interrogazione SPARQL [14] ed introduce il linguaggio di interrogazione nRQL (new Racer Query Language) che supporta caratteristiche avanzate dell‟OWL come le annotazioni e le datatype property. Inoltre nRQL è utilizzato come motore base per l‟implementazione di un grande sottoinsieme del linguaggio di interrogazione OWL-QL(5), uno standard per l‟interrogazione di documenti OWL, raccomandato dal W3C. 2.1.3.3 Pellet Pellet critici [15] è un reasoner open-source che soddisfa alcuni requisiti considerati per i reasoner del web semantico. Essi sono: gestione degli individui e ragionamento sulla A-box; assenza dell‟assunzione che un nome sia unico; supporto dell‟implicazione logica (entailment); supporto per le conjunctive query sull‟A-box; supporto dei tipi di dato dell‟XML Schema. Analisi e riparazione delle entità: tutte le basi di conoscenza in OWL sono codificate in grafi RDF/XML. OWL-DL impone delle restrizioni sui grafi RDF e assicurare che i documenti RDF/XML le rispettino, è oneroso per gli autori. Inoltre molti documenti OWL sono OWL-Full, anche quando i loro autori desideravano produrre documenti OWL-DL. Pellet incorpora delle euristiche per individuare documenti OWL-Full che è possibile trasformare in OWL-DL e riesce autonomamente ad effettuarne la conversione. Ragionamento sui tipi di dato: XML Schema ha un ricco insieme di tipi di dato semplici e meccanismi, sia standard che inusuali, per creare nuovi tipi di dato a partire dai tipi base. Pellet è in grado di testare la soddisfacibilità dei tipi di dato definiti e congiunti. Pellet è basato sugli algoritmi tableau sviluppati per la logica descrittiva e supporta tutti i costrutti di OWL-DL, ha performance variabili ma molto interessanti in alcuni casi, ha un insieme di caratteristiche uniche ed è estensivamente integrabile poiché è contornato da numerosi middleware. Inoltre è utilizzato in ambienti di ricerca ed industriali. Pellet è in grado di verificare la consistenza di entità che usano OWL-DL nella sua interezza. Oltre alla verifica di consistenza Pellet fornisce l‟insieme considerato standard di 4 servizi utili e necessari per l‟inferenza per mezzo della logica descrittiva: 5 http://www.w3.org/TR/owl2-profiles/#OWL_2_QL_2 Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 17 di 104 controllo di consistenza: assicura che l‟ontologia non contenga affermazioni contradditorie. Usando la terminologia della logica descrittiva, questa operazione consiste nel verificare la consistenza di una A-box in relazione ad una T-box; soddisfacibilità dei concetti: controlla se è possibile che una classe abbia delle istanze. Se una classe è insoddisfacibile, definendone una istanza, si rende inconsistente l‟intera ontologia; classificazione: computa le relazioni di sottoclasse e superclasse tra le classi per creare una gerarchia completa; realizzazione: individua le classi più specifiche a cui appartiene un individuo. Pellet riconduce tutti questi servizi al controllo di consistenza. Si può accedere ad essi interrogando il reasoner, generalmente tramite una API, ad esempio quelle delle interfacce DIG. Pellet supporta vari tipi di query e vari servizi di gestione del reasoner, interfacciandosi a numerosi toolkit come Jena, WonderWeb OWL API e DIG. Pellet è un reasoner per la logica descrittiva ed è stato progettato per lavorare con OWL sin dal principio. Questa scelta progettuale ne ha influenzato l‟architettura e l‟implementazione del reasoner tableau. Pellet possiede un piccolo motore di ragionamento facile da estendere e che facilita l‟interfacciamento con altri software. Pellet interpreta l‟ontologia OWL in un insieme di triple RDF, le valida e le converte in assiomi ed asserzioni per la base di conoscenza. A questo livello, se possibile, avviene la riparazione delle ontologie OWL-Full e la conversione in OWL-DL. Le funzionalità di Pellet sono esposte da una API scritta in Java, da riga di comando e da uno script per il web. Pellet non è efficiente come RacerPro e FaCT++ per la classificazione ma ha comunque performance accettabili. Inoltre in applicazioni pratiche queste differenze prestazionali non sono significative. Al contrario, le performance di Pellet sono superiori a quelle di RacerPro se si effettuano conjunctive query sulle A-box. 2.2 La gestione della conoscenza nella piattaforma SWOP I principali servizi della infrastruttura presentata nel deliverable D1.1 sono i seguenti: Annotation Service: strumento con interfaccia grafica necessario all‟elicitazione delle associazioni semantiche tra componenti del file WSDL e concetti semantici contenuti all‟interno di ontologie di dominio. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 18 di 104 Discovery Service: strumento con interfaccia grafica necessario alla formulazione di query complesse da sottoporre al sistema per ottenere una lista di servizi semanticamente rilevanti rispetto alle query. Nasce quindi l‟esigenza di individuare un insieme di ontologie con cui l‟intera infrastruttura possa dialogare al fine di disambiguare il testo descrittivo inserito dagli sviluppatori/annotatori ed arricchire semanticamente i servizi web sintatticamente descritti dai rispettivi documenti WSDL. Sono quindi necessarie delle ontologie di dominio (indispensabili per i concetti propri del business aziendale) e delle ontologie lessicali (indispensabili per comprendere la lingua con la quale si inseriscono le descrizioni testuali). 2.2.1 Una semplice metodologia di sviluppo di ontologie Negli anni novanta è emerso un crescente interesse verso approcci per la costruzione di ontologie from scratch, per il riuso di altre ontologie e per l‟uso di metodi semi-automatici in grado di ridurre i tempi ed i costi del processo di sviluppo di una ontologia. Fino alla metà degli anni novanta questo processo era più un'arte che una attività ingegneristica. Ogni gruppo di sviluppo seguiva un proprio insieme di principi, criteri e fasi per costruire manualmente l‟ontologia. L‟assenza di linee guida comuni e strutturate rallentava lo sviluppo di ontologie all‟interno dei gruppi o in cooperazione, la possibilità di estendere o riusare una qualsiasi ontologia e l‟uso delle ontologie nelle applicazioni finali. Solo successivamente la comunità di ricerca si pose l‟obiettivo di esplorare principi, scelte progettuali, regole e buone pratiche di modellazione, da cui tutti gli ingegneri della conoscenza potessero trarre giovamento. Furono indagate anche le metodologie di sviluppo e di valutazione delle ontologie, le differenti attività previste nella loro costruzione e nel loro il ciclo di vita. Le metodologie non sono state create solo per costruire nuove ontologie. Quando si usa o si riusa una ontologia esistente, questa può essere implementata in un linguaggio che utilizza un paradigma di rappresentazione della conoscenza diverso da quello dell‟ontologia che si vuole riutilizzare. Per risolvere questi problemi le metodologie possono includere anche metodi di reingegnerizzazione. Anche se uno degli scopi principali delle ontologie è velocizzare l‟acquisizione della conoscenza, questo processo richiede ancora molto tempo e risorse. Di conseguenza sono stati definiti anche metodi per un apprendimento automatico delle ontologie, con lo scopo di crearne di nuove, arricchirne i termini di quelle esistenti, e acquisire conoscenza per compiti specifici. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 19 di 104 Dato che possono esistere più ontologie che modellano in maniera differente lo stesso tipo di conoscenza o dominio, esistono metodi per l‟allineamento e la fusione di ontologie. I metodi di allineamento permettono di stabilire vari tipi di mappatura tra ontologie, preservandole da cambiamenti e ristrutturazioni. Invece i metodi di fusione portano a generare un‟unica ontologia a partire dalle ontologie originali. Anche il processo di fusione prevede la definizione di mappature o collegamenti tra le ontologie da fondere. In riferimento allo stato attuale della ricerca e dello sviluppo delle tecnologie, è preferibile effettuare una mappatura tra ontologie che trattano uno stesso dominio, piuttosto che creare da zero un modello unificato della conoscenza su tale dominio. Ci sono delle regole che devono essere sempre tenute in considerazione durante lo sviluppo di un‟ontologia [16]: non esiste una metodologia corretta a priori ma la soluzione migliore dipende dall‟applicazione prevista e dalle sue estensioni future; lo sviluppo dell‟ontologia è necessariamente un processo iterativo; l‟ontologia deve riflettere la realtà del mondo da modellare. Lo sviluppo di un‟ontologia può cominciare con la definizione del dominio e dello scopo [17]: 1. Qual è il dominio che l‟ontologia deve coprire? 2. Quale utilizzo dobbiamo fare dell‟ontologia? 3. Per quali tipi di domande l‟informazione presente nell‟ontologia deve fornire una risposta? 4. Chi utilizzerà e chi manterrà l‟ontologia? 5. Esistono ontologie disponibili che possono essere adottate, estese, raffinate nel nostro dominio e obiettivo particolare? Uno dei metodi per determinare lo scopo di un‟ontologia è quello di individuare una lista di domande a cui la base di conoscenza, su cui si basa l‟ontologia, deve sapere rispondere (competency questions) [18]. 1. Lo sviluppo di un‟ontologia continua poi con questi semplici passi: 2. enumerare i termini importanti per l‟ontologia; 3. definire i concetti del dominio (classi); 4. organizzare i concetti in una gerarchia (sottoclassi e superclassi); 5. definire quali attributi e proprieta‟ hanno le classi e le restrizioni sui valori; 6. definire gli individui e i valori che assumono le loro proprietà. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 20 di 104 2.2.2 Protégé 4 Tra i tool per lo sviluppo di ontologie in linguaggio OWL, il più famoso è Protégé [19]. Protégé è uno strumento sviluppato dalla Stanford Medical Informatics alla Stanford University School of Medicine. Consiste in una suite Java multipiattaforma, gratuita ed open-source che offre strumenti per la costruzione di modelli di dominio e di applicazioni basate sulla conoscenza attraverso le ontologie. Protégé implementa un nutrito insieme di strutture e di azioni per la modellazione della conoscenza, a supporto della creazione, visualizzazione e manipolazione di ontology in diversi formati di rappresentazione. La Tabella 1 compara i principali costruttori di OWL con la sintassi di Protegé (Manchester Syntax [20]): Costruttori in OWL intersectionOf Sintassi in Protegé and unionOf or complementOf not someValueFrom some allValuesFrom only cardinality exactly hasValue has Tabella 1 – Protegè - La sintassi Inoltre sono disponibili numerosi plug-in che arricchiscono le funzionalità di Protegé. Protegé supporta OWL 2 DL e permette di integrare numerosi ragionatori tra cui Pellet. Protégé supporta due metodi per la modellazione delle ontologie. L‟editor Protégé-Frames permette di costruire e popolare ontologie basate sui frame. L‟editor Protégé-OWL permette di costruire ontologie per il web semantico in linguaggio OWL. La semantica formale di OWL specifica come derivare conseguenze logiche e dedurre fatti non presenti esplicitamente nell‟ontologia, ma implicati dalla semantica. Le implicazioni possono essere basate sulle proposizioni contenute in un singolo documento o in più documenti distribuiti e combinati con i costrutti di OWL. Protégé è il tool utilizzato per la realizzazione della base di conoscenza della piattaforma SWOP, la versione di riferimento è la 4.02, mentre la versione del ragionatore integrato in Protegè 4.02 è Pellet-Plugin 1.1. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 21 di 104 2.2.3 Il caso d’uso per la piattaforma SWOP Come caso d‟uso per la piattaforma SWOP è stato selezionato un progetto di esempio fornito da Microsoft©, Adventure Works [21] rappresentato da una società fittizia che produce e vende biciclette. I servizi forniti alla società sono quelli necessari ad interrogare una base dati relazionale contenente le informazioni aziendali. Quelle elencate nella Tabella 2 sono le principali tabelle presenti nel database Adventure Works ed utilizzate per recuperare i dati di interesse: Tabelle di Ad.Works BillOfMaterials Descrizione Elenco di tutti i componenti utilizzati per produrre le biciclette e i rispettivi componenti di assemblaggio. Customer Contiene informazioni relative alla clientela attuale. I clienti sono classificati in base al tipo, ovvero cliente individuale (CustomerType = „I‟) o punto vendita al dettaglio (CustomerType = „S‟). CustomerAddress Contiene gli indirizzi di tutti i clienti. Può essere presente più di un indirizzo. Ad esempio, a un cliente possono essere associati un indirizzo per la fatturazione e uno per le spedizioni. Location Elenco di ubicazioni di stoccaggio nelle quali prodotti e componenti sono immagazzinati a fini di inventario. Ad esempio, la vernice è presente nell'ubicazione Paint Storage nel magazzino e nel centro di produzione Paint Shop dove avviene la verniciatura dei telai delle biciclette. Product Informazioni relative a tutti i prodotti venduti o utilizzati per produrre le biciclette e i rispettivi componenti. ProductCategory Classificazione generale dei prodotti. Ad esempio, bicicletta o accessorio. ProductInventory Il livello di inventario dei prodotti in base alla rispettiva ubicazione. ProductModel Modelli diversi di un prodotto. ProductSubcategory Sottocategorie di prodotti. Ad esempio, Mountain, Road e Touring sono sottocategorie della categoria Bike. ProductVendor Definisce il mapping tra i fornitori e i rispettivi prodotti. È possibile che un prodotto sia disponibile presso più fornitori o che diversi prodotti possano essere acquistati da uno stesso fornitore. PurchaseOrderHeader Informazioni di riepilogo di un'ordine di acquisto, quali il totale e la data. SalesOrderHeader Contiene informazioni generali o di riferimento relative agli ordini di vendita. Store Contiene dati relativi ai clienti rivenditori dei prodotti. Vendor Dettagli relativi ai fornitori, ad esempio il nome e il numero di conto. VendorAddress Contiene gli indirizzi di tutti i fornitori. Può essere presente più di un indirizzo. WorkOrder Contiene dati relativi agli ordini di produzione. Questo tipo di ordini consente di controllare quali prodotti vengono realizzati in quantità Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 22 di 104 Tabelle di Ad.Works Descrizione appropriata e nei tempi necessari per soddisfare le richieste di vendita e inventario. Tabella 2 – Adventure Works (Le principali Tabelle) I servizi del caso d‟uso Adventure Works sono realizzati dai seguenti 4 web service: SalesService: questo servizio permette di reperire le informazioni dettagliate relative ai clienti e alle vendite memorizzate nel database di esempio. ProductService: questo servizio permette di reperire le informazioni dettagliate sui dati relativi ai prodotti rappresentati nel database. PurchasingService: il reparto acquisti della società si occupa dell'approvvigionamento di materie prime utilizzate per la realizzazione delle biciclette. La società acquista inoltre prodotti a scopo di rivendita, ad esempio abbigliamento per ciclisti e accessori. Le informazioni relative a questi prodotti e ai relativi fornitori, sono archiviate nel database di esempio. Questo servizio permette di reperire le informazioni dettagliate sui dati relativi ai fornitori. ManufacturingService: questo servizio permette di reperire le informazioni dettagliate sui dati relativi alle attività produttive della società. Nella Tabella 3 si descrivono brevemente i metodi definiti per ciascun web service: Service Metodo Sales GetIndividualCustomers Sales Sales Sales GetIndividualCustomer individuati come privati (CustomerType = 'I'). Restituisce i dati relativi agli indirizzi dei clienti privati. Viene restituito il nome di tutti i clienti individuati come GetStoreCustomers punti vendita (CustomerType = 'S'). Vengono restituiti i nomi di tutti i punti vendita e i nomi GetStoreContacts e le rispettive qualifiche dei dipendenti del punto ByStore GetSalesByStore Sales GetStoreByLocation Product Vengono restituiti il nome e il cognome di tutti i clienti AdressData Sales Product Descrizione vendita. Viene creato un elenco dei punti vendita e degli ordini di vendita a essi associati. Vengono visualizzati nome, città, provincia e paese del punto vendita. GetProductDescriptions ByFilter e modello. Non sono inclusi i prodotti non associati ad alcuna categoria. GetProductDescriptions Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Visualizzazione dei prodotti per categoria, sottocategoria Visualizzazione delle descrizioni dei prodotti per modello. Versione:1 Data: 16/07/2010 Pag. 23 di 104 Service Metodo Descrizione ByProductModel Purchasing Purchasing Purchasing Purchasing Manufacturing Manufacturing Manufacturing GetVendorsByLocation Visualizza un elenco dei fornitori con i rispettivi indirizzi. GetProductsSupplied Viene visualizzato un elenco dei prodotti acquistati dalla ByVendors società presso i fornitori. Viene visualizzato un elenco dei dipendenti del fornitore GetVendorContacts ai quali il reparto acquisti della società si rivolge per ByVendor ordinare componenti e prodotti. GetPurchasesByVendor Vengono visualizzati i dati relativi ai fornitori e agli ordini di acquisto ad essi associati. GetMultiLevelBillOf Visualizzazione di un elenco di distinte dei materiali a più MaterialsListForProduct livelli relativo a un prodotto di riferimento principale. GetWorkOrders Viene restituita la quantità disponibile di ogni prodotto in ByInventory base alla rispettiva ubicazione di inventario. GetWorkOrders ByProduct Visualizzazione di tutte le commesse relative ai prodotti inclusi nelle sottocategorie Mountain Bike (1), Road Bike (2) e Touring Bike (3). Tabella 3 – Adventure Works (I Web Service) 2.2.4 Dominio e scopo dell’ontologia Qual è il dominio che l’ontologia deve coprire? Qual’è il suo utilizzo? Obiettivo di questa attività (Attività A2.3) è realizzare una o più ontologie che soddisfino tutte le esigenze semantiche della piattaforma SWOP, nel dominio applicativo del business aziendale. Per il modulo Service Annotation sono necessarie: un‟ontologia del dominio business da utilizzare nel confronto semantico tra i dati di input/output dei servizi e quelli di input/output delle richieste degli utenti (semantica dei dati) un‟ontologia funzionale nella quale ogni concetto/classe rappresenta una funzionalità del dominio scelto, in modo che ogni funzionalità dei Web Service siamo messa in relazione con uno o più concetti dell‟ontologia di riferimento (semantica funzionale Inoltre per il corretto funzionamento del tool di elaborazione del linguaggio naturale, è necessario che: per tutti i concetti sia correttamente valorizzato l‟attributo OWL comment; la lingua da utilizzare per i commenti e i nomi dei concetti sia l‟inglese. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 24 di 104 Per quali tipi di domande l’informazione presente nell’ontologia deve fornire una risposta? Per il modulo Discovery Service è necessaria un‟ontologia dei servizi (ontology service) che modelli i web service, in funzione del loro ritrovamento. Le query possono coinvolgere: 1. caratteristiche non funzionali come la categoria del servizio; 2. caratteristiche funzionali come l‟input, l‟output, le caratteristiche di un'operazione; 3. conoscenza di dominio che definisce, ad esempio, la tipologia dell‟input di un servizio. 4. informazioni correlate al task o al goal del servizio; 5. il nome del servizio. Esistono ontologie disponibili che possono essere adottate, estese, raffinate nel nostro dominio e obiettivo particolare? Nel paragrafo 2.3 Ontologie esistenti per il dominio Enterprise si analizzerà il ruolo delle ontologie nell‟impresa e verranno analizzate alcune ontologie esistenti per il dominio del business, al fine di valutare possibili riusi. Formalismo Il linguaggio utilizzato è OWL-DL con l'aggiunta delle restrizioni esistenziali qualificate (logica SHOIQ) che assicura ancora la decidibilità del linguaggio. Le caratteristiche di OWL utilizzate sono le seguenti: relazione di sottoclasse, definizione di dominio e range e restrizioni quali exact cardinality, allValueFrom e someValuesFrom. L‟ontologia è stata sviluppata con Protegé Versione 4.02 (Build 115) e Pellet-Plugin 1.1. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 25 di 104 2.2.5 I moduli dell’ontologia La Figura 4 sintetizza l‟architettura modulare dell‟ontologia progettata per la paittaforma SWOP: Figura 4 – Architettura dell’ontologia per Swop I principi di progettazione seguiti per lo sviluppo dell‟ontologia sono stati i seguenti: Modularizzazione - La conoscenza di dominio, che definisce le proprietà funzionali e non funzionali dei web service, è stata suddivisa in ontologie, che poi sono state integrate tra di loro. Estendibilità - L‟ontologia sviluppata è facilmente adattabile a differenti domini applicativi semplicemente estendendo i concetti base presenti oppure importanto ontologie di dominio differenti. Riuso di ontologie di classificazione esistenti. Nella Tabella 4 è stata riportata una breve descrizione delle ontologie coinvolte: Ontologie Nome file Categories unspsc.owl Business Processe Business Object Services Swop Integration BusinessProcess.owl BusinessObject.owl Services.owl swop-integration.owl Descrizione Contiene una tassonomia delle categorie commerciali di prodotti e servizi. Vengono classificate le funzionalità e i task del dominio applicativo. Definisce i concetti del dominio che identificano gli input e gli output dei web service. Fornisce lo scheletro per modellare i web service. Questo modulo importa i precedenti e stabilisce le relazioni tra le classi delle varie ontologie importate. Tabella 4 – SWOP - Le ontologie del progetto Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 26 di 104 2.3 Ontologie esistenti per il dominio Enterprise 2.3.1 Le ontologie e le imprese Se due parti vogliono effettuare un affare, uno dei principali requisiti è la condivisione di una comune comprensione del mondo. Se il venditore e l‟acquirente non si capiscono, chiaramente la transazione non può avvenire. Questo principio è anche vero per il commercio elettronico con la differenza che in questo caso gli agenti software fanno più difficoltà a comunicare tra di loro. Mentre gli uomini hanno una conoscenza del senso comune del mondo e possono risolvere l‟ambiguità dei termini utilizzati nella comunicazione commerciale, molti programmi, al giorni d‟oggi, non hanno questa capacità. In un‟economia dove la rete dei fornitori, distributori, partner e clienti di un‟azienda commerciale è sempre più un‟importante fonte di vantaggio competitivo, l‟interoperabilità semantica – l‟abilità di agenti umani e automatizzati di coordinarsi basandosi su l‟apprendimento condiviso di dati che fluiscono tra di loro – è la maggior abilità economica [23]. Inoltre, l‟informazione è elemento essenziale all‟interno di un‟azienda nel determinare lo svolgimento corretto dei processi e dei flussi fisici, a livello logistico, nei servizi, nella gestione finanziaria e nel supporto alle decisioni. Condividere l‟informazione permette di controllare e coordinare lo svolgimento di attività diverse, superando il limite della razionalità individuale. Gli utenti di un‟azienda hanno bisogno di analizzare i cambiamenti di informazioni per poter supportare efficacemente le attività lavorative. A causa della complessità dei sistemi aziendali e degli strumenti disponibili, gli utenti, soprattutto quelli con meno competenze tecniche, affrontano considerevoli sfide quando cercano di recuperare in maniera flessibile i dati necessari con un metodo ad-hoc. In realtà col tempo è emerso che il compito più importante per l‟ontologia dei nuovi sistemi informativi, si rapporta più che al progetto dell‟intelligenza artificiale al mondo delle basi di dati (database management) – e riguarda quello che potremmo chiamare il problema della torre di Babele delle basi di dati (integrazione semantica) [24]. Gradualmente ha preso corpo l‟idea che arrivare ad una comune tassonomia di riferimento potrebbe procurare vantaggi significativi rispetto a soluzioni sviluppate ad-hoc. Una tale visione è supportata dal fatto che molti grandi rivenditori adottano attualmente delle tecnologie semantiche: Hewlet Packard, IBM, Microsoft, Oracle, SAP. Le ontologie possono aiutare i programmi ad essere più intelligenti, ad essere capaci di automatizzare le transazioni commerciali e l‟analisi dei flussi. Lo scopo di una “Enterprise Ontology” è quello di essere un valido riferimento per il dominio dell‟e-business. Una Enterprise Ontology dovrebbe fornire ad un livello più alto i concetti più importanti del business e poi dovrebbe fornire delle definizioni ontologiche di concetti di più basso livello come il tempo, il luogo e il denaro. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 27 di 104 Nei sistemi informativi e nelle applicazioni aziendali, le categorie generali ed universali, solitamente rappresentate dalle ontologie top-level, non sono molto diffuse. Le imprese trovano eccessivamente costoso, in termini di tempo e di risorse impiegate, creare e gestire una concettualizzazione completa, piuttosto è di loro interesse che i sistemi basati su ontologie siano più efficaci dei sistemi preesistenti. Inoltre gli individui interpretano e rappresentano il “mondo” in modo diverso, in base a personali prospettive. Ad esempio due utenti (o comunità di utenti) possono osservare lo stesso fenomeno e vedere diversi problemi, opportunità e occasioni di sviluppo. Ne deriva che una ontologia non risulta essere una organizzazione di significati neutra, ma piuttosto risulta essere uno schema interpretativo, attraverso il qualche ha senso (per una persona o una comunità) organizzare e definire oggetti. Seppure i ragionamenti induttivi, la disambiguazione semantica, l‟interoperabilità tra ontologie possono non essere efficacemente supportate dai sistemi esperti e di knowledge management delle imprese, la presenza di ontologie diverse deve diventare una fonte di arricchimento conoscitivo, che conduce a combinazioni inattese di conoscenze e innovazione. 2.3.2 I processi aziendali e la loro rappresentazione sintattica Il Business Process (o Processo Aziendale) è il flusso di un insieme di attività interrelate, svolte all'interno dell'azienda, da una persona, da un sistema interno, che creano valore trasformando delle risorse (input del processo) in un prodotto (output del processo) destinato ad un soggetto interno o esterno all'azienda (cliente). Il processo è teso al raggiungimento di un obiettivo aziendale, determinato in sede di pianificazione se questa è presente. Fondamentale per un‟azienda non è soltanto la gestione in sé per sé delle sue risorse (persone, prodotti, clienti, fornitori) ma anche la possibilità di analizzare i suoi processi. Il Business Process Management (BPM) [25] è l‟insieme di attività necessarie per definire, monitorare, ottimizzare ed integrare i processi aziendali, al fine di rendere efficiente ed efficace il business dell‟azienda. Il Business Process Modeling indica quelle tecniche e quegli standard utilizzati per rappresentare i processi di un‟azienda. Le attività connesse al BPM possono essere raggruppate in cinque categorie: disegno, modellazione, esecuzione - tramite le regole di business (business rules) - monitoraggio e ottimizzazione. Gli analisti e/o i manager analizzano il processo corrente e lo migliorano, in efficienza e qualità. Una tecnica standard molto diffusa per la rappresentazione grafica del BPM, è il BPMN (Business Process Modelling Notation) [26], una rappresentazione molto flessibile che permette di specificare i processi di business in un workflow. Citiamo anche altre tecniche: Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 28 di 104 EPC (Event-driven Process Chain) che identifica un particolare tipo di flowchart che può essere utilizzato per configurare un‟implementazione di un ERP (Enterprise Resource Planning - ossia quei prodotti gestionali che permettono di pianificare le risorse di un‟azienda); UML2 (Unified Modeling Language) Activity Diagram [27]; UMM (UN/CEFACT's Modeling Methodology) [28]. Il Business Process Definition Metamodel (BPDM) indica un metamodello esplicito per rappresentare gli elementi del BPMN, e fornisce un meccanismo per la serializzazione di questi elementi basato su XML. Mentre L‟XML Process Definition Language (XPDL) [29] è un formato standard per lo scambio delle definizioni dei processi di business tra differenti prodotti di workflow. Una Business Process Management Suite (BPMS) è generalmente un insieme di tool finalizzati al BPM (Es. IBM BPM Suite(6), Oracle BPM Suite(7), raggruppabili in quattro principali gruppi: Process Engine - indica una robusta piattaforma per modellare ed eseguire applicazioni basate sui processi, incluse le business rules; Business Analytics - sono tecniche che permettono di identificare i problemi di business o i trend; Content Management - fornisce un sistema per memorizzare documenti elettronici, ed altri file; Collaboration Tools - attraverso forums, o bacheche è possibile abbattere le barriere di comunicazione tra i vari dipartimenti di un‟azienda. Il principale approccio architetturale per il BPM è SOA (Service-Oriented Architecture) già illustrato nel deliverable D1.1. In un‟architettura orientata ai servizi l‟azienda stessa è vista come un insieme di servizi, che sono forniti o consumati dai processi. Questo tipo di architettura si dimostra molto flessibile soprattutto quando devono essere apportate delle modifiche. Il cuore della sfida del BPM è riuscire a dare una vista d‟insieme dell‟andamento di un‟azienda attraverso l‟integrazione delle molteplicità di sistemi IT in essa presenti. Il Semantic Business Process Management (SBPM) è il nuovo approccio per automatizzare questa integrazione mediante l‟utilizzo delle tecnologie semantiche. Questa nuova ottica è seguita dai maggiori produttori di sistemi di ERP e BPM. SAP(8) ad esempio è pienamente coinvolta nel progetto SUPER di cui parleremo nel seguito. 6 http:/www-01.ibm.com/software/info/bpm/offerings.html 7 http://www.oracle.com/us/technologies/bpm/index.html http://www.sap.com 8 Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 29 di 104 2.3.3 Le ontologie formali esistenti Nell‟affrontare il problema di implementare una Enterprise Ontology un approccio potrebbe essere quello di riusare le ontologie formali disponibili sul Web, contenenti informazioni rilevanti per la realizzazione di una Enterprise Ontology. Ad esempio ci sono varie upper ontology che definiscono concetti come il tempo, i luoghi, le quantità fisiche e le strutture aziendali. Esse comunque potrebbero risultare troppo generiche e contenere numerosi concetti "lontani" dal dominio del business che si vuole modellare. Inoltre spesso sono pubblicate con poca documentazione. Un altro approccio potrebbe essere quello di non basarsi su alcuna delle ontologie esistenti, ma scegliere di basare la concettualizzazione su alcuni importanti standard per l‟e-business. Il successo di una rappresentazione sta nel suo utilizzo condiviso. Sebbene esistano vari standard per lo scambio dei dati che condividono uno stesso dizionario, questi non condividono la semantica. Questo implica che il significato dei termini deve essere codificato direttamente nelle procedure, rendendo così il loro riuso complicato e costoso. Il mondo economico/finanziario ha già visto la nascita di alcuni standard sintattici di successo per lo scambio e la rappresentazione delle informazioni e numerose sono le organizzazioni che lavorano per realizzare degli standard comuni. Questi alcuni degli organismi internazionali coinvolti: W3C(9) - World Wide Web Consortium UN/CEFACT(10) - United Nations / Centre for Trade Facilitation and Electronic Business OASIS(11) - Organization for the Advancement of Structured Information Standards OMG(12) - Object Management Group Ci sono standard per la classificazione dei prodotti e standard per la descrizione dei processi aziendali. 2.3.3.1 Standard per la classificazione di prodotti e servizi Tra gli standard di classificazione dei prodotti i più importanti sono i seguenti: UNSPSC [30] è una semplice tassonomia di concetti. Esiste un progetto denominato unspscOWL(13) nato con l‟obiettivo di fornire una versione semantica di questo standard ma ad oggi non esistono 9 http://www.w3.org/ 10 http://www.unece.org/cefact 11 http://www.oasis-open.org 12 http://ontology.omg.org/ 13 http://www.heppnetz.de/projects/unspscowl/ Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 30 di 104 prototipi ufficiali [31,32]. Una versione ontologica di questo standard è stata realizzata da uno studente della Middle East Technical University (METU): Scheda unspscOWL URL progetto: http://www.srdc.metu.edu.tr/ubl/translation/src/Thesis%20Extra ct.pdf Ontology URI: http://www.srdc.metu.edu.tr/ubl/contextOntology/unspsc.owl Autori: Yalin Yarimagan Linguaggio: OWL Versione: 2006 Num. Classi: 2548 Num. Object Property: 0 Num. Individui: 0 Num. Data Property: 0 Espressività in DL: AL Ecl@ss2(14), a differenza del primo standard, contiene anche le proprietà e quindi è più interessante da punto di vista ontologico tanto che ne esiste una completa versione in OWL Lite, denominata eCl@ssOWL [33], che rappresenta la prima ontologia per prodotti e servizi. L‟ultima versione di eClassOWL fornisce più di 60.000 classi di prodotti e più di 5.000 proprietà per la descrizione delle caratteristiche dei prodotti. Scheda eCl@ssOWL URL progetto: http://www.heppnetz.de/projects/eclassowl/ Ontology URI: http://www.ebusiness-unibw.org/ontologies/eclass/5.1.4/ Autori: Martin Hepp and Andreas Radinger Linguaggio: OWL-DL Versione: 5.1.4 del 18/04/2010 Num. Classi: 60687 Num. Individui: 4767 Espressività in DL: SHI(D) Num. Object 4941 Property: Num. Data Property: 2275 Queste tassonomie di prodotti possono essere facilmente integrate in altre ontologie. 2.3.3.2 Standard per la classificazione dei processi aziendali Per la classificazione dei processi aziendali citiamo alcuni importanti standard basati su XML: 14 http://www.eclass-online.com Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 31 di 104 ebXML (Electronic Business eXtensible Markup Language)(15) un insieme di specifiche che permettono di modellare le transazioni commerciali elettroniche. ebXML definisce il Core Components Technical Specification (CCTS)(16) sviluppato da UN/CEFACT. CCTS definisce i più importanti blocchi dei tipici documenti di business e può essere riutilizzato in altri standard. RosettaNet(17). Il dizionario dei dati di RosettaNet (quello tecnico e quello di business) definisce una lista di termini che possono essere utilizzati nei documenti di business. Questa lista non è strutturata in alcuna forma, inoltre, le convenzioni per i nomi degli elementi sono piuttosto ad-hoc. UBL 2.0 [34]. E‟ un linguaggio basato su XML per la rappresentazione elettronica di documenti commerciali (Ordine, Avviso spedizione, Richiesta di offerta, ecc.) realizzato in collaborazione con varie organizzazioni di standardizzazione, tra cui UN/CEFACT. UBL rappresenta la prima implementazione in XML della metodologia CCTS. In Danimarca dal Febbraio 2005 la fattura UBL è stata adottata per legge da tutte le aziende del settore pubblico e diversi sono gli esempi di effettivo utilizzo di questo linguaggio (analogo vincolo vige, per esempio, in Turchia da Marzo 2010). Varie sono le iniziative(18) che hanno provato ad aggiungere semantica allo standard UBL, a dimostrazione del fatto che è uno standard importante per il mondo del business, ma questi progetti in realtà non hanno mai visto dei risultati concreti. 2.3.3.3 NeOn - UBL Invoice Ontology Scheda NEON UBL Invoice URL progetto: http://www.neon-project.org Ontology URI: http://www.isoco.com/ontologies/neon/UBLInvoiceOntology.o wl Autori: iSOCO S.A. (www.isoco.com) Linguaggio: OWL DL Versione: 18/02/2010 Num. Classi: 106 Num. Object Property: 111 Num. Individui: 0 Num. Data Property: 3 Espressività in DL: ALUN(D) finale 15 http://www.ebxml.org/ 16 http://www.unece.org/cefact/codesfortrade/CCTS/CCTS-Version3.pdf 17 http://www.rosettanet.org/ 18 http://ontolog.cim3.net/cgi-bin/wiki.pl?UblOntology Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 32 di 104 NeOn (Networked Ontologies) [35] è un progetto finanziato dal “Sesto programma quadro di ricerca dell’Unione europea” il cui scopo è fornire un supporto per lo sviluppo e la gestione delle applicazioni semantiche di nuova generazione. Il cuore di questo progetto è Neon Toolkit, un ambiente per la progettazione di ontologie, multi-piattaforma e open source, basato sulla piattaforma di Eclipse, che fornisce un supporto globale durante tutto il ciclo di vita di un‟ontologia: acquisizione della conoscenza, sviluppo, modularizzazione, integrazione con le basi di dati relazionali, valutazione, ecc. I2Ont (Invoices to Ontologies) (19) un prototipo che utilizza le tecnologie e i metodi di NeOn Toolkit per ridurre significativamente il problema dell‟interoperabilità delle fatture nell‟industria farmaceutica spagnola. Uno dei modelli di fattura utilizzati in questo prototipo, denominato UBLIO (UBL Invoice Ontology), implementa lo standard UBL ed è stato sviluppato utilizzando la Ontolog UBL ontology(20). Le classi principali della UBL Invoice Ontology sono visualizzate in Figura 5. Figura 5 – UBL Invoice Ontology In Figura 6 sono illustrate le sottoclassi della classe UBLTransactionEntity: 19 http://neon-toolkit.org/wiki/I2Ont 20 http://ontolog.cim3.net/cgi-bin/wiki.pl?UblOntology Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 33 di 104 Figura 6 – UBL Invoice Ontology (Transaction Entity) Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 34 di 104 2.3.3.4 DIP - Business Data Ontology Scheda BDO URL progetto: http://dip.semanticweb.org Ontology URI: http://dip.semanticweb.org/documents/D3.3-Business-dataontology.pdf Autori: Gabor Nagypal (www.fzi.de) Linguaggio: OWL FULL Versione: 24/01/2005 Num. Classi: 385 Num. Object Property: 519 Num. Individui: 0 Num. Data Property: 97 Espressività in DL: ALHI+(D) finale Nell‟ambito del progetto DIP (Data, Information, and Process Integration with Semantic Web Services) [36] finanziato dal “Sesto programma quadro di ricerca dell’Unione europea”, è stata realizzata la Business Data Ontology (BDO). La BDO utilizza ed estende la upper-ontology PROTON (in precedenza denominata BULO) [37], un‟ontologia realizzata come supporto per il progetto Semantic Knowledge Technologies (SEKT) (21) che rappresenta una semplice struttura di alto livello. Scheda PROTON URL progetto: http://proton.semanticweb.org/ Ontology URI: http://proton.semanticweb.org/2005/04/protonu Autori: OntoText Lab (http://wwww.ontotext.com) Linguaggio: OWL-DL Versione: 0.1 del 2005 Num. Classi: 266 Num. Object Property: 77 Num. Individui: 0 Num. Data Property: 36 Espressività ALHI+(D) in finale DL: Tabella 5 – PROTON – Scheda Riepilogativa BDO è un‟ontologia basata sullo standard UBL 1.0, nata per essere un riferimento per l‟e-business. La BDO pone particolare attenzione al ciclo ordine-fattura di UBL, rappresentato in Figura 7. 21 http://www.sekt-project.com/ Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 35 di 104 Figura 7 – Processo ordine-fattura in UBL Quella visualizzata in Figura 8 è una visione d‟insieme dell‟ontologia BDO. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 36 di 104 Figura 8 – Business Data Ontology Lo standard UBL consiste di tre parti principali: 1. la prima parte è lo standard UN/CEFACT CCTS che fornisce i blocchi primitivi (CCTS e i tipi di dati) che sono riutilizzati nello standard. Gli elementi CCTS sono tutti sottoconcetti del nuovo concetto BASETYPE. 2. all‟altro estremo ci sono le tipologie di documenti necessari per il ciclo ordine-fattura: a. b. c. d. e. f. g. h. Order Order Response Simple Order Response (detailed) Order Change Order Cancellation Despatch Advice Receipt Advice Invoice Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 37 di 104 Queste tipologie di documenti descrivono una complicata struttura di documento che usa elementi dalla terza parte di UBL. I concetti che definiscono le tipologie di documenti UBL sono aggiunti come sottoconcetti del nuovo concetto BUSINESSDOCUMENT (a sua volta sottoconcetto di DOCUMENT e di BUSINESSOBJECT). 3. la terza parte è chiamata “riusabile”. Questa definisce delle utili astrazioni che hanno già una semantica di business (in contrasto con gli elementi CCTS). Ad esempio appartengono a questa parte concetti generali del business come Address oppure Item. 2.3.3.5 SET Harmonized Ontology Scheda SET Harmonized Ontology URL progetto: http://www.oasisopen.org/committees/tc_home.php?wg_abbrev=set Ontology URI: http://www.srdc.metu.edu.tr/iSURF/OASIS-SETTC/ontology/ HarmonizedOntology.owl Autori: Oasis Committees Linguaggio: OWL-Lite Versione: 13/05/2009 Num. Classi: 3351 Num. Object Property: 9 Num. Individui: 0 Num. Data Property: 0 Espressività in DL: AL finale La SET Harmonized Ontology [38] rappresenta uno dei numerosi tentativi di aggiungere semantica allo standard UBL. Essa è il risultato del progetto OASIS SET TC (Semantic Support for Electronic Business Document Interoperability) che mira a sviluppare le specifiche per una rappresentazione dei documenti commerciali elettronici semanticamente processabili dalle macchine. La SET Harmonized Ontology esprime le relazioni tra gli artefatti documentali dei seguenti standard: UN/CEFACT CCL (Core Component Library)22, UBL 2.0, OAGIS 9.1(23) and GS1 XML (24), come illustrato in Figura 9. 22 http://www.unece.org/cefact/codesfortrade/unccl/CCL_index.htm 23 http://www.oagi.org 24 http://www.gs1.org/ecom/xml/overview Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 38 di 104 Figura 9 – Set Harmonized Ontology 2.3.3.6 GoodRelations Scheda GoodRelations URL progetto: http://purl.org/goodrelations/ Ontology URI: http://purl.org/goodrelations/v1 Autori: Martin Hepp Linguaggio: OWL DL Versione: Release 1.0 del 12/04/2010 Num. Classi: 28 Num. Object Property: 43 Num. Individui: 47 Num. Data Property: 37 Espressività in DL: SHI(D) GoodRelations [39] è un‟ontologia che può essere utilizzata per descrivere con molta precisione cosa un‟azienda offre (prodotti, prezzi ed altri dati aziendali). Questo “vocabolario standardizzato” può essere incastrato in pagine web statiche e dinamiche e può essere processato da altri computer, incrementando così la visibilità dei prodotti e dei servizi nei motori di ricerca semantici, nei sistemi di raccomandazione e in altre nuove applicazioni, rendendo cosi disponibili i dati, esclusivamente alle persone che stanno cercando tali prodotti e servizi. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 39 di 104 Figura 10 – GoodRelations Goal GoodRelations può essere utilizzato per creare un piccolo pacchetto di dati che descrive i prodotti, le loro caratteristiche, i prezzi, gli orari di apertura e chiusura, le condizioni di pagamento e informazioni simili (vedere la Figura 10). E‟ poi sufficiente incollare questo pacchetto dati nella propria pagina Web usando il formato RDF. Utilizzando il tool gratuito GoodRelations Annotator è possibile descrivere con molta semplicità la propria azienda ed i suoi prodotti. Vengono così generate poche linee di codice extra da incollare nella pagina principale del sito aziendale. Inoltre, GoodRelations rende facile lo scambio dei dettagli di un modello di prodotto tra produttori e operatori di vendita, in modo che tali dati possano essere molto facilmente riutilizzati attraverso la catena del valore. Il lavoro sull‟ontologia GoodRelations è supportato dalla Commissione Europea nell‟ambito del progetto SUPER (Semantics Utilised for Process management within and between EnteRprises) [40,41]– che combina i Semantic Web Service (SWS) e le tecnologie di modellazione del processo aziendale per supportare la gestione del processo aziendale. GoodRelations utilizza l‟ontologia eCl@ssOWL. La relazione tra eCl@ssOWL e GoodRelations è lineare: eClassOWL fornisce classi, attributi e valori per descrivere un prodotto o un servizio. GoodRelations fornisce tutto il necessario per descrivere l‟offerta attuale e i suoi dettagli, ad esempio, la relazione tra una Business Entity ed un prodotto oppure un servizio. Tale caratteristica è anche l‟origine del nome: è un‟ontologia per le relazioni tra beni e business entity. GoodRelations è molto flessibile, infatti è possibile referenziare qualsiasi altra ontologia che descriva beni e servizi purché risponda a determinate linee guida. La Figura 11 illustra la gerarchia delle classi di GoodRelations. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 40 di 104 Figura 11 – Good Relations Ontology Nella Tabella 6 GoodRelations: è riportata Classi di GoodRelations una descrizione delle principali classi di Descrizione Un‟istanza di questa classe rappresenta l‟agente legale che fa una particolare offerta (vedi la classe Offerings). Una Business Entity ha almeno un indirizzo di posta e dei dettagli di contatto. Gli standard tipicamente usati per gli indirizzi (come BusinessEntity vCard) e i dati sulla posizione possono essere aggiunti. La posizione potrebbe essere importante per trovare un fornitore con una data distanza dalla propria sede. Esempi: Siemens Austria AG, Volkswagen Ltd., Peter Miller's Cell phone Shop Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 41 di 104 Classi di GoodRelations Descrizione E‟ una entità concettuale che rappresenta la forma legale, la dimensione, la posizione nella catena dei valori di una Business Entity. Dal punto di vista ontologico, le tipologie di Business Entity identificano i principali ruoli che un‟entità può BusinessEntityType assumere nel mercato. Questi tipi sono importanti quando si vogliono individuare i clienti idonei per una data offerta, poiché le offerte spesso hanno un senso solo per entità di una certa dimensione, con una certa struttura legale, o con un determinato ruolo nella catena dei valori. Esempi: EndUser, Retailers, Wholesalers, or Public Institutions Specifica il tipo di attività o di accesso offerto da una Business Entity su un prodotto o servizio messo tra le offerte. L‟idea di standardizzare le funzioni di business è nata per allinearsi con gli “UNSPSC Business Functions Identifiers” (UNSPSC BFI). Tipicamente queste funzioni sono sell, rental oppure lease, BusinessFunction maintenance oppure repair, manufacture/produce, recycle/dispose, engineering/construction, o installation. Esempi: Una particolare offerta fatta dalla Miller Rentals Ltd potrebbe dire che quest‟azienda sell (vende) decappottabili della Volkswagen Golf, lease out (loca) un particolare tipo di camioncino della Ford, e dispose (dispone di) rottami di macchine di ogni tipo e modello. Il giorno della settimana utilizzato per specificare a quale DayOfWeek giorno si riferiscono gli orari di apertura. Esempi: Monday, Tuesday, Wednesday,... I metodi di spedizione sono le procedure standardizzare per il trasferimento di prodotti e servizi alla destinazione finale DeliverMethod scelta dal cliente. Essi sono caratterizzati dai mezzi di trasporto utilizzati, e dall‟organizzazione o gruppo che rappresenta la parte contrattuale incaricata della spedizione. Esempi: spedizione con Mail, con Direct Download, con UPS Location of Sales o Service Provisioning è un luogo in cui una determinata Business Function, applicata ad un'istanza di un particolare prodotto o servizio, può essere offerta da una Business Entity. Le grandi imprese spesso hanno più filiali per le spedizioni di LocationsOfSalesOrS consegna. In questo caso il luogo principale dell‟ufficio della erviceProvisioning Business Entity non coincide con il posto dove il cliente può attualmente fare l‟offerta. Nel caso di una catena di negozi, coincide con tutti i negozi attuali. Location of Sales o Service Provisioning sono caratterizzati da un indirizzo o da una posizione geografica e da un insieme di indicazioni sugli orari di apertura per i diversi giorni della Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 42 di 104 Classi di GoodRelations Descrizione settimana. Esempi: un‟azienda di noleggio di auto può offrire la Business Function, Lease Out per le auto, da due luoghi, uno in Fort Myers, Florida, e un altro in Boston, Massachussetts. Entrambe le stazioni sono aperte 7:00 - 23:00 dal lunedì al sabato. Questa è la superclasse per tutte le classi che rappresentano N-Ary-Relations le relazioni n-arie, che non possono essere rappresentate con OWL. Un‟offerta rappresenta l‟annuncio pubblico di una Business Entity di fornire una certa BusinessFunction per alcune istanze di Product o Service ad un determinato target di clienti. Un‟offerta è caratterizzata dal tipo di prodotto o servizio a cui si riferisce, dalla BusinessFunction offerta (sales, rental, …) e Offering da un insieme di proprietà commerciali. Un'offerta può essere espressa in termini di tipi ammissibili di business partner, città, quantità ed altre proprietà commerciali. Esempi: Peter Miller offre la riparazione di TV fatti di marca Siemens, Volkswagen Innsbruck vende una particolare serie della Volkswagen Golf a $10,000. Un metodo di pagamento è una procedura standardizzata per trasferire l‟ammontare monetario di un acquisto. I metodi di pagamento sono caratterizzati dalle strutture legali e tecniche PaymentMethod utilizzate, e dall‟organizzazione o gruppo che esegue la transazione. Questo elemento è principalmente utilizzato per specificare i tipi di pagamento accettati da una Business Entity. Esempi: Visa, Mastercard, Diners, Cash. PriceSpecification La superclasse di tutte le specifiche di pagamento. La superclasse di tutte le classi che descrivono tipi di prodotti o servizi, ad esempio TV o aspirapolvere. Un‟istanza di questa classe può essere sia un prodotto o un servizio attuale oppure un'istanza per appresentare le istanze sconosciute di materie prime prodotte in serie. Da quando eClassOWL e altre ontologie di prodotti e servizi ProductOrService sono usate per descrivere sia le istanze sia la marca e modello di prodotti e servizi, questo concetto di alto-livello è l‟unione di (1) istanze di prodotti o servizi attuali, (2) modelli di prodotti o servizi, e (3) "segnaposto" per alcune istanze di prodotti e servizi. Quest‟ultima classe contiene le istanze "fittizie" che rappresentano le istanze di prodotti o servizi anonimi (ossia che esistono ma che non sono attualmente esposti sul web). Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 43 di 104 Classi di GoodRelations Descrizione E‟ un'entità che rappresenta lo stato di alcune proprietà qualitative di un prodotto o servizio. I valori qualitativi sono sia valori letterali che enumerativi. Un‟istanza di questa classe QualitativeValue rappresenta un valore qualitativo per una proprietà di un oggetto. Esempi: il colore "green", il cavo di alimentazione di tipo "US". Nota: Attualmente, né gli insiemi di valori e né le relazioni ordinali tra valori sono supportate. E‟ un intervallo numerico che rappresenta il range di alcune proprietà quantitative di un prodotto o servizio in termine di limite inferiore e superiore. Viene interpretato in combinazione con la rispettiva unità di misura. La maggior parte dei valori quantitativi sono intervalli anche se essi in pratica sono QuantitativeValue spesso trattati come singoli. Questa classe è un work-around dovuto al fatto che i dati di tipo range non possono essere facilmente rappresentati in OWL. Esempi: un peso tra 10 e 25 kg, una lunghezza tra 10 e 15 mm. Rappresenta i tipi di servizi che vengono forniti gratuitamente dal venditore o dal produttore in casi di difetti (es. Manodopera e componenti, solo componenti), come garanzia WarrantyScope inclusa in un'offerta. I servizi attuali possono essere forniti da una Business Entity che fa un‟offerta, dal produttore del prodotto, o da una terza parte. Esempi: Componenti e manodopera, componenti. Tabella 6 – GoodRelations Ontology – Descrizione delle classi Tra i siti che hanno integrato GoodRelations citiamo Yahoo! Search Monkey(25) e BestBuy(26). GoodRelations Annotator(27) guida l‟utente alla creazione di un‟istanza della ontologia descritta in precedenza, contenente i dati della propria azienda come indicato nelle figure seguenti. 25 http://siteexplorer.search.yahoo.com/submit 26 http://www.bestbuy.com/ 27 http://www.ebusiness-unibw.org/tools/goodrelations-annotator/ Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 44 di 104 Figura 12 – Good Relation Annotator - Step 1 Figura 13 – Good Relation Annotator - Step 1b Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 45 di 104 Figura 14 – Good Relation Annotator - Step 2 Figura 15 – Good Relation Annotator - Step 3 Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 46 di 104 Figura 16 – Good Relation Annotator - Step 4 Figura 17 – Good Relation Annotator - Step 5 Figura 18 – Good Relation Annotator - Step 6 Dopo aver compilato i dati è possibile scaricare l'istanza consistente con l‟ontologia GoodRelations relativa alla propria azienda in formato RDF. Successivamente è necessario pubblicarla sul Web, caricando il file RDF sul proprio portale e aggiungendo gli opportuni riferimenti nella propria pagina web principale. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 47 di 104 A questo punto il portale è semanticamente pronto, manca solo la notifica del proprio link ai principali motori di ricerca semantici: Sindice(28), Yahoo! Search Monkey(29), URIBurner(30). 2.3.3.7 Le ontologie del progetto SUPER Scheda Ontologie progetto SUPER URL progetto: http://www.ip-super.org/ Ontology URI: http://www.ip-super.org/content/view/129/136/ Autori: Super Consortium Linguaggio: WSMO Versione: 2009 Num. Classi: N.D. Num. Object N.D. Property: Num. Individui: N.D. Espressività in DL: N.D. Num. Data N.D. Property: SUPER (Semantics Utilised for Process management within and between EnteRprises) è un progetto finanziato dal “Sesto programma quadro di ricerca dell’Unione europea” il cui scopo è portare il BPM a livello semantico. Il Semantic Web, in particolare, la tecnologia dei Semantic Web Services (SWS) offre la promessa di integrare le applicazioni semantiche. Combinando SWS e BPM, SUPER vuol creare delle ontologie orizzontali che descrivano i processi di business ed ontologie verticali orientate che supportino le annotazioni specifiche del dominio. SBPM (Semantic Business Process Management) è un nuovo approccio alla gestione dei processi aziendali. In SUPER sono state utilizzate un insieme di ontologie per rappresentare gli aspetti principali del SBPM. Le ontologie coinvolte sono illustrate in Figura 19. 28 http://sindice.com/main/submit 29 http://siteexplorer.search.yahoo.com/submit 30 http://linkeddata.uriburner.com Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 48 di 104 Figura 19 – Process Modeling Ontology in SUPER Il progetto è tuttora in fase di realizzazione e ha visto come caso d‟uso l‟applicazione al mondo della fatturazione nel settore delle telecomunicazioni coinvolgendo alcune delle principali compagnie telefoniche (31). 2.3.3.8 Business Management Ontology Scheda BMO URL progetto: http://www.bpiresearch.com/Resources/RE_OSSOnt/re_ossont .htm Ontology URI: http://www.bpiresearch.com/BMO/2004/11/01//BMO Autori: Jenz & Partner Linguaggio: OWL Full Versione: 1.0 del 2004 Num. Classi: 518 Num. Object Property: 481 Num. Individui: 180 Num. Data Property: 557 Espressività in DL: ALCIN (D) 31 finale http://www.ip-super.org/res/Deliverables/M6/D2.1.pdf Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 49 di 104 BMO (Business Management Ontology) [42] è un‟ontologia open source che vuole coprire tutti gli aspetti del business management, allineandolo con l‟IT e arricchendolo di semantica. Sviluppata da “Jenz & Partner”(32), essa si ispira a standard pubblici come BPMN, ebXML e UBL. BMO porta con sé varie entità: disegno del processo di business, gestione dei progetti, gestione dei requisiti, e gestione delle prestazioni di business. Inoltre forma le basi per una base di conoscenza della gestione del business che sia integrata e neutrale rispetto al venditore, e da cui vari artefatti possono essere generati. Mentre gli analisti del business saranno gli utenti primari della BMO, gli esperti di IT lo useranno per stabilire relazioni tra definizioni correlate al software, come gli oggetti del business e le descrizioni dei Web Service. Molte grandi organizzazioni utilizzando più di un BPMS. Appurato che i processi di business si svolgono in ambienti eterogenei, il bisogno di una correlazione diventa evidente. BMO cerca proprio di rispondere a questo bisogno. BMO permette all‟analista del business di: definire processi di business privati definire le entità gli oggetti del business definire i servizi che implementano le attività del processo seguire lo standard UMM per il processo di business e per la modellazione delle informazioni La Figura 20 sintetizza l‟architettura di BMO. Figura 20 – L’architettura di BMO 32 http://www.jenzundpartner.de/ Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 50 di 104 Ci sono quindi vari strati di ontologie, che poi vengono integrate tra di loro attraverso gli strati di integrazione. BMO (ver.1) contiene 40 ontologie che verranno descritte brevemente nelle tabelle di seguito, suddivise per area di interesse. Code Lists Nome Ontologia Countries Descrizione Ontologia delle tipologie di nazioni, stati e territori. C‟è anche un riferimento alla codifica ISO 3166. Currencies Ontologia delle valute secondo lo standard ISO 4217. Language Ontologia delle lingue secondo lo standard ISO 639. Importa le seguenti ontologie (necessarie in ogni organizzazione): Code Lists Artifact Definition States - Countries Ontology - Currencies Ontology - Language Ontology Definisce la ArtifactDefinitionState Class (le cui istanze sono descrizioni dei possibili stati: definito, in fase di sviluppo o indefinito). Definisce la DocumentPublicationState Class (le cui Document Publication istanze sono descrizioni dei possibili stati di States pubblicazione di un documento: rilasciato, in test, in revisione). Release Quality States Definisce la ReleaseQualityState Class (le cui istanze sono le possibili release: alfa1, beta1, ecc.). Importa le seguenti ontologie: Code Lists - States - Artifact Definition States Ontology - Document Publication States Ontology - Release Quality States Definsice la TimeIntervalUnit Class (le cui istanze Time Interval Units sono i possibili intervalli: giornalmente, mensilmente, annualmente). Time Duration Units Definsice la DurationUnit Class (le cui istanze sono le possibili unità: giorno, mese, anno, minuto). Importa le le seguenti ontologie: Code Lists - Units - Time Interval Units - Time Duration Units Ontology Tabella 7 - BMO – Code Lists Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 51 di 104 Business Context Nome Ontologia Descrizione Definisce la UniverseOfDiscourse Class (tramite le Business Context classi sostantivo, simbolo, verbo, vocabolario) e la classe comunità (semantica o linguistica). Tabella 8 - BMO – Business Context Business Context Integration Nome Ontologia Descrizione Definisce le seguenti classi: Document (un oggetto che descrive dei requisiti), DocumentFormat (le cui istanze Documents possono essere HTML, MSWORD, PDF), DocumentType (le cui istanze possono essere: immagine, software, suono, testo,ecc.). Forma lo strato base di integrazione. Importa le seguenti ontologie: Business Context Integration - Business Context Ontology - Code Lists Ontology - Code Lists States Ontology - Code Lists Units Ontology - Documents Ontology Tabella 9 - BMO – Business Context Integration Generic Business Domain Ontologies Nome Ontologia Business Rules Descrizione Importa la Business Context Integration Ontology. Definisce la Business Rule Class che rappresenta la conoscenza che un‟azienda ha del suo business. Business Rules Process Importa la Business Rules Ontology e la estende. Basata sulle specifiche ebXML/UBL. Tra le principali classi che definisce individuamo: BusinessContext Class (raggruppa i contesti possibili: di processo, Core Components geopolitico, di classificazione industriale), BusinessInformationEntity Class (un gruppo di dati di business con un‟unica definizione), CoreComponent Class (tassello che permette la costruzione di pacchetti di informazioni di scambio, che rispecchia la definizione Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 52 di 104 Nome Ontologia Descrizione UN/CEFACT CCTS), MetaDataItem Class. Importa le seguenti ontologie: Business Documents - Code Lists States Ontology - Core Components Ontology e definisce la classe BusinessDocument (es. ordine o una fattura). Definisce i concetti di Organization, Organizational Organization Unit, Person. Inoltre è definita la classe DIRECTEDBINARY-RELATION. Roles Definice la Role Class. Un ruolo è una entità funzionale: una persona, un partner o un sistema. E' utilizzata per descrivere i compiti che precedono la definizione di un processo aziendale. Gli analisti possono Tasks catturare tali compiti in un modo informale. Definisce la Task Class e importa le seguenti ontologie: - Organization Ontologyc - Roles Ontology Importa le seguenti ontologie: Durable Information Entity - Code Lists States Ontology - Core Components Ontology Definisce la Durable Information Entity Class: l‟entità informativa di cui ha bisogno un task per eseguire la sua funzione, che può essere rappresentata in un meccanicismo di memorizzazione persistente, e il cui stato deve esistere al di là del tempo d vita del servizio (applicazione) che implementa il task. Resources Definisce la Resource Class (se umana o fisica). Definisce la generica Product Class. Può essere Products Ontology sviluppata ulteriormente nella Industry-Specific Ontology che tipicamente la importa. Importa la Organization Ontology. Requirements Definisce il concetto di requisito, se funzionale o meno, il Ontology suo livello (le cui istanze sono del tipo “deve”, “nondeve”,”potrebbe”, “non-potrebbe”). Partner Privileges Usergroup Definisce la BusinessPartner Class (se è un individuo o se è un‟organizzazione). Definisce la Privilege Class (ossia il diritto di effettuare una determinata azione). Definisce la UserGroup Class, ossia una comunità di persone che hanno caratteristiche comuni. Importa le seguenti ontologie: Privilege Assignments Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 - Partner Ontology - Privileges Ontology Versione:1 Data: 16/07/2010 Pag. 53 di 104 Nome Ontologia Descrizione - Roles Ontology - Usergroup Ontology Definisce inoltre le classi relazioni tra queste entità. Tabella 10 - BMO – Generic Business Domain Ontologies Organization Specific Nome Ontologia Descrizione Questa ontologia integra i concetti generici del business. Importa le seguenti ontologie: OrganizationSpecific Ontology - Business Context Integration Ontology - Business Documents Ontology - Durable Information Entities Ontology - Organization Ontology - Resources Ontology - Roles Ontology In fase di utilizzo a questi concetti possono poi essere aggiunti quelli specifici dell‟organizzazione che deve essere trattata. Tabella 11 - BMO – Organization Specific IT Nome Ontologia Descrizione Definisce la BusinessObject Class. Business Objects Definisce il lato IT (Information Technology) del BPM. Ontology Attualmente questa ontologia definisce solo pochi oggetti di business, giusto per presentare i principi di fondo. IT Integration Importa le altre ontologie orientate all‟IT (la Business Ontology Objects Ontology). Tabella 12 - BMO – IT Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 54 di 104 BPM Core Nome Ontologia Descrizione Tra le altre definisce le seguenti classi: - Service, intesa come un modulo applicativo che esegue un compito. - ServiceGrounding, per differenziare le applicazioni JAVA Services da un WebService. - ServiceParameter, per elencare i parametri in input e in output - WSDLMessage, un oggetto contenente la definizione dell‟URI del messaggio WSDL che identifica il servizio. Tra le altre definisce le seguenti classi: Task Implementations - Action, un‟azione è associata con una implementazione di un servizio - TaskInteraction, definisce l‟interazione tra un utente e un sistema Importa le seguenti ontologie: - Business Documents Ontology - Durable Information Entities Ontology - Resource Ontology - Services Ontology - Task Implementations Ontology - Tasks Ontology L‟analista di business può descrivere i tipi di contesto di Process Task Context Type esecuzione dei processi. Viene definita la classe ProcessTaskContextType Class che fornisce una descrizione semantica di un process task. Un processo è associato a un istanza della Rule Class, a uno o più Business Document, a uno o più Durable Information Entity Class, a uno o più Physical Resource Class. Viene inoltre fatta una distinzione tra processo collaborativo e processo privato. In quest‟ultimo caso si può parlare di processo manuale o automatico (questo implica che ogni processo deve essere associato a un elemento della ServiceImplementation Class) o semi-automatico. Necessaria per la generazione dei modelli UML, definisce la Entity Types EntityType Class (le cui istanze possono ad esempio essere Ontology BusinessDocument, BusinessEntity, BusinessObject, BusinessRule). Business Modeling Ontology Importa la Organization Ontology. Basato su UN/CEFACT UMM, definisce i concetti di BusinessArea, Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 55 di 104 Nome Ontologia Descrizione BusinessDomainView,BusinessGoal,BusinessObjective. Importa la Business Context Integration Ontology. BPM Core Ontology Definisce le classi che individuano i concetti specifici del Business Process richiesti per modellare i flussi di business interni (privati), pubblici o collaborativi. Tabella 13 - BMO – BPM Core BPM Integration Nome Ontologia Descrizione Importa le seguenti ontologie e le mette in relazione: - BPM-Core Ontology - Business Modeling Ontology - Business Rules Process Ontology - Core Components Ontology - Entity Types Ontology BPM Integration - Privilege Assignments Ontology Ontology - Process Task Context Types Ontology - Requirements Ontology - Services Ontology Ontology - Task Implementation Ontology Questo strato fornisce una vista integrata sugli aspetti relativi al business process: viene fatta un‟associazione tra i concetti propri del business process e i concetti generali del dominio di un‟azienda. Tabella 14 - BMO – BPM Integration Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 56 di 104 Business Integration Nome Ontologia Descrizione Questa ontologia rappresenta lo strato di integrazione di business di più alto livello. Essa importa le seguenti ontologie: Business Integration Ontology 1) BPM Integration Ontology 2) IT Integration Ontology 3) Organization-Specific Ontology Inoltre in fase di utilizzo può importare zero o più ontologie specifiche industriali che possono esistere parallelamente. Tabella 15 - BMO – Business Integration BMO Nome Ontologia Descrizione Importa la Business Integration Ontology. Business Management Ontology Rappresenta lo strato dell'ontologia top- (BMO) level. In questa ontologia possono essere create le istanze. Tabella 16 - BMO – Main Ontology Istanziare la BMO Per utilizzare la BMO è sufficiente istanziare il modello, opportunamente arricchito delle ontologie del settore specifico a cui appartiene l‟azienda a cui deve essere applicata la BMO. Queste ontologie specifiche possono integrare ed estendere le Generic Business Domain Ontologies. Ora riepiloghiamo le ontologie che devono essere create e/o istanziate in fase di utilizzo: Nome Ontologia Business Context Integration Descrizione La struttura è identica a quella della Business Context Integration Ontology, in più ci sono le istanze. Le istanze definiscono le informazioni relative alla lingua in uso, all‟universo del discorso, ai termini adottati, alla valuta, ecc. Industry-Specific Ontology Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Eventualmente aggiungere le ontologie industriali specifiche che possono esistere parallelamente a BMO. Tipicamente un‟ontologia specifica può importare altre Versione:1 Data: 16/07/2010 Pag. 57 di 104 Nome Ontologia Descrizione ontologie BMO ed estenderne le classi. Ad esempio può estendere la Product Class in modo da definire le specificità del settore. Business Integration Ontology La struttura è quella della Business Integration Ontology, in più importa eventuali ontologie di settore (IndustrySpecific Ontology). La Business Management Ontology (BMO) struttura è identica a quella della Business Management Ontology (BMO). In più contiene le istanze che dimostrano come può essere utilizzata. Gli analisti del business potrebbero anche partire con una BMO vuota e poi creare le istanze. Tabella 17 - BMO – Le Istanze Ad oggi non ci sono strumenti open-source che permettono di modellare dei processi con BMO. Ma Protégé è dotato di un plug-in, Graph Widget(33), che permette la rappresentazione grafica delle relazioni tra entità. Manca ovviamente un tool per la validazione dei processi. 2.3.3.9 ONTOMODA-ML Scheda Ontomoda-ML URL http://spring.bologna.enea.it/LeapfrogWiki/index.php?title=OntoMOD progetto: A Ontology http://winter.bologna.enea.it/Ontologies/OntoModa/OntoModaML- URI: DMO.owl Autori: Enea (Agenzia nazionale per le nuove tecnologie) Linguaggio: OWL Full Versione: 0.8.0 Num. 282 Classi: Num. finale Num. Object 36 Property: 47 Num. Data Property: 23 Individui: Espressività ALCOIF(D) in DL: 33 http://protege.stanford.edu/doc/tutorial/graph_widget/ Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 58 di 104 OntoMODA-ML [43] è un ontologia di dominio modulare multi-livello orientata alla modellazione dei dati ed allo scambio delle informazioni di ebusiness. Il suo scopo primario è modellare una parte della conoscenza del settore tessile e vestiario attraverso la descrizione semantica di molti aspetti, come i processi industriali, i trattamenti, le descrizioni dei prodotti (es. il tessuto, il filato, le fibre) ed altre informazioni. L‟ontologia è orientata allo scambio dei dati nel senso che è stata realizzata un'architettura che non solo permette la descrizione del dominio, ma permette anche di descrivere ogni concetto del dominio che può eventualmente essere collegato ad una particolare rappresentazione o ad un particolare formato digitale elaborabile dai sistemi automatici come gli ERP. La stessa ontologia statica è modulare e perciò composta da diverse sottoontologie (vedere la Figura 21), ognuna delle quali afferisce a diversi aspetti di modellazione e meta-modellazione (es. lo standard ISO11179, XML Schema Meta Modeling e la reale conoscenza del settore). Figura 21 – L’architettura di OntoModa-ML Segue una breve descrizione delle ontologie: CMO (Concept Model Ontology) è l‟ontologia più generica ed è usata come modello per costruire un‟ontologia che modelli i formati di scambio delle informazioni partendo da concetti astratti. In questa ontologia sono definiti l‟idea di concetto o rappresentazione di un concetto. XS (XML Schema Ontology) è l‟ontologia che modella un modo particolare di rappresentare le informazioni, il linguaggio XML . Essa descrive i concetti della sintassi XML: Type (simple, complex), Elements, Attributes e altre relazioni. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 59 di 104 Domain Ontology (OntoMODA) è il cuore di tutta l‟architettura: essa contiene i concetti specifici del settore privati della loro particolare rappresentazione. Questa ontologia è il punto di congiunzione tra l‟insieme delle informazioni reali e la conoscenza di settore, con l‟insieme dei dati scambiati. Nel caso del settore tessile questa ontologia descrive concetti come Fabric e le sue proprietà oppure il concetto di Meta Model per la modellazione dei dati. ebXML (ebXML Concept Ontology) descrive il metamodello e i concetti ebXML. ebBP (ebBP Concept Ontology) specializza la ebXML Concept Ontology e introduce i concetti e i termini usati nella definizione dei processi di Business in ebXML (es.. Business Collaboration, Business Transaction Activity oppure Business Transaction). Moda-ML Model introduce i concetti di Moda-ML e i termini che li collegano alla ebXML Concept ontology. Ad esempio entrambi i framework, ebXML Concept e Moda-ML, definiscono il concetto di Business Activity: in questo modo i due concetti vengono fortemente interconnessi nel senso che un elemento Moda-ML Business Activity è un ebXML Business Activity. 2.4 Progettazione dell’ontologia SWOP Dopo aver investigato l'architettura di massima dell‟ontologia per la piattaforma SWOP, definendone scopo e obiettivi e dopo aver analizzato alcuni esempi di ontologie per il mondo enterprise, in questa sezione del documento descriveremo le ontologie del dominio enterprise sviluppate per il progetto SWOP. Dominio e scopo dell’ontologia SWOP Si vuole concettualizzare e implementare un‟ontologia nel dominio enterprise da utilizzare nel confronto semantico tra i dati di input/output dei web service e quelli di input/output delle richieste degli utenti (semantica dei dati). Questa ontologia deve contenere i principali termini del business, con particolare riferimento al ciclo acquisto-produzione-vendita. Il suo uso è strettamente legato agli obiettivi della piattaforma SWOP, quindi l‟esigenza principale è quella di presentare una tassonomia di concetti facilmente referenziabili all‟interno dei documenti WSDL che devono essere annotati semanticamente. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 60 di 104 L'ontologia SWOP non contiene individui, intesi come istanze di una classe dell'ontologia, in quanto un individuo, nel caso di studio affrontato, serve per descrivere (annotare) un servizio in modo che possa essere recuperato in maniera efficiente. In questa ottica, non è stato necessario creare, per esempio, un individuo per definire un metodo implementato dal nome getAllProducts, poichè servizi diversi potevano condividere delle operazioni comuni, ognuna implementata con un metodo proprietario (quindi probabilmente con un nome diverso ma rappresentabile con una stessa descrizione semantica). L'informazione che è necessario annotare e che risulta funzionale anche alla fase di Service Discovery, è l'interfaccia funzionale e non funzionale del web service evidenziando proprietà quali una categoria di classificazione, il contesto in cui si colloca il servizio, le caratteristiche delle operazioni che espone lo stesso. Tutto ciò può essere rappresentato da un assioma che descrive il servizio e che deve, pertanto, rispettare i vincoli modellati nell'ontologia. 2.4.1 Costruzione dell’ontologia BusinessObject 2.4.1.1 Enumerazione dei termini e dei concetti Possiamo considerare importanti per l‟ontologia i concetti rappresentati dalle principali tabelle presenti nel database di esempio Adventure Works Cycles, il nostro caso d‟uso. Un elenco completo del dizionario di dati è reperibile al seguente indirizzo Web: http://technet.microsoft.com/it-it/library/ms124438(SQL.90).aspx I termini sono stati distinti principalmente in: Attributi: nozioni atomiche, non ulteriormente scomponibili; (macro) Concetti: nozioni un po‟ più complesse che possono essere espresse come composizione di attributi semplici. La maggior parte dei concetti è stata desunta dai nomi delle tabelle, mentre gli attributi coincidono con i campi principali di ciascuna tabella. Tutti questi elementi sono stati espressi come classi dell‟ontologia conservando però la distinzione tra macro-concetti e attributi. Inizialmente si era pensato di trasformare gli attributi in data property legate ai concetti, ma poi è emersa l‟esigenza di presentare principalmente una tassonomia di concetti e quindi tutti i termini sono diventati classi. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 61 di 104 2.4.1.2 Organizzazione dei concetti in una gerarchia Namespace E‟ stato definito per l‟ontologia il seguente namespace: http://www.di.uniba.it/~swap/ontologies/BusObj/BusinessObject.owl Seguono alcune delle linee guida adottate nello sviluppo dell‟ontologia. Composizione al posto dell’ereditarietà Come vedremo nell‟ontologia è stata definita una proprietà di composizione abbastanza generica hasSimpleAttribute, che rappresenta la possibilità che un Concept possa avere uno più attributi semplici. Non tutte le relazioni di appartenenza specifiche sono state definite, perché non necessarie per gli scopi di questa ontologia (ad esempio un CustomerAddress potrebbe avere un CustomerAddressStreet e un CustomerAddressCity, ecc., ma questi legami attualmente nell‟ontologia, non sono dichiarati); sono state definite solo le relazioni verso gli attributi di maggiore rilevanza (ad esempio gli ID e pochi altri elementi). In molti casi è stata utilizzata la composizione di oggetti piuttosto che l‟ereditarietà (i.e. sotto-concetti). E‟ noto che per alcuni elementi possano esistere dei sotto-concetti, legati a proprietà qualitative che specializzano il concetto padre. Ad esempio se consideriamo l‟oggetto SalesOrder (ordine di acquisto), possiamo pensare ai vari stati in cui questo può trovarsi (in lavorazione, approvato, rifiutato, spedito, cancellato). In questa versione dell‟ontologia non si è ritenuto necessario definire altrettanti sotto-concetti, uno per ciascuno stato possibile, poiché tali concetti non sono referenziati negli input/output dei web service definiti nel caso d‟uso per SWOP. Sottolineiamo che alcuni di questi sotto-concetti possano comunque essere espressi con delle restrizioni sulle classi già esistenti. Ad esempio per definire un ordine di vendita approvato (il valore 1 è la codifica per lo stato approvato definito nelle specifiche del dizionario dati di Adventure Works) possiamo ricorrere alla seguente definizione OWL: SalesOrder and hasSimpleAttribute exactly 1 (SalesOrderStatus and hasSalesOrderStatusValue value 1) Sviluppi futuri dell‟ontologia potrebbero richiedere la creazione di questi sottoconcetti. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 62 di 104 Classi Ridondanti In alcuni casi concetti con la stessa semantica sono stati introdotti molte volte. Ad esempio troviamo CustomerAddress, VendorAddress oppure CustomerName, VendorName. Questa scelta è legata al fatto che dovendo annotare semanticamente documenti WSDL, si è reso necessario disporre di concetti che avessero un significato ben preciso piuttosto che di concetti più generali legati tra di loro quali potevano essere Customer e Address. 2.4.1.3 Definizione di proprietà e restrizioni Proprietà obbligatorie Per ogni concetto individuato analizzando il dizionario di Adventure Work Cycles, sarebbe stato possibile definire tutte le sue proprietà obbligatorie, individuando ad esempio i campi “Not null” nel database, ma non si è ritenuto di inserire tali informazioni nell‟ontologia (ad esclusione dell‟identificativo univoco che ogni elemento possiede). Si è cercato inoltre di stabilire dei legami (object property) tra i macroconcetti sfruttando l‟analisi delle foreign key di ciascuna tabella (ad esempio un SalesOrder si riferisce a un cliente, a un prodotto; la proprietà inversa invece non è stata espressa). Diversamente sono state trattate le cosidette tabelle di relazione presenti nel database. Ad esempio, consideriamo la relazione tra un prodotto e le sue foto: un prodotto può avere più fotografie (per semplicità non consideriamo la relazione inversa). Questa relazione in un database diventa una tabella, mentre ontologicamente viene rappresentata con una object-property che lega due concetti (ricordiamo che la nostra ontologia non contiene individui ma assiomi per definire i servizi). Il confronto è mostrato nella Figura 22. Figura 22 – Relazioni tra concetti vs/ Relazioni tra tabelle Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 63 di 104 Ontologicamente questa relazione viene espressa con una restrizione sul concetto Product: hasProductPhoto some ProductPhoto IDs nella modellazione dell’ontologia Gli ID sono elementi importanti di una qualsiasi rappresentazione informatica che voglia identificare univocamente i suoi oggetti, soprattutto nelle soluzioni per l‟e-business. Gli attributi di tipo ID sono referenziati come output in alcuni Web Service del nostro caso d‟uso, pertanto in questa prima versione della nostra ontologia si è ritenuto importante esprimere il vincolo per cui ogni concetto distinto ha esattamente 1 IDentificativo. Ad esempio per la classe Customer troviamo la seguente restrizione OWL: hasID exactly 1 CustomerID 2.4.2 La classe top-level Business Obejct Le premesse appena fatte ci portano alla struttura top-level dell'ontologia BusinessObject relativa alla modellazione dei dati di input/output dei processi, illustrata nella Figura 23. Figura 23 – Business Object (top-level) In questa ontologia sono state definite le seguenti object property: hasSimpleAttribute Domain: Concept Range: Attribute Esprime la possibilità che un Concept possa avere uno più attributi semplici. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 64 di 104 hasID Domain: Concept Range: Identifier Esprime la possibilità che un Concept possa avere un identificativo. hasConcept Range: Concept Questa super-property raggrupperà tutte le object-property che esprimeranno i legami tra i vari Concept della gerarchia. Inoltre sono state definite le seguenti data property: hasSimpleAttributeValue Domain: SimpleAttribute Identifica l’insieme dei possibili valori che può assumere un SimpleAttribute. Non è definito un esatto Range, in quanto per alcuni concetti il valore potrebbe essere un numero, per altri una stringa, o una data. hasIDValue Domain: Identifier Identifica l’insieme dei possibili valori che può assumere un Identifier. Non è definito un esatto Range, in quanto per alcuni concetti l’identificativo potrebbe essere un numero, per altri un codice alfanumerico. Come vedremo questa data property è stata referenziata nella descrizione (assioma) di alcuni Web Service del caso d’uso di SWOP (per ulteriori dettagli si rimanda al deliverable D2.3) in particolare nei metodi in cui c’era da esprimere un filtro su alcuni valori degli identificativi. Nella Tabella 18 è riportata una descrizione delle classi illustrate nella Figura 23. Class BusinessObject Description Questa classe identifica un generico oggetto del dominio di business. Questa classe identifica gli attributi, ossia le entità atomiche. In particolare distinguiamo tra: Attribute SimpleAttribute: è un attributo semplice, come lo può essere un nome, una descrizione o gli attributi qualitativi o quantitativi. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Identifier: è l‟attributo che permette di distinguere Versione:1 Data: 16/07/2010 Pag. 65 di 104 Class Description un oggetto dagli altri appartenenti alla stessa classe. La possibilità che un Concept possa avere un Identifier è espressa dalla relazione hasID. Inoltre le classi Attribute e Concept sono disgiunte tra di loro. Appartengono a questa classe tutti i macro-concetti del dominio, ossia quei concetti che possono essere espressi come composizione di attributi. Concept Restrizioni hasSimpleAttribute Some SimpleAttribute Questa restrizione sta ad indicare che un Concept può avere uno più attributi semplici. Tabella 18 – Business Object (top-level) - Descrizione delle classi. L‟ontologia top-level così definita può essere estesa per contenere i concetti specifici del dominio scelto per questo caso d‟uso (ossia la gestione acquisti/vendite di una azienda) o in generale per qualsiasi altra ontologia specifica (per futuri casi d‟uso) garantendo alla nostra architettura le caratteristiche dell‟estendibilità e del riuso. 2.4.2.1 La classe BusinessObject estesa per il dominio enterprise Tutti i macro-concetti relativi alla gestione vendite/prodotti di un‟impresa derivano dalla classe Concept come illustrato in Figura 24. Figura 24 – Business Object (estesa per il dominio Enterprise) Nella Tabella 19 viene riportata una descrizione per le sotto-classi di Concept illustrate in Figura 24. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 66 di 104 Class Description Enterprise Concept raggruppa tutti i concetti tipici della gestione vendite/prodotti di un‟impresa. Essa estende la EnterpriseConcept generica Business Obejct. I concetti sono raggruppate in 3 macroaree: CLIENTI-VENDITE, PRODOTTI, FORNITORI-ACQUISTI CustomerAndSales E‟ la classe che raggruppa tutti i concetti relativi al Concept processo di vendita ai clienti. Product E‟ la classe che raggruppa tutti i concetti relativi ai Concept prodotti e alla loro produzione. VendorAndPurchaising E‟ la classe che raggruppa tutti i concetti relativi al Concept processo di acquisto dai fornitori. Generic Contept E‟ la classe che raggruppa i concetti più generici. Tabella 19 – Business Object estesa per il mondo Enterprise. Descrizione delle classi. 2.4.2.2 La classe Concept estesa per il dominio Enterprise La classe GenericConcept E‟ la classe che raggruppa i concetti più generici, dalle nozioni di regione ed unità di misura a quelle relative alle risorse umane di un‟azienda come illustrato in Figura 25. Figura 25 – Business Object (Generic Concept) Nella Tabella 20 riportiamo i commenti e le eventuali restrizioni definiti per ciascuna classe illustrata in Figura 25 (i commenti sono in inglese, la lingua scelta per descrivere i concetti ontologici e formulare le interrogazioni nel progetto SWOP). Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 67 di 104 Class Description “Types of addresses. For example, billing, home, or shipping.” AddressType Restrizioni Exactly 1 hasID AddressTypeID “ISO standard codes for countries and regions.” Restrizioni CountryRegion hasCurrency hasID some Currency Exactly 1 CountryRegionCode “Standard ISO currencies.” Currency Restrizioni Exactly 1 hasID CurrencyCode “Currency exchange rates.” Restrizioni CurrencyRate hasFromCurrency Exactly 1 Currency hasToCurrency Exactly 1 Currency hasID Exactly 1 CurrencyRateID “Employee information such as salary, department, and title.” Restrizioni: Employee hasEmployeeAddress Some EmployeeAddress hasID Exactly 1 EmployeeID hasEnterpriseDepartment Max 1 hasManager Max 1 EnterpriseDepartment Employee “Street address information for employees.” Restrizioni EmployeeAddress hasAddressType Exactly 1 AddressType hasStateProvince Exactly 1 StateProvince Exactly 1 hasID EmployeeAddressID “Departments of Enterprise”. EnterpriseDepartment Restrizioni Exactly 1 hasID EnterpriseDepartmentID “Shipping methods.” ShipMethod Restrizioni Exactly 1 hasID ShipMethodID “States and provinces”. Restrizioni hasCountryRegion StateProvince hasSalesTerritory hasID Exactly 1 CountryRegion Exactly 1 SalesTerritory Exactly 1 StateProvinceID “Unit of measure”. UnitMeasure Restrizioni Exactly 1 hasID UnitMeasureCode Tabella 20 – Business Object (Generic Concept). Descrizione delle sotto classi. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 68 di 104 La classe CustomerAndSalesConcept Come sotto classi di CustomerAndSalesConcept ritroviamo i concetti relativi al processo di vendita ai clienti come illustrato in Figura 26. Figura 26 – Business Object (Cusrtomer and Sales Concept) Nella Tabella 21 riportiamo i commenti e le eventuali restrizioni definiti per ciascuna classe illustrata in Figura 26 (i commenti sono in inglese, la lingua scelta per descrivere i concetti ontologici e formulare le interrogazioni nel progetto SWOP). Class Description “Current Customer individual information”. Restrizioni Customer hasID exactly 1 CustomerID hasSimpleAttribute exactly 1 CustomerType hasCustomerAddress Some CustomerAddress hasCustomerCreditCard Some CustomerCreditCard hasSalesTerritory Max 1 SalesTerritory “Street address information for customers”. Restrizioni CustomerAddress exactly 1 hasID CustomerAddressID hasAddressType exactly 1 AddressType hasStateProvince exactly 1 StateProvince “Customer credit card information.” CustomerCreditCard Restrizioni exactly 1 hasID CustomerCreditCartID “Stores of our Company (customer and resellers).” CustomerStore Restrizioni exactly 1 hasID Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 CustomerStoreID Pag. 69 di 104 Class Description hasSaleRepresentativePerson Max 1 SalesRepresentativePerson isOwnedBy exactly 1 Customer “General sales order information (header)” Restrizioni SalesOrder hasID exactly 1 hasBillToCustomerAddress exactly 1 CustomerAddress hasShipToCustomerAddress exactly 1 CustomerAddress hasCurrencyRate exactly 1 CurrencyRate hasCustomerCreditCard Max 1 CustomerCreditCard hasCustomer exactly 1 Customer hasSalesOrderDetail some SalesOrderDetail exactly 1 SalesOrderStatus hasSalesReason some SalesReason hasSaleRepresentativePerson Max 1 SalesRepresentativePerson hasSalesTerritory Max 1 SalesTerritory hasShipMethod exactly 1 ShipMethod hasSimpleAttribute SalesOrderID “Product details associated with a specific sales order.” Restrizioni SalesOrderDetail hasProduct exactly 1 Product hasID exactly 1 SalesOrderDetailID exactly 1 SalesSpecialOffer hasSalesSpecialOffer “Reasons why a customer may purchase a particular product.” SalesReason Restrizioni exactly 1 hasID SalesReasonID “Contains current sales information for the sales representative persons.” Restrizioni SalesRepresentative Person exactly 1 SalesRepresentativePersonID hasSalesTerritory exactly 1 SalesTerritory isAnEmployee exactly 1 Employee hasID “Contains shopping cart items until the order is submitted or cancelled.” SalesShopping CartItem Restrizioni hasID exactly 1 hasProduct exactly 1 SalesShoppingCartItemID Product “Special Offer (discounts)” SalesSpecialOffer Restrizioni exactly 1 SalesSpecialOfferID hasID exactly 1 SalesTaxRateID hasStateProvince some StateProvince hasID “Sales Tax rate.” Restrizioni SalesTaxRate SalesTerritory “Sales territory.” Restrizioni Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 70 di 104 Class Description hasID exactly 1 hasCountryRegion some SalesTerritoryID CountryRegion Tabella 21 – Business Object (Customer and Sales Concept). Descrizione delle classi. La classe ProductConcept Come sotto classi di ProductConcept ritroviamo tutti i concetti relativi ai prodotti ed alla loro produzione come illustrato in Figura 27. Figura 27 – Business Object (Product Concept) Nella Tabella 22 riportiamo i commenti e le eventuali restrizioni definiti per ciascuna classe illustrata in Figura 27 (i commenti sono in inglese, la lingua scelta per descrivere i concetti ontologici e formulare le interrogazioni nel progetto SWOP). Class Description “Products sold or used in the manfacturing of sold products.” Restrizioni Exactly 1 ProductID hasProductDocument Some ProductDocument hasProductModel Exactly 1 ProductModel hasProductPhoto Some ProductPhoto hasProductSubCategory Exactly 1 ProductSubCategory hasID Product Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 71 di 104 Class Description hasSizeUnitMeasure Exactly 1 hasWeighrUnitMeasure Exactly 1 hasProductCostHistory some ProductCostHistory Some ProductListPriceHistory hasProductListPriceHistory UnitMeasure UnitMeasure “Cross-reference class mapping vendors with the products they supply.” Restrizioni exactly 1 Vendor hasUnitMeasure exactly 1 UnitMeasure hasSimpleAttribute exactly hasVendor ProductSupplied ByVendor ProductSuppliedByVendor MaxOrderQty “Bill Of Materials are items required to make products and product subassemblies. It identifies the heirarchical relationship between a parent product and its components.” Restrizioni ProductBillOfMaterials Exactly 1 ProducBillOfMaterialsID hasProductAssembly Exactly 1 Product hasComponent Exactly 1 hasUnitMeasure Exactly 1 hasID Product UnitMeasure “High-level product categorization.” ProductCategory Restrizioni Exactly 1 hasID ProductCategoryID “Changes in the cost of a product over time.” Restrizioni ProductCostHistory Exactly 1 ProductCostHistoryStartDate hasSimpleAttribute Exactly 1 ProductCostHistoryEndtDate hasSimpleAttribute Exactly 1 ProductCostHistoryStandardCost hasSimpleAttribute “Product maintenance documents.” ProductDocument Restrizioni Exactly 1 ProductDocumentID hasProduct Exactly 1 Product hasProductLocation Exactly 1 ProductLocation hasSimpleAttribute Exactly 1 ProductInventoryBin hasSimpleAttribute Exactly 1 ProductInventoryQuantity hasSimpleAttribute Exactly 1 ProductInventoryShelf hasID “Product inventory information.” Restrizioni ProductInventory “Changes in the list price of a product over time.” Restrizioni ProductListPriceHistory ProductLocation hasSimpleAttribute Exactly 1 hasSimpleAttribute Exactly 1 ProductListPriceHistoryEndDate hasSimpleAttribute Exactly 1 ProductListPriceHistoryPrice ProductListPriceHistoryStartDate “Product manufacturing locations” Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 72 di 104 Class Description Restrizioni hasID Exactly 1 ProductLocationID Exactly 1 ProductModelID Exactly 1 ProductPhotoID “Product model classification” ProductModel Restrizioni hasID “Product photo” ProductPhoto Restrizioni hasID “Customer reviews of products they have purchased.” Restrizioni ProductReview Exactly 1 ProductReviewID Exactly 1 Product hasID Exactly 1 ProductSubCategoryID hasProductCategory Exactly 1 ProductCategory hasID hasProduct “Product subcategories.” Restrizioni ProductSubCategory “Manufacturing work orders.” Restrizioni Exactly 1 ProductWorkOrderID hasProduct Exactly 1 Product hasSimpleAttribute Exactly 1 ProductWorkOrderQty hasProductWorkOrderRouting Some ProductWorkOrderRouting hasID WorkOrder “Work order routing details. This includes the sequence of work centers the product travels through in the manufacturing or assembly process.” Restrizioni WorkOrderRouting hasSimpleAttribute Exactly 1 ProductWorkOrderRouting OperationSequence hasProduct Exactly 1 Product hasProductLocation Exactly 1 ProductLocation Tabella 22 – Business Object (Product Concept) - Descrizione delle sotto classi La classe PurchasingAndVendorConcept E‟ la classe che raggruppa tutti i concetti relativi al processo di acquisto delle materie prime dai fornitori (vendor), come illustrato in Figura 28. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 73 di 104 Figura 28 – Business Object (Vendor and Purchaising Concept) Nella Tabella 23 riportiamo i commenti e le eventuali restrizioni definiti per ciascuna classe illustrata in Figura 28 (i commenti sono in inglese, la lingua scelta per descrivere i concetti ontologici e formulare le interrogazioni nel progetto SWOP). Class Description “General purchase order information (header).” Restrizioni PurchaseOrder hasID exactly 1 PurchaseOrderID hasPurchaseOrderDetail some PurchaseOrderDetail hasShipMethod exactly 1 ShipMethod hasVendor exactly 1 Vendor hasProductsSupplied some ProductSuppliedByVendor ByVendor exactly 1 hasEmployee Employee “Products details associated with a specific purchase order.” PurchaseOrderDetail Restrizioni hasID exactly 1 PurchaseOrderDetailID hasProduct exactly 1 Product “Details about vendors, such as the vendor name and account number.” Vendor Restrizioni hasID VendorAddress exactly 1 VendorID some VendorAddress “Street address information for vendors.” Restrizioni VendorAddress hasID Exactly 1 hasAddressType Exactly 1 AddressType hasStateProvince Exactly 1 StateProvince VendorAddressID Tabella 23 – Business Object (VendorAndPurchaising Concept)-Descrizione delle classi 2.4.2.3 La classe Attribute estesa per il domino enterprise La classe IDentifier Nella Figura 29 sono riportate tutte le sotto classi di tipo Identifier nell‟ontologia Business Object estesa per il dominio enterprise. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 74 di 104 Figura 29 – Business Object – (Identifier) A ciascuna sotto-classe della classe Concept, dotata di un Identifier, verrà applicata una restrizione che esprima questo vincolo. Ad esempio nella definizione della classe Customer troviamo la seguente restrizione: hasID exactly 1 CustomerID La classe SimpleAttribute In Figura 30 sono riportate le principali categorie in cui sono stati raggruppati gli attribti semplici dell‟ontologia Business Object estesa per il domonio enterprise: Figura 30 – Business Object – (SimpleAttribute) In Figura 31 sono riportate le sotto classi di tipo CustomerAttribute. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 75 di 104 Figura 31 - Business Object – (CustomerAttribute) In Figura 32 sono riportate le sotto classi di tipo ProductAttribute. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 76 di 104 Figura 32 - Business Object – (ProductAttribute) In Figura 33 sono riportate le sotto classi di tipo GenericConceptAttribute. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 77 di 104 Figura 33 - Business Object – (GenericConceptAttribute) In Figura 34 sono riportate le sotto classi di tipo PurchaseOrderAttribute. Figura 34 - Business Object – (PurchaseOrderAttribute) In Figura 35 sono riportate le sotto classi di tipo SalesAttribute. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 78 di 104 Figura 35 - Business Object – (SalesAttribute) In Figura 36 sono riportate le sotto classi di tipo VendorAttribute. Figura 36 - Business Object – (VendorAttribute) 2.4.3 Le Object Property della Business Object Ontology In Figura 37 e Figura 38 sono riportate tutte le object property definite nell‟ontologia Business Object. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 79 di 104 Figura 37 - Business Object – (Object Property 1/2) Figura 38 - Business Object – (Object Property 2/2) Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 80 di 104 La seguente object-property è referenziata nella descrizione (assioma) di alcuni Web Service per il caso d‟uso di SWOP; hasProductSubCategory Domain: Product Range: ProductSubCategory hasConcept SuperProperty: Indica che un prodotto può avere una sotto-categoria. 2.4.4 Le Data Property della Business Object Ontology In Figura 39 sono riportate tutte le data property definite nell‟ontologia Business Object per il dominio enterprise. Figura 39 - Business Object – (Data Property) Segue una descrizione delle principali data-property per il dominio Enterprise. hasCustormerTypeValue Domain: CustomerType Range: {"I", "S"} SuperProperty: hasSimpleAttributeValue Indica i possibili valori che può assumere la tipologia di un cliente. Questa data property è stata referenziata nella descrizione (assioma) dei Web Service per il caso d’uso di SWOP. hasSalesOrdersStatusValue Domain: Range: SalesOrderStatus {"1"^^integer, "2"^^integer, "3"^^integer, "4"^^integer, "5"^^integer, "6"^^integer} Indica i possibili valori che può assumere lo stato di un ordine. Attualmente il suo uso è limitato a verificare le capacità espressive dell’ontologia. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 81 di 104 2.4.5 Le ontologie per modellare i servizi 2.4.5.1 Categories Ontology Dominio e Scopo dell’ontologia Si vuole concettualizzare ed implementare un‟ontologia che sia una tassonomia delle principali categorie commerciali di prodotti e servizi. L‟uso di quest‟ontologia è strettamente legato al modulo Service Annotation della piattaforma SWOP, quindi l‟esigenza principale è quella di presentare una tassonomia di categorie di alto livello facilmente referenziabili all‟interno dei documenti WSDL che devono essere annotati semanticamente. Riuso di un’ontologia di classificazione esistente Per questa ontologia si è scelto di utilizzare la classificazione UNSPSC. Come punto di partenza è stata scelta l‟implementazione realizzata da Yalin Yarimagan. Questa versione pur non riportando tutti i livelli della classificazione UNSPSC, consta di circa 2600 classi. Considerando il dominio di interesse si è provveduto a ridurre il numero delle categorie lasciando quelle classi (e relative sotto-classi) che potevano risultare utili per descrivere un servizio della piattaforma SWOP. All‟ontologia sono poi state applicate delle modifiche affinché per ciascuna classe fossero valide le seguenti caratteristiche: ridenominazione della classe con il solo nome della categoria (ES. “Coffee_and_tea”); valorizzazione del campo rdfs:label in modo che contenga sia il codice UNSPSC che il nome della categoria (Es. “_502017__Coffee_and_tea”); valorizzazione del campo rdfs:comment in modo che riporti solo il nome della categoria senza caratteri di sottolineatura (Es. “Coffee and tea”). Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 82 di 104 Sviluppo di un applicazione per modificare i commenti e label di un’ontologia Considerato l‟elevato numero delle classi dell‟ontologia delle categorie commerciali UNSPSC, al fine di attuare in maniera consistente le suddette modifiche è stata realizzata un‟applicazione Java ontology-based, che utilizza un framework open source, Jena [44] sviluppato dal Semantic Web Research Group di HP Labs. Jena permette di gestire le ontologie con un modello ad oggetti indipendente dal linguaggio ontologico utilizzato, la cui classe principale è OntModel che espone metodi per la lettura e per la serializzazione delle ontologie. Inoltre tramite opportuni iteratori è possibile navigare tra i vari elementi dell‟ontologia (classi, proprietà, individui e così via). La piattaforma di sviluppo di riferimento è Eclipse. Per i nostri scopi è stata creata una semplice classe denominata OWLFile che, incapsulando le funzionalità della libreria Jena, implementa dei metodi pubblici per accedere ad un‟ontologia (readFromFile), cambiare i commenti delle classi (changeAllComments), cambiare le label delle classi (changeAllLabels), cambiare gli URI delle classi (changeAllURI) ed infine per salvare le modifiche effettuate (write e close). Namespace Definiamo per l‟ontologia il seguente namespace: http://www.di.uniba.it/~swap/ontologies/Cat/unspsc.owl Organizzazione dei concetti in una gerarchia La tassonomia di prodotti risultante è stata integrata, sotto il concetto toplevel CommercialCategory come illustrato in Figura 40. Nessuna proprietà è stata definita in questa ontologia. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 83 di 104 Figura 40 – Commercial Categories Ontology 2.4.5.2 Business Process Ontology Dominio e Scopo dell’ontologia Si vuole concettualizzare ed implementare un‟ontologia del dominio funzionale nella quale ogni concetto/classe rappresenti una funzionalità del dominio scelto, in modo che ogni funzionalità dei Web Service sia messa in relazione con uno o più concetti dell‟ontologia funzionale (semantica funzionale). Lo sviluppo di questa ontologia è strettamente legato al modulo Service Annotation della piattaforma SWOP, quindi l‟esigenza principale è quella di presentare una tassonomia di funzioni utili ad annotare semanticamente le operazioni offerte da ciascun servizio. Inoltre è necessaria una tassonomia di task generici che sia associabile a ciascuna funzione di business in modo che il modulo Service Discovery della piattaforma SWOP possa ricercare i web service in base ai task compiuti da questi ultimi. Enumerazione di termini e concetti Le funzioni da individuare devono sempre da riferirsi al ciclo acquistoproduzione-vendita di un‟azienda. Per semplicità ci limiteremo ad esaminare le funzioni associabili ai web service definiti per il nostro caso d‟uso L‟analisi delle descrizioni dei Web Service ci porta ad individuare le seguenti associazioni (Tabella 24): Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 84 di 104 Service Sales Service Method GetIndividualCustomers Business Process SearchCustomerInformation Sales GetIndividualCustomerAdressData SearchCustomerInformation Sales GetStoreCustomers SearchCustomerStores Sales GetStoreContactsByStore SearchCustomerStores Sales GetSalesByStore SearchCustomerSales Sales GetStoreByLocation SearchCustomerStores Product GetProductDescriptionsByFilter SearchProductDescription Product GetProductDescriptionsByProductModel SearchProductDescription Purchasing GetVendorsByLocation SearchVendorInformation Purchasing GetProductsSuppliedByVendors SearchVendorProducts Purchasing GetVendorContactsByVendor SearchVendorInformation Purchasing GetPurchasesByVendor SearchVendorPurchases Manufacturing GetMultiLevelBillOfMaterialsListForProduct SearchProductBillOfMaterials Manufacturing GetWorkOrdersByInventory SearchProductWorkOrders Manufacturing GetWorkOrdersByProduct SearchProductWorkOrders Tabella 24 – SWOP - Associazione tra i metodi dei web service e i business process Inoltre, sono stati individuati i seguenti task generici: insert, modify, search e delete. I processi legati ai Web Service del caso d‟uso effettuano esclusivamente interrogazioni sul database (quindi task di tipo search). Organizzazione della gerarchia di concetti e proprietà Namespace Definiamo per l‟ontologia il seguente namespace: http://www.di.uniba.it/~swap/ontologies/BusPro/BusinessProcess.owl Le classi top-level L‟ontologia BusinessProcess contiene due classi top-level (Figura 41): Figura 41 – Business Process (top-level) Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 85 di 104 E‟ stata definita la seguente object-property: hasTask Domain: BusinessProcess Range: BusinessTask Esprime la possibilità che un BusinessProcess possa avere uno o più task. Sono state definite le seguenti data-property: hasBusinessProcessName Domain: BusinessProcess Range: Literal E’ il nome di un processo di business. hasBusinessProcessDescription Domain: BusinessProcess Range: Literal E’ la descrizione di un processo di business. Nella Tabella 25 è riportata una descrizione delle classi illustrate in Figura 41. Class BusinessTask Description Questa classe identifica un generico task. Sono poi state definite le seguenti sotto-classi: delete, insert, modify e search. E‟ il nodo che raggruppa tutte le funzioni di business tipiche del dominio applicativo coinvolto nell‟attività di annotazione semantica dei web serivces. Restrizioni: BusinessProcess hasTask Some BusinessTask hasBusinessProcessName Exactly 1 Literal hasBusinessProcessDescription Exactly 1 Literal BusinessTask e BusinessProcess sono disgiunti tra di loro. Tabella 25 – Business Process (top-level) - Descrizione delle classi L‟ontologia top-level così definita può essere estesa per contenere i concetti specifici del dominio scelto per questo caso d‟uso (ossia la gestione acquisti/vendite di un‟azienda) o in generale per qualsiasi altra ontologia specifica (per futuri casi d‟uso) garantendo alla nostra architettura le caratteristiche di estendibilità e riuso. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 86 di 104 La classe top-level Business Process estesa per il dominio Enterprise Per il caso d‟uso Adventure Works è stata estesa la classe BUSINESSPROCESS in modo da considerare i possibili scenari di business: manufacturing, product, purchasing e sales come illustrato in Figura 42. Figura 42 – Business Process (estesa per il dominio enterprise) Per ogni funzione sono state specializzate le proprietà hasBusinessProcessName e hasBusinessProcessDescription. Come vedremo, nell‟ontologia che integrerà i BusinessProcess con i BusinessObject sarà possibile stabilire delle relazioni tra i concetti delle due ontologie. 2.4.5.3 Services Ontology Namespace Definiamo per l‟ontologia il seguente namespace: http://www.di.uniba.it/~swap/ontologies/Srv/services.owl Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 87 di 104 Dominio e Scopo dell’ontologia Per il modulo Discovery Service del progetto SWOP è necessaria un‟ontologia dei servizi (ontology service) che modelli i web service, in funzione del loro ritrovamento. Allo stato attuale non è emerso il livello di dettaglio con cui questa ontologia deve poter descrivere un Web Service, se ad esempio deve solo limitarsi ad esprimere i suoi legami con le ontologie di riferimento (categorie commerciali, operazioni, task, dati di input/output), oppure se deve anche contenere informazioni sul suo grounding (consentire la trasformazione dell‟input e dell‟output di un processo atomico in concetti di rappresentazione). Nell‟ipotesi che debba servire anche una struttura per descrivere le informazioni funzionali e non funzionali di un Web Service, è stata arricchita la classe top-level Service. In realtà, per le classi e le relazioni che verranno descritte in questo paragrafo attualmente non è stato definito alcun ruolo nella fase di discovery. Quindi negli sviluppi futuri alcune classi potrebbero anche essere rimosse in modo da lasciare la sola classe top-level Service con le sue data-property di base (nome e descrizione) nell‟ontologia Services. A questo punto sarebbe possibile aggiungere nuove classi e proprietà a seconda dei nuovi obiettivi e “scope” definiti. E‟ opportuno precisare che le relazioni con le altre ontologie vengono definite nell‟ontologia di integrazione e le estensioni della classe Service in essa presenti restano valide in ogni caso. Riuso di un’ontologia di servizi esistente E‟ stato preso come punto di riferimento, l‟ontologia dei servizi vista per il progetto BMO che modella un‟ontologia di servizi usando OWL-S come linguaggio di riferimento. Le classi dell‟ontologia dei servizi di BMO sono state raggruppate sotto il macro-concetto ServiceConcept, escludendo la classe ServiceModel, che sicuramente non è necessaria, e conservando la classe ServiceGrounding. Le classi presenti nell‟ontologia Services sono indicate in Figura 43. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 88 di 104 Figura 43 – Services Ontlogy Come si evince dai nomi della classi, l‟ontologia permette di strutturare un Web Service, in funzione degli elementi del formalismo WSDL. Definizione delle Object Property Sono state definite le seguenti object-property: hasServiceGrounding Domain: Service Range: ServiceGrounding Ad ogni Service può essere associato un ServiceGrounding. Questa proprietà potrebbe essere rimossa. isAssociatedToAService Domain: ServiceGrounding Range: Service Un ServiceGrounding è associato ad un Service. Questa proprietà potrebbe essere rimossa. hasServiceInputParameter Domain: Service or WSDLMessageMapInput Range: ServiceInputParameter Un service può avere dei parametri di input e questi possono essere referenziati da un WSDLMessageMapInput. Questa proprietà potrebbe essere rimossa. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 89 di 104 hasServiceOutputParameter Domain: WSDLMessageMapOutput or Service Range: ServiceOutputParameter Un service può avere dei parametri di output e questi possono essere referenziati da un WSDLMessageMapInput. Questa proprietà potrebbe essere rimossa. hasWSDLMessageMapInput Domain: ServiceGrounding or WSDLMessagePartInput Range: WSDLMessageMapInput Ci deve essere un’istanza di questa proprietà per ogni message part del WSDL input message. Questa proprietà potrebbe essere rimossa. hasWSDLMessageMapOutput Domain: ServiceGrounding or WSDLMessagePartOutput Range: WSDLMessageMapOutput Ci deve essere un’istanza di questa proprietà per ogni output del servizio. Questa proprietà potrebbe essere rimossa. hasWSDLMessagePartInput Domain: WSDLInputMessage Range: WSDLMessagePartInput Esprime la relazione tra i due oggetti. Questa proprietà potrebbe essere rimossa. hasWSDLMessagePartOutput Domain: WSDLOutputMessage Range: WSDLMessagePartOutput Esprime la relazione tra i due oggetti. Questa proprietà potrebbe essere rimossa. hasWSDLOperation Domain: ServiceGrounding Range: WSDLOperationRef Un ServiceGrounding specifica delle operazioni. Questa proprietà potrebbe essere rimossa. Definizione delle Data Property Sono state definite le seguenti data-property relative alla classe Service: hasServiceName Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 90 di 104 Domain: Service Range: Literal Individua il nome del servizio. Nella fase di discovery (a cui lo sviluppo dell'ontologia è funzionale) si individuerà un modello dei dati che combini informazioni strutturate ad informazioni semantiche. Questo probabilmente comporterà l'eliminazione della proprietà che diventerà il campo di una tabella relazionale. hasServiceDescription Domain: Service Range: Literal Individua una descrizione del servizio. Nella fase di discovery (a cui lo sviluppo dell'ontologia è funzionale) si individuerà un modello dei dati che combini informazioni strutturate ad informazioni semantiche. Questo probabilmente comporterà l'eliminazione della proprietà che diventerà il campo di una tabella relazionale. hasServiceProviderInformation Domain: Service Range: Literal Individua il nome del provider. Questa proprietà potrebbe essere rimossa. Sono state definite le seguenti data-property relative alle altre classi (da rimuovere qualora l‟ontologia non debba essere utilizzata per rappresentare il grounding del web service): hasParameterName Domain: ServiceParameter Range: Literal E’ il nome del parametro. Questa proprietà potrebbe essere rimossa. hasParameterUsageType Domain: ServiceInputParameter, ServiceOutputParameter Range: {"IN", "OUT"} E’ il tipo di parametro se di input o output. Questa proprietà potrebbe essere rimossa. hasOperation Domain: Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 WSDLOperationRef Versione:1 Data: 16/07/2010 Pag. 91 di 104 Range: anyURI E’ un URI di un metodo del web service. Questa proprietà potrebbe essere rimossa. hasPortType Domain: WSDLOperationRef Range: anyURI Rappresenta il port-type di un web service. Questa proprietà potrebbe essere rimossa. hasWSDLDocument Domain: ServiceGrounding Range: anyURI ServiceGrounding:E’ un URI che indica il documento WSDL a cui il grounding si riferisce. Non è un’informazione essenziale ma è solo per documentazione. Questa proprietà potrebbe essere rimossa. hasWSDLInputMessage Domain: ServiceGrounding Range: anyURI E’ un URI per l’elemento WSDL input message. Questa proprietà potrebbe essere rimossa. hasWSDLMessagePart Domain: WSDLMessageMap Range: Literal Questa proprietà potrebbe essere rimossa. hasWSDLOututMessage Domain: ServiceGrounding Range: anyURI E’ un URI per l’elemento WSDL message corrispondente all’output del service. Questa proprietà potrebbe essere rimossa. hasWSDLPort Domain: ServiceGrounding Range: anyURI Un URI per un WSDL Port che fornisce l’operazione a cui il servizio is legato. Questa proprietà potrebbe essere rimossa. hasWSDLVersion Domain: Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 ServiceGrounding Versione:1 Data: 16/07/2010 Pag. 92 di 104 Range: anyURI Un URI indicante la versione di WSDL che viene usata. Questa proprietà potrebbe essere rimossa. Definizione delle Classi Segue una descrizione delle classi illustrate in Figura 43. Classe Descrizione Identifica un web service, che soddisfa uno specifico task o insieme di tasks. Ogni istanza supporta una descrizione ServiceGrounding. Restrizioni Service hasServiceName Exactly 1 Literal hasServiceDescription some Literal Max 1 Literal hasServiceProviderInformation Descrive come accedere al servizio in termini di protocollo, formato dei messaggi, serializzazione, ecc. Inoltre, il grounding deve specificare per ogni tipo semantico di input o output, una maniera ServiceGrounding non ambigua di scambiare dati di quel tipo con il servizio. Questa classe potrebbe essere rimossa. Restrizioni Exactly 1 isAssociatedToAService ServiceParameter Service Sono i parametri del servizio. Questa classe potrebbe essere rimossa. WSDLInputMessage: un oggetto contenente l‟URI della definizione del messaggio WSDL che contiene l‟input di un dato service. WSDLMessage WSDLOutputMessage: un oggetto contenente l‟URI della definizione del messaggio WSDL che contiene l‟output di un dato service. Questa classe potrebbe essere rimossa. WSDL Message Map (Questa classe potrebbe essere rimossa). Restrizioni Some hasWSDLMessagePart WSDLMessageMAPInput: Literal mappa gli input ad una specifica grounding WSDLMessageMap Restrizioni hasServiceInputParameter Some ServiceParameter WSDLMessageMAPOutput: mappa gli output ad una specifica grounding Restrizioni hasServiceOutputParameter Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Some ServiceParameter Pag. 93 di 104 Classe Descrizione WSDLMessagePartInput referenzia Un WSDLMessagePart un o più WSDLMessageMAPInput. Un WSDLMessagePartOutput referenzia uno o più WSDLMessageMAPOutput. Questa classe potrebbe essere rimossa. Questa classe fornisce una specifica univoca di una operazione WSDL. WSDL 1.1, su cui questa versione di grounding è basata, non ha un modo univoco di riferirsi ad un‟operazione con un singolo URI. WSDLOperationRef L‟unicità è data dalla coppia (portType, operation). Questa classe potrebbe essere rimossa. Restrizioni hasOperation Exactly 1 Literal hasPortType Exactly 1 Literal Tabella 26 – SWOP - Services Ontology – Descrizione delle classi 2.4.5.4 Swop Integration Ontology In questo paragrafo descriviamo come integrare tra di loro le ontologie sin qui descritte, in modo da definire le relazioni tra i concetti in esse definiti. Per il modulo Service Discovery è necessaria un‟ontologia dei servizi (ontology services) che modelli i web service, in funzione del loro ritrovamento. Le query possono coinvolgere, tra l‟altro, i seguenti elementi: 1. caratteristiche non funzionali come la categoria del servizio; 2. caratteristiche funzionali come l‟input, l‟output ed il tipo di funzionalità offerte; 3. conoscenza di dominio che definisce, ad esempio, la tipologia dell‟input di un servizio (contesto). Quindi obiettivo di questa ontologia è caratterizzare ulteriormente la classe Service in modo che risponda ai requisiti elencati (stiamo definendo il suo profilo). Namespace Definiamo per l‟ontologia di integrazione il seguente namespace: http://www.di.uniba.it/~swap/ontologies/SwopInt/swop-integration.owl Questa ontologia importa quelle di più basso livello, relative ai seguenti concetti: Business Object; Business Process e Business Task; Commercial Category; Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 94 di 104 Services. In Figura 44 è riportata la sezione “Imported Ontologies” così come appare nell‟environment di Protegé 4. Figura 44 – Swop Integration (Imported Ontologie) Gerarchia delle classi dell’ontologia di integrazione In Figura 45 viene illustrata la gerarchia delle classi dell‟ontologia di integrazione. Riconosciamo le cinque classi top-level presenti nelle ontologie importate. In questa ontologia si è definito che le cinque super-classi siano disgiunte tra di loro. Figura 45 – Swop Integration Ontlogy(top-level) Questa ontologia non contiene la definizione di alcuna nuova classe e nessuna nuova data-property. Definizione delle object-property dell’ontologia di integrazione Proprietà del dominio Service A) E‟ stata definita una proprietà che permette di associare ad un Service una categoria commerciale: hasCommercialCategory Domain: Service Range: CommercialCategory Indica che un Service può avere una o più categorie commerciali. E‟ stata poi definita la seguente restrizione sulla classe Service: hasCommercialCategory exactly 1 CommercialCategory Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 95 di 104 B) E‟ stata definita una proprietà che permette di associare ad un Service delle funzioni. hasBusinessProcess Domain: Service Range: BusinessProcess Indica che un Service può avere una o più funzioni di business di riferimento. E‟ stata poi aggiunta la seguente restrizione sulla classe Service: hasBusinessProcess some BusinessProcess C) E‟ stata definita una proprietà che permette di associare ad un Service un contesto. hasContext Domain: Service Range: Concept or BusinessProcess Indica che un Service può avere un contesto, ossia un ambito che può essere sia un macro-concetto del dominio applicativo sia una funzione. E‟ stata poi definita la seguente restrizione sulla classe Service: hasContext some (Concept or BusinessProcess) Proprietà del dominio ServiceParameter B) Sono state definite delle proprietà che permettono il mapping con i dati di input/output di un ServiceParameter. hasBusinessObject Domain: ServiceParameter Range: BusinessObject Indica che un ServiceParameter può riferirsi ad un concetto del dominio. Questa proprietà potrebbe essere rimossa. Per ora non c‟è alcuna restrizione su questa relazione, in quanto tale proprietà attualmente non viene utilizzata nella modellazione dei Web Service dei caso d‟uso, pertanto rappresenta soltanto un placeholder per sviluppi futuri. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 96 di 104 Proprietà del dominio BusinessProcess Una funzione di business, può essere vista come una black box, che lavora su degli input e fornisce degli output. Sono state definite delle proprietà che permettono di associare alla classe BusinessProcess uno o più concetti in input e in output: hasInput Domain: BusinessProcess Range: BusinessObject Indica che un BusinessProcess può avere uno o più concetti di business in input. hasOutput Domain: BusinessProcess Range: BusinessObject Indica che un BusinessProcess può avere uno o più concetti di business in output. A questo livello dell‟ontologia non possiamo porre ulteriori vincoli sul numero degli input in quanto una funzione potrebbe anche non avere un input. Potremo aggiungere delle restrizioni solo analizzando nel dettaglio le funzioni definite per il dominio applicativo del nostro caso d‟uso (Figura 42). Riepilogando brevemente, possiamo affermare che le seguenti object property fanno sì che l‟ontologia raggiunga gli scopi fissati: 1. hasCommercialCategory 2. hasBusinessProcess 3. hasInput 4. hasOutput 5. hasContext Le restrizioni sulle proprietà nel dominio Enterprise Nella Tabella 27 sono stati individuati i possibili macro-concetti di input/output associabili alle funzioni definite per il caso d‟uso AdventureWorks. SWOP Business Process EndProductWorkOrder SearchProductBillOfMaterial Concetti Concetti in Input in Output ProductWorkOrder, ProductWorkOrderEndDate Product s SearchProductWorkOrders Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Product Versione:1 Data: 16/07/2010 ProductBillOfMaterials ProductWorkOrder Pag. 97 di 104 StartProductWorkOrder Product, ProductWorkOrderStartDate AddProduct Product - SearchProductDescription Product ProductConcept AddNewVendor Vendor - SearchVendorInformation Vendor VendorAddress SearchVendorProducts Vendor Product SearchVendorPurchases Vendor PurchaseOrder AddNewCustomer Customer - SearchCustomerInformation Customer CustomerAddress SearchCustomerStores Customer SalesOrder SearchCustomerSales Customer CustomerStore Tabella 27 – BusinessProcess (associazione input/output) Queste associazioni si concretizzano nelle seguenti restrizioni applicate sulle classi di seguito elencate: - Class EndProductWorkOrder hasInput exactly 1 ProductWorkOrder ProductWorkOrderEndDate and hasInput exactly 1 - Class SearchProductBillOfMaterials hasInput some Product and hasOutput some ProductBillOfMaterials - Class SearchProductWorkOrders hasInput some Product and hasOutput some ProductWorkOrder - Class StartProductWorkOrder hasInput exactly 1 Product ProductWorkOrderStartDate and hasInput exactly 1 - Class AddProduct hasInput some Product - Class SearchProductDescription hasInput some Product and hasOutput some ProductConcept - Class AddNewVendor hasInput some Vendor Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 98 di 104 - Class SearchVendorInformation hasInput some Vendor and hasOutput some VendorAddress - Class SearchVendorProducts hasInput some Vendor and hasOutput some Product - Class SearchVendorPurchases hasInput some Vendor and hasOutput some PurchaseOrder - Class AddNewCustomer hasInput some Customer - Class SearchCustomerInformation hasInput some Customer and hasOutput some CustomerAddress - Class SearchCustomerStores hasInput some Customer and hasOutput some SalesOrder - Class SearchCustomerSales hasInput some Customer and hasOutput some CustomerStore In fase di modellazione di un web service, dovendo esprimere il servizio in funzione di uno o più processi di business, potremmo specializzare ulteriormente queste restrizioni, richiamando concetti più specifici (come ad esempio gli attributi). Tale modellazione sarà oggetto dell'attività A2.3. Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 99 di 104 2.5 Bibliografia [1] T. Berners-Lee. Weaving the Web. Harper, San Francisco, 1999. [2] M.-R. Koivunen and E. Miller, 2001. Semantic Web Main Principles, http://www.w3.org/2001/12/semweb-fin/w3csw [3] Extensible Markup Language (XML) 1.0, W3C Recommendation, 2006. http://www.w3.org/TR/REC-xml/ [4] W3C Recommendation, 10 February 2004. RDF Primer. http://www.w3.org/TR/rdfprimer/ [5] S. Decker, F. van Harmelen, J. Broekstra, M. Erdmann, D. Fensel, I. Horrocks, M. Klein, and S. Melnik. The semantic web - on the respective roles of XML and RDF. IEEE Internet Computing, 2000. [6] Resource Description Framework (RDF): Concepts and Abstract Syntax, W3C Recommendation, 2004. http://www.w3.org/TR/rdf-concepts/ [7] RDF Semantics, W3C Recommendation, 2004.http://www.w3.org/TR/rdf-mt/ [8] RDF Vocabulary Description Language 1.0: RDF Schema, W3C Recommendation, 2004. http://www.w3.org/TR/rdf-schema/ [9] OWL 2, “Web Ontology Language”. W3C (2009). URL: http://www.w3.org/TR/owl2-syntax/ [10] D. Tsarkov, I. Horrocks, “Reasoner Demonstrator, Implementing new reasoner with datatypes support”. University of Manchester, Tech. Rep. (2004). [11] FACT++, URL: http://owl.man.ac.uk/factplusplus/ [12] D. Tsarkov, I. Horrocks, “FaCT++ Description Logic Reasoner: System Description.” In Proc. of the Int. Joint Conf. on Automated Reasoning (IJCAR 2006), volume 4130 of Lecture Notes in Artificial Intelligence, pages 292-297. Springer, 2006. [13] RACER PRO©, Reaoner, http://www.racer-systems.com/ [14] SPARQL Query Language for RDF. W3C Recommendation (2008). URL: http://www.w3.org/TR/rdf-sparql-query/ [15] E. Sirin, B. Parsia, B. Grau, A. Kalyanpur, Y. Katz. Pellet, “A practical OWL-DL Reasoner”. Journal of Web Semantics (2006). [16] A. Gómez-Pérez, M. Fernandez-Lopez, O. Corcho. “Ontological engineering”. Springer, 2003 [17] Natalya F. Noy e Deborah McGuiness (2000). “Ontology Development 101: A Guide to Create Your First Ontology”. URL: http://protege.stanford.edu/publications/ontology_development/ontology101.pdf [18] M. Gruninger, M. Fox. “The Role of Competency Questions in Enterprise Engineering”. (1994). URL: http://www.eil.utoronto.ca/enterprise-modelling/papers/benchIFIP94.pdf [19] Protegé, Ontology Editor, Stanford University (2010). URL: http://protege.stanford.edu/ [20] Manchester Syntax, URL: http://www.co-ode.org/resources/reference/manchester_syntax/ [21] Adventure Works, Uno scenario di business. Microsoft © (2008). URL: http://technet.microsoft.com/it-it/library/ms124825(SQL.100).aspx Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 100 di 104 [22] BPEL, Business Process Execution Language for Web Services. URL: http://www.oasis-open.org/committees/wsbpel [23] Leo Obrst (2003), “Ontologies for Semantically Interoperable Systems”. Proceedings of the 12th International Conference on Information and Knowledge Management [24] D. Frankel. “Industrial Convergence and Semantic Interoperability”. MDA Journal (2007). URL: http://www.bptrends.com/publicationfiles/TEN%20MDA%20Journal%20200707%20Industrial%20Convergence%20v01-00.pdf [25] M. Weske. “Business Process Management: Concepts, Languages, Architectures”. Springer (2007). [26] BPMN, Business Process Modelling Notation. URL: http://www.bpmn.org/ [27] UML, Unified Modeling Language. URL: http://www.uml.org/ [28] UMM, UN/CEFACT's Modeling Methodology. URL: http://www.untmg.org/umm/spec/foundation/1_0/ [29] XPDL, XML Process Definition Language. URL: http://www.wfmc.org/xpdl.html [30] UNSPSC, Categories Classification, URL: http://www.unspsc.org/ [31] UNSPSC OWL, Middle East Technical University. URL: http://www.srdc.metu.edu.tr/ubl/translation/src/Thesis%20Extract.pdf [32] UNSPSC OWL, Heppnetz. URL: http://www.heppnetz.de/projects/unspscowl/ [33] ECLASS OWL, URL: http://www.heppnetz.de/projects/eclassowl/ [34] UBL, language. URL: http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=ubl [35] NEON Project. URL: http://www.neon-project.org [36] DIP Business Data Ontology. URL: http://dip.semanticweb.org/documents/D3.3Business-data-ontology.pdf [37] PROTON Ontology. URL: http://proton.semanticweb.org/ [38] OASIS SET Harmonized Ontology. URL: http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=set [39] GoodRelations Ontology. URL: http://purl.org/goodrelations/ [40] SUPER PROJECT, URL: http://www.ip-super.org/ [41] SUPER PROJECT Ontologies. URL: http://www.ip-super.org/res/Deliverables/M6/D2.1.pdf [42] SINDICE, semantic search. URL: http://sindice.com/main/submit [43] BMO, Business Management Ontology. URL: http://www.bpiresearch.com/Resources/RE_OSSOnt/re_ossont.htm [44] ONTO MODA-ML. URL: http://spring.bologna.enea.it/LeapfrogWiki/index.php?title=OntoMODA [45] JENA Framework. URL: http://jena.sourceforge.net/ Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 101 di 104 3. Appendici 3.1 Dati riepilogativi dell’ontologia SWOP Scheda Ontologia SWOP BUSINESS OBJECT Ontology URI: http://www.di.uniba.it/~swap/ontologies/BusObj/BusinessObject.owl Linguaggio: OWL DL Versione: 1.0 Num. Classi: 317 Num. Object Property: 57 Num. 0 Num. Data Property: 5 Individui: Espressività in ALCHQ(D) DL: Scheda Ontologia SWOP BUSINESS PROCESS Ontology http://www.di.uniba.it/~swap/ontologies/busPro/BusinessProcess.owl URI: Linguaggio: OWL DL Versione: 1.0 Num. Classi: 25 Num. Object Property: 2 Num. 0 Num. Data Property: 3 Individui: Espressività ALCHN(D) in DL: Scheda Ontologia SWOP COMMERCIAL CATEGORIES Ontology URI: http://www.di.uniba.it/~swap/ontologies/cat/unspsc.owl Linguaggio: OWL DL Versione: 1.0 Num. Classi: 702 Num. Object Property: 0 Num. Individui: 0 Num. Data Property: 0 Espressività in DL: AL Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 102 di 104 Scheda Ontologia SWOP SERVICES Ontology URI: http://www.di.uniba.it/~swap/ontologies/srvc/Services.owl Linguaggio: OWL DL Versione: 1.0 Num. Classi: 16 Num. Object Property: 10 Num. Individui: 0 Num. Data Property: 14 Espressività in DL: ALCHIQ(D) Scheda Ontologia SWOP INTEGRATION (escludendo le ontologie che importa) Ontology URI: http://www.di.uniba.it/~swap/ontologies/swopint/swopintegration.owl Linguaggio: OWL DL Versione: 1.0 Num. Classi: 35 Num. Object Property: 8 0 Num. Data Property: 0 Num. Individui: Espressività in ALCHQ DL: Importando le SWOP BUSINESS OBJECT, PROCESS, CATEGORIES e SERVICES Num. Classi: Num. Individui: Espressività in 1059 Num. Object Property: 75 0 Num. Data Property: 22 ALCHIQ(D) DL: Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 103 di 104 FIRMA DIGITALE CERTIFICATA Apporre la Firma digitale certificata del Legale rappresentante del soggetto Beneficiario Beneficiario: Code Architects S.r.l. Progetto: B2SO201 Attività: 2.2 Versione:1 Data: 16/07/2010 Pag. 104 di 104
Documenti analoghi
standard di documentazione cluster - SWOP
UNIONE EUROPEA
FONDO EUROPEO DI SVILUPPO REGIONALE.