【问题标题】:SWI-Prolog semweb_db's rdf predicate gives nothingSWI-Prolog semweb_db 的 rdf 谓词什么也没给出
【发布时间】:2017-04-20 04:46:48
【问题描述】:

在 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 中编程)

【问题讨论】:

  • 可能你需要升级你的版本,我看到你的例子后面的三元组...
  • 请写一个答案,以便我确认您输入的正确性:我已经升级(使用 gdebi 和 deb for from ftp.debian.org/debian/pool/main/s/swi-prolog for SWI-Prolog(多线程,64 位,版本 6.2。 5) ) 现在我也看到了那些三元组。谢谢!

标签: rdf swi-prolog


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我总是尝试为要加载三元组的图形命名,然后在 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' .
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      • 2012-04-06
      • 1970-01-01
      • 2011-11-11
      • 2022-10-13
      相关资源
      最近更新 更多