Seminari di ingegneria del software

Slides:



Advertisements
Presentazioni simili
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Introduzione alle basi di dati.
Advertisements

Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Progettazione concettuale
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
PHP.
Web semantico e logiche descrittive M. Simi, Cap 2 del "Description Logic Handbook" Lezioni di U.Straccia.
Query OQL e XQUERY a confronto
DOCUMENTAZIONE DI SCHEMI E/R
Il Sistema MOMIS Il progetto MOMIS (Mediator EnvirOnment for Multiple Information Sources) consiste nella realizzazione di un sistema intelligente d integrazione.
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Analisi.
DOCUMENTAZIONE DI SCHEMI E/R
Serializzazione di oggetti in formato XML nellambito del sistema MOMIS Davide Lenzi Chiar.mo Prof. Sonia Bergamaschi Chiar.mo Prof. Michele.
Università degli Studi di Modena e Reggio Emilia
Biglietti e Ritardi: schema E/R
Biglietti: schema E/R.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
4 – Progettazione – Introduzione e Modello E-R
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
ESEMPI DI ARCHIVI DI DATI
Intelligenza Artificiale 1 Gestione della conoscenza lezione 7 Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
CVM un modello concettuale per la gestione di versioni di schema in un contesto di integrazione Fabio Grandi DEIS - Università di Bologna.
Rassegna sui metodi per query rewriting e il query answering using views.
Seminari di ingegneria del software
Università della Svizzera italiana Il web semantico: mito o realtà? Marco Colombetti Politecnico di Milano e Università della Svizzera italiana Roma, 24.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Modello E-R Generalizzazioni
Progettazione di una base di dati
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Modello E-R Generalizzazioni
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA Relatore: Chiar.mo Prof. Paolo Tiberio.
SQL: Structured Query Language
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL OPERATORI INSIEMISTICI IN SQL Siano due tabelle: GiochiSolitari(CodiceGioco, NomeGioco, PrezzoGioco)
Implementare un modello di dati
Esercitazione di Basi di Dati
Descrizione Semantica ad Alto Livello di Ambienti Virtuali in X3D
L’ingegneria del software
Il modello ER Proposto da Peter Chen nel 1976 rappresenta uno standard per la progettazione concettuale (in particolare per le basi di dati) Ha una rappresentazione.
Corso di Laurea in Informatica
MODELLO LOGICO DEI DATI
Introduzione a Oracle 9i
“Seminari di Ingegneria del software”
Tesi di Laurea in Ingegneria Informatica
DATABASE Introduzione
1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,
I DATABASE.
DAL WEB AL SEMANTIC WEB Aspetti teorici e tecnologici Carmagnola Francesca Dipartimento Informatica C.so Svizzera 185, Torino
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Introduzione a Javascript
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna Università degli Studi di Bari.
Sapienza Università di Roma Sapienza Università di Roma Laurea specialistica in Ingegneria Informatica Seminari di Ingegneria del Software Traduzione di.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Metamodellazione in RDF Tesina del corso di Seminari di Ingegneria del Software Alberto Cerullo.
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Progettazione di una base di dati relazionale Vincoli.
Raggruppamenti e target list scorretta select padre, avg(f.reddito), p.reddito from persone f join paternita on figlio = nome join persone p on padre =
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Eprogram informatica V anno.
Approfondimenti SQL.
NORMALIZZAZIONE ESERCIZI. INTRODUZIONE La modellazione E-R ci ha consentito di descrivere schemi relazionali Lo strumento base per la modellizzazione.
Web semantico e logiche descrittive M. Simi, Cap 2 del "Description Logic Handbook" Lezioni di U.Straccia.
Web semantico e logiche descrittive M. Simi, Cap 2 del "Description Logic Handbook" Lezioni di U.Straccia.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
Transcript della presentazione:

Seminari di ingegneria del software Interrogare ontologie costruite a partire da schemi E/R attraverso gli strumenti QuOnto/Mastro Toolkit e Protegè (OBDA plugin)

Obiettivi Traduzione dei diagrammi ER in DL-LiteA; Realizzare le query in sintassi SparSQL; Passare da DL-Lite ad owl in Protegé; Query in sintassi SPARQL.

Svolgimento del progetto/1 Traduzione degli schemi ER (le entità, le relazioni e i vincoli presenti) in concetti, ruoli e vincoli delle ontologie, ottenendo dapprima la sintassi tedesca e infine la sintassi funzionale per DL-Lite; Utilizzando il linguaggio SparSQL ho fatto le query richieste ed ho espresso gli eventuali vincoli presenti non esprimibili. Utilizzato il tool grafico QuOnto/Mastrol ToolKit ho scritto l’ontologia in sintassi funzionale completa di asserzioni e ho potuto valutare le query SparSQL.

