在 Ubuntu 中使用 SWI-Prolog(多线程,64 位,版本 5.10.4),我试图从 rdf/3 谓词中获取 rdf 三元组,遵循其中一个教程(实际上,所有这些都告诉我相同,但下面的示例与http://cliopatria.swi-prolog.org/tutorial/Parsia/ 类似)。然而,虽然其他谓词似乎运作良好,但 rdf/3 什么也没给出:
?- [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'.
如果我为 P 和 O 输入常数(但我忘了怎么做),我会得到 S 的结果一两次。我不确定这是我的 swipl 版本中的一个错误,还是我忘记了一些重要的事情或一些琐碎的事情。Prolog 和库是从标准的 Ubuntu 12.10 存储库安装的。
(我没有对 semweb 库进行任何测试,因为我不知道该怎么做,因为我不是每天都在 Prolog 中编程)