Prolog - 如何在pl文件中使用多个pl文件

时间:2015-04-23 19:01:57

标签: prolog swi-prolog

我是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').

我的问题是,如何在一个文件中使用这些2 pl文件?如何在一个文件中导入这些文件?我怎样才能使用这个"关系"在第三个文件中使用/ import" verbs.pl"和" names.pl" ?

2 个答案:

答案 0 :(得分:3)

使用consult,因为您正在使用swi,您可以使用简短形式。 SWI自动将.pl附加到文件名。

% short form:
:- [verbs, names].

%longer form:
:- consult(varbs).
:- consult('names.pl').

如果您在这两个文件中都有relation个事实,则可以使用include

:-include('verbs.pl').
:-include('names.pl').

这两个假设您设置了第三个文件。

您还可以使用

将谓词声明为multifile
:-multifile(relation/3).

然后prolog不会覆盖先前定义的谓词的声明。

这是documentation of SWI for loading and consulting

答案 1 :(得分:1)

最简单的解决方案是使用内容包含第三个文件:

:- include(file1).
:- include(file2).

include/1标准指令上查看Prolog系统的文档。