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:
Prof. Sonia Bergamaschi
Candidato:
Mattia Bonacorsi
Anno Accademico 2003-2004
Scopo e strumenti
Scopo: 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 Trip
Analizziamo la divisione di lavoro di un form
in una pagina Web
Il browser presenta il form all’utente
L’utente interagisce con il form
L’iterazione dell’utente con i componenti server
causano un invio della pagina al server
Il server elabora la pagina inviata e la restituisce
al browser
Il 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 String
Modalità 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
Dichiarazione RDF
<?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>
Codice RDF/XML
Grafo RDF
http://www.example.org/index.html
http://www.example.org/terms/creation-date
16 agosto 1999
Terna RDF
RDF Schema
RDF 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
<?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">
…
Un applicazione permette la
traduzione degli schemi disegnati in
codice RDF/XML
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
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
public void SalvaComponenti()
{
Control[] cl = new Control[Panel1.Controls.Count];
Panel1.Controls.CopyTo(cl,0);
Session["Controls"] = cl;
}
Procedura per salvare i componenti
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 caricare i componenti
Dichiarazione di nuovi tipi di dato
RDF
Per poter creare un vocabolario RDF degli elementi
utilizzati dall’applicazione è necessario definire nuovi
tipi di dato
RDF mette a disposizione tre modalità, che possono
essere combinate tra loro per definire nuovi tipi di
dato:
Derivazione con restrizione
Lista
Derivazione per unione

Gerarchia dei tipi di dato definiti in RDF Schema
<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>
Esempio di dichiarazione di un nuovo tipo di dato
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:
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
ER
In RDFS è permesso definire classi che ereditano direttamente da più di una classe
Elemento
Attributo
ElementoConCardinalità
ElementoConAttributi
AttributoMultiplo
Entità
Associazione
AssociazioneBinaria
AttributoComposto
AssociazioneNaria
Partecipazione
ElementoDiGeneralizzazione
Generalizzazione
Subset
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:


Pagina per la traduzione in RDF
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

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
Conclusioni e lavoro futuro
Il 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 elementi
e 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
Scarica

- DBGroup - Università degli studi di Modena e Reggio