- From: Kingsley Idehen <kidehen@openlinksw.com>
- Date: Thu, 08 Oct 2009 16:28:45 -0400
- To: Jürgen Jakobitsch <jakobitschj@punkt.at>
- CC: dbpedia-discussion@lists.sourceforge.net, "public-lod@w3.org" <public-lod@w3.org>
Jürgen Jakobitsch wrote:
> hi,
>
> results might sometimes also be correct but clinton-like (misleading)
>
> consider the fact, that sparqling for skos:broaderTransitive does not include the direct skos:broader.
>
> for example :
>
> - conceptA skos:broader conceptB
> - conceptB skos:broader conceptC
> - conceptC skos:broader conceptD
>
> sparql for skos:broader of conceptA => includes conceptB (and nothing else)
> sparql for skos:broaderTranisitive of conceptA => includes conceptC, conceptD (but not conceptA)
> sparql for skos:broader of conceptC => includes conceptD (and nothing else)
> sparql for skos:broaderTransitive of conceptC => includes emptiness
>
> if you would like the whole chain of broaders you would need to use skos:broader UNION skos:broaderTransitive
>
> analog for narrowers
>
> but there's definitly something wrong with the broaderTransitive reasoning.
>
> some further down wrote something broaderTransitive subPropertyOf broader :
>
> PLEASE take care skos:broader is a subPropertyOf skos:broaderTransitive !!
>
> wkr www.turnguard.com
>
>
>
>
> ----- Original Message -----
> From: "Alexandre Passant" <alexandre.passant@deri.org>
> To: "Kingsley Idehen" <kidehen@openlinksw.com>
> Cc: public-lod@w3.org, "Antoine Isaac" <aisaac@few.vu.nl>, pedantic-web@googlegroups.com, dbpedia-discussion@lists.sourceforge.net
> Sent: Thursday, October 8, 2009 1:17:41 PM GMT -05:00 US/Canada Eastern
> Subject: Re: [Dbpedia-discussion] DBpedia SPARQL Endpoint and Transitive Queries
>
> 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> .
>
>
>
>
>
>
>
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry(R) Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay
> ahead of the curve. Join us from November 9 - 12, 2009. Register now!
> http://p.sf.net/sfu/devconference
> _______________________________________________
> Dbpedia-discussion mailing list
> Dbpedia-discussion@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion
>
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry(R) Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay
> ahead of the curve. Join us from November 9 - 12, 2009. Register now!
> http://p.sf.net/sfu/devconference
> _______________________________________________
> Dbpedia-discussion mailing list
> Dbpedia-discussion@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/dbpedia-discussion
>
All,
## Rule
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
INSERT INTO GRAPH <urn:rules.skos> { skos:broader rdfs:subPropertyOf
skos:broaderTransitive .
skos:narrower rdfs:subPropertyOf
skos:narrowerTransitive};
## Virtuoso SQL for associating rule with specific context graph
## Execute via ISQL interface (Conductor or CommandLine variants)
rdfs_rule_set ('skos-trans', 'urn:rules.skos');
## Actual Query that uses a Context Rule to handle Instance data being
skos:broader based
DEFINE input:inference "skos-trans"
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" )
}
## Execute the above against the DBpedia SPARQL endpoint will return
data, now that context rule has been created and pragma is in the SPARQL
--
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 20:29:19 UTC