Skip to content
This repository has been archived by the owner on Jul 11, 2021. It is now read-only.

"whynot" tracing #50

Open
jeisner opened this issue Jul 17, 2013 · 1 comment
Open

"whynot" tracing #50

jeisner opened this issue Jul 17, 2013 · 1 comment

Comments

@jeisner
Copy link
Collaborator

jeisner commented Jul 17, 2013

Related to trace commands on #1, we might look at AILog2's tracing.
http://www.cs.ubc.ca/~poole/aibook/code/ailog/ailog_man_7.html

It's interactive, which I think would probably better be handled in a GUI, although they do it in the terminal.

An interesting point is that they support interactive recursive tracing of queries that failed -- what they call "whynot" questions. I think in our setting, this might mean a GUI that in general, optionally shows some of the "interesting" null aggregands. More precisely, make it possible to see show groundings or partial groundings of the rule body that didn't complete but "came close" because some of the subgoals succeeded (or came close in turn).

Some heuristics (or user control) are needed to determinine which bindings are worth showing. E.g., if the rule body is foo(X)*bar(X+1), we don't want to report X=5 as an interesting binding simply because Y is X+1 succeeded there, but we might be interested in that binding if foo(5) or bar(6) succeeded, particularly if that is surprising because those are selective predicates or at least finite predicates (support mode -).

The rule of thumb might be that we show the partial bindings from our actual query plan or update plan, which will tend to start with the selective subgoals. I think that's in fact what AILog2 does, although it's a bit easier there because it only does backward chaining.

@jeisner
Copy link
Collaborator Author

jeisner commented Jul 17, 2013

To be clear, I'm posting this for discussion / future reference, not as an immediate issue.

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

No branches or pull requests

1 participant