370 likes | 472 Views
RDQL. Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna. Università degli Studi di Bari. COS’E’ RDQL….
E N D
RDQL 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’ identificatorepiù 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 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’… 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.
queryL 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… paramS.add(“?z”); paramW.add(“?y”); paramW.add(“?w”); paramW.add(“?z < 5”); paramW.add(“?z”); new queryL(paramS, paramW); 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
…Esempio 2… paramS.add(“?z”); paramW.add(“?y”); paramW.add(“?w”); paramW.add(“?z < 5”); paramW.add(“?z”); paramF.add(“<prova.rdf>”); new queryL ( paramS, paramF, paramW ); SELECT ?z FROM <prova.rdf> WHERE (?y, ?w, ?z) AND (?z < 5) Corrisponde a : Che è equivalente a : new queryL(paramS, paramF, paramW, null); Università degli Studi di Bari
…Esempio 3 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 ); SELECT ?y FROM <people.rdf> WHERE (?x, <dt:age>, ?z), (?x, <dt:name>, ?y) AND ?z > 20 USING dt for <http://foo.org#> 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 <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