- 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