3 ms·
I noticed the same friction while trying to integrate Answer Set Programming solvers into Python projects. The people who built the dominant ASP solver actually
by nickswalker 2y ago
I noticed the same friction while trying to integrate Answer Set Programming solvers into Python projects. The people who built the dominant ASP solver actually provide nice solutions though. Possible inspiration for Prolog tooling:
Clorm (Clingo ORM) [1] makes it easy to create facts after you define simple predicate Python classes. Here's an example project of mine which uses it to set up a scheduling problem (Python -> ASP) and to present the results (ASP -> Python).
https://github.com/raceconditionrunning/relay-scheduler https://github.com/raceconditionrunning/relay-scheduler
Clingo (the solver) exposes its internal AST implementation through Python bindings[2], so you can build up rules or other statements from typed components instead of strings. This simplifies the translation bits of implementing an ORM or whatever kind of wrapper a developer would prefer.
[1] https://github.com/potassco/clorm https://github.com/potassco/clorm
[2] https://potassco.org/clingo/python-api/current/clingo/ast.html https://potassco.org/clingo/python-api/current/clingo/ast.ht...
- networked 2y agoThis is cool! I am glad to see that other people have thought in the same direction—and actually wrote the code. I have another reason to learn ASP.