150 likes | 278 Vues
This lecture provides an overview of SPARQL, the W3C-recommended RDF query language, and its associated features. Designed for read-only operations, SPARQL allows users to query RDF data effectively. It includes specifications for query language, XML results format, and WSDL 2.0 data access via HTTP and SOAP. The lecture covers practical applications using Turtle syntax, query execution through Jena and ARQ engines, and examples of querying RDF data using SPARQL. Ideal for anyone looking to master information system management with SPARQL.
E N D
Internet Technologies Lecture 7: SPARQL Master of Information System Management
SPARQL • SPARQL Simple Protocol and RDF Query Language • W3C Recommendation January 2008 • Queries written using Turtle - Terse RDF Triple Language • Download Jena and ARQ Query Engine • For Ruby, see ActiveRDF Master of Information System Management
SPARQL • Three specifications: (1) A query language (2) A query results XML format (3) A WSDL 2.0 Data Access Protocol using HTTP and SOAP • SPARQL is read only and cannot modify the RDF data Master of Information System Management
Input <?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:rss="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:html="http://www.w3.org/1999/xhtml"> <foaf:Agent rdf:nodeID="id2246040"> <foaf:name>John Barstow</foaf:name> <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/> <foaf:weblog> <foaf:Document rdf:about="http://www.nzlinux.org.nz/blogs/"> <dc:title>Visions of Aestia by John Barstow</dc:title> <rdfs:seeAlso> <rss:channel rdf:about="http://www.nzlinux.org.nz/blogs/wp-rdf.php?cat=9"> <foaf:maker rdf:nodeID="id2246040"/> <foaf:topic rdf:resource="http://www.w3.org/2001/sw/"/> <foaf:topic rdf:resource="http://www.w3.org/RDF/"/> </rss:channel> </rdfs:seeAlso> </foaf:Document> </foaf:weblog> <foaf:interest rdf:resource="http://www.w3.org/2001/sw/"/> <foaf:interest rdf:resource="http://www.w3.org/RDF/"/> </foaf:Agent> </rdf:RDF> This is shortblogger.xml The file bloggers.xml has many bloggers. Master of Information System Management
Processing PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?url FROM <shortblogger.xml> WHERE { ?contributor foaf:name "John Barstow" . ?contributor foaf:weblog ?url . } Stored in a file called ex1.rq Master of Information System Management
Output sparql --query ex1.rq ------------------------ | url | ========================= | <http://www.nzlinux.org.nz/blogs/> | -------------------------------------------- Master of Information System Management
Processing PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?url FROM <shortblogger.xml> WHERE { ?contributor rdf:type foaf:Person . ?contributor foaf:weblog ?url . } Output sparql --query ex2.rq ------------------------- | url | =============== | <http://www.nzlinux.org.nz/blogs/> | ------------------------- Master of Information System Management
Processing PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?x ?n FROM <bloggers.xml> WHERE { ?contributor rdf:type foaf:Person . ?contributor foaf:weblog ?x . ?contributor foaf:name ?n } All three conditions must be satisfied to match the query. Master of Information System Management
Output sparql --query ex4.rq -------------------------------------------------------------------------------------- | x | n | ================================================ | <http://www.picklematrix.net/semergence/> | "Seth Ladd" | | <http://www.wasab.dk/morten/blog/> | "Morten Frederiksen" | | <http://www.lassila.org/blog/> | "Ora Lassila" | | <http://people.w3.org/~dom/> | "Hazaël-Massieux" | | <http://xmlarmyknife.org/blog/> | "Leigh Dodds" | | <http://blogs.sun.com/bblfish/> | "Henry Story" | | <http://jeenbroekstra.blogspot.com/> | "Jeen Broekstra" | | <http://people.w3.org/~djweitzner/blog/?cat=8> | "Danny Weitzner" | | <http://danbri.org/words/> | "Dan Brickley" | Master of Information System Management
Processing PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT DISTINCT ?n FROM <bloggers.xml> WHERE { ?contributor foaf:name ?n } Output ----------------------------------------- | n | ================= | ”Mike McCarthy" | | "Pasquale Popolizio" | | "Dean Allemang" | : : Master of Information System Management
Processing PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT DISTINCT ?n FROM <bloggers.xml> WHERE { ?contributor foaf:name ?n } ORDER BY ?n ---------------------- | n | ============= | "Alexandre Passant" | | "Alistair Miles" | | "Andrew Matthews" | | "Benjamin Nowack" : : Master of Information System Management
Semi-Structured Data • Definition: If two nodes of the same type are allowed to hold different sets of properties the data is called semi-structured. • SPARQL uses the OPTIONAL keyword to process semi-structured data. Master of Information System Management
Processing PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT DISTINCT ?n ?interest FROM <bloggers.xml> WHERE { ?contributor foaf:name ?n . OPTIONAL { ?contributor foaf:interest ?interest } } ORDER BY ?n "Tetherless World Constellation group RPI" <http://www.w3.org/2001/sw/> "Tetherless World Constellation group RPI" <http://www.w3.org/RDF/> "Tim Berners-Lee" "Uldis Bojars" <http://www.w3.org/2001/sw/> "Uldis Bojars" <http://www.w3.org/RDF/> Master of Information System Management
Generating XML PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?n FROM <shortblogger.xml> WHERE { ?contributor foaf:name ?n . } Master of Information System Management
From The Command Line sparql --query ex8.rq --results rs/xml <?xml version="1.0"?> <sparql xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xs="http://www.w3.org/2001/XMLSchema#" xmlns="http://www.w3.org/2005/sparql-results#" > <head> <variable name="n"/> </head> <results> <result> <binding name="n"> <literal>John Barstow</literal> </binding> </result> </results> </sparql> Master of Information System Management