M-ACL is a system that is able to learn multiple predicates exploiting abduction for maintining the global consistency among clauses and for completing the training set.


The following software must be installed in your system:

Installation instructions:

  1. download the M-ACL code: m_acl.tar.gz
  2. create a directory for your code and data files
  3. copy m_acl.tar.gz into it and decompress it

  4. gunzip m_acl.tar.gz
    tar xvf m_acl.tar
  5. set an environmental variable for the execution of ICL

  6. setenv ICL_APPL_CONF ''

Running the system:

  1. prepare your data: you need one input file: (see input file format)
  2. load Sicstus
    1. sicstus
  3. load the m_acl code
    1. | ?-[m_acl].
  4. start the induction with the command
  5. the induction writes the output files <file_stem>.rules containing the rules learned.

Input files format:

Format of <file_stem>.bg :

Consider the example ancestor.bg  (other examples are grandfather.bg and odd_even.bg as examples)
  1. Bias:

  2. each target predicate must have a "bias" clause The <list of allowed literals> is the list of all the possible literals that
    can be added to the rule <head>:-<body>
    By specifying <body>, we can specialize the clauses accordingly to what is already in the body.   In the example below is a variable so that any rule can be refined with the literals in the list.   The <list of variables> must contain the list of all the variables that may appear in the rule or its refinements and must be the same for all bias facts relative to the same predicate.
  3. Abducible predicates:
  4. The variables in the abducible predicates must be all different (use _)
  5. Integrity constraints:
  6. Example:
  7. Training set:
  8. Example:
  9. Background theory:
  10. Example:

Parameters setting:

A number of parameters can be set. The M-ACL parameters are defined by a number of prolog facts and are described below:
  1. verbosity(V): specifies the verbosity level.  Set by default to 3
    1. 0: nothing is printed apart from the output rules
      1: every rule that is added to the theory
      2: every rule added to the agenda
      3: the agenda at each specializing step
  2. beamsize(Beamsize): specifies the size of the beam. Set by default to 5
  3. nmax(Nmax): maximum number of specialization steps.  Set by default to 10
  4. der_depth(Depth): depth of derivations.  Set by default to 20
  5. kt(K):  threshold on K+ and K-.  Set by default to 0.1
  6. min_cov(MC): minimum number of examples that each clause must cover.  Set by default to 1
They can be set either by including a fact for them in the input file, by changing the m_acl.pl file and reloading it or by retract and asserts.

For reporting impressions on the use of the system, bugs or new applications, send an e-mail to Fabrizio Riguzzi friguzzi@deis.unibo.it.

 Back to the main ACL page.

Back to the LIA Home Page

Go to the DEIS Home Page Go to the Alma Mater Home Page