- 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