2016-07-02 4 views
0

sparql検索を使用して、dbpediaのprecededBy属性とfollowsBy属性の書籍のタイトルを取得しようとしています。 例http://dbpedia.org/page/Harry_Potter_and_the_Goblet_of_Fire - 前後の書籍タイトルを返すクエリ。ですから、私が本のタイトル「秘密の部屋」を置くと、その前と後の本が返されます。dbpedia SPARQLブック検索クエリ

Iveはsparqlに関するビデオをいくつか見てみましたが、ここでは例を見てみましたが、動作中のクエリが生成されないようです。

私は以下を試しましたが、構文エラーが発生します。

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX res: <http://dbpedia.org/resource/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 


SELECT DISTINCT ?uri 
WHERE { 
    ?uri rdf:type dbo:Book . 
    ?uri dbp:precededBy res:'Harry Potter and the Chamber of Secrets' . 

} 

次実行しますが、何もありませんとDBPなどと:私は、RDF例えば、私は正しい方法でフィルタリングしようとしている属性をリンクする方法はない確信しています。

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX res: <http://dbpedia.org/resource/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 


SELECT DISTINCT ?uri 
WHERE { 
    ?uri rdf:type dbo:Book . 
    ?uri dbp:followedBy 'Harry Potter and the Order of the Phoenix' . 

} 
+0

私はあなたがすでに試したことを是非お試しください。 – lokusking

答えて

0

あなたは秘密の部屋のためにprecededByとfollowedByの両方をお知りになりたい場合は、このクエリを使用することができます。

SELECT * 
WHERE { 
    dbr:Harry_Potter_and_the_Chamber_of_Secrets 
    dbp:precededBy ?precededBy; 
    dbp:followedBy ?followedBy. 
} 

お知らせどのように名前アンダースコアの代わりに、ちょうどウィキペディアのURLのようにフォーマットされている場合スペース。

書籍に2つの書籍のいずれかがない場合は、何も返されません。 OPTIONALを使用して回避することができます。

+0

ありがとう、それは私が後にしたものです。 – ms18

関連する問題