OOASP is a schema for describing object-oriented models with Answer Set Programming.
OOASP has been developed for research purposes to demonstrate how to describe and instantiate object-oriented models in Answer Set Programming. The main application area is product configuration i.e. reasoning about product configuration models.
Older encodings produced along with the original publications on OOASP can be found in old_encodings. Currently, the main focus of this project is a prototype for interactive configuration using OOASP as described below.
Prototype for interactive configuration using ASP initially developed by Susana Hahn (Potassco Solutions) as part of a collaboration between Potassco Solutions and Siemens.
poetry install
This approach is recommended for users who prefer to set up their own virtual environment
pip install -r requirements.txt
Before running any of the programs, make sure the virtual environment has been activated. This can be done using the command (if the installation was done through poetry
):
poetry shell
The files corresponding to the current version are in ooasp.
The package usage and new features are showcased in the jupyter notebooks inside the folder usage.
In order to create a configuration using the command line use the file app.py
found in the ooasp directory. This program allows for the specification of an initial partial configuration using arguments in the format --component N
where N
refers to the number of components present in the initial configuration and component
to the class name of the component.Example: python ooasp/app.py --elementA 5
- For benchmarking add the options:
--stats=2 --outf=2 -q
to obtain a JSON. Then inspect the "OOASP" section. - For visualizing the configuration use:
--view
Run the clinguin UI with the following command:
clinguin client-server --ui-files clinguin_ui/ui.lp --backend=OOASPBackend --clingraph-files ooasp/encodings/viz_config.lp --default-graph=config --custom-classes clinguin_ui/ooasp_backend.py --domain-files examples/racks/kb.lp
To use and access the solver using CRUD commands though RESTful api run:
fastapi dev ./ooasp/REST/solver_api.py
For the documentation of the protoype see DOC.md
OOASP: Connecting Object-Oriented and Logic Programming (2015): Conference paper | Preprint
Progress on an ASP-based Interactive Configurator (2024): Extended Abstract
Interactive Configuration with ASP Multi-Shot Solving (2023): Workshop Paper
Challenges of Developing an API for Interactive Configuration using ASP (2022): Extended Abstract
Solver Requirements for Interactive Configuration (2020): Journal article
OOASP is distributed under the MIT License.
Copyright (c) 2022-2024 Siemens AG Oesterreich