Управление файловым потоком 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).
Я искал примеры того, как извлечь термин и использовать его для дальнейшей обработки, но мне не повезло (или, может быть, я использую неправильную терминологию).
Любая помощь будет принята с благодарностью.