viASP visualizes an interactive explanation of your ASP program and its stable models
viASP allows you to explore the visualization in a variety of ways:
- Toggle parts of the program
- Show the added symbols or all of them
- Inspect a single model
- Add
#show
statements on the fly - Search models, signatures and rules.
To use viASP you don't have to change your ASP programs at all. You only have to execute them using the clingo python API.
pip install viasp
will install all necessary dependencies.
viASP has two parts, its frontend Dash component and the backend server. To get everything running, do the following:
viasp
(orviasp &
to run it in the background)- Start your dash app, a basic version can be found at
examples/minimal_dash.py
- Replace
clingo.Control
withviasp.Control
in your python scripts and useviasp.mark(model)
to select the models you want to show
If you don't have any scripts handy that use the python API of clingo, you can use our quickstart script.
IMPORTANT You will still need to start viasp (viasp
or viasp &
)
Then run examples/quickstart.py
.
It works very similar to the usual clingo
, you can call it as python quickstart.py encoding.lp
or
even cat encoding | python quickstart.py
If you want to filter the models you have to edit the script, however.
If you now run your ASP programs, you can inspect them using viASP at http://127.0.0.1:8050/ or what ever port you have set.
If you want to learn more about Dash, check out their documentation.
viASP only works if you run your ASP programs using the python API, e.g.:
from viasp import Control
program = """
rain; sprinkler.
wet :- rain.
wet :- sprinkler.
"""
ctl = Control(["0"])
ctl.add("base", [], program)
ctl.ground([("base", [])])
with ctl.solve(yield_=True) as handle:
for model in handle:
ctl.viasp.mark(model)
ctl.viasp.show()