12
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Realizzazione di una interfaccia Web per la progettazione di uno schema ER e la sua traduzione in RDF Relator e: Candidato: Prof. Sonia Bergamaschi Mattia Bonacorsi Anno Accademico 2003-2004

Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Realizzazione

Embed Size (px)

Citation preview

Page 1: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Realizzazione

Università degli Studi di Modena e Reggio Emilia

Facoltà di Ingegneria – Sede di Modena

Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento

Realizzazione di una interfaccia Web per la progettazione di uno schema ER e la sua

traduzione in RDF

Relatore: Candidato: Prof. Sonia Bergamaschi Mattia Bonacorsi

Anno Accademico 2003-2004

Page 2: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Realizzazione

Scopo e strumentiScopo: creazione pagine Web dinamiche per la

progettazione concettuale di database con il formalismo grafico del modello ER e loro traduzione nello standard W3c RDF

Tecnologie Utilizzate: ASP.NET, adottato per lo sviluppo della applicazione,

utilizza una emulazione di modello ad eventi in sostituzione del modello lineare di ASP

RDF: (Resource Description Framework) è un linguaggio per la descrizione delle informazioni su Web. RDF è stato creato per produrre informazioni che devono essere elaborate, insieme al loro significato da un agente software

Strumenti Utilizzati: Visual Studio .NET Internet Information Service 5.0

Page 3: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Realizzazione

ASP.NET

Benefici di ASP.NET rispetto ad ASP Separazione del codice che implementa la logica

dal codice per la presentazione delle informazioni

Modello di programmazione basato sugli eventi Più funzioni integrate. Non è più necessario

accedere esplicitamente alle variabili modulo ma è sufficiente aggiungere runat=“server” al modulo e a ogni suo elemento

Miglioramento della interfaccia grafica per creare pagine: è possibile disegnare elementi con un semplice drag-and-drop

Debug reale. Con Visual Studio .NET si può esaminare passo passo il codice ASP.NET

Page 4: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Realizzazione

Round TripAnalizziamo la divisione di lavoro di un form in una pagina WebIl browser presenta il form all’utenteL’utente interagisce con il formL’iterazione dell’utente con i componenti server causano un invio della pagina al serverIl server elabora la pagina inviata e la restituisce al browserIl browser presenta nuovamente il form all’utente

Visto che le pagine Web sono ricreate ogni volta che sono spedite al server, le informazioni associate alla pagina devono essere, in qualche modo, salvate e ricaricate ad ogni round trip. Le modalità per realizzare ciò sono:

Modalità che memorizzano le informazioni nel client o nella pagina: View State, Campi Nascosti, Cookies, Query StringModalità che memorizzano le informazioni nel server: Variabili Applicazione, Variabili Sessione, Supporto Database

Page 5: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Realizzazione

RDFè un linguaggio per la descrizione delle risorse Web

La pagina http://www.example.org/index.html è stata creata il 16 agosto 1999

http://www.example.org/index.html

http://www.example.org/terms/creation-date

16 agosto 1999

<?xml version=“1.0”?><rdf:RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:exterms=“http://www.example.org/terms/”> <rdf:Description rdf:about=“http://www.example.org/index.html”> <exterms:creation-date>August 16, 1999</exterms:creation-date> </rdf:Description></rdf:RDF>

Dichiarazione RDF Grafo RDF

Codice RDF/XML Terna RDF

Page 6: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Realizzazione

RDF SchemaRDF Schema fornisce gli strumenti necessari per creare un

vocabolario RDF. Un vocabolario RDF descrive le classi e le proprietà utilizzate nell’applicazione

RDF Schema definisce delle classi e delle proprietà che sono contenuti nel vocabolario dei termini di W3c (rdf:type, rdfs:Class …)

Sulla base di questo vocabolario è possibile definire nuovi vocabolari che definiscono le classi e le proprietà necessarie per l’applicazione; le proprietà sono definite in termini di dominio e di range

Ex:MotorVehicle rdf:type rdfs:Class

Ex:weightInKg rdf:type rdf:Property

Ex:weigthInKg rdfs:domain ex:MotorVehicle

Ex:weigthInKg rdfs:range xsd:integer

