Text 使用文本将数据添加到prolog中

Text 使用文本将数据添加到prolog中,text,prolog,Text,Prolog,文本是 ?-dynamic(setup/5). setup :- seeing(S), see('people.txt'), read_data, write('data read'), nl, seen, see(S). read_data :- read(A), process(A). process(A) :- A == end_of_file. process(A) :- A \== end_of_file,

文本是

?-dynamic(setup/5).
setup :-
    seeing(S),
    see('people.txt'),
    read_data,
    write('data read'),
    nl,
    seen,
    see(S).
read_data :-
    read(A),
    process(A).
process(A) :- A == end_of_file.
process(A) :-
    A \== end_of_file,
    write('1'),
    read(B),
    read(C),
    read(D),
    read(E),
    assertz(person(A,B,C,D,E)),
    read_data.
结果出来了

john.will.30.london.doctor.
martha.will.33.portsea.doctor.
henry.smith.26.manchester.doctor.

会发生什么?我做错了什么?

您正在使用read/1进行阅读,它需要有效的序言文本作为输入。但是,您的数据是

?- setup.

* Syntax Error

* Syntax Error

* Syntax Error

* Syntax Error

* Syntax Error
data read
yes
这是无效的。写一些像

john.will.30.london.doctor.

相反。大多数情况下,人们不会手动读取此类数据。相反,他们用
['datafile.pl']
或其他命令加载文件。

您能精确地使用prolog实现并给出整个错误消息+您打算执行的操作吗?在将文本添加到prolog数据库的时候,有点不清楚。顺便说一句,这是一个胜利的开场白。这就是整个错误信息。
person(john,will,30,london,doctor).