MIRAmodular interoperable research attribution Try it

The grammar

Six node types. One artifact anchor.

Every node is a record with fields: the shared set below, plus a few slots specific to its type. Some slots hold a value; some reference another node — and that is what weaves the records into a graph.

The nodes

NodeWhat it is (from the schema)
QuestionA scientific unknown, addressable by the systematic application of research methods.
ClaimAn atomic, generalized assertion that (proposes to) answer a question.
EvidenceA specific empirical observation from one application of a method.
StudyThe activity — an experiment or analysis — that produces evidence.
ProtocolThe reusable method an activity follows.
RequestA unit of work the community can pick up — issue-tracker-shaped.
SourceDocumentA paper, book or preprint that reports evidence.
Entity (the artifact)Not a node type — it is what an Evidence record’s observationBase field points to: the figure, blot or dataset an observation stands on. Held as a URL pointer, never a payload — MIRA hosts nothing.

Every node also carries the same shared NodeSchema fields — creator, created, modified, description, has_container and the record’s own text. Claim and Evidence additionally include Argument, so they carry the supports / opposes slots.

The heart of the model

The four-layer Evidence chain — and where the objective/subjective boundary sits.

An Evidence record carries the fields that place it: observationStatement (which Claim it speaks to), observationBase (the artifact it rests on — a pointer), is_grounded_in (the Study that produced it) and sourceDocument (the paper that reported it). Reading those fields lets you ask which layer a problem lives in — is the claim contested, the evidence un-reproduced, or the figure itself unsound? — instead of collapsing all of it into “here’s the claim” or “cite the paper.”

The grammar, anchored on the artifact

↑ Contested — the competing claims ↓ Shared — the Evidence, the artifact nested inside it, and how it was produced Questiona scientific unknown Claim Adouble helix · correct Claim Btriple helix · refuted addresses addresses supports opposes Evidence reads Photograph 51 as a helix observationBase Photograph 51 · X-ray diffraction StudyX-ray fiber diffraction Protocolhydrated fiber · humidity-controlled SourceDocumentNature · 25 Apr 1953 is_grounded_in sourceDocument follows
The dashed rule is the argument. Above it are the competing claims — what a field argues about. Below it is the shared basis they argue over: a single Evidence record, the artifact nested inside it as its observationBase field, and the Study, Protocol and SourceDocument that produced and reported it. Here that one artifact — Photograph 51supports the double helix and opposes the triple. The reading lives in the record; the data it rests on lives inside it; both are addressable and queryable.

The format, concretely

A record is a bundle of fields.

A node carries a @type array and a set of slots. Some slots hold a value; some hold a reference to another node. Only when a reference needs to carry who asserted it and how strongly is it reified as its own record — and that is where flavor, degree and confidence live, per agent. The anti-gaming property depends on it.

Canonical grammar: github.com/MIRA-science/schema (mira.yaml, LinkML — every slot is declared there with its range). The wire format is JSON-LD via mira.jsonld; SHACL and Turtle are generated from the source. For the same walkthrough you can click, see the interactive DNA deck.

Linking, without a scoreboard

Three flavors of evidence→claim linkage, with a qualitative degree.

FlavorDegree
supportsnot at all · weakly · moderately · strongly
informs— (neutral / topical)
opposesnot at all · weakly · moderately · strongly

Plus a qualitative confidence rating on the relation that others can weigh in on. Flavor, degree and confidence are per-agent attributed assertions on a reified relation — never aggregated. Ten agents rating one relation produce ten signed ratings, not an average. Nothing in the schema computes a value, so there is no value to game: an adversary can add their own rating, and it arrives labeled with their identity like everyone else’s.