Skip to content

Structured claim contract

DocRecord.top_claims stores provider-neutral claims as JSON. The contract is backward compatible: older records deserialize with status, event_time, and evidence unavailable.

Each claim contains:

Field Meaning
subject Who or what performs or participates in the relation.
predicate Canonical relation, such as participated_in.
object The event, person, or thing related to the subject.
status Optional planned, ongoing, completed, or negated assertion state.
event_time Optional time asserted for the event, distinct from the source document timestamp.
evidence Source document, optional turn/chunk identifiers, exact supporting text, and optional UTF-8 byte offsets.

Missing optional values mean the producer could not establish them from the source. A document timestamp must not be copied into event_time: it describes when the source was recorded, not necessarily when the claimed event occurred.

beKIND evidence signals are an optional enrichment. When enabled, Membrick accepts signal protocol versions 1 and 2, verifies that the evidence span matches the stored document content, and stores the result in top_claims. Version 2 supplies status and explicitly stated event time. The core claim model and old indexes do not require beKIND to be present.

Native reasoning cues

The first provider-neutral event, acquisition, and related query-language cues are stored as readable JSON in data/reasoning_rules.json. Membrick parses this bundled file once per process. The file contains vocabulary and phrase patterns; typed Rust code still decides how they produce claims and query requirements, and still applies evidence and temporal checks. Changing the bundled rules currently requires rebuilding Membrick. Project-specific runtime overrides are not part of this first step.