Readings about the knowledge, where the rest of the instrumentation reads the engine:
which rules never fire, how skewed the predicate extents are, how deep the rule graph's
chains reach, how much of the taxonomy is connected, which argument declarations name a
position their predicate lacks, which rules another rule already covers, and which rule
pairs would contradict each other if both fired. readings is the table.
Taxonomy coverage, the stranded declarations and the rule clashes are
vaelii.impl.integrity's taxonomy-coverage, stranded-declarations and clash-pairs,
called over the whole KB; the subsumption reading pairs integrity's rule-rows. No reading
is a required check. Every reading comes off state that exists, so the cost is
O(terms + rules + firings + ancestor pairs + declarations × super-predicates + candidate rule pairs) and never O(sentexes). Every count is of what is stored, except the firing
census and the declaration census, which consult belief. See docs/quality.md, "One pass,
and nothing new indexed".
Readings about the knowledge, where the rest of the instrumentation reads the engine: which rules never fire, how skewed the predicate extents are, how deep the rule graph's chains reach, how much of the taxonomy is connected, which argument declarations name a position their predicate lacks, which rules another rule already covers, and which rule pairs would contradict each other if both fired. `readings` is the table. Taxonomy coverage, the stranded declarations and the rule clashes are `vaelii.impl.integrity`'s `taxonomy-coverage`, `stranded-declarations` and `clash-pairs`, called over the whole KB; the subsumption reading pairs integrity's `rule-rows`. No reading is a required check. Every reading comes off state that exists, so the cost is `O(terms + rules + firings + ancestor pairs + declarations × super-predicates + candidate rule pairs)` and never `O(sentexes)`. Every count is of what is stored, except the firing census and the declaration census, which consult belief. See docs/quality.md, "One pass, and nothing new indexed".
(census kb {:keys [limit on-progress]})The readings as one map, keyed by readings' :key and held to that table on the way
out (reading-map), with the exception reader states kept for the call
(except/with-reader-states). vaelii.core/kb-quality is the entry point and documents
the options.
The readings as one map, keyed by `readings`' `:key` and held to that table on the way out (`reading-map`), with the exception reader states kept for the call (`except/with-reader-states`). `vaelii.core/kb-quality` is the entry point and documents the options.
How many rules and how many heavy predicates the report lists before it says it
truncated. A cap rather than the whole set because the counts are the headline and a
30,000-entry list is not one; :limit raises it.
How many rules and how many heavy predicates the report lists before it says it truncated. A cap rather than the whole set because the *counts* are the headline and a 30,000-entry list is not one; `:limit` raises it.
(report quality)The census map as Markdown: the readings in readings' order, each under its :title,
counts first and lists after. A map that is not a census answer is refused
(:not-a-report; check-report-shape!). A section is written when its key is present, so
a stored answer from before a reading existed still renders. A listed declaration's reason
line is the :message the census carries.
The `census` map as Markdown: the readings in `readings`' order, each under its `:title`, counts first and lists after. A map that is not a census answer is refused (`:not-a-report`; `check-report-shape!`). A section is written when its key is present, so a stored answer from before a reading existed still renders. A listed declaration's reason line is the `:message` the census carries.
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 |