clorm
clorm copied to clipboard
🗃️ A Python ORM-like interface for the Clingo Answer Set Programming (ASP) reasoner
This could potentially make fact parsing much faster
Pull request #75 adds pickling of anonymous tuples. But it uses `sys._getframe()` which is an cpython specific implementation function. So to support a more portable approach need to look at...
The new mechanism to determine the BaseField sub-class to use based on the field type declaration is currently hard-coded. It is flexible because it works with complex term fields, but...
Currently you have to specify each predicate that you want to match to; either explicitly through a class definition or using the simple_predicate() helper function. However, it may also be...
Currently the query `join` clause takes one or more boolean comparisons between fields, such as: `q=fb.query(P1,P2,P3).join(P1.x == P2.y, P2.a == P3.b)` More complex booleans expressions are not allowed since I...
When you have a query with multiple joins clorm's query planner can internally generate a plan where the join order is different to the order in the query specification. However,...
When you create a predicate instance it creates the corresponding underlying `clingo.Symbol` object. Clorm does not try to validate the input to the predicate but instead lets the clingo API...
Nullary (0-arity) predicates don't really fit the ORM model. Currently, it is possible to declare nullary predicates in clorm by simply not specifying a parameter to the predicate class definition....
When you define a separate python file/module to contain all you clorm schemas it may be useful to have a function to introspectively find all the defined predicates sub-classes from...