Svolgimento del progetto/2 ho ottenuto le ontologie in sintassi funzionale compatibili per owl e con l’utilizzo di un convertitore per sintassi owl ho ottenuto dei file RDF/XML da porre come input all’editor Protegè. Con l’utilizzo del tool grafico QuOnto/Mastrol ToolKit opportunamente abbinato con l’utilizzo di MySQL ho salvato tutte le asserzioni in un DB ed ho effettuato tutti i mapping utilizzando il plugin OBDA di Protegè Sempre con l’utilizzo del plugin OBDA e tramite l’utilizzo del reasoner DIG- Server ho fatto le query richieste, lì dove possibile, utilizzando il linguaggio Sparql.

Ontologie vs ER Ontologia → concettualizzazione di un dominio d’interesse espressa in logica, rappresenta il modello concettuale di un mondo, la struttura formale di un pezzo di realtà percepita ed organizzata da chi modella e tenta di formulare uno schema concettuale esaustivo e rigoroso nell’ambito di un certo dominio. E/R → descrive in maniera semanticamente precisa una realtà di interesse Obiettivo: ottenere gli strumenti per una traduzione diretta di ogni costrutto E/R in costrutti per ontologie

Ontologia Un’ontologia è una concettualizzazione del dominio d’interesse espressa in logica. Il dominio di interesse è composto di oggetti ed è strutturato in: Concetti, i quali corrispondono alle classi e denotano un insieme di oggetti; Ruoli, i quali corrispondono a relazioni binarie e denotano relazioni binarie tra gli oggetti. Un’ontologia popolata di istanze e completata con delle regole di inferenza viene detta Base di Conoscenza. Per esprimere un’ontologia, si fa uso di formalismi logici basati su classi ed in particolare di logiche descrittive.

Description Logic – DL Logiche progettate in modo specifico per rappresentare e ragionare su basi di conoscenza Una ontologia in logica descrittiva o base di conoscenza è una coppia O =<T,A>, dove T è una TBox, mentre A è una ABox. La Terminological Box (TBox) rappresenta il livello intensionale della conoscenza ed è il modello concettuale, espresso in maniera formale, di un frammento di realtà. L’Assertion Box (ABox) rappresenta il livello estensionale della conoscenza ed è il modello concreto, espresso in maniera formale, di un frammento di realtà in quanto contiene conoscenze sottoforma di asserzioni

Owl (Web Ontology Language) Standard proposto dal W3C per la definizione di ontologie per il web semantico, progettato per poter processare le informazioni disponibili sul web. OWL prevede tre livelli di complessità crescente: OWL Lite, semplice da usare e implementare ma scarsamente espressivo. OWL DL, abbastanza espressivo, decidibile e dotato di procedure di ragionamento di complessità ormai ben ottimizzate; OWL Full, molto espressivo ma non decidibile e quindi problematico dal punto di vista della meccanizzazione del ragionamento.

La logica descrittiva DL-Lite A Stesso potere espressivo di OWL DL con la differenza che tramite DL-Lite si può esprimere il costrutto di modellazione degli attributi di ruolo che non possono essere espressi in OWL DL. Sintassi riconosciute per DL-Lite La sintassi tedesca, prevede la descrizione della TBOX attraverso l’utilizzo di costrutti logici/matematici; La sintassi funzionale, la quale utilizza costrutti testuali che richiamano all’utilità di ciò che si vuole esprimere

Query Answering/1 Query answering su un’ontologia→ interrogare prima il livello intensionale (TBox), poi il livello estensionale (ABox) →risposte: Certain Answers, cioè le risposte vere in ogni modello dell’ontologia. Problema: nelle ontologie c’è informazione incompleta Soluzione: Open World Assumption, OWA OWA: tutto ciò che è contenuto nell’ontologia è vero, mentre tutto ciò che non vi è contenuto non è né vero né falso, ma semplicemente non si conosce. Basi di Dati → Closed World Assumption, CWA

Esempio Query: q(x):- (Person(x) ∧ ¬ Student(x)) Risposta in caso di CWA: {Paolo, Luisa} Risposta in caso di OWA: {}

OWA: conseguenze Query answering con FOL su basi di conoscenza DL indecidibile Soluzione → considerare un sottoinsieme della FOL che abbia il massimo potere espressivo possibile e che sia decidibile → unioni di query congiuntive (UCQs) e le query congiuntive (CQ) Problema: limiti espressivi. Soluzione: Epistemic Queries Languages (EQLs) Principio base EQLs: su ciò che conosci tu hai un informazione completa sulla quale è possibile applicare l’assunzione di mondo chiuso. EQLs sono decidibili ed hanno potere espressivo analogo alla FOL

SparSQL Esempio di linguaggio epistemico: EQL-LITE(UCQ). Caratteristica EQL-LITE(UCQ): atomi sono unioni di query congiuntive Implementazione EQL-LITE(UCQ) → SparSQL SparSQL: linguaggio di interrogazione concreto sulle ontologie in DL-Lite SparSQL = SQL + SPARQL

