Did you know ... | Search Documentation: |
Packs (add-ons) for SWI-Prolog |
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> |
No reviews. Create the first review!.
Version | SHA1 | #Downloads | URL |
---|---|---|---|
5 | 096fae4c9859fa11268f03d10272af116c2a2c1f | 13 | https://github.com/friguzzi/aleph.git |
0b5d6b47e413f728de40b136ea0a1909765cd9d1 | 3 | https://github.com/friguzzi/aleph.git | |
20ed08658605566557598b5088780d67ef8a8515 | 1 | https://github.com/friguzzi/aleph.git | |
2225ebfbfa551aa1f8ce49f8df647f2b8e1c5dc6 | 7 | https://github.com/friguzzi/aleph.git | |
26eef74e954d62d198190403c095a4d4765bd9d7 | 36 | https://github.com/friguzzi/aleph.git | |
29fb389135382f52426bd6c00840b418d36eb19a | 29 | https://github.com/friguzzi/aleph.git | |
3ab43140bdc9619c61b7eaa39f390b0cd9d2fac8 | 1 | https://github.com/friguzzi/aleph.git | |
4ae3dd8a9a8d4693a77ad20c97c5989918a2fd20 | 11 | https://github.com/friguzzi/aleph.git | |
4c2b4d467732b26e98a632f22eb352e97d8a3768 | 8 | https://github.com/friguzzi/aleph.git | |
5880a94570f074783d5429b0773dcf47a3ec5b90 | 18 | https://github.com/friguzzi/aleph.git | |
5b08de15964a6817094cb67c58241463fa435b6c | 1 | https://github.com/friguzzi/aleph.git | |
73aa6966121131606ec0562cce82a201eebf7be4 | 52 | https://github.com/friguzzi/aleph.git | |
7bf1c2de6400a56ce0710801432d0c63b52d970d | 17 | https://github.com/friguzzi/aleph.git | |
90b7837709f3753c6b8a384101844f56c8438c5a | 10 | https://github.com/friguzzi/aleph.git | |
a1a6e1d7bfd8c6acdedabffd03ac5a7fdf6f0a28 | 229 | https://github.com/friguzzi/aleph.git | |
a95c5e12d0d5341b7bc4be98411b63982917ed30 | 10 | https://github.com/friguzzi/aleph.git | |
b1716530fd798b1277c121428da69e308ed07464 | 3 | https://github.com/friguzzi/aleph.git | |
c547930c62dadb375f4c904b2aae55b29cf3581f | 5 | https://github.com/friguzzi/aleph.git | |
c784af55144c15c9fd2ab6dbf4113368f17566b5 | 28 | https://github.com/friguzzi/aleph.git | |
c931adb83d01aa23da644f5b97b8bb92a54e5218 | 23 | https://github.com/friguzzi/aleph.git | |
cc6ef273dc270a8a26a078ad6e90db1ba1fe31ef | 41 | https://github.com/friguzzi/aleph.git | |
d1e6e28ce617d6cfca2d8ea66c608b7cb68e2c20 | 5 | https://github.com/friguzzi/aleph.git | |
e1fd4b8176f0304111b8f6268abf029cba135c12 | 2 | https://github.com/friguzzi/aleph.git | |
efa61e29821f6df3ebf191c048a5b8ac9d3755b1 | 1 | https://github.com/friguzzi/aleph.git |
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.
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:
:- use_module(library(aleph)).
:- aleph.
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). % ...
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.
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.
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.
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)
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.
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.
Pack contains 99 files holding a total of 1.4M bytes.