- From: Kingsley Idehen <kidehen@openlinksw.com>
- Date: Tue, 12 Apr 2011 10:20:05 -0400
- To: Rob Vesse <rav08r@ecs.soton.ac.uk>
- CC: glenn mcdonald <glenn@furia.com>, public-lod@w3.org
- Message-ID: <4DA45F95.3080601@openlinksw.com>
On 4/12/11 10:03 AM, Rob Vesse wrote:
>
> Hi Glenn
>
> Interjecting into your email thread re Danny's SPARQL puzzle in case
> you hadn't seen my tweets to him today on this topic
>
> On Tue, 12 Apr 2011 09:33:05 -0400, glenn mcdonald <glenn@furia.com>
> wrote:
>
> Which is what I was talking about in Boundedness: does the data
> have the properties you need to extract the subset you want. E.g.,
> Danny Ayers yesterday was trying to make a SPARQL query for
> Wordnet that found the planets in the solar system that aren't
> named after Roman gods. But neither he nor I could find any way in
> the data to distinguish actual planets in the list of solar
> bodies, so we couldn't quite make it right. That was a data
> problem, not a tool problem. But the difficulty of figuring this
> out, /using/ the tools, was a tool problem.
>
> Here is a query that answers Danny's question (also online at
> http://pastebin.com/8juVLmCT). You'll need a SPARQL 1.1 engine to run
> this, if you don't have a local one to hand (or it doesn't support all
> the features I've used in the query since some are only in the editors
> drafts currently) then you can run this online at
> http://www.dotnetrdf.org/demos/leviathan/
>
> AFAIK this should also run under Jena's ARQ (you may need the latest
> snapshot) and should be runnable on sparql.org except that the site
> appears to be down at the moment
>
> The query is a tad clunky because the RKB Explorer endpoints are
> SPARQL 1.0 only so has to be split into several sections because the
> local SPARQL engine has to do the MINUS bit. Once it has done the
> Wordnet bit it constructs a DBPedia Resource URI and then uses an
> EXISTS filter over a SERVICE call to DBPedia to ensure that the
> resource is a Planet
>
> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
> PREFIX wn: <http://www.w3.org/2006/03/wn/wn20/schema/>
>
> SELECT DISTINCT ?label WHERE
> {
> SERVICE <http://wordnet.rkbexplorer.com/sparql/>
> {
> ?s1 wn:memberMeronymOf
> <http://wordnet.rkbexplorer.com/id/synset-solar_system-noun-1> .
> ?s1 rdfs:label ?label.
> }
> MINUS
> {
> SERVICE <http://wordnet.rkbexplorer.com/sparql/>
> {
> ?s2 wn:hyponymOf
> <http://wordnet.rkbexplorer.com/id/synset-Roman_deity-noun-1> .
> ?s2 rdfs:label ?label.
> }
> }
> BIND(URI(CONCAT("http://dbpedia.org/resource/", ?label)) AS ?dbpResource)
> FILTER(EXISTS
> {
> SERVICE <http://dbpedia.org/sparql>
> {
> ?dbpResource a <http://dbpedia.org/ontology/Planet> .
> }
> })
> }
>
> Regards,
>
> Rob Vesse
>
> --
> PhD Student
> IAM Group
> Bay 20, Room 4027, Building 32
> Electronics& Computer Science
> University of Southampton
Rob,
Nice!
And you change that into a SPARQL construct query and you have a
linkeset that can be contributed back to DBpedia :-)
--
Regards,
Kingsley Idehen
President& CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen
Received on Tuesday, 12 April 2011 14:20:31 UTC