尝试使用swi-prolog中的semweb包将rdf三元组保存到文件中,但不断收到错误,并且三元组未正确保存。
以下小代码显示了Ubuntu Bionic上swi-prolog版本7.6.4的问题。
PS:请忽略'rdf:xyz‘谓词,因为我倾向于使用它而不需要添加新的前缀
:- use_module(library(semweb/rdf_db)).
assert_test :-
rdf_bnode(Node),
rdf_assert(Node, rdf:xyz, literal(type(xsd:string, "foobar"))),
rdf_save('foo.xml').我得到以下错误(仅显示顶部行):
ERROR: Unknown error term: save_attribute_value("foobar")
ERROR: In:
ERROR: [25] throw(error(save_attribute_value("foobar"),_980))
.
.
.文件已创建,但没有完整的三元组。
一个有趣的附注是,如果我使用rdf_save_turtle而不是rdf_save,它可以工作。任何帮助都是非常感谢的。
发布于 2019-01-07 12:47:12
根据我对文档的第一次浏览,我认为您应该尝试传递一个原子,而不是Prolog字符串。
rdf_assert(Node, rdf:xyz, literal(type(xsd:string, foobar))) 或者可能只使用literal(foobar)或literal(lang(en, foobar))。
https://stackoverflow.com/questions/54058048
复制相似问题