madrid sparql handson

Post on 15-Jul-2015

134 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Lets try it ourselves

http://tinyurl.com/getafesparql

top related