2016-04-30 85 views
0

我一直在試圖做一個DBpedia查詢來獲取有關化學元素(而不是化合物/物質)的信息框中的數據。我瞄準的東西類似於this,但對於元素(如this)。dbpedia化學元素查詢

然而,當我做類似下面的查詢:

SELECT * WHERE{ 
:Arsenic ?predicate ?object. 
} 

在大多數例子中顯示的性能甚至不露面。我做錯了什麼?

+0

假設您使用DBpedia資源的前綴,您的查詢是好的。它帶來了DBpedia中的所有可用功能 - http://dbpedia.org/page/Arsenic。 (另外,你可以得到鏈接的資源,其中':砷是對象:'?subject?predicate2:砷「)。但是它確實比信息框中的內容少。我想知道這可能是最後一個BDpedia數據集創建方式的問題。 –

+1

是的,它似乎可能只是與數據集的問題。我無法使用MediaWiki api提取頁面的信息框,要麼是 – Geebs

回答

1

問題是,當你看着the source of the Arsenic page on Wikipedia,它不直接包含任何數據,而只是:{{Infobox arsenic}}

我認爲DBpedia無法從那裏提取數據,這就是爲什麼你沒有看到有用的東西。

0

Extract Chemical Data from DBpedia via SPARQL這個問題不太好讓你知道在查詢中的完全限定的URI是什麼。但是如果您仔細查看博客,砷的完整URI列爲http://dbpedia.org/resource/Category:Arsenic。完整的URI就是你需要的。您可以使用本身:

SELECT * 
WHERE { 
    <http://dbpedia.org/resource/Category:Arsenic> ?predicate ?object. 
} 

...或者定義一個前綴爲DBpedia的資源命名空間:在這種情況下

PREFIX dbpedia: <http://dbpedia.org/resource/> 
SELECT * 
WHERE { 
    dbpedia:Category:Arsenic ?predicate ?object. 
} 

注意,PREFIX定義替換dbpedia:與命名空間http://dbpedia.org/resource/

+2

http://dbpedia.org/resource/Category:Arsenic是錯誤的,它應該是http://dbpedia.org/resource/Arsenic。 – svick

+0

取決於你想要什麼。兩者都是DBPedia中的有效URI。 – scotthenninger