如何在 SWI-Prolog 中更改包目录

How to Change Package Directory in SWI-Prolog

我正在尝试在 SWI-Prolog 中安装一个包 (sldnfdraw),但我找不到指定安装目录(即我想要安装它的位置)的方法。

documentation 貌似是可以选择包目录的,但我一直没有成功。不可否认,我对 Prolog 还很陌生,可能会忽略一些明显的东西。尽管如此,我已经在所有常见的地方(Stack Overflow、文档)搜索了答案,但没有成功。

我试图通过调用 pack_install(sldnfdraw). 安装软件包 sldnfdraw 这会在 $HOME/lib/swipl/pack 处创建一个目录。然后我尝试了 pack_install(sldnfdraw, $PREF_DIR). 的各种形式,其中 $PREF_DIR 是我希望安装包的目录的绝对路径。该文档引用了一些将选项传递给函数的方法,但没有指定这样做的方法。鉴于 Prolog 上可用的资源有限(以及这个特定的实现),我发现自己陷入了死胡同。希望有人能给我指出正确的方向。

指定安装目录的功能是package_directory/1。为了将其与 pack_install/2 结合使用,我需要将其括在方括号中。因此,将包 sldnfdraw 安装到目录 $PREF_DIR 的查询看起来像

pack_install(sldfndraw, [package_directory($PREF_DIR)]).