Meccanismo di traduzione da E/R a DL-LiteA functional-style syntax Class(Iscrizione). SubClassOf(Gruppo Iscrizione) SubClassOf(Individuo Iscrizione) DisjointClasses(Gruppo Individuo) Gruppo ⊑ Iscrizione Individuo ⊑ Iscrizione Gruppo ⊑ ¬Individuo ObjectPropertyDomain(esegue Persona) ObjectPropertyRange(esegue Iscrizione) ∃ esegue ⊑ Persona ∃ esegue ˉ ⊑ Iscrizione DataPropertyRange(codiceIscrizione rdf:string) DataPropertyDomain(codiceIscrizione Iscrizione) δ(codiceIscrizione) ⊑ Iscrizione ρ(codiceIscrizione) ⊑ xsd: String ObjectPropertyDataRange(dataEsegueAnno rdf:string) ObjectPropertyDataDomain(dataEsegueAnno esegue) δ(DataEsegue) ⊑ esegue ρ(DataEsegue) ⊑ xsd: date

Meccanismo di traduzione cardinalità/1 risiede Persona Comune ∃ Persona ⊑ risiede SubClassOf(Persona ObjectMinCardinality(1 risiede)) 1..n risiede Persona Comune ∃ Comune ⊑ risiede- SubClassOf(ObjectMinCardinality(1 InverseObjectPropertyOf(risiede))Comune)

Meccanismo di traduzione cardinalità/2 0..1 risiede Persona Comune funct(risiede) FunctionalObjectProperty(risiede) 0..1 risiede Persona Comune funct(risiede-) FunctionalObjectProperty(InverseObjectPropertyOf(Rapresents))

Limiti nella traduzione/1 Definizione dell’attributo di ruolo ObjectPropertyDataRange(da rdf:string) ObjectPropertyDataDomain(da risiede) SubObjectPropertyOf(risiede ObjectPropertyDataSomeValueFrom(da xsd:anyType)) FunctionalObjectPropertyData(da) ho dovuto togliere il seguente vincolo: FunctionalObjectProperty(risiede) SubClassOf(Persona ObjectMinCardinality(1 risiede))

Limiti nella traduzione/2 Completezza delle generalizzazioni Espressione dei vincoli di cardinalità, nei casi di cardinalità min/max diversa da 0/1. Quest’ultimo vincolo è esprimibile attraverso una query condizionale, ovvero si fanno restituire tutti gli individui che partecipano alla relazione di cui si vuole testare la molteplicità raggruppati per il campo chiave, poi conta le occorrenza di ognuno e seleziona quelli che non soddisfano la giusta molteplicità. VERIFY not exists( SELECT g.x FROM sparqltable( SELECT ?x ?w WHERE{ ?x rdf:type 'Persona'. ?x :formato ?w. ?w rdf:type 'Persona'. })g GROUP BY (g.x) HAVING COUNT(*) < 2 ) 2..n formato Gruppo Persona

Limiti nella traduzione/3 L’obiettivo è verificare che tutti le iscrizioni individuali e di gruppo formino l'insieme delle iscrizioni e viceversa. Si può verificare che la differenza insiemistica tra Iscrizione/(Gruppo U Individuo) sia vuota. La query sparSQL booleana relativa a tale vincolo è la seguente VERIFY not exists( SELECT iscr.x FROM sparqltable( SELECT ?x WHERE { ?x rdf:type 'Iscrizione'. } )iscr WHERE iscr.x not in (SELECT grp.x WHERE{ ?x rdf:type 'Gruppo'. )grp UNION SELECT ind.x ?x rdf:type 'Individuo'. )ind )) )

Caso di studio: queries Query n°1 del compito di base di dati del 16/12/2004 B: Calcolare il codice fiscale ed il sesso delle persone che hanno effettuato almeno una iscrizione nel 2003. SELECT p.c, p.s FROM sparqltable( SELECT ?s ?c ?d WHERE { ?x rdf:type 'Persona'. ?x :codFis ?c. ?x :sesso ?s. (?x :esegue ?Iscrizione) :dataEsegueAnno ?d. } )p WHERE p.d = '2003'

Dalla sintassi funzionale ad un file .owl Problema: I file creati fin’ora non sono “buoni” per essere posti in input a Protegè. Soluzione: Si utilizza un convertitore di sintassi owl Problema: la sintassi funzionale deve essere modificata con piccoli accorgimenti quali l’inserimento di tag o la definizione dei tipi, es. intero va scritto con xsd:int, si deve cancellare tutto ciò che riguarda gli attributi di ruolo perché in owl non sono esprimibili.

..in Protegè Il file owl ottenuto dal convertitore sarà l’input di Protegè; Necessario mapping, cioè si devono estrarre i dati dal DB per popolare l’ontologia. Es. di mapping: Persona(funct($term)) SELECT term FROM Persona

Protegè Warning su i tipi di dati; Problema di accesso ai dati salvati; Ragionatore DIG-Server “senza viste”; Minor potere espressivo; Possibilità di verificare le query EQL;