- From: Kingsley Idehen <kidehen@openlinksw.com>
- Date: Thu, 08 Oct 2009 13:42:39 -0400
- To: Alexandre Passant <alexandre.passant@deri.org>
- CC: Antoine Isaac <aisaac@few.vu.nl>, dbpedia-discussion@lists.sourceforge.net, public-lod@w3.org, pedantic-web@googlegroups.com
Alexandre Passant wrote:
> 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.
Only if you have a Virtuoso context rule in place (the kind I created
for Yago, UMBEL, OpenCyc, DBpedia ontology etc..) that is associated
with a Graph IRI that holds the assertions. Thus, in this case, I would
have to do the following:
1. Load SKOS ontology into Virtuoso instance hosting DBpedia
2. Associate a context rule with the Graph IRI
3. When issuing SPARQL or associating SPARQL with URL-Rewrite rules,
invoke the inference rule pragma.
If you look at: http://dbpedia.org/fct or http://lod.openlinksw.com/fct,
post initial query result presentation, you have an "options" link, this
is where you can see the context rules that are currently available. In
short, this is what I use (e.g. "b3sifp") for my data reconciliation via
direct and indirect co-reference demos.
Anyway, we'll have this all set up, then and make another post so
everyone has the respective rule names for future reference and use.
Kingsley
> 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> .
>
>
>
>
>
>
>
--
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 17:43:18 UTC