首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Prolog文件:“运行"swipl -f main.pl”是什么意思?

Prolog文件:“运行"swipl -f main.pl”是什么意思?
EN

Stack Overflow用户
提问于 2013-09-28 02:15:46
回答 3查看 1.1K关注 0票数 1

在Mac上SWI Prolog中的?-提示符之后,我尝试了各种括号和单引号的组合。什么都没用。这个命令应该一次加载一堆文件吗?我在到达?-提示符之前输入了什么吗?

如果有人能确切地告诉我,在下面的第一页输入什么,那就太好了。(我不是一个程序员,但我一直试图为我的认知科学入门课程寻找一个简单的专家系统外壳。我已经尝试了大约一百万次Amzi鸟的事情,除了在Amzi和SWI中的错误之外,什么也没有得到。谢谢!

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

跑步:

  1. 安装swi(应该在任何ISO标准的Prolog解释器上工作,但这是未经测试的)
  2. 运行"swipl -f main.pl“
  3. 输入“开始”

更新:(非常感谢硬数学和user882813!)我得到了一个与"swipl -f main.pl“不存在错误的命令,所以我手动启动了swipl加载的main.pl。下面是main.pl的代码:

代码语言:javascript
复制
% 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.

但是发生了这样的事情:当我输入start时,我得到一个文件不存在错误: error: /Users/leesebastiani/prologfiles/main.pl:10: source_sink‘`knowledge/group/*..pl’不存在

但是,当我尝试手动加载时,我得到了以下内容:?-‘knowledge/group/*..pl’。错误: /Users/leesebastiani/prologfiles/main.pl:10: source_sink `knowledge/group/*..pl‘不存在警告: /Users/leesebastiani/prologfiles/main.pl:10:目标(指令)失败:user:ensure_loaded(knowledge/group/*..pl)

我想让我的学生更容易。这是我最后一节课的全部内容:

代码语言:javascript
复制
?- ['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.

?- 

谢谢你的建议!

EN

回答 3

Stack Overflow用户

发布于 2013-09-28 16:41:11

对我来说,这是可行的(在MacOS10.8.5上):

$ git clone https://github.com/fsteeg/apes.git

[...]

$ cd com.quui.apes/src/

$ swipl -f main.pl

?- start.

我使用了GitHub版本,但是代码应该是相同的。这会不会是你的版本的问题呢?我用Homebrew (http://brew.sh/)安装了我的:

$ brew install swi-prolog

[...]

$ swipl --version

SWI-Prolog version 6.0.2 for i386-darwin12.5.0

如果这没有帮助,您能在运行swipl -f main.pl时提供一些关于原始问题的详细信息吗?

票数 2
EN

Stack Overflow用户

发布于 2013-09-28 03:10:48

命令"swipl -f main.pl“是在OS命令提示符下输入的,而不是在swipl中输入的?-提示符。

该命令执行顶级命令解释器并加载Prolog源文件main.pl

票数 0
EN

Stack Overflow用户

发布于 2013-09-28 15:55:27

AMZI教程已经过时了。试图让它在不了解Prolog的情况下运行,看起来就像一个痛苦的世界。你也许还想找点别的东西。这太糟糕了--这是一个很棒的教程。

如果你是专家系统的新手,让我给你建议一下

http://clipsrules.sourceforge.net/

Prolog本身并不是一个专家系统外壳。Prolog是一种编程语言。当然,这将是一个很好的选择,写这样的外壳。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19062497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档