W3C home > Mailing lists > Public > public-lod@w3.org > October 2009

Re: DBpedia SPARQL Endpoint and Transitive Queries

From: Kingsley Idehen <kidehen@openlinksw.com>
Date: Thu, 08 Oct 2009 11:54:15 -0400
Message-ID: <4ACE0B27.5080605@openlinksw.com>
To: Antoine Isaac <aisaac@few.vu.nl>
CC: Alexandre Passant <alexandre.passant@deri.org>, "dbpedia-discussion@lists.sourceforge.net" <dbpedia-discussion@lists.sourceforge.net>, "public-lod@w3.org" <public-lod@w3.org>
Antoine Isaac wrote:
> Alexandre Passant a écrit :
>> Hi,
>>
>> On 8 Oct 2009, at 16:09, Kingsley Idehen wrote:
>>
>>> All,
>>>
>>> The intersection of Leigh Dodds SPARQL extensions survey [1], 
>>> imminent official release of Virtuoso 6.0 (DBpedia basic and Live 
>>> already use this, ditto LOD Cache, and B3S public endpoints), and an 
>>> old post by Bernard Vatant re. skos:broader, has lead to this 
>>> simple, but powerful example of  Virtuoso's Transitive Option 
>>> extension for SPARQL :
>>>
>>> #Transitive Option Off
>>>
>>> PREFIX p: <http://dbpedia.org/property/>
>>> PREFIX dbpedia: <http://dbpedia.org/resource/>
>>> PREFIX category: <http://dbpedia.org/resource/Category:>
>>> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
>>> PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
>>> PREFIX geo: <http://www.georss.org/georss/>
>>>
>>> SELECT DISTINCT ?m ?n ?p ?d
>>> WHERE {
>>>  ?m rdfs:label ?n.
>>>  ?m skos:subject ?c.
>>>  ?c skos:broader category:Churches_in_Paris.
>>>  ?m p:abstract ?d.
>>>  ?m geo:point ?p
>>> FILTER ( lang(?n) = "fr" )
>>> FILTER ( lang(?d) = "fr" )
>>> }
>>>
>>> #Transitive Option On
>>>
>>> PREFIX p: <http://dbpedia.org/property/>
>>> PREFIX dbpedia: <http://dbpedia.org/resource/>
>>> PREFIX category: <http://dbpedia.org/resource/Category:>
>>> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
>>> PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
>>> PREFIX geo: <http://www.georss.org/georss/>
>>>
>>> SELECT DISTINCT ?m ?n ?p ?d
>>> WHERE {
>>>  ?m rdfs:label ?n.
>>>  ?m skos:subject ?c.
>>>  ?c skos:broader category:Churches_in_Paris OPTION (TRANSITIVE).
>>>  ?m p:abstract ?d.
>>>  ?m geo:point ?p
>>> FILTER ( lang(?n) = "fr" )
>>> FILTER ( lang(?d) = "fr" )
>>> }
>>>
>>>
>>
>> As skos:broader is not transitive [1] but its superproperty 
>> skos:broaderTransitive is, shouldn't the second query be
>>
>>  ?c skos:broaderTransitive category:Churches_in_Paris OPTION 
>> (TRANSITIVE).
>>
>> Best,
>>
>> Alex.
>>
>> [1] http://www.w3.org/TR/2009/REC-skos-reference-20090818/#L2413
>
>
> +1. Also, skos:subject is not in the recommendation...

Fine, but what happens when the data in question already has such 
triples? Try this against DBpedia:

PREFIX p: <http://dbpedia.org/property/>
PREFIX dbpedia: <http://dbpedia.org/resource/>
PREFIX category: <http://dbpedia.org/resource/Category:>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX geo: <http://www.georss.org/georss/>

SELECT DISTINCT ?m ?n ?p ?d
WHERE {
    ?m rdfs:label ?n.
    ?m skos:subject ?c.
    ?c skos:broaderTransitive category:Churches_in_Paris option 
(transitive) .
    ?m p:abstract ?d.
    ?m geo:point ?p
   FILTER ( lang(?n) = "fr" )
   FILTER ( lang(?d) = "fr" )
}

You will have an empty result-set. Again, this is the point Bernard 
Vatant made in his post a long time ago.

Ultimate solution: make an inference rule that asserts: 
<skos:broaderTransitive> owl:subPropertyOf <skos:broader> (or make a 
context rule from the entire skos ontology), and you will then have the 
revised query return data for those databases that have used 
skos:broader to build their concept scheme structure (assuming you apply 
the inference rule pragma). Otherwise,  If your store has 
skos:broaderTransitive data, then just change the query :-)

Kingsley
>
> Best,
>
> Antoine
>
>


-- 


Regards,

Kingsley Idehen	      Weblog: http://www.openlinksw.com/blog/~kidehen
President & CEO 
OpenLink Software     Web: http://www.openlinksw.com
Received on Thursday, 8 October 2009 15:54:56 UTC

This archive was generated by hypermail 2.3.1 : Sunday, 31 March 2013 14:24:23 UTC