首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SWI-Prolog semweb_db的rdf谓词没有给出任何结果

SWI-Prolog semweb_db的rdf谓词没有给出任何结果
EN

Stack Overflow用户
提问于 2013-01-13 23:20:40
回答 2查看 234关注 0票数 3

在Ubuntu中使用SWI-Prolog (多线程,64位,版本5.10.4),我正在尝试从rdf/3谓词中获取RDF三元组,遵循其中一个教程(实际上,所有教程都告诉我相同的内容,但下面的示例与http://cliopatria.swi-prolog.org/tutorial/Parsia/类似)。然而,虽然其他谓词似乎工作得很好,但rdf/3没有提供任何东西:

代码语言:javascript
复制
?- [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版本中的一个bug,或者我忘记了一些重要的或琐碎的事情。Prolog和库是从标准的Ubuntu 12.10代码库安装的。

(我没有为semweb库运行任何测试,因为我不知道如何做,因为我不是每天用Prolog编程)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-14 00:36:38

我使用的是从源代码安装的SWI-Prolog,我可以看到示例之后的三元组。那么你可能需要升级你的版本。

票数 1
EN

Stack Overflow用户

发布于 2017-04-20 04:46:48

我总是尝试给要加载三元组的图命名,然后在rdf/4函数中使用该名称。这对我来说很有效,并且使您要查询的图形清晰可见。举个例子:

代码语言:javascript
复制
?- 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' .
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14304841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档