Il sistema MOMIS Il progetto MOMIS (Mediator EnvirOnment for Multiple Information Sources) consiste nella realizzazione di un sistema intelligente di integrazione e interrogazione di informazioni da sorgenti di dati strutturati e semistrutturati. In particolare: si è adottato un approccio di integrazione delle sorgenti semantico e virtuale linterrogazione viene effettuata sulla vista integrata. Il query manager provvede automaticamente a generare delle query locali, a inviarle alle sorgenti e a integrare i risultati
La fase di integrazione La fase di integrazione, che avviene in maniera semi-automatica attraverso linterazione con il progettista che può agire con laiuto di tools specifici (Odb-Tools, Wordnet, Artemis,…), porta alla produzione di uno schema globale nel linguaggio ODL I3 In particolare: la fase di costruzione del Common Thesaurus, lontologia comune alle diverse sorgenti, è un processo incrementale durante il quale vengono introdotte: relazioni intensionali intra-schema relazioni intensionali inter-schema relazioni aggiunte dal progettista relazioni intensionali inferite Il fatto di pervenire a uno schema in ODL I3 comporta che il progettista debba conoscere un solo linguaggio e non ogni linguaggio di ogni singola sorgente collegata
Larchitettura di MOMIS
Il wrapper Costituisce linterfaccia tra il mediatore e la sorgente: ad ogni sorgente corrisponde un determinato wrapper e ogni wrapper è progettato esclusivamente per una tipologia di sorgenti. Ogni wrapper ha due compiti: in fase di integrazione deve fornire la descrizione della sorgente da integrare nel linguaggio ODL I3 in fase di query processing traduce la query ricevuta dal mediatore (espressa nel linguaggio comune di interrogazione OQL I3 ) in una interrogazione nel query language specifico della sorgente. Deve inoltre esportare i dati ricevuti in risposta, presentandoli al mediatore attraverso il modello comune di dati utilizzato dal sistema.
Le sorgenti XML Extensible Markup Language (XML1.0) è una W3C Recommendation 10-February Si pensa possa diventare un formato universale di scambio dati nel Web XML ha una visione orientata ai dati Lutente può definire i tag come preferisce (per quello che riguarda il nome e il numero) La struttura del documento è ad albero e può essere dotata di elementi innestati a qualsiasi livello di profondità Il documento può contenere una rappresentazione opzionale della propria grammatica, la DTD
DTD - esempio <!ATTLIST Student StudentId ID #REQUIRED tutor CDATA #REQUIRED> <!ATTLIST Professor Prof_code ID #REQUIRED Office_phone CDATA #IMPLIED> <!ATTLIST Division description CDATA #REQUIRED sector CDATA #REQUIRED> […]
I dati semistrutturati I dati semistrutturati sono quei dati dotati di una struttura irregolare, scarsamente definibile a priori e, anche se conosciuta, soggetta a cambiamenti frequenti e senza scadenze preordinate. Il modello OEM (Object Exchange Model) è uno dei modelli più utilizzati per rappresentare i dati semistrutturati. I dati sono visti come collezioni di oggetti che possono assumere un valore atomico o un valore complesso.
MOMIS - dati semistrutturati Anche il sistema MOMIS si basa su una rappresentazione OEM per rappresentare sorgenti semistrutturate. In particolare si definisce: Oggetto semistrutturato: Un oggetto semistrutturato, indicato con so, è una tripla nella forma dove : id è lidentificatore delloggetto label è una stringa che descrive ciò che loggetto rappresenta value è il valore delloggetto che può essere atomico o complesso Object pattern: Dato un insieme di oggetti set l definito sulla sorgente semistrutturata S. Lobject pattern dellinsieme set l è una coppia nella forma, dove l è letichetta degli oggetti correlati allinsieme set l, ed A= label (so) tale che esiste almento un oggetto so appartenente a set l con so so
Esempio
XML vs. OEM A livello di struttura concetto di ordine A livello di dato mancanza di tipizzazione del dato concetto di attributo concetto di riferimento concetto di link XML-Schema
Esempio Modello OEM-like <!ELEMENT Person (first_name, last_name, , Status)> <!ELEMENT Student (year, Course*, homeaddress, rank)> <!ATTLIST Student StudentId ID #REQUIRED tutor CDATA #REQUIRED> <!ATTLIST Professor Prof_code ID #REQUIRED Office_phone CDATA #IMPLIED> […]
Modello XML-GDM Esempio <!ELEMENT Person (first_name, last_name, , Status)> <!ELEMENT Student (year, Course*, homeaddress, rank)> <!ATTLIST Student StudentId ID #REQUIRED tutor CDATA #REQUIRED> <!ATTLIST Professor Prof_code ID #REQUIRED Office_phone CDATA #IMPLIED> […]
XML - sviluppi futuri Sviluppi futuri Integrazione di dati Misure di complessità XML -Schema
Query languages Analisi dei query language esistenti sulla base: 1) Desiderata per un query language 2) XML Query Requirements: working draft 31 January 2000 del W3C XML-QL LOREL XSL XQL XML-GL WEBL caratteristiche generali modello dati funzionalità del linguaggio
XML-QL WHERE $fn CONSTRUCT $fn
XML-GL
Il traduttore DTD-ODL I3 La traduzione di elementi critici Gestione degli attributi Chiavi primarie, esterne, candidate Tipi di dato Strutture dati Composizione di strutture
Il traduttore DTD-ODL I3 Lalgoritmo di traduzione 1. Parsing della DTD 2. Determinazione delle chiavi 3. Traduzione del documento A) Individuazione della DTD B) Risoluzione delle entità e delle sezioni condizionali C) Risoluzione di contenuti innestati Interazione attraverso uninterfaccia grafica con lutente per la scelta delle chiavi Traduzione seguendo le regole di conversione individuate
Il traduttore DTD-ODL I3 Le regole di traduzione Elementi di tipo semplice
Il traduttore DTD-ODL I3 Le regole di traduzione Elementi di tipo complesso
Il traduttore DTD-ODL I3 Le regole di traduzione Attributi
Il traduttore DTD-ODL I3 Le regole di traduzione Occorrenze
Il traduttore DTD-ODL I3 La procedura di traduzione 1. Lettura di un elemento di vectorElement 2. Controllo dellelemento selezionato 3. Creazione di una interfaccia ODL I3 4. Individuazione delle chiavi 5. Analisi delle specifiche di contenuto 6. Traduzione degli attributi dellinterface 7. Individuazione dellinterface successiva
Il software Il software è stato realizzato utilizzando il linguaggio java. In particolare sono state sviluppate circa 5500 righe di codice commentato. Sono state utilizzate le classi java javax.swing.text.html.parser, che nonostante siano state progettate per operare con HTML possono essere utili anche in questo contesto
DTD - esempio <!ATTLIST Student StudentId ID #REQUIRED tutor CDATA #REQUIRED> <!ATTLIST Professor Prof_code ID #REQUIRED Office_phone CDATA #IMPLIED> <!ATTLIST Division description CDATA #REQUIRED sector CDATA #REQUIRED> […]
interface university (source semistructured univers_xml extent university ) { attribute set person ; }; interface person (source semistructured univers_xml extent person key (person_code)) { attribute string person_code ; attribute string first_name ; attribute string last_name ; attribute string ; attribute status status ; }; interface status (source semistructured univers_xml extent status ) { attribute student student ; } union status1 { attribute professor professor ; }; ODL I3 - traduzione
interface student (source semistructured univers_xml extent student key (student_studentid) candidate_key cK0 (student_tutor)) { attribute string student _studentid ; attribute string student_tutor ; attribute string year ; attribute set course ; attribute string homeaddress ; attribute string rank ; }; interface professor (source semistructured univers_xml extent professor key (professor_prof_code)) { attribute string professor _prof_code ; attribute string professor _office_phone ?; attribute string ptitle ; attribute division division ; attribute string rank ; }; ODL I3 - traduzione
Conclusioni Attraverso questo wrapper si permette al sistema MOMIS di interagire con sorgenti semistrutturate Occorre attendere la standardizzazione di un query language per avere un wrapper completo