- From: Alexandre Passant <alexandre.passant@deri.org>
- Date: Thu, 8 Oct 2009 18:17:41 +0100
- To: Kingsley Idehen <kidehen@openlinksw.com>
- Cc: Antoine Isaac <aisaac@few.vu.nl>, dbpedia-discussion@lists.sourceforge.net, public-lod@w3.org, pedantic-web@googlegroups.com
Hi,
On 8 Oct 2009, at 16:54, Kingsley Idehen wrote:
> 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.
So there is something wrong in the current inference done in DBPedia.
Indeed, that query lists one result
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" )
}
But the following one list none
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 .
?m p:abstract ?d.
?m geo:point ?p
FILTER ( lang(?n) = "fr" )
FILTER ( lang(?d) = "fr" )
}
However, skos:broaderTransitive is a superproperty of skos:broader, so
you should get at least the result of the first query included here.
Then, the query you mentioned earlier (using option (transitive) with
skos:broaderTransitive) should not give an empty set - and everything
work fine.
Thanks,
Alex.
BTW, do you have a link to Bernard's post ?
> 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
>
>
>
>
--
Dr. Alexandre Passant
Digital Enterprise Research Institute
National University of Ireland, Galway
:me owl:sameAs <http://apassant.net/alex> .
Received on Thursday, 8 October 2009 17:18:17 UTC