Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna Università degli Studi di...

37
Carluccio Antonio Carluccio Alessan Caricola Giovanni Vizzino Anna Università degli Studi di Bari

Transcript of Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna Università degli Studi di...

Page 1: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna Università degli Studi di Bari.

Carluccio AntonioCarluccio AlessandraCaricola GiovanniVizzino Anna

Università degli Studi di Bari

Page 2: 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

Page 3: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 4: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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.

Università degli Studi di Bari

Clausola SELECTSeleziona le variabili che devono fornire la

risposta alla query.

Page 5: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna Università degli Studi di Bari.

…SINTASSI RDQL…

  Clausola FROMIndica 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

Page 6: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 7: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 8: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna Università degli Studi di Bari.

…SINTASSI RDQL…

Clausola ANDSpecifica 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

Page 9: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna Università degli Studi di Bari.

…SINTASSI RDQL

Clausola USINGE’ 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

Page 10: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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’…

Page 11: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 12: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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).

Page 13: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna Università degli Studi di Bari.

…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.

Page 14: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna Università degli Studi di Bari.

Carluccio AntonioCarluccio AlessandraCaricola GiovanniVizzino Anna

Università degli Studi di Bari

Page 15: 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

Page 16: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 17: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 18: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna Università degli Studi di Bari.

Il Costruttore queryL()

Crea una istanza vuota della classe.

Università degli Studi di Bari

Page 19: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 20: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 21: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 22: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 23: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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)

Che è equivalente a :

new queryL(paramS, paramF, paramW, null);

Corrisponde a :

Università degli Studi di Bari

Page 24: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna Università degli Studi di Bari.

…Esempio 3

SELECT ?y FROM <people.rdf> WHERE (?x, <dt:age>, ?z), (?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 );

Corrisponde a :

Università degli Studi di Bari

Page 25: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 26: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 27: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 28: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 29: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 30: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 31: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 32: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 33: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 34: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 35: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 36: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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

Page 37: Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna 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