2017-09-18 10 views
0

SPARQLを学び、SPARQLクエリを使用して特定の人物をdbpediaから取得しようとしています。私はhttps://dbpedia.org/sparqlでエンドポイントを使用してこのクエリを実行しています。私が見つけようとしているのは、アルバート・アインシュタインです。彼のページにdbp:nameというプロパティがあることがわかりました。だから私は彼の名前でアルバート・アインシュタインを見つけるために、クエリを書いた:私はjusting「人のヘッダーと空のテーブルを見ているようsparqlクエリを使用してdbpediaで特定の人を見つける

select ?person where {?person <http://dbpedia.org/property/name> "Albert Einstein"} LIMIT 100 

は残念ながら、これは私だけの空の結果セットを(と思う)を与えます

どうなりますか?

答えて

0

は、私はあなたのクエリが動作しない理由はわからないんだけど、これは行います

select ?person where {?person foaf:name "Albert Einstein"@en} LIMIT 100 

を、これは科学者を含む「アルバート・アインシュタイン」という名前のすべてのエンティティを返しますが、だけでなく、アルバムの同じ名前。人だけを望むなら、次のように使うことができます:

select ?person 
where { 
    ?person foaf:name "Albert Einstein"@en. 
    ?person a foaf:Person. 
} 
LIMIT 100 
+0

DBpediaデータは現在RDF 1.1ですので、リテラルは '' Albert Einstein "^^ rdf:langString'です。これは[DESCRIBEクエリ]で確認できます(http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=describe+%3Chttp%3A%2F%2Fdbpedia.org%2Fresource %2FAlbert_Einstein%3E&format = text%2Fturtle&CXML_redir_for_subjs = 121&CXML_redir_for_hrefs =&timeout = 30000&debug = on&run = +実行+ Query +) – AKSW

+0

@AKSW私はそれを見ました。しかしなぜそれは ''アルバート・アインシュタイン '@エン 'ではないのですか? [RDF 1.1。 spec](https://www.w3.org/TR/rdf11-concepts/#section-Graph-Literal)は、言語タグなしでは 'rdf:langString'を使うことはできないようです。 – svick

+0

これは良い質問です。おそらく、ロードされたデータやVirtuoso特有のものであっても問題はありません。私はちょうど[ダンプのプレビュー](http://downloads.dbpedia.org/preview.php?file=2016-04_sl_core-i18n_sl_en_sl_infobox_properties_mapped_en.ttl.bz2)を見て、ここでは以前と同じように見えます。奇妙な。 – AKSW

関連する問題