Using aleph with SWI-prolog: source_sink `library(aleph)' does not exist

坚强是说给别人听的谎言 提交于 2019-12-20 07:18:10

问题


I’m trying to work Aleph with Swi-prolog. When I ran my program I got the error here. What can I do to import the library(aleph)?By the way, I have already downloaded Aleph.pl for my program. Here is my test program, I know there must be something wrong with the library aleph.

    :- use_module(library(aleph)).
    :- aleph.

I got the error:

ERROR: c:/users/mac/desktop/swi-prolog/aleph draft/1.pl:1:
    source_sink `library(aleph)' does not exist

Warning: c:/users/mac/desktop/swi-prolog/aleph draft/1.pl:1: Goal (directive) failed: user:use_module(library(aleph)) ERROR: c:/users/mac/desktop/swi-prolog/aleph draft/1.pl:2: catch/3: Undefined procedure: aleph/0 Warning: c:/users/mac/desktop/swi-prolog/aleph draft/1.pl:2: Goal (directive) failed: user:aleph Welcome to SWI-Prolog (threaded, 32 bits, version 7.6.4) SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software. Please run ?- license. for legal details.

For online help and background, visit http://www.swi-prolog.org For built-in help, use ?- help(Topic). or ?- apropos(Word).


回答1:


You should use the installer:

?- pack_install(aleph).

% Contacting server at http://www.swi-prolog.org/pack/query ... ok
Install aleph@5 from GIT at https://github.com/friguzzi/aleph.git Y/n? 
% Cloning into '/home/carlo/lib/swipl/pack/aleph'...
% Contacting server at http://www.swi-prolog.org/pack/query ... ok
% "aleph.git" was downloaded 6 times
Package:                aleph
Title:                  Aleph Inductive Logic Prorgramming system
Installed version:      5
Author:                 Fabrizio Riguzzi <fabrizio.riguzzi@unife.it>
Activate pack "aleph" Y/n? 
true.

?- use_module(library(aleph)).
true.



回答2:


Here is the example I tried, and I didn't get the inductive theory.

% Aleph initialization
    :- aleph.

% Mode declarations
% mode(RecallNumber,PredicateMode).
% - output
:- modeh(*,grandparent(+person,+person)).
:- modeb(*,father(-person,-person)).

:-begin_bg.
person(john).
person(johnJunior).
person(johnJuniorJunior).
person(jack).
person(jackJunior).
person(jackJuniorJunior).
father(johnJunior, john).
father(johnJuniorJunior, johnJunior).
father(jackJunior, jack).
father(jackJuniorJunior, jackJunior).

:-determination(grandparent/2,father/2).

:-end_bg.

:-begin_in_pos.
grandparent(john, johnJuniorJunior).
grandparent(jack, jackJuniorJunior).
:-end_in_pos.

:-begin_in_neg.
grandparent(jack, john).
:-end_in_neg.

:-aleph_read_all.

Here is my output:

[theory]

[Rule 1] [Pos cover = 1 Neg cover = 0]
grandparent(john,johnJuniorJunior).

[Rule 2] [Pos cover = 1 Neg cover = 0]
grandparent(jack,jackJuniorJunior).

[time taken] [0.015625]
[total clauses constructed] [2]
true.

I guess aleph systeme didn't work.



来源:https://stackoverflow.com/questions/50900052/using-aleph-with-swi-prolog-source-sink-libraryaleph-does-not-exist

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!