Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Full Support for Derived Predicates #51

Open
gfrances opened this issue Mar 2, 2017 · 3 comments
Open

Full Support for Derived Predicates #51

gfrances opened this issue Mar 2, 2017 · 3 comments
Assignees
Milestone

Comments

@gfrances
Copy link
Member

gfrances commented Mar 2, 2017

The name says it all. We have support for externally-defined functions and predicates, the latter of which can be viewed as "block-box" derived predicates, but we should give full support to standard derived predicates as well.

@gfrances gfrances added this to the Lambda 1.0 milestone Mar 2, 2017
@gfrances gfrances self-assigned this Mar 2, 2017
@miquelramirez
Copy link
Member

What else do we need here @gfrances? Derived functions? That would be nice.

Also, can we have an existentially quantified formula on the body of the derived predicates?

@gfrances
Copy link
Member Author

Let's say that the support for axioms is pretty hackish now...
maybe it'd be worth interfacing with clingo at some point to have on-the-fly computation of their truth value?

@miquelramirez
Copy link
Member

miquelramirez commented May 17, 2017

Well, what I definitely see as a "hack" is Problem::ConsolidateAxioms and how we call it. As we have seen, we need to make sure that no data structures referring to formulas that will be rewritten (e.g. derived predicates in the goal) are built before we call it.

Other than that... what would we like exactly clingo for? As long as axiom bodies do not depend on other axioms heads, there's no need to stratify. Then, if there are dependencies between axioms, I see two types of LP turning up: the acyclic case, where basically we can pretty much reduce it to the "one shot" axioms case we support now, after computing a topological ordering over the axioms, and the cyclic case, which I see directly follows when one wants to determine complex properties like "reachability", or certain types of belief tracking.

Arguably, giving support to either of those cases would be a research project on its own.

More problematic - to my own selfish concerns I must admit :) - I see to be the (somewhat related) notion of events/reactions, where the effects (the head analogue) are state variables (or stuff than can be evaluated as a state variable). In that case, one does need necessarily to have a notion of "propagation until fixed point is reached" (or a "safety" count of propagations is met). This doesn't seem to me extremely complicated to implement, or warranting the integration with an off-the-shelf ASP solver (which seemingly have very poor support for numerics and other multi-valued kind of representations).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants