Current
Knowledge parsers
Benchmark first
Corpora: QASPER · WikiSection · DocRED. Connectors use recorded provider fixtures because public content corpora do not test cursors, deletes, retries, or event ordering.
Protocol: Score text preservation, section Boundary F1/Pk/WindowDiff, entity/relation F1, stable-ID rate, duplicate rate, and incremental/full-sync equivalence. For polling and streaming, replay the same create→update→delete trace with injected duplicates, reordering, throttling, and cursor expiry; the final snapshot and emitted change set must agree.
Models return JSON-like values. Parsers resolve all evidence against supplied document and section revisions and return immutable typed values. Research establishes each task formulation; Mari implements a deterministic validation boundary rather than the cited model.
How it works
Each parser first requires the recipe’s top-level collection, then validates every required field and enum, resolves evidence through the exact contract below, derives deterministic audit signals, and constructs frozen result types. It never repairs a claim’s meaning. Batch claim assessment is the exception to fail-fast parsing: rows are keyed back to caller order, absent rows become uncertain, and individually malformed rows do not erase valid siblings.
model proposal*→schema→exact evidence→revision binding→*typed candidate
Parser |
Produces |
Research-backed task |
Academic sources |
|---|---|---|---|
|
|
Atomic claims and optional document-level relations with evidence |
|
|
|
Supported, contradicted, or uncertain verdicts; decisive rows require evidence |
|
|
|
Decision-related utterance extraction without treating topical language as proof |
|
|
|
Evidence-selected document QA, citations, or explicit insufficient evidence |
|
|
|
Reusable question-answer pairs bound to supporting passages |
|
|
|
Term-definition relations, aliases, and source spans |
|
|
|
Overall and topic summaries with separately inspectable evidence |
|
|
|
In-scope affected-document proposals followed by deterministic dependency checks |
Mari contract; no claimed benchmark reproduction |
|
|
Bounded, attribution-aware, fact-preserving edit proposals |
from mari_components.knowledge import parse_answer
raw = model(question, documents)
answer = parse_answer(question, documents, raw)
print(answer.disposition) # grounded | insufficient_evidence
print(answer.grounding_coverage) # deterministic text coverage
print(answer.evidence[0].quote) # exact source text
Additional deterministic helpers include normalize_claim, deduplicate_fact_candidates, grounding_coverage, and excerpt. Recoverable batch drift is handled conservatively: assessment rows are restored to caller order, missing rows become uncertain, and good rows survive alongside invalid ones. Structured fact qualifiers preserve subject, relation, object, scope, validity, and conditions.
**grounding_coverage is not entailment or confidence.**It is a Mari-specific lexical audit signal motivated by citation completeness. Exact quote validation prevents fabricated citations but does not prove that every paraphrase follows logically from its evidence.