文件流操作PROLOG
我正在开发一个基于案例的学术建议推理子系统,该子系统能够获取新的学生档案(成绩单)并将其与 student_profiles 数据库进行比较,以便在不完全匹配的情况下找到最佳匹配。
我仍然不太熟悉这种语言,我试图打开一个文件并提取一个特定的谓词让我们说
student_profile/4 : student_profile(L1, name, L2, L3)
位于student.pl
.
一旦我从 .pl 文件中提取了谓词,我希望能够将它分配给一个变量并将其拆分,以便我可以提取第一个参数(在本例中L1
)进行一些计算。
这就是我目前所拥有的:
我已经打开了文件,并且能够看到在学生资料或成绩单中找到的整个谓词列表。
load :- open('h:/AAS/Novel_Profiles/vivian.pl', read, Stream),
read(Stream, X),
read_data(Stream, X, StudentP),
write(StudentP),
close(Stream).
read_data(_Stream, end_of_file, []) :- !.
read_data(Stream, X, [X|StudentP]) :-
read(Stream, Y),
read_data(Stream, Y, StudentP).
我已经寻找有关如何提取术语并将其用于进一步处理的示例,但我没有运气(或者我可能没有使用正确的术语)。
任何帮助将不胜感激。