Did you know ... Search Documentation:
Packs (add-ons) for SWI-Prolog

Package "aleph"

Title:Aleph Inductive Logic Prorgramming system
Rating:Not rated. Create the first rating!
Latest version:5
SHA1 sum:e1fd4b8176f0304111b8f6268abf029cba135c12
Author:Fabrizio Riguzzi <fabrizio.riguzzi@unife.it>

Reviews

No reviews. Create the first review!.

Details by download location

VersionSHA1#DownloadsURL
50b5d6b47e413f728de40b136ea0a1909765cd9d13https://github.com/friguzzi/aleph.git
2225ebfbfa551aa1f8ce49f8df647f2b8e1c5dc67https://github.com/friguzzi/aleph.git
29fb389135382f52426bd6c00840b418d36eb19a29https://github.com/friguzzi/aleph.git
3ab43140bdc9619c61b7eaa39f390b0cd9d2fac81https://github.com/friguzzi/aleph.git
4c2b4d467732b26e98a632f22eb352e97d8a37688https://github.com/friguzzi/aleph.git
7bf1c2de6400a56ce0710801432d0c63b52d970d2https://github.com/friguzzi/aleph.git
a95c5e12d0d5341b7bc4be98411b63982917ed301https://github.com/friguzzi/aleph.git
c931adb83d01aa23da644f5b97b8bb92a54e521823https://github.com/friguzzi/aleph.git
d1e6e28ce617d6cfca2d8ea66c608b7cb68e2c205https://github.com/friguzzi/aleph.git
e1fd4b8176f0304111b8f6268abf029cba135c122https://github.com/friguzzi/aleph.git

aleph

##Index

  1. [Introduction](#introduction)
  2. [Usage](#usage)
  3. [New induction commands](#new-induction-commands)
  4. [Manual](#manual)
  5. [Examples](#examples)

Introduction

Porting of Aleph for SWI-Prolog.

Aleph is an Inductive Logic Programming system developed by Ashwin Srinivasan:

http://www.cs.ox.ac.uk/activities/machlearn/Aleph/

This pack contains a porting of Aleph v.5 to SWI-Prolog. The porting was done by Fabrizio Riguzzi.

Two files are included: aleph_orig.pl is a direct porting of Aleph for Yap, while aleph.pl is modoule-file that can run also under SWISH. aleph.pl was developed by Paolo Niccolò Giubelli.

Usage

aleph_orig.pl can be used as the original Aleph.

aleph.pl differs because it uses a single input file instead of three files for background, positive and negative examples.

The input file for aleph.pl must be structured as follows:

***1. Module loading***

:- use_module(library(aleph)).

***2. Aleph initialization***

:- aleph.

***3. Directives*** Nothing has changed here, you can use modeh/2, modeb/2, determination/2 as documented in the [manual](#manual)

% e.g.:
:- modeh(*,grandparent(+person,-person)).
:- modeh(*,parent(+person,-person)).

:- modeb(*,mother(+person,-person)).
:- modeb(*,father(+person,-person)).
:- modeb(*,parent(+person,-person)).

% ...

***4. Background Knowledge Section*** Nothing has changed here except you need to enclose this section with begin_bg/0 and end_bg/0 directives. Between them you can put your background clauses.

% Background knoweledge is delimited by begin_bg/0 and end_bg/0
% predicates. Look at the
% E.g.:
:-begin_bg.
person(bob).
person(dad(bob)).
%...
:-end_bg.

***5. Positive Examples Section***

% The positive examples section is delimited by begin_in_pos/0 and end_in_pos/0
% directives.
% E.g.:
:-begin_in_pos.
grandparent(dad(dad(bob)),bob).
grandparent(dad(mum(bob)),bob).
%...
:-end_in_pos.

***6. Negative Examples Section***

% The negative examples section is delimited by begin_in_neg/0 and end_in_neg/0
% directives. Negative examples must be listed as facts.
% E.g.:
:-begin_in_neg.
grandparent(bob,bob). % bob is not a grandparent of bob
%...
:-end_in_neg.

***7. End Section*** The file must contain the following directive at the end:

:-aleph_read_all.

You can start the induction process by calling the induce/1 predicate, which returns the theory as a list of clauses. induce/1 replaces the old induce/0 predicate.

New induction commands

The following predicates were created. Their arity has been increased by one compared to the original version. Program is the (new) output argument which returns the theory as a list of predicates.

  • induce(-Program)
  • induce_tree(-Program)
  • induce_cover(-Program)
  • induce_modes(-Modes)
  • induce_incremental(-Program)
  • induce_max(-Program)
  • induce_features(-Features)
  • induce_constraints(-Constraints)
  • induce_theory(-Program)
  • induce_clauses(-Program)

Manual

The manual can be found at http://www.cs.ox.ac.uk/activities/machlearn/Aleph/.

Examples

The examples have been downloaded from http://www.comlab.ox.ac.uk/oucl/research/areas/machlearn/Aleph/misc/examples.zip and ported to SWI-Prolog.

Contents of pack "aleph"

Pack contains 91 files holding a total of 1.3M bytes.