1 / 37

Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna

RDQL. Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna. Università degli Studi di Bari. COS’E’ RDQL….

zihna
Download Presentation

Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  18. Il Costruttore queryL() • Crea una istanza vuota della classe. Università degli Studi di Bari

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  33. Il Metodo existCONDITION Verifica nella classe la presenza di condizioni. Il risultato sarà un valore booleano. Esempio: nomeClasse.existCONDITION(); Università degli Studi di Bari

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

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

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

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

More Related