Your SlideShare is downloading. ×
0
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Dezvoltarea aplicațiilor Web (6/12): Managementul datelor RDF. Interogarea datelor RDF cu SPARQL

176

Published on

Dezvoltarea aplicațiilor Web (6/12) — detalii la http://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html

Dezvoltarea aplicațiilor Web (6/12) — detalii la http://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
176
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. Dr. Sabin Buragawww.purl.org/net/busaco Dezvoltarea aplicațiilor Web managementul datelor RDF
  2. Georges-Louis de Buffon Dr. Sabin Buragawww.purl.org/net/busaco “Trebuie să adunăm fapte pentru a avea idei.”
  3. Dr. Sabin Buragawww.purl.org/net/busaco Ce modele de date sunt disponibile pe Web?
  4. textuale date nestructurate – eventual, multilingve structurate RDF – reprezintă “lucruri” (resurse) din lumea reală: indivizi, servicii, aplicații,... – de dorit, modelate formal hibride date structurate “scufundate” în text e.g., microdate HTML5, RDFa Dr. Sabin Buragawww.purl.org/net/busaco modele de date disponibile pe Web
  5. date RDF (reprezentare în memorie) date RDF (documente de sine-stătătoare) date conforme modelului RDF (“scufundate” în alte resurse) conform (Bailer & Hausenblas, 2007) date non-conforme modelului RDF (de sine-stătătoare + incluse în fișiere) conform (Bailer & Hausenblas, 2007) Dr. Sabin Buragawww.purl.org/net/busaco model RDF abstract
  6. date RDF (reprezentare în memorie) RDF/XML, N3, TriX, N-Triple,… (serializări) cod binar date RDF (documente de sine-stătătoare) date conforme modelului RDF RDFa, (“scufundate” în alte resurse) Semantic MediaWiki baze de date conform (Bailer & Hausenblas, 2007) relaționale, XML, date non-conforme modelului RDF HTML, microformate, (de sine-stătătoare + incluse în fișiere) microdate, JSON conform (Bailer & Hausenblas, 2007) Dr. Sabin Buragawww.purl.org/net/busaco model RDF abstract
  7. Dr. Sabin Buragawww.purl.org/net/busaco Ce instrumente de procesare a declarațiilor RDF putem folosi?
  8. Procesor (parser) RDF preluarea datelor disponibile în diverse formate și reprezentarea lor ca triple RDF Dr. Sabin Buragawww.purl.org/net/busaco necesități
  9. Dr. Sabin Buragawww.purl.org/net/busaco api-uri & biblioteci rdf – exemple ARC2 (PHP) dotNetRDF (C#) Graphite (PHP) Jena Semantic Web Toolkit (Java) PerlRDF (Perl) RDFLib (Python) rdfQuery.js, rdfstore-js (JavaScript) Redland (C; portări în alte limbaje: C#, Objective-C, PHP) Sesame (Java) ... detalii la http://www.w3.org/2001/sw/wiki/Tools
  10. Serializator (serializer) RDF exprimarea modelului intern RDF în diverse formate N-Triples, RDF/XML, Turtle (N3), TriX, RDFa, JSON-LD,... Dr. Sabin Buragawww.purl.org/net/busaco necesități
  11. Convertor RDF preluarea datelor din alte modele și transformarea lor in RDF extragerea directă din documentele HTML via scrapers/harvesters Dr. Sabin Buragawww.purl.org/net/busaco necesități
  12. Extractoare/convertoare RDF – exemple: Any23 (Java) Babel (Java) Greengrass (C#) LinqToRDF (C#) Raptor (C) RDF123 (Java) RDFSlice (Java) Semantic Radar (JavaScript – extensie Firefox) URIBurner – serviciu Web: http://linkeddata.uriburner.com/ Dr. Sabin Buragawww.purl.org/net/busaco instrumente
  13. Inițiativa Triplr serviciu Web REST de conversie a datelor (d)in RDF bazat pe biblioteca Redland http://triplr.org/format-de-ieșire/uri-sursă Dr. Sabin Buragawww.purl.org/net/busaco instrumente
  14. Inițiativa Triplr exemple: din HTML în RDF/XML via GRDDL http://triplr.org/rdf/www.w3.org/People/Connolly/ Dr. Sabin Buragawww.purl.org/net/busaco instrumente conversie în format Turtle a unui fișier FOAF (RDF/XML) http://triplr.org/turtle/profs.info.uaic.ro/~busaco/busaco.foaf.xml
  15. Navigatoare RDF (hyperdata browsers) redau utilizatorului (uman) o reprezentare “frumoasă” a triplelor RDF, permitând interacțiunea cu datele: vizualizare, filtrare,... Dr. Sabin Buragawww.purl.org/net/busaco necesități
  16. Navigatoare RDF (hyperdata browsers) exemple: Disco Marbles OpenLink Data Explorer Q&D RDF Browser Tabulator uzual, disponibile ca extensii pentru browser-ul Web Dr. Sabin Buragawww.purl.org/net/busaco instrumente
  17. Dr. Sabin Buragawww.purl.org/net/busaco necesități Extragerea și procesarea datelor existente pe Web o soluție „clasică”: information extraction (eventual, pe baza procesării limbajului natural – NLP) în cazul nostru, dorim să recurgem la tehnologiile Web-ului semantic
  18. O modalitate standardizată de “convertire” în triple RDF a construcțiilor semantice încapsulate în documentele Web Dr. Sabin Buragawww.purl.org/net/busaco necesități
  19. GRDDL – Gleaning Resource Descriptions from Dialects of Languages Dr. Sabin Buragawww.purl.org/net/busaco grddl glean verb [ trans. ] extract (information) from various sources: the information is gleaned from press clippings. • collect gradually and bit by bit: objects gleaned from local markets. • historical gather (leftover grain or other produce) after a harvest: [as n. ] (gleaning) the conditions of farm workers in the ‘30s made gleaning essential.
  20. Dr. Sabin Buragawww.purl.org/net/busaco grddl Permite asocierea de transformări din formate structurate – e.g., microformate, RDFa, XML – în declarații RDF, fără pierderea semanticii (meaning) www.w3.org/TR/grddl/ www.w3.org/TR/grddl-primer/
  21. Există o multitudine de documente modelate pe baza unor dialecte XML – e.g., ODF, RSS/Atom, XHTML etc. –, încapsulând date care ar putea fi exprimate via RDF se dorește o asociere faithful – se păstrează înțelesul Dr. Sabin Buragawww.purl.org/net/busaco grddl
  22. Există o multitudine de documente modelate pe baza unor dialecte XML – e.g., ODF, RSS/Atom, XHTML etc. –, încapsulând date care ar putea fi exprimate via RDF se dorește o asociere faithful – se păstrează înțelesul se va specifica o transformare GRDDL uzual, se folosesc transformări XSLT Dr. Sabin Buragawww.purl.org/net/busaco grddl
  23. Dr. Sabin Buragawww.purl.org/net/busaco grddl Berners-Lee, 2007: www.w3.org/2007/Talks/1211-whit-tbl/
  24. Un document XHTML ce include microformatul hCard: <html xmlns="http://www.w3.org/1999/xhtml"> <head profile="http://www.w3.org/2003/g/data-view"> <link rel="transformation" href="mHTML2RDF.xsl" /> <title>...</title></head> transformare <body> GRDDL <div class="vcard"> <p class="fn n"> <span class="given-name">Sabin</span> <span class="family-name">Buraga</span></p> </div> ... </body> </html> Dr. Sabin Buragawww.purl.org/net/busaco grddl: exemplu
  25. În urma transformării XSLT, ar putea rezulta: <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:v="http://www.w3.org/2006/vcard/ns#"> <rdf:Description rdf:nodeID="EsAVHkUx6"> <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#VCard"/> <v:fn>Sabin Buraga</v:fn> </rdf:Description> <rdf:Description rdf:nodeID="EsAVHkUx8"> <rdf:type rdf:resource="http://www.w3.org/2006/vcard/ns#Name"/> <v:given-name>Sabin</v:given-name> <v:family-name>Buraga</v:family-name> </rdf:Description> </rdf:RDF> Dr. Sabin Buragawww.purl.org/net/busaco grddl: exemplu
  26. Efectuarea diverselor conversii via GRDDL: microformatul hCardRDF http://www.w3.org/2006/vcard/hcard2rdf.xsl microformatul hCalendarRDF http://www.w3.org/2002/12/cal/glean-hcal.xsl RDFaRDF http://www.w3.org/2001/sw/grddl-wg/td/RDFa2RDFXML.xsl detalii în R. Akerkar, Semantic Markup Report, NCE Tourism Fjord Norway, 2012 Dr. Sabin Buragawww.purl.org/net/busaco grddl: exemplu
  27. Date stocate în sisteme de baze de date relaționale  date modelate cu RDF asocieri directe – mappings (via schema bazei de date) Dr. Sabin Buragawww.purl.org/net/busaco necesități
  28. Dr. Sabin Buragawww.purl.org/net/busaco realizarea diferitelor asocieri exprimate via R2RML (RDB to RDF Mapping Language) recomandare a Consorțiului Web – 2012 www.w3.org/TR/r2rml/
  29. CREATE TABLE "Software" ( "ID" INT, PRIMARY KEY("ID"), "nume" CHAR(50), "desc" CHAR(300) ) CREATE TABLE "Utiliz" ( "ID" INT, PRIMARY KEY("ID"), "identit" CHAR(100), "soft" INT, FOREIGN KEY("soft") REFERENCES "Software"("ID") ) INSERT INTO "Software" ("ID", "nume", "desc") VALUES (13, 'Mageia', 'Sistem Linux') INSERT INTO "Utiliz" ("ID", "identit", "soft") VALUES (7, 'Dan', 13) INSERT INTO "Utiliz" ("ID", "identit", "soft") VALUES (8, 'Cristina', NULL) date RDF <Utiliz/ID=7> rdf:type <Utiliz> . <Utiliz/ID=7> <Utiliz#ID> 7. <Utiliz/ID=7> <Utiliz#identit> "Dan" . <Utiliz/ID=7> <Utiliz#soft> 13 . <Utiliz/ID=7> <Utiliz#ref-software> <Software/ID=13> . … <Software/ID=13> rdf:type <Software> . <Software/ID=13> <Software#ID> 13 . <Software/ID=13> <Software#nume> "Mageia" . <Software/ID=13> <Software#desc> "Sistem Linux" . asocieri directe Dr. Sabin Buragawww.purl.org/net/busaco baze de date relaționale gestionate via SQL recomandare W3C (M. Arenas et al., 2012) www.w3.org/TR/ rdb-direct-mapping/
  30. Motoare de căutare căutarea de documente RDF, eventual cu extragerea de cunoștințe – e.g., meta-date – din alte resurse Web (HTML, RSS/Atom, microformate, microdate, RDFa,...) câteva exemple: Knoodle, SameAs, Sig.ma, Sindice, Swoogle Dr. Sabin Buragawww.purl.org/net/busaco necesități
  31. Dr. Sabin Buragawww.purl.org/net/busaco detalii despre Sindice API la http://sindice.com/developers/api
  32. Dr. Sabin Buragawww.purl.org/net/busaco Nu există posibilitatea de a utiliza un sistem de stocare/interogare a triplelor RDF?
  33. Datele RDF sunt menținute persistent în cadrul unui RDF store Dr. Sabin Buragawww.purl.org/net/busaco sisteme de stocare rdf
  34. Oferă posibilitatea fuzionării (merging) seturilor de date RDF date 2 seturi de triple RDF, în urma fuzionării va rezulta un set de triple RDF ce include toate triplele din ambele seturi de intrare în care resursele având același URI sunt considerate echivalente Dr. Sabin Buragawww.purl.org/net/busaco sisteme de stocare rdf
  35. Intern, un RDF store poate stoca triplele într-o varietate de formate baze de date relaționale versus structuri de date speciale inclusiv, la nivel de cloud Dr. Sabin Buragawww.purl.org/net/busaco sisteme de stocare rdf
  36. Asigurarea interoperabilității este facilitată de formatele de serializare standardizate RDF/XML, Turtle, JSON(-LD) Dr. Sabin Buragawww.purl.org/net/busaco sisteme de stocare rdf
  37. Aspecte de interes: performanța – e.g., scalabilitatea, timpul de răspuns,... capacitatea de stocare facilitățile privind interogarea datelor API-urile disponibile fiabilitatea securitatea Dr. Sabin Buragawww.purl.org/net/busaco sisteme de stocare rdf
  38. Exemple de implementări curente (unele disponibile în regim open source) stocare în structuri de date native: AllegroGraph (Common Lisp & multe alte limbaje de programare), BigData (Java), Jena TBD (Java), Sesame (Java), Stardog (Java, Groovy) www.w3.org/wiki/LargeTripleStores Dr. Sabin Buragawww.purl.org/net/busaco sisteme de stocare rdf
  39. Exemple de implementări curente (unele disponibile în regim open source) folosind sisteme tradiționale de baze de date: IBM DB2 (Java), Jena SDB (Java), OpenLink Virtuoso (C, PHP, Perl, Ruby, JS,…), OWLIM (Java), StrixDB (Lua) http://semanticweb.com/introduction-to-triplestores_b34996 Dr. Sabin Buragawww.purl.org/net/busaco sisteme de stocare rdf
  40. Exemple de implementări curente (unele disponibile în regim open source ori freeware) bazate pe sisteme NoSQL: BrightstarDB (C#), CumulusRDF (utilizează Cassandra), RDF Graph for Oracle NoSQL DB, SparkleDB (C++) recurgând la baze de date native XML: MarkLogic 7 (interogări XQuery, SQL, SPARQL + API-uri diverse) Dr. Sabin Buragawww.purl.org/net/busaco sisteme de stocare rdf
  41. Utilizări notabile Dr. Sabin Buragawww.purl.org/net/busaco sisteme de stocare rdf OWLIM folosit de BBC, FactForge și LinkedLifeData și inclus în GATE (General Architecture for Text Engineering) Best Buy, inQuest și NASA recurg la Stardog OpenLink Virtuoso utilizat de DBpedia și Linked Open Data Cloud data.gov.uk se bazează pe Jena TDB
  42. Dr. Sabin Buragawww.purl.org/net/busaco Există un limbaj de interogare a seturilor de triple RDF?
  43. SPARQL Protocol and RDF Query Language Dr. Sabin Buragawww.purl.org/net/busaco sparql limbaj descriptiv standardizat pentru realizarea de interogări pe baza potrivirilor de șabloane referitoare la triple RDF inspirat din RDQL – oferit de Jena, RAP, Redland etc.
  44. Oferă suport pentru manipularea construcțiilor RDF Pune la dispoziție operații asupra grafurilor RDF Independent de platforma software utilizată limbaj de interogare + protocol de acces la triple RDF Dr. Sabin Buragawww.purl.org/net/busaco sparql
  45. Recomandări ale Consorțiului Web: SPARQL 1.0 (2008) permite doar acces la date (interogări read-only) www.w3.org/TR/rdf-sparql-query/ SPARQL 1.1 (2013) oferă și posibilități de actualizare a datelor www.w3.org/TR/sparql11-overview/ Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  46. Modelul de interogare e fundamentat de șabloane de grafuri RDF – graph patterns Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  47. Termeni RDF (RDF-T): reuniunea mulțimilor IRI, noduri blanc, literali RDF Variabile de interogare (V): simboluri prefixate de “?” sau de “$” Șablon (triple pattern): membru al mulțimii (RDF-T  V)  (IRI  V)  (RDF-T  V) Șabloane de tip graf: mulțimi de șabloane Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  48. Convenții sintactice bazate pe Turtle/N3 triplele RDF sunt considerate ca fiind tablouri de termeni RDF Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  49. Convenții sintactice bazate pe Turtle/N3 triplele RDF sunt considerate ca fiind tablouri de termeni RDF termen RDF = IRI | nod blanc | literal pattern de triple = tablou de termeni RDF sau nume de variabile (termeni liberi) Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  50. URI – sau, mai general, IRI – delimitați de “<” si “>” situl Web al unei persoane: <http://www.purl.org/net/busaco> o proprietate definită de specificația FOAF: <http://xmlns.com/foaf/0.1/name> o clasă de resurse: <http://dbpedia.org/ontology/Film> Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  51. Pentru a referi spații de nume ale vocabularelor utilizate se folosește construcția PREFIX PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dbpedia: <http://dbpedia.org/ontology/> lista prefixelor comune: http://prefix.cc/ Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  52. Nodurile blanc se specifică prin _:nume sau sunt delimitate de [ și ] dacă se folosesc o singură dată Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  53. Literali RDF (șiruri de caractere cu atribute opționale) "Web" "Web"@ro "true"^^xsd:boolean "true"^^xsd:string # se indica limba # se specifică tipul de date Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  54. Abrevieri referitoare la triple :s :s :p :p1 :p2 :o1 , :o2 . :o1 ; :o2 . Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare echivalent cu :s :s :p :p :o1 . :o2 . echivalent cu :s :s :p1 :p2 :o1 . :o2 .
  55. Abrevieri privitoare la nodurile blanc :s :p [ :p' :o ] echivalent cu :s :p _:x . _:x :p' :o . Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  56. Un șablon (pattern) permite specificarea de variabile indicând date ce vor fi returnate în urma realizării interogării ?subiect ?predicat ?obiect . Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  57. Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare Șablon: subiect ?predicat ?obiect . ?predicat și ?obiect reprezintă necunoscutele (unbounded) ?obiect ?predicat subiect ?predicat obiect1 ?obiect obiect2 ?predicat ?obiect obiectn după (Corno & Farinetti, 2009)
  58. Exemplu lista persoanelor inter-conectate via predicatul (proprietatea) foaf:knows ?persoana foaf:knows ?altaPersoana . Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  59. Exemplu descoperirea proprietătilor/relațiilor dintre subiect și obiect _:subiect ?predicat _:obiect . Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  60. Șabloanele pot fi combinate pentru a forma șabloane mai complexe șablon de tip graf (BGP – basic graph pattern) Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  61. Șabloanele pot fi combinate pentru a forma șabloane mai complexe șablon de tip graf (BGP – basic graph pattern) componente ale unei interogări SPARQL exprimate formal – algebric – prin tuplul (E, DS, QF) E = expresie SPARQL DS = set de date RDF (data set) local/disponibil pe Web QF = formular de interogare (query form) Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  62. SELECT ?contrib WHERE { <http://en.wikipedia.org/> <http://purl.org/dc/elements/1.1/contributor> ?contrib . selectarea resurselor } ce au contribuit la o resursă { … } desemnează un graph pattern în acest exemplu, se utilizează vocabularul DCMI Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  63. Rezultatul interogării poate fi: un tabel de valori corespunzătoare variabilelor utilizate, rezultat precizat prin SELECT Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  64. Rezultatul interogării poate fi: o valoare booleană întoarsă de construcția ASK “este adevărat că…?” Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  65. Rezultatul interogării poate fi: un graf RDF creat via CONSTRUCT sau DESCRIBE CONSTRUCT oferă un graf în care variabilele sunt înlocuite cu valorile găsite DESCRIBE întoarce un graf care descrie resursele găsite (structura datelor e determinată de procesorul RDF) Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  66. Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare anatomia unei interogări SPARQL 1.0 (Beckett, 2011)
  67. SELECT rezultatul interogării reprezintă un tabel secvență de rânduri compuse din valorile variabilelor (variable bindings) Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  68. vezi exemplele asociate cursului Dr. Sabin Buragawww.purl.org/net/busaco Considerăm date modelate în RDF privitoare la studenții FII
  69. SELECT ?persoana WHERE { ?persoana rdf:type foaf:Person } Dr. Sabin Buragawww.purl.org/net/busaco determinarea resurselor de tip persoană
  70. SELECT oferirea de valori distincte via DISTINCT ordonarea rezultatelor prin ORDER BY returnarea de sub-secvențe cu LIMIT și OFFSET precizarea construcțiilor opționale prin OPTIONAL Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  71. Datele interogate pot fi filtrate via clauza FILTER expresiile de filtrare includ: variabile operatori aritmetici/logici funcții (predefinite sau specificate de utilizator) tipuri de date definite de XML Schema Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  72. Funcții predefinite de testare: bound ( ), isBlank ( ), isLiteral ( ), isURI ( ) de conversie: str ( ), lang ( ), datatype ( ) altele: sameTerm ( ), langMatches ( ), regex ( ) Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  73. FILTER (?anul = 2) FILTER (?dataComanda < "2013-11-31T22:00:00Z"^^xsd:date) FILTER (?pop > 15000000 && langMatches (lang (?numeStat), "EN")) FILTER (?foss = 'Yes' && ?categ = 'Database/Datastore' && (?limbaj = 'PHP' || regex (?limbaj, "^C"))) Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  74. determinarea numelor tuturor resurselor de gen feminin Dr. Sabin Buragawww.purl.org/net/busaco SELECT ?numeStudenta WHERE { ?persoana foaf:gen ?gen ; foaf:firstName ?numeStudenta . FILTER regex (?gen, "^female", "i") . }
  75. SELECT DISTINCT ?studentSub22 ?titulatura WHERE { ?persoana foaf:age ?ani ; foaf:firstName ?studentSub22 OPTIONAL { ?persoana foaf:title ?titulatura . } FILTER (?ani <= 22) } numele și, eventual, titulatura persoanelor mai tinere Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  76. Nodurile blanc într-o interogare joacă rol de variabile anonime Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  77. SELECT DISTINCT ?nume ?ani ?prof s-a recurs la WHERE { vocabularul [ ] foaf:knows ?persoana . relationship ?persoana foaf:firstName ?nume ; rel:knowsByReputation <http://www.w3.org/People/Berners-Lee/card#i> ; foaf:age ?ani . ?prof s:examineaza ?persoana } numele și vârsta cunoscuților care-l „știu” pe Sir Tim Berners-Lee după reputație și sunt examinați de profesori Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  78. Crearea unui graf RDF se poate realiza prin CONSTRUCT CONSTRUCT (?s ?p ?o) WHERE { ?prop rdf:subject ?s . ?prop rdf:predicate ?p . ?prop rdf:object ?o . web:Wikipedia s:afirma ?prop . } determinarea tuturor declarațiilor reificate exprimate de Wikipedia Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  79. Construirea modelului RDF al edițiilor London Gazette conform Jeni Tennison (2009) PREFIX g: <http://www.gazettes-online.co.uk/ontology#> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> CONSTRUCT { ?issue a g:Issue . ?issue g:hasPublicationDate ?date . } WHERE { ?issue a g:Issue . ?issue g:hasPublicationDate ?date . FILTER ( ?date > "2011-01-01"^^xsd:date ) . } Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  80. Exemplu de recurgere la ASK (Lee Feigenbaum, 2009): aflarea răspunsului la întrebarea “Fluviul Amazon este mai lung decât Nilul?” PREFIX prop: <http://dbpedia.org/property/> ASK { <http://dbpedia.org/resource/Amazon_River> prop:length ?lungAmazon . <http://dbpedia.org/resource/Nile> prop:length ?lungNil . FILTER (?lungAmazon > ?lungNil) . } Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  81. Obținerea de șabloane de graf alternative se realizează via clauza UNION { ?nod voc:hasName ?nume } UNION { ?nod vcard:FN ?nume } Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  82. SELECT ?cunoscutSauRudaCuCristinaExaminatDoarDeDL WHERE { { ?pers foaf:knows s:cristina ; foaf:firstName ?cunoscutSauRudaCuCristinaExaminatDoarDeDL } UNION { ?pers rel:siblingOf s:cristina ; foaf:firstName ?cunoscutSauRudaCuCristinaExaminatDoarDeDL } s:dlucanu s:examineaza ?pers } Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare resursele cunoscute sau rude cu o persoană și examinate doar de un anumit profesor
  83. Întrebare: am putea realiza interogări SPARQL asupra mai multor grafuri RDF? Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  84. O interogare poate fi aplicată: grafului implicit (default graph) unuia sau mai multor grafuri externe (named graphs) fuziunii dintre graful implicit și cele externe Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  85. Graful RDF de intrare poate fi specificat via URI FROM <http://planetrdf.com/bloggers.rdf> Dr. Sabin Buragawww.purl.org/net/busaco sparql: limbaj de interogare
  86. SELECT ?numePers ?predicat ?obiect FROM <http://www.w3.org/People/Berners-Lee/card> FROM <http://www.dajobe.org/foaf.rdf> FROM <http://www.ivan-herman.net/foaf.rdf> FROM <http://www.lassila.org/ora.rdf> WHERE { tbl:i foaf:knows ?persoana . ?persoana foaf:name ?numePers ; rdfs:seeAlso ?iri . ?iri foaf:primaryTopic ?persoana2 . ?persoana2 foaf:name ?numePers2 ; ?predicat ?obiect . FILTER (?numePers = ?numePers2) . } adaptare după (J. Hebeler et al., 2009) Dr. Sabin Buragawww.purl.org/net/busaco extragerea tuturor datelor despre persoanele cunoscute de Sir Tim Berners-Lee
  87. Pune la dispoziție un mecanism de realizare de interogări SPARQL prin invocarea de servicii Web – SPARQL end-points recomandare a Consorțiului Web (2008, 2013) www.w3.org/TR/rdf-sparql-protocol/ www.w3.org/TR/sparql11-protocol/ Dr. Sabin Buragawww.purl.org/net/busaco sparql: protocol
  88. Serviciile SPARQL pot fi descrise și invocate via tehnologiile serviciilor Web clasice – i.e., prin REST un punct terminal SPARQL – generic sau particular – acceptă cereri și întoarce rezultate via HTTP(S) Dr. Sabin Buragawww.purl.org/net/busaco sparql: protocol
  89. Serviciile SPARQL pot fi descrise și invocate via tehnologiile serviciilor Web clasice – i.e., prin REST un punct terminal SPARQL – generic sau particular – acceptă cereri și întoarce rezultate via HTTP(S) rezultatul poate fi serializat într-o suită de formate: HTML, JSON, RDF (N3, Turtle), XML etc. Dr. Sabin Buragawww.purl.org/net/busaco sparql: protocol
  90. Serviciile SPARQL pot fi descrise și invocate via tehnologiile serviciilor Web clasice – i.e., prin REST un punct terminal SPARQL – generic sau particular – acceptă cereri și întoarce rezultate via HTTP(S) rezultatul poate fi serializat într-o suită de formate: HTML, JSON, RDF (N3, Turtle), XML etc. exemplu de punct terminal: http://dbpedia.org/sparql/ Dr. Sabin Buragawww.purl.org/net/busaco sparql: protocol
  91. Invocarea unui end-point SPARQL (serviciu REST) recepționând ca date de intrare o interogare: GET /sparql/?query=interogare&graph-uri= http://www.retea-sociala.info/document-foaf.rdf HTTP/1.1 Host: www.undeva.org User-agent: sparql-client/1.0 Accept: application/turtle, application/rdf+xml cerere HTTP Dr. Sabin Buragawww.purl.org/net/busaco sparql: protocol
  92. Un posibil răspuns din partea serviciului: HTTP/1.1 200 OK Date: Fri, 1 Nov 2013 19:33:00 GMT Server: Apache/2.4.6 (Unix) Connection: close Content-Type: application/turtle mesaj de răspuns HTTP @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix foaf: <http://xmlns.com/foaf/0.1/>. <http://sit.ro/Ana> foaf:knows <http://sit.ro/Bogdan> . … Dr. Sabin Buragawww.purl.org/net/busaco sparql: protocol
  93. Maniera de serializare XML a rezultatelor interogărilor SPARQL este standardizată SPARQL Query Results XML Format (2013) www.w3.org/TR/rdf-sparql-XMLres/ Dr. Sabin Buragawww.purl.org/net/busaco sparql: protocol
  94. Procesoare SPARQL – exemplificări: AllegroGraph (Java) ARC (PHP) ARQ (Java – bazat pe Jena) dotNetRDF (C#) EasyRDF (PHP) Rasqual (C, cu portări în alte limbaje) RDF::Query (Perl) sparql-p (Python) de consultat și http://semanticweb.org/wiki/Tools Dr. Sabin Buragawww.purl.org/net/busaco sparql: instrumente
  95. Implementări ale protocolului SPARQL http://www.w3.org/wiki/SparqlImplementations exemplificări: RDF2Go – abstractizează accesul la RDF stores SparqlGUI (C#), Twinkle (Java) editoare de interogări SPARQL pentru desktop Sparqling (JavaScript) – aplicație Web pentru Chrome Dr. Sabin Buragawww.purl.org/net/busaco sparql: instrumente
  96. Dr. Sabin Buragawww.purl.org/net/busaco sparql: instrumente SELECT ?nume ?url ?limbaj WHERE { [ g:label ?nume ; g:URL ?url ; g:FOSS ?foss ; g:Category ?categ ; g:Language ?limbaj ] . FILTER (?foss = 'Yes' && ?categ = 'Database/Datastore' && (?limbaj = 'PHP' || regex (?limbaj, "^C"))) . } ORDER BY ?limbaj Twinkle – interogări asupra unui document RDF local
  97. Dr. Sabin Buragawww.purl.org/net/busaco sparql: instrumente SELECT DISTINCT ?abilitati WHERE { [ a <http://dbpedia.org/ontology/FictionalCharacter> ; <http://dbpedia.org/property/abilities> ?abilitati ] . } LIMIT 30 interogări asupra DBpedia via instrumentul Twinkle: listarea abilităților personajelor fictive
  98. Dr. Sabin Buragawww.purl.org/net/busaco sparql: instrumente interogări SPARQL via o interfață Web aici, proiectul UniProt (Universal Protein Resource)
  99. Puncte terminale (end-points) SPARQL: http://www.w3.org/wiki/SparqlEndpoints + seturi de date deschise – exemplificări: DBpedia http://wiki.dbpedia.org/Downloads oferite de inițiativa Linked Open Data http://datahub.io/group/lod bioinformatică – proiectul BIO2RDF http://download.bio2rdf.org/release/2/release.html Dr. Sabin Buragawww.purl.org/net/busaco sparql: instrumente
  100. Puncte terminale (end-points) SPARQL: verificarea disponibilității: SPARQL Endpoints Status – http://sparqles.okfn.org/ detalii privind descoperirea de servicii SPARQL în C. Buil-Aranda et al., SPARQL Web-Querying Infrastructure: Ready for Action?, ISWC 2013 http://sw.deri.org/~aidanh/docs/epmonitorISWC.pdf https://www.youtube.com/watch?v=k8AJ4evqbCc Dr. Sabin Buragawww.purl.org/net/busaco sparql: instrumente
  101. SPARQL Endpoints Status pe baza serviciilor SPARQL înregistrate la datahub.io Dr. Sabin Buragawww.purl.org/net/busaco sparql: instrumente
  102. Dr. Sabin Buragawww.purl.org/net/busaco Câteva exemplificări din lumea reală?
  103. PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX dbp: <http://dbpedia.org/property/> SELECT ?locNastere ?dataNastere ?foto ?desc WHERE { ?persoana rdfs:label "Mihai Eminescu"@en ; dbp:birthPlace ?locNastere ; dbp:dateOfBirth ?dataNastere ; foaf:img ?foto . OPTIONAL { ?persoana dc:description ?desc } . } ORDER BY DESC (?locNastere) Dr. Sabin Buragawww.purl.org/net/busaco Interogarea SPARQL asupra DBpedia: informații despre locul de naștere a lui Eminescu
  104. de observat diferitele granularități Dr. Sabin Buragawww.purl.org/net/busaco utilizarea instrumentului Twinkle pentru a avea acces la DBpedia
  105. interogarea SPARQL asupra DBpedia: ocupația persoanelor cu un anumit sufix al numelui clase de resurse Dr. Sabin Buragawww.purl.org/net/busaco SELECT ?nume ?ocupatie WHERE { ?persoana foaf:name ?nume ; dbp:occupation ?ocupatie . FILTER regex (?nume, "escu$") } ORDER BY ?nume LIMIT 7
  106. Dr. Sabin Buragawww.purl.org/net/busaco acces la DBpedia via interfața Web a serviciului SPARQL: obținerea de informații despre Romania
  107. PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX type: <http://dbpedia.org/class/yago/> PREFIX prop: <http://dbpedia.org/property/> SELECT ?numeStat ?pop WHERE { ?stat a type:LandlockedCountries ; rdfs:label ?numeStat ; prop:populationEstimate ?pop . FILTER (?pop > 15000000) . } Dr. Sabin Buragawww.purl.org/net/busaco Interogarea serviciului specific SPARQL al DBpedia http://dbpedia.org/sparql pentru a obține date privitoare la anumite state ale lumii (Lee Feigenbaum & Eric Prud’hommeaux, 2011)
  108. numeStat Afghanistan Afganistán pop 31889923 31889923 Afghanistan … Uzbequistão 31889923 … 27372000 Узбекистан Uzbekistan 乌兹别克斯坦 27372000 27372000 27372000 Dr. Sabin Buragawww.purl.org/net/busaco Interogarea serviciului specific SPARQL al DBpedia http://dbpedia.org/sparql pentru a obține date privitoare la anumite state ale lumii
  109. SELECT DISTINCT ?personalitate ?nume ?dataMoarte WHERE { ?personalitate rdf:type <http://umbel.org/umbel/rc/PersonWithOccupation> . OPTIONAL { ?personalitate rdf:type d:Monarch . } ?personalitate d:deathDate ?dataMoarte . ?personalitate rdfs:label ?nume . FILTER (lang (?nume) = "en" AND regex (?nume, "^A")) } ORDER BY ?dataMoarte LIMIT 10 Dr. Sabin Buragawww.purl.org/net/busaco Obținerea datelor privind personalitățile (persoane cu o anumită ocupație, eventual monarhi) care au numele începând cu litera A
  110. Dr. Sabin Buragawww.purl.org/net/busaco
  111. PREFIX dbo: PREFIX dbprop: PREFIX foaf: <http://dbpedia.org/ontology/> <http://dbpedia.org/property/> <http://xmlns.com/foaf/0.1/> SELECT ?film ?nume ?regizor ?dataNastere WHERE { ?film a dbo:Film ; dbo:language <http://dbpedia.org/resource/Japanese_language> ; dbprop:director ?regizor ; dbprop:writer ?scenarist ; foaf:name ?nume . ?regizor dbprop:dateOfBirth ?dataNastere . FILTER ((?dataNastere >= 1960) && ?regizor = ?scenarist) . } ORDER BY ?nume LIMIT 7 Dr. Sabin Buragawww.purl.org/net/busaco Lista filmelor vorbite în limba japoneză, regizate și – totodată – scrise de persoane născute după anul 1960
  112. Dr. Sabin Buragawww.purl.org/net/busaco graful asociat interogării rezultatele obținute
  113. Fie interogarea SPARQL asupra DBpedia: numele papilor născuți în Roma PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT * WHERE { ?papa a <http://dbpedia.org/ontology/Pope> ; <http://dbpedia.org/property/birthPlace> <http://dbpedia.org/resource/Rome> ; rdfs:label ?nume . } LIMIT 3 Dr. Sabin Buragawww.purl.org/net/busaco sparql: detectarea inconsistențelor
  114. Dr. Sabin Buragawww.purl.org/net/busaco iSparql editare vizuală a interogărilor
  115. ??? rezultatul obținut Dr. Sabin Buragawww.purl.org/net/busaco sparql: detectarea inconsistențelor
  116. PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dbpedia2: <http://dbpedia.org/property/> SELECT ?subiect ?url WHERE { { ?subiect foaf:page ?url . } UNION { ?subiect dbpedia2:siteweb ?url . } FILTER (isLITERAL (?url)) } LIMIT 7 Dr. Sabin Buragawww.purl.org/net/busaco Detectarea resurselor DBpedia care prezintă adrese Web specificate eronat
  117. Dr. Sabin Buragawww.purl.org/net/busaco SELECT ?subiect ?url WHERE { ?subiect dbpedia2:siteweb ?url . FILTER (isLITERAL (?url)) } ORDER BY DESC (?url) LIMIT 7
  118. apare rdf:Literal în loc de rdf:Resource Dr. Sabin Buragawww.purl.org/net/busaco SELECT ?subiect ?url WHERE { ?subiect dbpedia2:siteweb ?url . FILTER (isLITERAL (?url)) } ORDER BY DESC (?url) LIMIT 7
  119. apare rdf:Literal în loc de rdf:Resource SPARQL oferă premisele verificării corectitudinii datelor (context mai larg: knowledge quality) Dr. Sabin Buragawww.purl.org/net/busaco SELECT ?subiect ?url WHERE { ?subiect dbpedia2:siteweb ?url . FILTER (isLITERAL (?url)) } ORDER BY DESC (?url) LIMIT 7
  120. Dr. Sabin Buragawww.purl.org/net/busaco Folosind punctul terminal SPARQL oferit de inițiativa voiD, avem informații privind seturi de date utilizând DBpedia vezi http://www.w3.org/TR/void/ SELECT DISTINCT ?dataset ?url ?voc WHERE { ?dataset a void:Dataset . ?dataset void:subset ?set . ?set void:objectsTarget <http://dbpedia.org/void.ttl#DBpedia> . ?dataset void:sparqlEndpoint ?url . ?dataset void:vocabulary ?voc . }
  121. Dr. Sabin Buragawww.purl.org/net/busaco Fragment din răspunsul oferit de serviciul voiD http://void.rkbexplorer.com/sparql/
  122. PREFIX go: <http://purl.org/obo/owl/GO#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX obo: <http://www.obofoundry.org/ro/ro.owl#> SELECT DISTINCT ?label ?process WHERE { { ?process obo:part_of go:GO_0007165 } # integral to UNION { ?process rdfs:subClassOf go:GO_0007165 } # refinement of ?process rdfs:label ?label } “Find me the cellular processes that are either integral to or a refinement of signal transduction.” – Feigenbaum, 2009 Dr. Sabin Buragawww.purl.org/net/busaco Acces la HCLS (Health Care and Life Science) http://hcls.deri.org/sparql – pentru a obține date biomedicale disponibile sub licența Science Commons
  123. Dr. Sabin Buragawww.purl.org/net/busaco sparql: exemplificare Obținerea de date privind entități referitoare la evenimentele ISWC (International Semantic Web Conference) și ESWC (European Semantic Web Conference) http://data.semanticweb.org/ datele despre fiecare conferință sunt stocate într-un graf separat (named graph)
  124. "Nicholas Gibbins" "Nicola Fanizzi" "Nicola Henze" exemplu inspirat de (Corno & Farinetti, 2009) "Norman Heino" Dr. Sabin Buragawww.purl.org/net/busaco # Participanții comuni la ISWC2010 și ESWC2011 # al căror nume începe cu litera N PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT DISTINCT ?nume FROM NAMED <http://data.semanticweb.org/conference/eswc/2011/complete> FROM NAMED <http://data.semanticweb.org/conference/iswc/2010/complete> WHERE { GRAPH ?g1 { ?pers a foaf:Person ; foaf:name ?nume } GRAPH ?g2 { ?pers a foaf:Person ; foaf:name ?nume } FILTER ( ?g1 != ?g2 && regex (?nume, "^N") ) . nume } "Neil Ireson" LIMIT 7 "Nenad Stojanovic"
  125. Dr. Sabin Buragawww.purl.org/net/busaco organizații participante la ambele evenimente
  126. Dr. Sabin Buragawww.purl.org/net/busaco aflarea entităților cu anumite review-uri (comentarii, punctaj) disponibile la Revyu.com
  127. of Sacha Baron Cohen in all his different guises, I was left with the feeling that he hadn't done the character, or himself, justice. […] </literal> </binding> <binding name="?punctaj"><literal>3</literal></binding> </result> </results> </sparql> formatul XML standardizat al răspunsului Dr. Sabin Buragawww.purl.org/net/busaco <sparql xmlns="http://www.w3.org/2005/sparql-results#"> <head><variable name="?eticheta"/><variable name="?comentariu"/> <variable name="?punctaj"/></head> <results ordered="false" distinct="false"> <result> <binding name="?eticheta"> <literal>Borat: Cultural Learnings of America for Make Benefit Glorious Nation of Kazakhstan</literal> </binding> <binding name="?comentariu"> <literal>I found the Borat film quite a disappointment. Being a long-time fan
  128. Dr. Sabin Buragawww.purl.org/net/busaco date publice guvernamentale oferite de data.gov.uk pe baza unui serviciu SPARQL (open government) PREFIX ed: <http://education.data.gov.uk/def/school/> SELECT DISTINCT ?denumire ?capacitate WHERE { ?scoala a ed:TypeOfEstablishment_Other_Independent_School ; ed:establishmentName ?denumire ; ed:establishmentNumber ?capacitate } ORDER BY DESC(?capacitate) LIMIT 10
  129. Dr. Sabin Buragawww.purl.org/net/busaco British Museum: acces la date via http://collection.britishmuseum.org/sparql
  130. Dr. Sabin Buragawww.purl.org/net/busaco DESCRIBE ?s WHERE { ?s a <http://purl.org/ontology/wo/Species> ; foaf:depiction ?foto } LIMIT 150 vizualizarea structurată a datelor (aici, animale sălbatice) preluate de la BBC via OpenLink HTML5 Pivot Viewer
  131. Dr. Sabin Buragawww.purl.org/net/busaco SELECT * WHERE { [ ] w:hasCountryCode ?ID ; w:hasGNP ?GNP ; … } generarea de chart-uri pe baza datelor obținute cu SPARQL biblioteca Sgvizler (JavaScript) https://code.google.com/p/sgvizler/
  132. ?concept = http://schema.org/Thing ?concept = http://schema.org/CreativeWork ?concept = http://schema.org/Article ?concept = http://schema.org/BlogPosting ?concept = http://schema.org/NewsArticle ?concept = http://schema.org/ScholarlyArticle ?concept = http://schema.org/MedicalScholarlyArticle ?concept = http://schema.org/Blog ?concept = http://schema.org/Book ?concept = http://schema.org/Comment … sparql.us – enumerarea conceptelor (clase de resurse) definite de schema.org – scheme de date folosite via microdate HTML5 Dr. Sabin Buragawww.purl.org/net/busaco PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT * WHERE { ?concept rdf:type rdfs:Class . }
  133. O interogare SPARQL constă în: declarații de prefixe – vocabulare desemnate de URL definiții ale seturilor de date (grafuri RDF) interogate clauză (result clause) identificând datele rezultate un șablon (query pattern) specificând termeni liberi Dr. Sabin Buragawww.purl.org/net/busaco sparql: recapitulare modificatori (query modifiers) ce oferă posibilități de fragmentare, sortare, rearanjare a rezultatelor interogării
  134. graf RDF  HTML  RDB↔RDF   Dr. Sabin Buragawww.purl.org/net/busaco punct terminal SPARQL Procesor SPARQL tehnici NLP triple store punct terminal SPARQL  Aplicație bază de date (e.g., NoSQL)  bază de date relațională text nestructurat XML/XHTML SPARQL – privire de ansamblu (Ivan Herman, 2012)
  135. Dr. Sabin Buragawww.purl.org/net/busaco arhitectura serverului Virtuoso
  136. Propunere de extindere a SPARQL SPARQL 1.0SPARQL 1.1SPARQL 2.0 a se studia și prezentarea lui Lee Feigenbaum (2010) www.slideshare.net/LeeFeigenbaum/sparql2-status Dr. Sabin Buragawww.purl.org/net/busaco sparql – viitor
  137. Oferă mijloace pentru exprimarea: actualizărilor de date (updates) negațiilor (negation) agregărilor (aggregates) proiecțiilor (projected expressions) sub-interogărilor (subqueries) … conform (Bob DuCharme, 2013) Dr. Sabin Buragawww.purl.org/net/busaco sparql 1.1
  138. Dr. Sabin Buragawww.purl.org/net/busaco sparql – viitor anatomia unei interogări SPARQL 1.1 conform David Backett (2011)
  139. SELECT ?prof (COUNT (DISTINCT ?stud) AS ?studenti) WHERE { ?prof a ac:Student_Adviser ; s:examineaza ?stud } GROUP BY ?prof obținerea datelor privind profesorii îndrumători și numărul studenților examinați de fiecare Dr. Sabin Buragawww.purl.org/net/busaco funcțiile de agregare (AVG, COUNT, MIN, MAX, SUM,…) sunt deja implementate de anumite sisteme SPARQL
  140. Posibilitatea utilizării funcțiilor de proiecție: SELECT (fn:concat (?prenume, ' ', ?nume) AS ?numeComplet) WHERE { ?persoana foaf:firstName ?prenume ; foaf:lastName ?nume ; foaf:interest :Art , :Music . } obținerea numelui complet al persoanelor interesate de artă și muzică Dr. Sabin Buragawww.purl.org/net/busaco sparql 1.1
  141. SELECT * WHERE { ?s ?p ?o . MINUS { ?s <http://xmlns.com/foaf/0.1/maker> ?o . } } Dr. Sabin Buragawww.purl.org/net/busaco MINUS exprimă negația
  142. numele persoanelor care nu cunosc după reputație pe cineva important Dr. Sabin Buragawww.purl.org/net/busaco SELECT ?nume WHERE { ?persoana foaf:firstName ?nume FILTER ( NOT EXISTS { ?persoana rel:knowsByReputation [ ] } ) }
  143. Specificarea drumurilor privind proprietățile (property paths) potrivirile de triple iau în considerație drumurile prin graful RDF specificate sintactic via expresii similare XPath a/b ^a a|b a* a+ a? a{m,n} a{n} a{m,} a{,n} unde a și b sunt URI-uri ce semnifică predicate Dr. Sabin Buragawww.purl.org/net/busaco sparql 1.1
  144. Dr. Sabin Buragawww.purl.org/net/busaco SELECT ?persoana WHERE { s:dlucanu s:examineaza/(rel:closeFriendOf|rel:siblingOf) ?persoana } persoana s:diana s:cristina determinarea persoanelor care sunt prieteni apropiați sau rude cu un student examinat de un anumit profesor
  145. Local Graph Store s:graph SPARQL endpoint SD s:sw1 Web SPARQL endpoint s:sw2 PREFIX s: <…> SELECT … FROM s:graph WHERE { …A… SERVICE s:sw1 { …B… } SERVICE s:sw2 { …C… } } SD = Service Description (folosind RDF) Dr. Sabin Buragawww.purl.org/net/busaco Recurgerea la puncte terminale SPARQL multiple (federated query) – adaptare după Lee Feigenbaum (2010)
  146. un serviciu SPARQL poate avea atașată o descriere RDF conform www.w3.org/TR/sparql11-service-description/ exemplu: serviciul http://gov.tso.co.uk/legislation/sparql (legislație) Dr. Sabin Buragawww.purl.org/net/busaco sparql 1.1
  147. Posibilități de actualizare a grafurilor RDF: INSERT DATA, DELETE DATA, MODIFY, LOAD, CLEAR Managementul unui graf RDF: CREATE, DROP, COPY, MOVE, ADD www.w3.org/TR/sparql11-update/ Dr. Sabin Buragawww.purl.org/net/busaco sparql 1.1
  148. INSERT DATA { # inserăm unele date despre noua eroină :-) :desdemona foaf:title "Dr." ; foaf:name "Dés de Möna" . } Dr. Sabin Buragawww.purl.org/net/busaco sparql 1.1 MODIFY <http://castel.info/eveniment/bal-mascat/participanti> DELETE { ?persoana foaf:knows :julieta } # substituim :julieta INSERT { ?persoana foaf:knows :desdemona } # cu noua venită WHERE { fiecare operație ?persoana rdf:type foaf:Person . e considerată ?persoana foaf:knows :julieta . atomică }
  149. Pentru mai multe detalii, a se consulta: Dr. Sabin Buragawww.purl.org/net/busaco sparql Bob DuCharme, Learning SPARQL. Querying and Updating with SPARQL 1.1 (Second Edition), O’Reilly, 2013 Lee Feigenbaum & Eric Prud’hommeaux, SPARQL By Example, 2013 www.cambridgesemantics.com/semantic-university/sparql-by-example
  150. SPARQL permite: Dr. Sabin Buragawww.purl.org/net/busaco sparql – privire de ansamblu extragerea de valori de interes din date (semi)structurate explorarea datelor via interogări asupra posibilelor relații ce pot fi stabilite între aceste date realizarea de join-uri complexe transformarea datelor RDF dintr-un vocabular în altul, inclusiv cu posibilitatea actualizării
  151. obținerea, transformarea și interogarea datelor modelate în RDF Dr. Sabin Buragawww.purl.org/net/busaco rezumat
  152. Dr. Sabin Buragawww.purl.org/net/busaco episodul viitor: aplicații Web bazate pe RDF. Linked Data

×