UNIVERSITA’ DI MODENA E REGGIO EMILIA Facolta’ di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Sviluppo di tecniche di estrazione ed inferenza di relazioni terminologiche nel sistema MOMIS Tesi di laurea di Relatore Correlatore Controrelatore Elisa Marri Chiar.ma Prof. ssa Sonia Bergamaschi Dott. Ing. Domenico Beneventano Chiar.mo Prof. Flavio Bonfatti Architettura del sistema MOMIS SI-Designer Integration Designer • SIM ODB-Tools interaction •SLIM WordNet interaction •ARTEMIS Affinity & Clustering •TUNIM Mapping table tuning WordNet Global Schema Builder ODB-Tools creates User Application Service level Global Schema Query Manager Corba interaction User interaction GUI Corba Object Software tools User Momis Mediator Wrapper Wrapper Wrapper Relational source XML source Object source Wrapper generic source Data level Processo di integrazione S1 • SIM • SLIM • ARTEMIS S2 S3 Generazione Thesaurus Common Thesaurus Analisi Affinità e Creazione Cluster Cluster • TUNIM Generazione attributi globali e mapping-table Schema Globale Relazioni del Common Thesaurus • SYN, BT, NT, RT. • SYNEXT, BTEXT, NTEXT. Generazione Thesaurus Comune S1 S2 S3 SIMA Estrazione Integrazione Relazioni Integrate Validazione Inferenza Relazioni Strutturali Relazioni Lessicali Relazioni Validate SIMB Relazioni Inferite Thesaurus Comune SIMB Estrazione delle relazioni strutturali: modulo SIMA Analisi degli schemi delle sorgenti al fine di esplicitare un insieme di relazioni intra-schema già implicite nella struttura degli schemi stessi. • Analisi degli schemi ad oggetti • Analisi degli schemi relazionali • Analisi degli schemi semistrutturati Analisi degli schemi ad oggetti Si utilizzano le funzionalità del componente esterno ODBTools. ODB-Tools effettua l’analisi delle gerarchie di ereditarietà ed aggregazione che legano le classi, siano esse esplicitamente indicate negli schemi (ereditarietà dirette, attributi con domini complessi), o dedotte attraverso l’algoritmo di sussunzione ed espansione semantica. Analisi degli schemi ad oggetti: Esempio Interface Professor : CS_Person (source object Computer_Science, ...) {attribute Office belongs_to; attribute string rank;} • < CS.Professor NTEXT CS.CS_Person > • < CS.Professor RT CS.Office > sparc20.dsi.unimo.it Analisi degli schemi relazionali Si basa sullo studio delle foreign key e delle chiavi (primarie o candidate) presenti negli schemi da esaminare • relazione RT: si rileva ogni volta in cui una classe definisce una foreign key. • relazione NTEXT : si rileva quando la foreign key è anche chiave (primaria o candidata) della classe che la definisce. • relazione SYNEXT: si rileva quando tra due classi sono presenti due relazioni reciproche di NT (o equivalentemente BT). • relazione RTpartof: esprime un legame piu’ forte rispetto alla semplice relazione di aggregazione RT. Si rileva quando la foreign key e’ parte di una chiave (primaria o candidata) della classe che la definisce. Analisi degli schemi relazionali: Esempi Interface Section (source relational University, key (section_code) foreign key (room_code) references Room) {attribute integer section_code; Interface Graduate_Student (source relational University, key (name) foreign key (name) references School_Member) {attribute string name ...} attribute integer room_code;} < UNI.Section RT UNI.Room > < UNI.Graduate_Student NTEXT UNI.School_Member > sparc20.dsi.unimo.it Analisi degli schemi semistrutturati Si effettua su tali schemi un’analisi delle eventuali foreign key in modo analogo a quanto avviene per gli schemi relazionali; ad essa si associa poi un’analisi delle eventuali gerarchie di aggregazione utilizzando il componente esterno ODB-Tools. Analisi sorgenti semistrutturate: Esempio Interface Student (source semistructured tax_Position_xml key student_code) { attribute string name; attribute string faculty_name; attribute integer student_code; attribute integer tax_fee; }; • < TP.Student Interface ListOfStudent (source semistructured tax_Position_xml ) { attribute set <Student> Student; }; RT TP.ListOfStudent > .sparc20.dsi.unimo.it Relazioni ottenute da SIMA Estrazione relazioni lessicali: modulo SLIM Estrae relazioni lessicali tra nomi di classi ed attributi sulla base dei significati associati dal progettista ai nomi stessi. Utilizza il Dizionario lessicale WordNet. Relazioni estratte da SLIM Integrazione del progettista Nuove relazioni possono essere fornite direttamente dal progettista per aggiungere al Common Thesaurus una conoscenza specifica non ricavata automaticamente nelle fasi precedenti. Le relazioni specificate dal progettista possono essere sia di tipo intensionale che estensionale. Validazione delle relazioni fra attributi Scopo di questa fase è verificare, per ogni relazione, che i domini degli attributi coinvolti siano compatibili col tipo di relazione esaminata. Tale procedimento è realizzato dal modulo SIMB interagendo con ODB-Tools, al cui interno sono presenti algoritmi in grado di valutare la compatibilità tra domini. • SYN: è validata se i domini dei due attributi coinvolti sono equivalenti, oppure uno è più specializzato dell’altro. • BT: è validata se il dominio del primo attributo è equivalente al dominio del secondo attributo, oppure lo contiene. • NT: è validata se il dominio del primo attributo è equivalente al dominio del secondo attributo, oppure è in esso contenuto. Regole per la validazione : Esempio interface Professor (source Object Computer_Science …) {attribute Office belongs_to; attribute string first_name; attribute string last_name; ….} interface Research_Staff (source relational University …) {attribute string name; attribute integer dept_code; attribute string e_mail; ….} < CS.Professor.first_name NT UNI.Research_Staff.name> [1] < CS.Professor.belongs_to NT UNI.Research_Staff.dept_code> [ 0 ] sparc20.dsi.unimo.it Esempio di inconsistenza interface Fast_Food (source semistructured ED …) {… attribute string category; ...} interface Restaurant (source relational FD …) {… attribute integer category; ...} • < ED.Fast_Food NTEXT FD.Restaurant > interface Fast_Food : Restaurant (source semistructured ED …) {… attribute string category; ...} [0] ODB-Tools Inferenza di nuove relazioni Si utilizza ODB-Tools come motore inferenziale: sulla base delle informazioni contenute negli schemi originali e di quelle espresse dalle relazioni del Common Thesaurus, si deducono automaticamente nuove relazioni (intra-schema o inter-schema). Risultati della validazione ed inferenza Software realizzato Approssimativamente sono state prodotte 3000 righe di codice commentato, implementato utilizzando la versione 1.2 del Java Development Kit della Sun disponibile sul Web presso http://java.sun.com.