Carluccio Antonio
Carluccio Alessandra
Caricola Giovanni
Vizzino Anna
Università degli Studi di Bari
COS’E’ RDQL…
Il linguaggio RDQL è un linguaggio d’interrogazione
per i modelli RDF sviluppato inizialmente dai laboratori
Hewlett-Packard nell’ambito del progetto Jena.
L'idea è stata quella di fornire un modello di query
orientato ai dati : nasce così un linguaggio ad alto
livello che consente di interrogare in modo semplice un
modello RDF.
Università degli Studi di Bari
…COS’E’ RDQL…
questo linguaggio è basato su SquishQL (che in se è
derivato da rdfDB) ed è compreso nel Rdf Jena
Toolkit.
Università degli Studi di Bari
SINTASSI RDQL…
RDQL interroga i documenti di RDF che indicano il loro
URL (HTTP://) o i loro percorsi (se sono in locale), usando
una sintassi simile a SQL.
Clausola SELECT
Seleziona le variabili che devono fornire la risposta
alla query.
Università degli Studi di Bari
…SINTASSI RDQL…
Clausola FROM
Indica le fonti di RDF da interrogare, ogni fonte è
racchiusa tra i segni di minore e maggiore e sono separate
da virgole. Le fonti possono essere URLs o percorsi per i
documenti locali di RDF.
Esempio:
< dadoc.rdf >, < http://example.com/sample.rdf >, <
rdfs/other.rdf >
Università degli Studi di Bari
…SINTASSI RDQL…
Clausola WHERE…
E’ l’ identificatore più importante in una espressione RDQL
ed è composta da una sequenza di triple (soggetto,
predicato, oggetto), racchiuse tra parentesi e separate
da virgole.
Università degli Studi di Bari
…SINTASSI RDQL…
…Clausola WHERE
Un predicato può anche essere un namespace dichiarato con
l’identificatore USING.
Esempio : (?x, <foo:has >, ?y), (?y, <foo:color>, ?z)
Università degli Studi di Bari
…SINTASSI RDQL…
Clausola AND
Specifica le espressioni booleane.
Nell’esempio di prima:
(Seleziona tutti gli oggetti che hanno un articolo blu)
SELECT ?x
FROM < doc.rdf >
WHERE (?x, <foo:has>, ?y), (?y, <foo:color>, ?z) AND ?z=="blue"
Università degli Studi di Bari
…SINTASSI RDQL
Clausola USING
E’ un modo per accorciare la lunghezza delle URI
infatti dichiara tutti i namespaces che saranno
usati per le proprietà di RDF, ed usa la notazione:
Esempio:
USING foo per < http://foo.org/properties # >
Università degli Studi di Bari
RDF COS’E’…
 Resource Description Framework(RDF) è un modello
astratto finalizzato alla rappresentazione di metainformazioni relative a risorse accessibili via Web.
 E’ un linguaggio specificamente progettato per la
descrizione di metadati relativi a risorse disponibili
attraverso il Web.
Università degli Studi di Bari
…RDF COS’E’…
L’utilizzo del formato RDF si suddivide nella stesura di due
tipi di documenti.
 La preparazione di un vocabolario di termini specifici del
contesto che si vuole rappresentare(RDF schema).
 La realizzazione della base di metadati che, utilizzando i
termini definiti nello schema RDF, descrive le risorse del
contesto applicativo a cui si riferiscono
Università degli Studi di Bari
…RDF COS’E’…
 E’ alla base del “Semantic Web” poiché permette di
condividere la conoscenza sul Web, per applicativi che
debbano scambiarsi informazioni, evitando perdita di
significato.
 RDF si basa sull’idea che le cose che intendiamo descrivere
hanno delle proprietà che hanno dei valori; su questa base
fornisce un semplice meccanismo per definire dei fatti
relativi a risorse (Web). Tale meccanismo è basato sul
paradigma SPV (subject, predicate, value/object).
…RDF
COS’E’
Supponiamo per esempio di voler dire che una certa pagina web
(http://www.miosito.com/index.html) è scritta in italiano.
http://www.miosito.com/index.html è il soggetto (subject)
lingua è il predicato (predicate )
italiano è il valore (value/object)
http://ecc. è un’URL (Uniform Resource Locator), in altri termini è un
identificatore univoco della pagina in questione, che consente di accedervi
senza ambiguità alcuna. Il predicato “lingua” e il valore “italiano” sono
invece stringhe di caratteri.
Carluccio Antonio
Carluccio Alessandra
Caricola Giovanni
Vizzino Anna
Università degli Studi di Bari
Cosa fa la classe queryL ?…
Permette di costruire delle query secondo il linguaggio
d’interrogazione RDQL.
Le query vengono implementate come istanze di questa
classe.
Fornisce alcuni metodi che permettono, una volta creata
la classe, di aggiungere gli identificatori FROM e USING,
se questi non sono stati forniti alla query.
Università degli Studi di Bari
…Cosa fa la classe queryL ?
Fornisce dei metodi per verificare la presenza di
identificatori e di condizioni all’ interno della query.
Fornisce dei metodi che permettono di aggiungere delle
condizioni alla query costruita, con gli operatori booleani
AND, OR, NOT.
Università degli Studi di Bari
Costruttori della Classe
I costruttori della classe sono 4 e si differenziano
per il numero di argomenti di tipo List:
queryL()
queryL(paramS, paramW)
queryL(paramS, paramF, paramW)
query(paramS, paramF, paramW, paramU)
Università degli Studi di Bari
Il Costruttore queryL()
Crea una istanza vuota della classe.
Università degli Studi di Bari
Il Costruttore
queryL(paramS, paramW)
Crea una istanza contenente una query di base
(Select e Where con i loro elementi ).
Il primo argomento paramS fornisce gli elementi
di Select.
Il secondo argomento paramW fornisce gli elementi di
Where.
Università degli Studi di Bari
Il Costruttore
queryL(paramS, paramF, paramW)
Crea una istanza contenente una query di base con
l’aggiunta dell’ identificatore FROM.
Il primo e terzo argomento paramS e paramW vengono
utilizzati per fornire gli elementi di SELECT e WHERE.
Il secondo argomento paramF fornisce gli elementi di
FROM.
Università degli Studi di Bari
Il Costruttore
queryL(paramS, paramF, paramW, paramU)
Crea una istanza contenente una query di base con
l’aggiunta dei identificatori FROM e USING.
I prime tre argomenti paramS, paramF, paramW vengono
utilizzati per fornire gli elementi di SELECT, FROM e
WHERE.
Il quarto argomento paramU fornisce gli elementi di
USING.
Università degli Studi di Bari
Esempio 1…
SELECT ?z
WHERE (?y, ?w, ?z)
AND (?z < 5)
Corrisponde a :
Ed è equivalente a :
new queryL(paramS, null, paramW);
new queryL(paramS, null, paramW, null);
Università degli Studi di Bari
paramS.add(“?z”);
paramW.add(“?y”);
paramW.add(“?w”);
paramW.add(“?z < 5”);
paramW.add(“?z”);
new queryL(paramS, paramW);
…Esempio 2…
paramS.add(“?z”);
SELECT ?z
Corrisponde a :
FROM <prova.rdf>
WHERE (?y, ?w, ?z) AND (?z < 5)
paramW.add(“?y”);
paramW.add(“?w”);
paramW.add(“?z < 5”);
paramW.add(“?z”);
paramF.add(“<prova.rdf>”);
new queryL ( paramS,
paramF, paramW );
Che è equivalente a :
new queryL(paramS, paramF, paramW, null);
Università degli Studi di Bari
…Esempio 3
SELECT ?y
FROM <people.rdf>
WHERE (?x, <dt:age>, ?z), Corrisponde a :
(?x, <dt:name>, ?y)
AND ?z > 20
USING dt for <http://foo.org#>
paramS.add(“?y”);
paramW.add(“?x”);
paramW.add(“<dt:age>”);
paramW.add(“?z”);
paramW.add(“?x”);
paramW.add(“<dt:name>”);
paramW.add(“?y”);
paramW.add(“<?z>20”);
paramU.add(“dt”);
paramU.add(“<http://foo.org#>”);
paramF.add(“<people.rdf>”);
new queryL ( paramS, paramF,
paramW, paramU );
Università degli Studi di Bari
Metodi della Classe…
I metodi della classe si dividono in metodi che…
Forniscono identificatori in aggiunta:
addFrom (List paramF)
addUsing (List paramU)
Forniscono delle condizioni aggiuntive:
addAndCondition (String condition)
addOrCondition (String condition)
addAndNotCondition (String condition)
addOrNotCondition (String condition)
Università degli Studi di Bari
…Metodi della Classe
Permettono di conoscere lo stato della query:
existCONDITION ()
existFROM ()
existQueryBase ()
existUSING ()
Permette di ottenere la query RDQL, tramite una string:
toString ()
Università degli Studi di Bari
Il Metodo addFrom
Permette di aggiungere alla query la sezione FROM.
Esempio:
Voglio aggiungere alla query la sezione :
FROM <prova.rdf>
Devo scrivere la seguente istruzione:
nomeClasse.addFrom(“<prova.rdf>”);
Università degli Studi di Bari
Il Metodo addUsing
Permette di aggiungere alla query la sezione USING.
Esempio:
Voglio aggiungere alla query:
USING dt FOR <http://foo.org#>
Devo scrivere la seguente istruzione:
nomeClasse.addUsing(List ParamU);
Con paramU contenente “dt” e “<http://foo.org#> ”
Università degli Studi di Bari
Il Metodo addAndCondition
Permette di aggiungere una condizione con l’operatore AND;
se esistono già altre condizioni, viene aggiunta con && altrimenti con
AND.
Esempio:
Voglio aggiungere alla query la seguente condizione:
?z < 7
Devo scrivere la seguente istruzione:
nomeClasse.addAndCondition(“?x < 7”);
Università degli Studi di Bari
Il Metodo addAndNotCondition
Permette di aggiungere la negazione di una condizione con
l’operatore AND; se esistono già altre condizioni viene aggiunta con
&& altrimenti con AND.
Esempio:
Voglio aggiungere alla query la seguente condizione negata:
?z < 7
Devo scrivere la seguente istruzione:
nomeClasse.addAndNotCondition(“?z < 7”);
Università degli Studi di Bari
Il Metodo addOrCondition
Permette di aggiungere una condizione con l’operatore OR; se
esistono già altre condizioni viene aggiunta con || altrimenti
con AND.
Esempio:
Voglio aggiungere alla query la seguente condizione:
?z < 7
Devo scrivere la seguente istruzione:
nomeClasse.addOrCondition(“?z < 7”);
Università degli Studi di Bari
Il Metodo addOrNotCondition
Permette di aggiungere la negazione di una condizione con
l’operatore OR; se esistono già altre condizioni viene aggiunta con
|| altrimenti con AND.
Esempio:
Voglio aggiungere alla query la seguente condizione negata:
?z < 7
Devo scrivere la seguente istruzione:
nomeClasse.addOrNotCondition(“?z < 7”);
Università degli Studi di Bari
Il Metodo existCONDITION
Verifica nella classe la presenza di condizioni.
Il risultato sarà un valore booleano.
Esempio:
nomeClasse.existCONDITION();
Università degli Studi di Bari
Il Metodo existFROM
Verifica nella classe la presenza dell’ identificatore FROM.
Il risultato sarà un valore booleano.
Esempio:
nomeClasse.existFROM();
Università degli Studi di Bari
Il Metodo existUSING
Verifica nella classe la presenza dell’ identificatore USING.
Il risultato sarà un valore booleano.
Esempio:
nomeClasse.existUSING();
Università degli Studi di Bari
Il Metodo existQueryBase
Verifica nella classe la presenza di una query contenente gli
identificatori base SELECT e WHERE.
Il risultato sarà un valore booleano.
Esempio:
nomeClasse.existQueryBase();
Università degli Studi di Bari
Il Metodo toString
Permette di ottenere la query costituita come stringa.
Il risultato sarà un valore di tipo String.
Esempio:
nomeClasse.toString();
Università degli Studi di Bari
Scarica

Document