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

Package "aleph"

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

Reviews

No reviews. Create the first review!.

Details by download location

VersionSHA1#DownloadsURL
5096fae4c9859fa11268f03d10272af116c2a2c1f13https://github.com/friguzzi/aleph.git
0b5d6b47e413f728de40b136ea0a1909765cd9d13https://github.com/friguzzi/aleph.git
20ed08658605566557598b5088780d67ef8a85151https://github.com/friguzzi/aleph.git
2225ebfbfa551aa1f8ce49f8df647f2b8e1c5dc67https://github.com/friguzzi/aleph.git
26eef74e954d62d198190403c095a4d4765bd9d736https://github.com/friguzzi/aleph.git
29fb389135382f52426bd6c00840b418d36eb19a29https://github.com/friguzzi/aleph.git
3ab43140bdc9619c61b7eaa39f390b0cd9d2fac81https://github.com/friguzzi/aleph.git
4ae3dd8a9a8d4693a77ad20c97c5989918a2fd2011https://github.com/friguzzi/aleph.git
4c2b4d467732b26e98a632f22eb352e97d8a37688https://github.com/friguzzi/aleph.git
5880a94570f074783d5429b0773dcf47a3ec5b9018https://github.com/friguzzi/aleph.git
5b08de15964a6817094cb67c58241463fa435b6c1https://github.com/friguzzi/aleph.git
73aa6966121131606ec0562cce82a201eebf7be452https://github.com/friguzzi/aleph.git
7bf1c2de6400a56ce0710801432d0c63b52d970d17https://github.com/friguzzi/aleph.git
90b7837709f3753c6b8a384101844f56c8438c5a10https://github.com/friguzzi/aleph.git
a1a6e1d7bfd8c6acdedabffd03ac5a7fdf6f0a28229https://github.com/friguzzi/aleph.git
a95c5e12d0d5341b7bc4be98411b63982917ed303https://github.com/friguzzi/aleph.git
b1716530fd798b1277c121428da69e308ed074643https://github.com/friguzzi/aleph.git
c547930c62dadb375f4c904b2aae55b29cf3581f5https://github.com/friguzzi/aleph.git
c784af55144c15c9fd2ab6dbf4113368f17566b528https://github.com/friguzzi/aleph.git
c931adb83d01aa23da644f5b97b8bb92a54e521823https://github.com/friguzzi/aleph.git
cc6ef273dc270a8a26a078ad6e90db1ba1fe31ef7https://github.com/friguzzi/aleph.git
d1e6e28ce617d6cfca2d8ea66c608b7cb68e2c205https://github.com/friguzzi/aleph.git
e1fd4b8176f0304111b8f6268abf029cba135c122https://github.com/friguzzi/aleph.git
efa61e29821f6df3ebf191c048a5b8ac9d3755b11https://github.com/friguzzi/aleph.git

aleph

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 and Fabrizio Riguzzi.

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 except that set/2 and setting/2 are replaced by aleph_set/2 and aleph_setting/2. E.g.:

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

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

:- aleph_set(verbose,1).

% ...

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. 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. E.g.:

:- begin_in_neg.
grandparent(bob,bob). % bob is not a grandparent of bob
% ...
:- end_in_neg.

New induction commands

You can use the usual Aleph commands for performing learning. Moreover, the following predicates were added. Their arity has been increased by one compared to the original version. The (new) output argument returns the result of the command.

  • 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)
  • covers(-Ex)
  • coversn(-Ex)
  • reduce(-Cl)
  • addgcws(-Cl)
  • good_clauses(-Cls)

Manual

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

The manual of aleph.pl can be found at http://friguzzi.github.io/aleph/doc/manual.html.

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 99 files holding a total of 1.4M bytes.