<?xml version=“1.0”?><!DOCTYPE rdf:RDF [<!ENTITY xsd “http://www.w3.org/2001/XMLSchema#”>]><rdf:RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#” xmlns:rdfs=“http://www.w2.org/2000/01/rdf-schema#”

xmlns:exterms=“http://www.example.org/terms/”> <rdfs:Class rdf:ID=“MotorVehicle”/> <rdfs:Property rdf:ID=“weigth”> <rdfs:domain rdf:resource=“#MotorVehicle”/> <rdfs:range rdf:resource=“&xsd;integer”/> </rdf:Property></rdf:RDF>

Page 7: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Realizzazione

Due applicazioni realizzate

una applicazione per la progettazione concettuale di database attraverso interfacce Web grafiche che permette il disegno di schemi ER

Un applicazione permette la traduzione degli schemi disegnati in codice RDF/XML

<?xml version="1.0"?><! DOCTYPE rdf:RDF [<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#">]><rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:er="http://localhost/TESI/RDF/Vocabulary/" xmlns:dt="http://localhost/TESI/RDF/Datatype/" xml:base="http://localhost/TESI/RDF"> <rdf:description rdf:about="#Persona">…

Page 8: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Realizzazione

Pagina Web per il disegno di schemi ER

Per disegnare gli oggetti grafici sono state create delle classi ed è stato ereditato il metodo Render, comune a tutti i controlli, che viene richiamato ad ogni round trip e permette di generare il codice HTML corrispondente all’elemento

public void SalvaComponenti(){

Control[] cl = new Control[Panel1.Controls.Count];Panel1.Controls.CopyTo(cl,0); Session["Controls"] = cl;

}

public void CaricaComponenti(){ if (Session["Controls"]!=null) { Control[] cc = (Control[])Session["Controls"]; foreach(Control c in cc) { if ((c as Control)!=null) { if (c.GetType().ToString().IndexOf("LibreriaDiClassi")>=0) Panel1.Controls.Add(c); } } } }

Procedura per salvare i componenti

Procedura per caricare i componenti

L’interfaccia grafica realizzata permette di disegnare schemi ER selezionando gli elementi da disegnare dalla barra in alto e posizionandoli nel disegno

Per mantenere i controlli disegnati in precedenza, essi sono stati inseriti in una variabile sessione, dato che il meccanismo view state non funziona per le collezioni di oggetti. Gli oggetti inseriti nella variabile sessione vengono ricaricati all’interno della pagina ad ogni round trip

Page 9: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Realizzazione

Dichiarazione di nuovi tipi di dato RDF

Gerarchia dei tipi di dato definiti in RDF Schema

Esempio di dichiarazione di un nuovo tipo di dato

<xsd:simpleType name="maxCard"> <xsd:union> <xsd:simpleType> <xsd:restriction base="xsd:positiveInteger"/> </xsd:simpleType> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="N"/> <xsd:enumeration value="n"/> </xsd:restriction> </xsd:simpleType> </xsd:union></xsd:simpleType>

Per poter creare un vocabolario RDF degli elementi utilizzati dall’applicazione è necessario definire nuovi tipi di datoRDF mette a disposizione tre modalità, che possono essere combinate tra loro per definire nuovi tipi di dato:

Derivazione con restrizioneListaDerivazione per unione

Page 10: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Realizzazione

Creazione di un vocabolario RDF per la descrizione di schemi ER

Per la traduzione di uno schema ER in RDF è necessario creare un vocabolario che contenga tutti gli elementi che possono essere disegnati.

Oltre agli elementi, il vocabolario deve contenere tutte le definizioni delle proprietà di questi elementi. A questo proposito:

ElementoConAttributi

Elemento

Entità Associazione AttributoComposto

Partecipazione

ElementoConCardinalitàAttributo

AttributoMultiplo

AssociazioneBinaria AssociazioneNaria

ElementoDiGeneralizzazione

Generalizzazione Subset

Il metodo di definizione delle proprietà di RDF, in termini di dominio e range, ha portato alla creazione di una gerarchia degli elementi che compongono uno schema ERIn RDFS è permesso definire classi che ereditano direttamente da più di una classe

Gerarchia degli elementi all’interno del vocabolario RDF

Page 11: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Realizzazione

Traduzione dello schema ER disegnato in RDF

La pagina Web dinamica per la traduzione dello schema ER disegnato in codice RDF/XML:

Legge la variabile sessione che contiene tutti gli oggetti che rappresentano gli elementi disegnati e riceve tramite query string un parametro che indica se tradurre le informazioni di posizionamento

Scorre più volte la collezione di oggetti traducendo ogni volta una tipologia di elementi, le sue proprietà e gli elementi in esso contenuti

Per produrre un frammento di codice si serve della funzione AggiungiRiga passandogli il testo da visualizzare

public void AggiungiRiga(int tab, string text){

for(int i=0;i<tab;i++) txtRDF.Text= txtRDF.Text+"\t";

txtRDF.Text= txtRDF.Text+text+"\n";}

Procedura Aggiungi Riga

Pagina per la traduzione in RDF

Page 12: Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Realizzazione

Conclusioni e lavoro futuroIl lavoro svolto ha portato alla realizzazione di un’applicazione Web che

permette il disegno di schemi ER che: Permette di disegnare tutti e 9 gli elementi che compongono uno

schema Effettua numerosi controlli sui dati immessi dall’utente e sul

posizionamento degli elementie traduce gli schemi disegnati in RDF Includendo o meno le informazioni di posizionamento Presentando, nell’ultimo capitolo della tesi, una bibliografia ragionata

su RDF che riassume dove trovare risorse utili su questo nuovo standard

Possibili sviluppi dell’applicazione sono: Il recupero di uno schema ER disegnato in precedenza partendo dal

codice RDF/XML con le informazioni di posizionamento che aveva generato

Modifica e Cancellazione degli elementi disegnati Eliminazione di vincoli grafici che non permettono, ad esempio, di

poter creare una qualsiasi identificazione esterna Controlli complessi sugli elementi dello schema come, ad esempio, il

controllo che lo schema sia connesso