Expositions
An argument shows a reconstruction. An exposition shows a reconstruction beside the source it reconstructs: one segment of a historical text, divided into passages, each passage quoted and set beside the step that says the same thing explicitly. The format is astra-exposition/1.
famulus-astra exposition euler-e57-tide # build/euler-e57-tide/exposition.{json,html,typ}
The page
One row per passage, in two or three columns:
| column | what it shows | control |
|---|---|---|
| Source | the author’s text of the passage, with its section, printed page and a link to the page in the edition | Latin · English |
| Reconstruction | the step or steps that reconstruct it, or what the passage is instead (a definition in the model; not reconstructed) | Overview · Steps · Full |
| Notes | what the reconstruction supplies, where it departs from the author’s route, what the check found | Notes |
A compact figure stays in view above the rows; selecting a step shows in it what the step speaks of. Figure folds it away. Open in the edition opens the page of the source in the edition’s viewer, always in the same separate window. The view is kept in the address (#lang=en¬es=1&depth=steps&step=setting), so a view can be linked. Below 900 px the columns of a passage stack.
The file
id: euler-e57-tide
derivation: euler-tide-force-resolution # the argument shown beside the source
source:
collection: enestroem
document: E57
bib: {file: expositions/sources.bib, key: eulerE57}
viewer: {base: "https://…/viewer/", path: "enestroem/E57", page_offset: 1}
passages:
- id: setting
section: "§24"
heading: "The figure: the particle M by CP = x and PM = y"
spans: # where the passage begins and ends, page by page
- pidx: 15
la: ['24. Concipiatur nunc Terra tota', 'quam in distantia a']
en: ['24. Let the whole Earth now be conceived', 'that which at a distance of']
steps: [setting] # top-level steps of the derivation
notes:
- "Euler's letters: …"Nothing of the source is typed into the file. A span names the first and the last words of the passage on a page; the builder takes the text between them from the page XML (Latin) and from the stored page translation (English). Other keys of a passage: model (quantities of the model the passage defines), see (steps the passage is read off, without being a step of its own), reconstruction (a sentence, for a passage that is not a step), corrections (wordings of the translation corrected against the original, each with its reason; the page shows them underlined).
What the builder refuses
The command fails, and lists the gaps, when
- the first words of a span do not occur exactly once on the page, or the last words do not follow them;
- a page has no page XML or no stored translation;
- no paragraph of the reference register carries the passage (the register gives the paragraph addresses,
fr:<collection>/<document>/<page>/pNN; the service must answer); - a step of the derivation stands beside no passage, or a passage names a step that does not exist;
- a correction is not found exactly once, or cuts through a formula.
In another page
<link rel="stylesheet" href="astra-argument.css"><link rel="stylesheet" href="astra-exposition.css">
<script src="astra-exposition.bundle.js"></script>
<astra-exposition src="exposition.json" viewer-base="/viewer/"></astra-exposition>viewer-base replaces the address of the edition’s viewer named in the document, so that inside an edition the links stay relative. Methods: select(id), setDepth(d), setLanguage('la' | 'en'), setNotes(bool), setFigure(bool). Events: step-select, depth-change, view-change. For print, exposition.typ sets the passages with Latin and English side by side, or one above the other where a displayed formula needs the width.