- From: Yves Raimond <yves.raimond@gmail.com>
- Date: Thu, 21 Aug 2008 08:26:52 +0100
- To: "Lee Feigenbaum" <lee@thefigtrees.net>
- Cc: public-sparql-dev@w3.org, public-lod@w3.org
Hello!
>
> I'm putting together a "SPARQL by Example" tutorial, which is, as the name
> suggests, a step-by-step introduction to SPARQL taught almost entirely
> through complete, runnable SPARQL queries.
>
> So far, I've gathered a great deal of example queries myself, but I know
> that many subscribers to these lists probably have favorite queries of their
> own that you might be willing to share with me.
>
> I'm looking for:
>
> 1) SPARQL queries
> 2) ...that can be run by anyone (no private data sets)
> 3a)...either by running the query against a public SPARQL endpoint
> 3b)...or by using a public SPARQL endpoint that will fetch HTTP-accessible
> RDF data (e.g. sparql.org or demo.openlinksw.com)
> 4) ...that answers a real* question
> 5) ...and that is fun!**
>
> * real is in the eye of the beholder, I imagine, but I'm not looking for
> "finds the predicates that relate ex:s and ex:o in this sample RDF graph"
>
> ** fun is also in the eye of the beholder. fun can be a query on fun data; a
> clever query that may illustrate a particular SPARQL construct ("trick"); a
> query that integrates interesting information; a query with surprising
> results; etc.
I quite like this one:
PREFIX geo: <http://www.geonames.org/ontology#>
PREFIX wgs: <http://www.w3.org/2003/01/geo/wgs84_pos#>
SELECT DISTINCT ?an ?lat ?long ?name ?population
WHERE
{ ?a
a mo:MusicArtist;
foaf:based_near ?place;
foaf:name ?an;
foaf:made ?alb.
?alb tags:taggedWithTag <http://dbtune.org/jamendo/tag/punk>.
?place
geo:name ?name;
geo:population ?population;
wgs:lat ?lat;
wgs:long ?long }
ORDER BY ?population
on http://dbtune.org/jamendo/ (order me bands that have been tagged as
`punk' by a Jamendo user by the number of inhabitants in their city)
Or that one:
SELECT ?brand ?title ?count
WHERE {
?artist a mo:MusicArtist;
foaf:name "The Beatles".
?pc pc:object ?artist;
pc:count ?count.
?brand a po:Brand;
pc:playcount ?pc;
dc:title ?title
FILTER (?count>10)}
on http://dbtune.org/bbc/playcount/ (give me BBC shows on which the
Beatles have been featured more than 10 times)
Or that one:
PREFIX af: <http://purl.org/ontology/af/>
PREFIX event: <http://purl.org/NET/c4dm/event.owl#>
PREFIX tl: <http://purl.org/NET/c4dm/timeline.owl#>
SELECT ?start ?duration
FROM <http://dbtune.org/echonest/analyze-example.rdf>
WHERE
{
?e a af:StructuralSegment;
event:time ?time.
?time tl:start ?start;
tl:duration ?duration.
}
Using the GRDDL'ed results of the Echonest Analyse API, and getting
structural segments (eg. chorus, verse, etc.) on a particular track.
And finally, this one:
PREFIX void: <http://purl.org/ontology/void#>
PREFIX mo: <http://purl.org/ontology/mo/>
PREFIX tags: <http://www.holygoat.co.uk/owl/redwood/0.1/tags/>
ASK
FROM NAMED <http://moustaki.org/void/void.n3>
FROM NAMED <http://moustaki.org/void/jamendo_example.n3>
{
GRAPH <http://moustaki.org/void/void.n3> {
?ds a void:Dataset;
void:sparql_end_point ?sparql;
void:example ?ex.
}
GRAPH ?ex {
?r a mo:Record;
mo:available_as ?l;
tags:taggedWithTag ?t.
}
}
Which is explained in more details at
http://blog.dbtune.org/post/2008/06/12/Describing-the-content-of-RDF-datasets
Cheers!
y
Received on Thursday, 21 August 2008 07:27:31 UTC