- From: Jitao Yang <jitao.yang@gmail.com>
- Date: Sat, 30 May 2009 22:21:57 +0200
- To: Lee Feigenbaum <lee@thefigtrees.net>
- Cc: public-sparql-dev@w3.org
- Message-ID: <eb1226bd0905301321r42a97bdt699a46c532edd61e@mail.gmail.com>
Thank you very much for your help, it works :-) On Sat, May 30, 2009 at 21:51, Lee Feigenbaum <lee@thefigtrees.net> wrote: > Jitao Yang wrote: > >> Dear all, >> >> if there is a RDF like: >> >> <?xml version="1.0" encoding="utf-8"?> >> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" >> xmlns:dc="http://purl.org/dc/elements/1.1/"> >> <rdf:Description rdf:about="http://example.org/BookJava"> >> <dc:fullname>Book Java</dc:fullname> >> <dc:author> >> <rdf:Description rdf:about=" >> http://example.org/BookJava/authorA"> >> <dc:fullname>Bob Smith</dc:fullname> >> <dc:country>Italy</dc:country> >> </rdf:Description> >> </dc:author> <dc:author> >> <rdf:Description rdf:about=" >> http://example.org/BookJava/authorB"> >> <dc:fullname>Tom Bush</dc:fullname> >> <dc:country>Italy</dc:country> >> </rdf:Description> >> </dc:author> >> </rdf:Description> >> >> <rdf:Description rdf:about="http://example.org/BookCpp"> >> <dc:fullname>Book Cpp</dc:fullname> >> <dc:author> >> <rdf:Description rdf:about="http://example.org/BookCpp/author1 >> "> >> <dc:fullname>Alice Bird</dc:fullname> >> <dc:country>Italy</dc:country> >> </rdf:Description> >> </dc:author> <dc:author> >> <rdf:Description rdf:about="http://example.org/BookCpp/author2 >> "> >> <dc:fullname>Mike Luck</dc:fullname> >> <dc:country>France</dc:country> >> </rdf:Description> >> </dc:author> >> </rdf:Description> >> </rdf:RDF> >> >> >> and I query the RDF by: >> >> PREFIX dc:<http://purl.org/dc/elements/1.1/> >> SELECT DISTINCT ?bookName >> WHERE { >> ?bookName dc:author ?author . >> {?author dc:country ?country . FILTER(?country = >> "Italy")} >> }; >> >> the query results are: >> >> --------------------------------- >> | bookName | >> ================================= >> | <http://example.org/BookCpp> | >> | <http://example.org/BookJava> | >> --------------------------------- >> >> can anybody tell me how to query out the "book whose authors' country are >> all Italy "? >> which means the query results should be: >> >> --------------------------------- >> | bookName | >> ================================= >> | <http://example.org/BookJava> | >> --------------------------------- >> > > Jitao, > > It's not pretty, but you should be able to do it with something like: > > PREFIX dc:<http://purl.org/dc/elements/1.1/> > SELECT DISTINCT ?bookName > WHERE { > # first, make sure there's an author from italy > ?bookName dc:author ?author . > ?author dc:country ?country . FILTER(?country = "Italy") . > # next, "try" to find another author not from italy > OPTIONAL { > ?bookName dc:author ?author2 . > ?author2 dc:country ?country2 . > FILTER(?country2 != "Italy") > } > # finally, we only want this book if we didn't find any non-Italy > # authors > FILTER(!bound(?country2)) > } > > (Warning, untested query.) > > hope this helps, > Lee > > > >> Thank you very much for your help! >> >> Best wishes, >> Jitao >> > >
Received on Saturday, 30 May 2009 20:22:54 UTC