Post on 01-May-2015
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
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
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
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
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
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>
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">…
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
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
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
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
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