Il Sistema MOMIS
Il progetto MOMIS (Mediator EnvirOnment for Multiple Information Sources)
consiste nella realizzazione di un sistema intelligente d’integrazione ed
interrogazione di informazioni da sorgenti di dati strutturati e semistrutturati.
L'architettura di MOMIS
Obiettivi
Gli obiettivi di questa tesi sono stati due:
 Analisi Critica dell’evoluzione del Web: Semantic Web
 Momis nel Web Semantico
 Sviluppo del traduttore della conoscenza di Momis in un formato
condivisibile da sistemi a Mediatore esterni usando le nuove
specifiche del w3c (XML-Schema, RDF e RDF-Schema).
Web Semantico
Processare automaticamente le informazioni scambiate.
Ampio uso di agenti.
Link suggeriti:




www.ontoknowledge.org/oil
www.daml.org
www.w3.org/2001/sw
www.agentlink.org
Uso degli Agenti
• Prescrizione.
• Convenzione.
• Distanza.
• Valutazione.
• Compatibilità.
http://www.scientificamerican.com/2001/0501berners-lee.html
Componenti del Web Semantico
 XML: Garantisce l'interoperabilità sintattica
 RDF(Resource Description Framework): Supporto
all'interoperabilità semantica, attraverso la descrizione di metadati.
 Un’ontologia: “documento che definisce le relazioni esistenti tra termini
distinti.”
Architettura del Web Semantico
Quello che il web Semantico ha
bisogno é un linguaggio per
formalizzare una semantica e
ragionare con le informazioni che si
vogliono condividere.
Queste necessità vanno a definire un
nuovo livello nell'architettura del
Web: il livello logico.
Livello Logico
Molte le proposte per occupare tale livello, tra queste:
OIL( Ontology Inference Layer)
 DAML+OIL (DARPA Agent Markup Language)

che definiscono, in sostanza, un linguaggio d'alto livello per esprimere la
semantica dei concetti che si vogliono condividere e si appoggiano ad una logica
descrittiva per poter ragionare con i dati.
Comunque fino a quando non si arriverà all'uso di un'unica logica descrittiva
il supporto che linguaggi di questo tipo potranno dare sarà parziale in quanto si
limiterà la capacità di ragionare alle applicazioni in grado di capire la particolare
logica descrittiva utilizzata.
MOMIS nel Web Semantico
Nel Web Semantico la definizione di un’ontologia rappresenta l’obiettivo
finale per far sì che le informazioni condivise siano elaborabili automaticamente,
in MOMIS la definizione di un’ontologia é solamente il punto di partenza del
processo d’integrazione.
MOMIS presenta problematiche che vanno oltre a quelle del Web Semantico,
anche se l’esigenza di fondo é la stessa: garantire l’interoperabilità sintattica e
semantica di ciò che si vuole condividere.

Livello Logico: OLCD

Livello Schema: ODLI3 /XML-Schema + RDF-Schema/RDF

Livello Dati: XML
ODLI3
Supporto di sorgenti strutturate (database relazionali, ad oggetti e file system) e
semistrutturate.
 regole d'integrità (if then rule), definite sia sugli schemi locali che riferite allo
schema globale.
 regole di mediazione, o mapping rule, utilizzate per specificare il legame fra
concetti globali e locali.
 Traduzione automatica e trasparente all'utente delle descrizioni nella DL OLCD
per poter eseguire il controllo di consistenza e l'ottimizzazione semantica delle
query.
 body alternativi di una classe tramite l'operatore di union
 relazioni terminologiche, che permettono di specificare relazioni di sinonimia
(SYN), ipernimia (BT), iponomia (NT) e relazione associativa (RT) tra due tipi.

XML-Schema
•
•
XML linguaggio per trasferire testo
XML linguaggio per trasferire dati
XML-Schema Vs DTD
I DTD hanno una sintassi particolare diversa da XML, così da dover creare
strumenti appositi per la validazione.
 I DTD non distinguono tra nome del tag e tipo del tag, ed hanno solo due tipi:
