序言文件:“运行”swipl -f main.pl“”是什么意思?

问题描述:

在Mac OSX的SWI Prolog的?提示符后,我尝试了括号和单引号的各种组合。没有工作。这个命令是否应该一次加载一堆文件?在我接触到?提示之前,我是否需要输入一些内容?序言文件:“运行”swipl -f main.pl“”是什么意思?

如果有人能够准确地告诉我要在下面输入#1的内容,那就太好了。 (我不是一个程序员,但是我一直在试图找到一个简单的专家系统shell来为我的认知科学课程介绍一下,我已经尝试了Amzi鸟的事情大约一百万次,除了错误Amzi以及SWI)。谢谢!

Prolog的专家系统(APES) http://apes.sourceforge.net/ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

运行:

  1. 安装SWI-Prolog的(应该在任何符合ISO标准的序言解释工作,但是这是未经测试)
  2. 运行 “swipl -f main.pl”
  3. 进入 “启动”。

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

+0

非常感谢你们!我得到了一个不存在的命令错误,所以我手动加载了main.pl。以下是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什么时候?

+0

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。 –

+0

我不介意手动启动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条款 真实。 –

+0

@Lee由于该错误提到'knowledge/groups /'子目录中的源文件,我想你手动加载SWI或文件的方式看不到该子目录。我试图用Homebrew安装SWI-Prolog来安装在命令行上工作(以修复原来的'找不到命令'问题)。 –