序言文件:“运行”swipl -f main.pl“”是什么意思?
在Mac OSX的SWI Prolog的?提示符后,我尝试了括号和单引号的各种组合。没有工作。这个命令是否应该一次加载一堆文件?在我接触到?提示之前,我是否需要输入一些内容?序言文件:“运行”swipl -f main.pl“”是什么意思?
如果有人能够准确地告诉我要在下面输入#1的内容,那就太好了。 (我不是一个程序员,但是我一直在试图找到一个简单的专家系统shell来为我的认知科学课程介绍一下,我已经尝试了Amzi鸟的事情大约一百万次,除了错误Amzi以及SWI)。谢谢!
Prolog的专家系统(APES) http://apes.sourceforge.net/ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
运行:
- 安装SWI-Prolog的(应该在任何符合ISO标准的序言解释工作,但是这是未经测试)
- 运行 “swipl -f main.pl”
- 进入 “启动”。
UPDATE:(!谢谢hardmath和user882813这么多) 我得到的命令不符合 “swipl -f main.pl” 存在错误,所以我就开始SWI Prolog的ABD装载手动main.pl。下面是main.pl代码:
% A Prolog Expert System (APES)
% http://apes.sourceforge.net/
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
:- ensure_loaded('engine.pl').
:- ensure_loaded('tokenizer.pl').
:- ensure_loaded('parser.pl').
:- ensure_loaded('knowledge/knowledge.pl').
:- ensure_loaded('knowledge/groups/*.pl').
:- ensure_loaded('helpers.pl').
:- ensure_loaded('processor.pl').
start:-
%dynamic((::)/2),
write('_____________________________________________________'),
nl,nl,
loop_read_in(_).
loop_read_in(X):-
% from tokenizer.pl (clocksin & mellish, "programming in prolog"):
read_in(X),
process(X),
loop_read_in(_).
loop_read_in(X):-
read_in(X),
not(process(X)),
!,fail.
,但这里是发生了什么事:当我进入开始我得到一个文件不存在的错误: ERROR:/Users/leesebastiani/prologfiles/main.pl:10 : source_sink`知识/组/ *。pl'不存在
但是,当我试图加载THAT手动我得到这个: - ['knowledge/groups/*。pl']。 错误:/Users/leesebastiani/prologfiles/main.pl:10: source_sink知识/ groups/*。pl'不存在 警告:/Users/leesebastiani/prologfiles/main.pl:10: 目标(指令)失败:user:ensure_loaded(knowledge/groups/*。pl)
我想让我的学生变得轻松。这是我最后一次会议:
?- ['main.pl'].
% engine.pl compiled 0.00 sec, 64 clauses
% tokenizer.pl compiled 0.00 sec, 62 clauses
% parser.pl compiled 0.00 sec, 32 clauses
% knowledge/knowledge.pl compiled 0.00 sec, 17 clauses
ERROR: /Users/leesebastiani/prologfiles/main.pl:10:
source_sink `knowledge/groups/*.pl' does not exist
Warning: /Users/leesebastiani/prologfiles/main.pl:10:
Goal (directive) failed: user:ensure_loaded(knowledge/groups/*.pl)
% helpers.pl compiled 0.00 sec, 24 clauses
% processor.pl compiled 0.00 sec, 12 clauses
% main.pl compiled 0.01 sec, 227 clauses
true.
?- ['knowledge/groups/*.pl'].
% knowledge/groups/feline.pl compiled 0.00 sec, 2 clauses
% knowledge/groups/pet.pl compiled 0.00 sec, 5 clauses
true.
?- ['main.pl'].
ERROR: /Users/leesebastiani/prologfiles/main.pl:10:
source_sink `knowledge/groups/*.pl' does not exist
Warning: /Users/leesebastiani/prologfiles/main.pl:10:
Goal (directive) failed: user:ensure_loaded(knowledge/groups/*.pl)
% main.pl compiled 0.00 sec, 1 clauses
true.
?-
感谢您的任何建议!
命令“swipl -f main.pl”是在OS命令提示符处输入的内容,而不是在?提示符处的SWI-Prolog内输入的。
该命令执行*命令解释器并加载Prolog源文件main.pl
。
在这种情况下,“swipl -f main.pl”是一个在命令行提示符下输入的命令,它启动swi-prolog并加载主程序文件。
如果您已经启动了SWI-Prolog,那么只需通过文件⇒从APES分布打开main.pl文件打开菜单项,然后键入“start”。 (不含引号)并按回车。
UPD:我得到了同样的错误有关:- ensure_loaded('knowledge/groups/*.pl').
线只是两行确切的文件名代替*.pl
替代它:
:- ensure_loaded('knowledge/groups/feline.pl').
:- ensure_loaded('knowledge/groups/pet.pl').
不知道这是解决这个问题的一个正确的方式,但是。
AMZI教程相当过时。试图在没有Prolog知识的情况下运行它看起来像一个痛苦的世界。 你可能想找点别的东西。这太糟糕了 - 这是一个很好的教程。
如果你是全新的专家系统,让我提出CLIPS
http://clipsrules.sourceforge.net/
Prolog是不是专家系统在它自己的外壳。 Prolog是一种编程语言。当然这是编写这样一个shell的绝佳选择。
对于我来说,这个工程(在Mac OS 10.8.5):
$ git clone https://github.com/fsteeg/apes.git
[...]
$ cd com.quui.apes/src/
$ swipl -f main.pl
?- start.
我用GitHub的版本,但代码应该是一样的。这可能是您的SWI-Prolog版本的问题吗?我安装了矿用自制(http://brew.sh/):
$ brew install swi-prolog
[...]
$ swipl --version
SWI-Prolog version 6.0.2 for i386-darwin12.5.0
如果这没有帮助,你能提供你原来的问题,一些细节上运行swipl -f main.pl
什么时候?
F*,你是最棒的!我正在运行OS 10.7.5和Prolog SWI 6.4.1。这是发生了什么事情:[lee-sebastianis-macbook-pro:〜/ prologfiles/apes-0.2.0/src] leesebastiani%swipl -f main.pl swipl:Command not found。 –
我不介意手动启动SWI,但会发生以下情况:? - ['main.pl']。 %engine.pl编译0.00秒,64个子句 %tokenizer.pl编译0.00秒,62个子句 %parser.pl编译0.00秒,32个子句 %知识/ knowledge.pl编译0.00秒,17个子句 错误:用户/ leesebastiani/prologfiles/apes-0.2.0/src/main.pl:10: \t source_sink知识/ groups/*。pl'不存在 警告: \t目标(指令)失败:user:ensure_loaded(知识/组//*。pl) %helpers.pl编译0.00秒,24条款 %processor.pl编译0.00秒,12条款 %main.pl编译0.01秒,227条款 真实。 –
@Lee由于该错误提到'knowledge/groups /'子目录中的源文件,我想你手动加载SWI或文件的方式看不到该子目录。我试图用Homebrew安装SWI-Prolog来安装在命令行上工作(以修复原来的'找不到命令'问题)。 –
非常感谢你们!我得到了一个不存在的命令错误,所以我手动加载了main.pl。以下是main.pl的代码: –