complesso (cioè strutturato) e semplice (cioè CDATA o #PCDATA).
 XML Schema, invece, fornisce un set complesso di tipi, a cui i tag e il loro
contenuto debbono aderire.
 XML-Schema ha un approccio object-oriented, permettendo di ampliare i tipi
disponibili e di estenderne e precisarne le proprietà.
 XML Schema é scritto in XML, permettendo l'uso di applicazioni XML per la
verifica della validità dei dati espressi.

Esempi XML-Schema
<simpleType name="bodytemp">
<restriction base="decimal">
<minInclusive value="36.5"/>
<maxInclusive value="44.0"/>
</restriction>
</simpleType>
<simpleType name="healthbodytemp">
<restriction base="bodytemp">
<maxInclusive value="37.0"/>
</restriction>
</simpleType>
RDF
RDF è un linguaggio per descrivere delle risorse. Per far ciò XML è troppo
flessibile. Ad esempio ci sono molti modi, in XML, per indicare che una macchina è di
colore rosso:
<car color="red" />
 <car>
<color>red</color>
</car>
<car color="#cc" />
<color id="cc"
shade="red" />

RDF sfrutta la convenzione degli URI
"
RDF è aperto; é immediato aggiungere nuove proprietà.
"
RDF-Schema
RDF-Schema serve per definire il vocabolario delle risorse e delle proprietà
usate in un particolare contesto.
• Definendo Classi per le modellare i concetti che si vogliono descrivere
• Definendo Proprietà per descrivere le caratteristiche dei concetti modellati.
Esempio RDF
<rdf:RDF>
<rdf:Description
about="http://www.auto.com/#redcar">
<rdf:type resource=“schema.rdf#Car”>
<s:color>Red</s:color>
</rdf:Description>
</rdf:RDF>
Esempio RDF-Schema
<rdf:RDF xml:lang="en"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<rdfs:Class rdf:ID=“Car">
<rdfs:comment>A vehicle with 4 wheels.</rdfs:comment>
<rdfs:subClassOf
rdf:resource="http://www.w3.org/2000/03/example/classes#Vehicle"/>
</rdfs:Class>
<rdf:Property ID=“color">
<rdfs:comment>Color of a Car</rdfs:comment>
<rdfs:range
rdf:resource="http://www.w3.org/2000/03/example/classes#Literal"/>
<rdfs:domain rdf:resource="#Car"/>
</rdf:Property>
</rdf:RDF>
XML-Schema & RDF-Schema
XML-Schema e RDF(S) nascono entrambi per facilitare la condivisione delle
informazioni sul web, ma hanno caratteristiche complementari:
XML-Schema fornisce una serie di primitive per vincolare la struttura di un
documento, definire il numero di occorrenze e il tipo dei dati; mentre non fà
altrettanto per quanto riguarda le primitive per specificare la semantica.
 RDF-Schema fornisce alcune primitive per definire la semantica dei concetti
espressi: Class,Property, subclassOf, subpropertyOf, type
ecc..; ma non fà altrettanto per quanto riguarda la struttura del documento.

Collegamento XML-Schema e RDF-Schema
Attualmente non esiste un meccanismo per la combinazione di RDF(S) e XMLSchema, di conseguenza bisogna cercare di ingegnarsi in qualche modo.
Una
possibilità è data dal meccanismo degli openAttrs previsto nelle specifiche di
XML-Schema il quale permette di utilizzare nella definizione di uno schema
attributi provenienti da namespace esterni.
<complexType name="PersonType"
meta:interface="interfaces.rdf#Person">
ODLi3 Vs XML-Schema
XML-Schema fornisce il supporto alle relazioni fondamentali di ODLi3:
Part - Of: Attraverso elementi locali o riferimenti ad elementi globali.
 Kind - Of: XML-Schema ha il concetto di tipo del tag attraverso l'attributo type
 Is - a: A livello di documento istanza indicando esplicitamente il tipo del tag.

In generale XML-Schema riesce a fornire un supporto pieno ai concetti di ODLi3:
Chiavi : <key> e <unique>
 Foreign Key: <keyRef>
 Ereditarietà: <extension base=”....”> NO ereditarietà multipla !!!!!!
 Tipi ODLi3

Documenti RDF(S)
Il documento XML-Schema é accompagnato da un documento RDF-Schema
ed un documento RDF nell’ottica di preservare la semantica del risultato
dell’integrazione.
Questi due documenti si basano sui concetti definiti in un terzo documento del
quale possiamo vedere qui una rappresentazione grafica
Esempio di Traduzione 1-5
interface Course
( source object Univers
extent Courses
key (course_name) )
{ attribute string course_name;
attribute Professor taught_by;}
union Course_1
{ attribute string course_name;
attribute string course_description;
attribute Professor taught_by; };
Esempio di Traduzione 2-5
<group name="bodyCourse1">
<sequence>
<element name="course_name" type="string"/>
<element name="taught_by" type="momis:ProfessorType" xsi:nillable="true"/>
</sequence>
</group>
<group name="bodyCourse2">
<sequence>
<element name="course_name" type="string"/>
<element name="course_description" type="string"/>
<element name="taught_by" type="momis:ProfessorType" xsi:nillable="true"/>
</sequence>
</group>
Esempio di Traduzione 3-5
<complexType name="CourseType"
meta:interface="http://sparc20.ing.unimo.it/interfaces.rdf#Course">
<choice>
<group ref="momis:bodyCourse1"/>
<group ref="momis:bodyCourse2"/>
</choice>
<attribute name="persistent" type="boolean" use="default" value="true"/>
<attribute name="view" type="boolean" use="default" value="false"/>
</complexType>
Esempio di Traduzione 4-5
<element name="Course" type="momis:CourseType">
<key name="Coursepk">
<selector xpath="child::*"/>
<field xpath="course_name"/>
</key>
</element>
Esempio di Traduzione 5-5
RDF-Schema:
<rdfs:Class rdf:ID="Course">
<rdfs:subclassOf rdf:resource="momis_schema#Interface"/>
</rdfs:Class>
RDF:
<s:Course rdf:ID="Course">
<m:source m:tipo="object" rdf:value="Univers"/>
<m:extent>Courses</m:extent>
<m:olcd dc:description=" " rdf:value="^ [ course_desc : string , course_name :
string , taught_by : Professor , course_name0 : string , taught_by0 : Professor ] "/>
</s:Course>
Il Software

Il software è stato realizzato utilizzando il linguaggio Java. In particolare
sono state sviluppate circa 6000 righe di codice commentato.

Sono state utilizzate le API JAXP1.1 della SUN (Java Api for Xml Parsing),
in particolare le classi dei package SAX (Simple Api for Xml) e XSLT (XML
Style Sheet Translation) il cui uso congiunto permette di convertire una generica
struttura dati in XML.
Modifica parser ODLI3
Creazione SAXSource
Sviluppo Trasformer XSLT
Conclusioni
Il traduttore realizzato cerca di sfruttare al meglio le potenzialità di RDF, a
mio avviso si dovranno seguire le evoluzioni di tale standard in quanto promette
di cambiare il modo di condividere le informazioni in rete.
Concludo accenando a XQUERY l'ultima proposta in merito ad un query
language per XML, studiata in questa tesi, che offre il supporto ai tipi di dato di
XML-Schema; durante il lavoro di questa tesi si è sviluppato un parser che
effettua il controllo sintattico di una query formulata in tale linguaggio, non si è
andati oltre in quanto le specifiche al momento di sviluppo del parser erano a
livello di Working Draft.
Scarica

rdf - DBGroup