Scenario extraction over a qualitative constraint network: scenarios (lazy, with a
:limit), scenario and relations choose one base relation per pair for any
vaelii.impl.qcn-kb calculus, by fewest-possibilities-first backtracking with path
consistency after each choice. Every tie breaks on content. See docs/scenario.md.
Scenario extraction over a qualitative constraint network: `scenarios` (lazy, with a `:limit`), `scenario` and `relations` choose one base relation per pair for any `vaelii.impl.qcn-kb` calculus, by fewest-possibilities-first backtracking with path consistency after each choice. Every tie breaks on content. See docs/scenario.md.
(relations scen)A scenario read as {[i j] → relation}, the singletons unwrapped. The network form is
what composes with qcn; this is what reads.
A scenario read as `{[i j] → relation}`, the singletons unwrapped. The network form is
what composes with `qcn`; this is what reads.(scenario calc kb context)One scenario of calc consistent with what is believed in context — a concrete
arrangement of every pair — or nil when the believed facts are unsatisfiable.
Which one is a function of the facts alone: the search is deterministic, so this is repeatable and comparable across KBs.
One scenario of `calc` consistent with what is believed in `context` — a concrete arrangement of every pair — or nil when the believed facts are unsatisfiable. Which one is a function of the facts alone: the search is deterministic, so this is repeatable and comparable across KBs.
(scenarios calc kb context)(scenarios calc kb context {:keys [limit]})Every scenario of calc consistent with what is believed in context, as a lazy
sequence of singleton-valued networks {[i j] → #{relation}}, both directions written.
Lazy on purpose: the number of scenarios is exponential in the node count, so realizing
the sequence in full is not something a caller should do by accident. Take what you need,
or pass {:limit n} and let this do the taking.
Empty when the believed facts are unsatisfiable — an arrangement nothing rules out cannot exist when everything is ruled out. A context with fewer than two nodes has exactly one scenario, the empty one, since there is no pair to decide.
Every scenario of `calc` consistent with what is believed in `context`, as a **lazy**
sequence of singleton-valued networks `{[i j] → #{relation}}`, both directions written.
Lazy on purpose: the number of scenarios is exponential in the node count, so realizing
the sequence in full is not something a caller should do by accident. Take what you need,
or pass `{:limit n}` and let this do the taking.
Empty when the believed facts are unsatisfiable — an arrangement nothing rules out cannot
exist when everything is ruled out. A context with fewer than two nodes has exactly one
scenario, the empty one, since there is no pair to decide.cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |