Upload
victor-de-boer
View
135
Download
0
Tags:
Embed Size (px)
Citation preview
QUERYING Linked Data
1. Three main ways of accessing remote Linked Data
1. Through HTTP request on the resource URI
2. Through SPARQL queries
3. Get a copy of a dataset
1. Through HTTP request on the resource URI
• HTTP GET on resource, parse, follow links– Simple HTTP requests and RDF parsing– Requires dereferencable URIs– One request per resource: may require many
requests
• Local caching can be done• Crawling GET /resource/Amsterdam HTTP/1.1
Host: dbpedia.org
Accept: text/html;q=0.5, application/rdf+xml
I’m ok with HTML… …but I really prefer RDF
• With CURL– curl -L -H "Accept: application/rdf+xml"
http://dbpedia.org/resource/Madrid– curl -L -H "Accept: text/turtle"
http://dbpedia.org/resource/Madrid– curl -L -H "Accept: text/turtle"
http://purl.org/collections/nl/dss/das/voyage-5580_1
• With Sindice inspector (or other tool)• http://inspector.sindice.com/inspect?url=• http://inspector.sindice.com/inspect?url=http://dbpedia.or
g/resource/Madrid
2. Through SPARQL queries
• Full-blown query language
• Needs SPARQL endpoint
$query = "SELECT distinct ?title ?description WHERE {?x <http://data.open.ac.uk/podcast/ontology/relatesToCourse> <http://data.open.ac.uk/course/t209>.?x <http://purl.org/dc/terms/title> ?title.?x <http://www.w3.org/TR/2010/WD-mediaont-10-20100608/description> ?description } LIMIT 10";
$requestURL = 'http://data.open.ac.uk/query?query='.urlencode($query);$response = request($requestURL);
SPARQL in PHP example http://www.greenhughes.com/content/approach-consuming-linked-data-php
3. Get a local copy of a dataset
• through SPARQL CONSTRUCT,
• crawling or
• Direct file download
• Save in triple store
– or convert to something else
RDF Libraries
Redland: http://www.librdf.org/ Perl, Python, PHP, Ruby, C#, Objective-C
Jena: http://jena.sourceforge.net/ Java
RDFLib: http://www.rdflib.net/ Python
ARC2: http://arc2.semsol.net/ PHP
ActiveRDF: http://www.activerdf.org/ Ruby
Handson with SPARQL
SPARQL
A Query-language for the Web of Data
SPARQL – Querying the Web of Data
• query language for RDF graphs (i.e., linked data)
• extract specific information out of a dataset (or several datasets)
• "The SQL for the Web of Data"
SPARQL Endpoint
Reaso
nin
g?
PREFIX mo: <http://purl.org/ontology/mo/>
PREFIX dce: <http://purl.org/dc/elements/1.1/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT DISTINCT ?album ?title ?release_date
WHERE {
?album a mo:Record ;
dce:date ?release_date ;
dce:title ?title .
FILTER (year(?release_date) = 2007 &&
month(?release_date) = 7)
}
ORDER BY ?release_date
SPARQL in a Nutshell
PREFIX mo: <http://purl.org/ontology/mo/>
PREFIX dce: <http://purl.org/dc/elements/1.1/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT DISTINCT ?album ?title ?release_date
WHERE {
?album a mo:Record ;
dce:date ?release_date ;
dce:title ?title .
FILTER (year(?release_date) = 2007 &&
month(?release_date) = 7)
}
ORDER BY ?release_date
graph pattern