【发布时间】:2014-06-07 07:52:32
【问题描述】:
我有一个 csv 文件 example.csv,其中包含两列,标题为 var1 和 var2。
我想用重复的事实填充一个最初为空的 Prolog 知识库文件 import.pl,而 example.csv 的每一行都被视为相同:
fact(A1, A2).
fact(B1, B2).
fact(C1, C2).
如何在 SWI-Prolog 中编写代码?
编辑,基于@Shevliaskovic 的回答:
:- use_module(library(csv)).
import:-
csv_read_file('example.csv', Data, [functor(fact), separator(0';)]),
maplist(assert, Data).
当import. 在控制台中运行时,我们会完全按照请求的方式更新知识库(除了知识库直接在内存中更新,而不是通过文件和后续查询来执行此操作)。
检查setof([X, Y], fact(X,Y), Z).:
Z = [['A1', 'A2'], ['B1', 'B2'], ['C1', 'C2'], [var1, var2]].
【问题讨论】:
标签: csv prolog swi-prolog