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 ( o i loro percorsi (se sono in locale), usando una sintassi simile a SQL. Università degli Studi di Bari Clausola SELECT Seleziona le variabili che devono fornire la risposta alla query.
…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:,, 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,, ?y), (?y,, ?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 WHERE (?x,, ?y), (?y,, ?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 Università degli Studi di Bari
Resource Description Framework(RDF) è un modello astratto finalizzato alla rappresentazione di meta- informazioni 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’…
…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 ( è scritta in italiano. è il soggetto (subject) lingua è il predicato (predicate ) italiano è il valore (value/object) è 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 USIN G, 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); paramS.add(“?z”); paramW.add(“?y”); paramW.add(“?w”); paramW.add(“?z < 5”); paramW.add(“?z”); new queryL(paramS, paramW); Università degli Studi di Bari
…Esempio 2… paramS.add(“?z”); paramW.add(“?y”); paramW.add(“?w”); paramW.add(“?z < 5”); paramW.add(“?z”); paramF.add(“ ”); new queryL ( paramS, paramF, paramW ); SELECT ?z FROM WHERE (?y, ?w, ?z) AND (?z < 5 ) Che è equivalente a : new queryL(paramS, paramF, paramW, null); Corrisponde a : Università degli Studi di Bari
…Esempio 3 SELECT ?y FROM WHERE (?x,, ?z), (?x,, ?y) AND ?z > 20 USING dt for paramS.add(“?y”); paramW.add(“?x”); paramW.add(“ ”); paramW.add(“?z”); paramW.add(“?x”); paramW.add(“ ”); paramW.add(“?y”); paramW.add(“ 20”); paramU.add(“dt”); paramU.add(“ ”); paramF.add(“ ”); new queryL ( paramS, paramF, paramW, paramU ); Corrisponde a : 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 Devo scrivere la seguente istruzione: nomeClasse.addFrom(“ ”); Università degli Studi di Bari
Il Metodo addUsing Permette di aggiungere alla query la sezione USING. Esempio: Voglio aggiungere alla query: USING dt FOR Devo scrivere la seguente istruzione: nomeClasse.addUsing(List ParamU); Con paramU contenente “dt” e “ ” 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