web-dev-qa-db-ja.com

Prologにファイルをロードしています

私はPrologチュートリアルを行っています。次のように入力することで、他のプロローグファイルをロードできると言っています。

[filename].

しかし、私がこれを試みるたびに、

ERROR: load_files/2: Arguments are not sufficiently instantiated.

ファイルは、作業中のディレクトリと同じディレクトリにあります。

クエリとエラー全体のコピーは次のとおりです。

12 ?- [KB5].

ERROR: load_files/2: Arguments are not sufficiently instantiated

私は何が間違っているのですか?

18
cubearth
$ cat junk.pl
test(ok).

$ prolog
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 5.8.0)
Copyright (c) 1990-2009 University of Amsterdam.
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.

For help, use ?- help(Topic). or ?- apropos(Word).

?- [junk].
% junk compiled 0.00 sec, 24 bytes
true.

それは私にとってはうまくいくようです。もちろん、ファイル名には変数ではなくatomを使用しています(KB5は変数名であり、アトムではありません)。最初に['KB5']を試して、それが役立つかどうかを確認してください。 。次に[kb5]を試して、それが役立つかどうかを確認します。最後に、私が提供したような最小限の例を試して、その方法でロードできるかどうかを確認します。


追加するために編集:

$ cp junk.pl JUNK.pl
$ prolog
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 5.8.0)
Copyright (c) 1990-2009 University of Amsterdam.
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.

For help, use ?- help(Topic). or ?- apropos(Word).

?- [JUNK].
ERROR: load_files/2: Arguments are not sufficiently instantiated
?- ['JUNK'].
% JUNK compiled 0.00 sec, 1,656 bytes
true.

確かにatom問題のようです。['KB5']を使用すると、エラーがなくなる可能性があります。

提供された他の方法は機能しますが。別の方法は次のとおりです。

?- consult('C:/User/Folder/myRules.pl').

それでうまくいくはずです!

9
Scott Gramig

使用しているプラ​​ットフォームはわかりませんでした。 Raspberry Piで実行していますが、Piディレクトリに配置されている場合、プロローグファイルは正常にロードされます。 Pi/Documentsディレクトリにロードすることができませんでした。そこで、Piディレクトリに「prolog」フォルダを実験して作成し、そこにload.plファイルを配置して、作業を確認しました。

consult(prolog/load).
0
Keith Aymar