Olaaaf is a general adaptation prototype based on belief revision whose long-term aim is to cover a broad range of adaptation processes. It is based on a formalism that covers both attribute-value pairs (often used for representing cases) and taxonomies (often used for representing domain knowledge).
As of august 2024, the v2 of Olaaaf came out and with it came some breaking changes. Mainly, the arguments of Adaptation.execute()
changed to offer a more in-depth support for domain knowledges.
Although it is recommended to use the specific domain knowledges classes when applicable, the only step necessary to convert a Olaaaf v1 code to work with Olaaaf v2, is to change the dk
argument in Adaptation.execute(psi, mu, dk)
to a miscellanous domain knowledge like so Adaptation.execute(psi, mu, {"miscellanous": MiscellanousDomainKnowledge(dk)})
.
See the document for this method and for the multiple domain knowledges classes for more information on the way they work.
Please note that each dependency might work with an earlier version. However, they haven't been tested and aren't officialy supported.
- Python v3.10.13 or higher.
- tqdm v4.65.0 or higher.
- Pyparsing v3.0.9 or higher.
- SciPy v1.11.4 or higher.
- LPSolve v5.5.2.0 or higher.
- Since LPSolve isn't officially available for Python 3, Chandrasekhar Atina's wrapper is used.
- matplotlib v3.8.0 or higher.
To install Olaaaf, first download the latest release here (although a .tar.gz is available if necessary, The .whl file is recommended)
Once downloaded, install the package using pip:
pip install ./olaaaf-2.0.whl
Once installed, you can import olaaaf from anywhere like a standard Python package
from olaaaf import *
For in-depth examples, feel free to look at the Examples and Video Demonstration sections.
As of right now, four examples are availabe for you to go through. Namely:
- Example 1 is the adaptation of a banana milkshake recipe to obtain a kiwi milkshake recipe.
- Example 2 is the adaptation of a banana milkshake recipe to obtain a kiwi milkshake recipe, with no banana.
- Example 3 is the adaptation of a banana milkshake recipe to obtain a kiwi milkshake recipe, while conserving the same number of fruit types between the two recipes.
- Example 4 is the adaptation of a carrot and cabbage salad to remove the vinegar, using an adaptation rule.
The execution of Example 3 can be watched in this video:
example3.videDemonstration.mp4
Olaaaf's documentation is available here.
Olaaaf is published under the MIT License.