2013-01-13 62 views
3

在Ubuntu中,使用SWI-Prolog(多線程,64位,版本5.10.4),我試圖從rdf/3謂詞獲得 rdf三元組,教程(實際上,他們全都 告訴我一樣,但下面的示例是沿着http://cliopatria.swi-prolog.org/tutorial/Parsia/)。然而,在其他謂詞似乎運作良好,在RDF/3只給出了什麼:SWI-Prolog semweb_db的rdf謂詞沒有提供任何內容

?- [library(semweb/rdf_db)]. 
... 
true 
?- [library(semweb/rdf_http_plugin)]. 
... 
true 
?- rdf_load('http://dbpedia.org/resource/Amsterdam'). 
% Parsed "http://dbpedia.org/resource/Amsterdam" in 0.32 sec; 4,194 triples 
true. 

?- rdf(S, P, O). 
false. 
?- rdf_graph(G). 
G = 'http://dbpedia.org/resource/Amsterdam'. 

一次或兩次,我得到的結果爲S,如果我把常數P和O(但我忘了怎麼辦它。)。我不確定,如果這是我swipl版本中的錯誤,或者我忘記了一些重要的或瑣碎的事情。 Prolog和庫從標準的Ubuntu 12.10倉庫安裝。

(我還沒有運行的semweb庫中的任何測試,因爲我不知道如何做到這一點,因爲我在序言不要天天程序)

+0

可能需要升級你的版本,我看到你的榜樣後,三元...... – CapelliC

+0

請,寫一個答案,所以我可以承認你輸入properyl:我已經升級(使用gdebi,和deb for http://wp.debian.org/debian/pool/main/s/swi-prolog/用於SWI-Prolog(多線程,64位,版本6.2.5)),現在我也看到了這些三元組。謝謝! –

回答

1

我使用SWI-Prolog的從源代碼安裝,我可以看到你的例子之後的三元組。 那麼可能你需要升級你的版本。

0

我總是嘗試命名圖形我正在加載我的三元組,然後在rdf/4函數中使用該名稱。這對我有用,並明確了你正在查詢的圖。因此,例如:

?- rdf_load('http://dbpedia.org/resource/Amsterdam', [graph('amsterdam')]). 
% Parsed "http://dbpedia.org/resource/Amsterdam" in 0.19 sec; 5,120 triples 
true. 

?- rdf_statistics(triples_by_graph(Graph, Triples)). 
Graph = amsterdam, 
Triples = 5120. 

?- rdf(S, P, O, 'amsterdam'). 
S = 'http://dbpedia.org/resource/Cornelis_Pronk', 
P = 'http://dbpedia.org/property/placeOfBirth', 
O = 'http://dbpedia.org/resource/Amsterdam' .