我是 Prolog 的新人。我有两个文件。其中之一是“names.pl”,另一个是“verbs.pl”。这两个文件都有事实。“names.pl”有关于很多名词等的事实。事实的名称是关系。
这些文件的模板:relation(notion_1,relation,notion_2) 示例:
relation('accumulator','shape','rectangle').
relation('packing','shape','rectangle').
relation('gold','live / lifeless','lifeless').
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何在一个文件中使用这 2 个 pl 文件?如何将这些文件导入到一个文件中?如何使用/导入“verbs.pl”和“names.pl”在第三个文件中使用这个“关系”事实?
使用consult,就像您使用 swi 一样,您可以使用缩写形式。SWI 自动附加.pl到文件名。
% short form:
:- [verbs, names].
%longer form:
:- consult(varbs).
:- consult('names.pl').
Run Code Online (Sandbox Code Playgroud)
如果relation这两个文件中都有事实,您可以使用include:
:-include('verbs.pl').
:-include('names.pl').
Run Code Online (Sandbox Code Playgroud)
这两个文件假设您设置了第三个文件。
您还可以将谓词声明为multifile, 其中
:-multifile(relation/3).
Run Code Online (Sandbox Code Playgroud)
那么 prolog 就不会覆盖先前定义的谓词的声明。
这里是SWI的加载和咨询文档。