Introduction
Under development
Authoring research objects
claimevidencequestionprotocolrequestid#id
:::{question} Does rewilded planting support a richer dawn chorus?
:id: dawn-question
:label: Question 1
:addressed-by: #dawn-claim
Is bird acoustic activity greater around rewilded planting than around nearby
managed grassland during the dawn chorus?
:::
:::{claim} Rewilded locations have greater dawn bird activity
:id: dawn-claim
:label: Claim 1
:supported-by: #acoustic-evidence
:opposed-by: #weather-evidence
In this illustrative pilot, locations beside rewilded planting show **more call
events** and more candidate bird taxa than the managed locations.
:::
:::{evidence} Acoustic detections favour rewilded locations
:id: acoustic-evidence
:label: Evidence 1
:is-grounded-in: https://example.org/studies/deerstone-dawn-pilot
The rewilded locations have a higher mean call-event count.
:::
::: {.evidence #acoustic-evidence label="Evidence 1" is-grounded-in="https://example.org/studies/deerstone-dawn-pilot"}
The rewilded locations have a higher mean call-event count.
:::
::: evidence Evidence 1 #acoustic-evidence
The rewilded locations have a higher mean call-event count.
:::
Annotating in the document editor

ResearchObjectcontentrelations
Exporting the MIRA graph
stencila graph.mira.json.mira.jsonld
stencila graph examples/projects/mira/deerstone-dawn-chorus.myst \
deerstone-dawn-chorus.mira.jsonld --output-losses abort--output-losses abort@graphstencila graph
[
{
"@id": "#dawn-claim",
"@type": "mira:Claim",
"label": "Claim 1",
"description": {
"@type": "Item",
"format": "application/vnd.oxa+json",
"content": "{\"type\":\"Document\",\"children\":[...]}"
}
},
{
"@id": "#rel_50e097be80bc5aea",
"@type": "mira:supportedBy",
"source": "#dawn-claim",
"destination": "#acoustic-evidence"
}
]@context@base
Rich content with OXA
descriptionItemdescription.contentdescription.formatapplication/vnd.oxa+json
jq
jq '."@graph"[]
| select(."@type" == "mira:Evidence")
| .description.content |= fromjson' \
deerstone-dawn-chorus.mira.jsonldReading a MIRA graph
Graph
stencila convert deerstone-dawn-chorus.mira.jsonld deerstone-graph.yaml \
--output-losses abort
stencila graph deerstone-dawn-chorus.mira.jsonld deerstone-roundtrip.svg \
--view discourse --containment noneViewing the discourse graph
stencila graph examples/projects/mira/deerstone-dawn-chorus.myst --view discourse --containment none
Supported MIRA vocabulary
Claim | mira:Claim |
Evidence | mira:Evidence |
Protocol | mira:Protocol |
Question | mira:Question |
Request | mira:Request |
supportssupportedByopposesopposedByaddressesaddressedByfollowsgroundsis_grounded_inrequest_forrequest_target
Studymira:ClaimclaimTypeclaim
Implementation map
ResearchObject base schema — shared content, label, relation, and extra fields. MIRA relation enumeration — the eleven relation kinds and their semantics. Markdown decoding — MyST, QMD, and SMD research-object syntax. Document editor wrappers and relation control — visual annotation, identifiers, and local or external targets. Document graph construction — resolving local and external relation targets into graph edges. MIRA JSON-LD and OXA encoding — type mapping, rich descriptions, labels, and conversion losses. stencila graphexport — selecting MIRA JSON-LD from the output filename and writing it. Format aliases and extensions — recognizing both .mira.jsonand .mira.jsonld. Pinned MIRA vocabulary fixture — the upstream classes and properties validated by Stencila's schema tests.