This repository contains our implementation of bounded fitting for the description logic ALC (ALSAT). As this is a Fork of https://github.com/spell-system/SPELL, it also contains SPELL, a tool to learn concepts in the description logic EL.
- Installation of Python 3
- Packages from
requirements.txt
For full instructions on how to run either ALCSAT of SPELL, run
python spell_cli.py --help
The --language
can be used to choose a syntactic fragment of ALC. The following fragments are available.
- el: exists, and (using SPELL, default)
- el_alcsat: exists, and (using ALCSAT)
- fl0: forall, and
- ex-or: exists, or
- all-or: forall, or
- elu: exists, and, or
- alc: forall, exists, and, or, neg
The --mode
options allows switching between exact mode and approximate mode.
exact
: only consider exact fittings: concepts that cover all positive examples and exclude all negative examplesneg_approx
: (SPELL only) search for an approximate fitting, that covers all positive examples but not necessarily excludes all negative examplesfull_approx
: search for an approximate fitting that may not cover some positive examples and may cover some negative examples
Instructions to reproduce the family benchmarks are in the folder alc_benchmarks in a separate README file. Instructions and required files to reproduce the results on the SML benchmarks can be found in the following repository. https://github.com/SAT-based-Concept-Learning/ALC-SAT-eval