- From: Kingsley Idehen <kidehen@openlinksw.com>
- Date: Thu, 08 Oct 2009 11:54:15 -0400
- 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