Skip to main content

Reference objects

Every astra text and each of its parts is a Famulus reference object (famulus-ref/2, namespace astra; vocabulary 2.4.0).

address object
fr:astra the namespace: the texts on this node, by kind
fr:astra/solar-eccentric a model
fr:astra/solar-eccentric/kappa_bar · /e · /S · /c · /p1 its kinematic variable, a parameter symbol, a constructed object, an observable, a stated proposition
fr:astra/solar-eccentric.ptolemy · /e a parametrisation; a value with its source
fr:astra/solar-eccentric-epicyclic · /Ecc.S a superposition; an object of one of its members
fr:astra/solar-equivalence-equal-radii · /h1 · /d6 · /conclusion a derivation; a given, a step, the conclusion
fr:astra/solar-equation-of-centre/c_max a computed quantity with the reported value and the verdict
fr:astra/solar-fig-1-2 · ~svg · ~animation a figure and its views
fr:astra/<id>~sheet · ~source · ~check the YAML sheet, the astra text, the check of any text

Former names resolve: fr:astra/solar-equivalence, solar-proportional, solar-eccentric-epicyclic-proportional and solar-complete answer with the object they now are and say alias_of.

Resolution

  • famulus-astra fr fr:astra/solar-equivalence-equal-radii/d6 answers from the workspace and build/<id>/ (building first if the text is newer than its build).
  • The famulus-reference resolver on :5135 (/api/describe?ref=fr:astra/…, MCP fr_describe) delegates astra addresses to famulus_astronomica.fr.describe when the package is installed on the node, and otherwise answers with an explicit gap.
$ curl "$FAMULUS_REFERENCE/api/describe?ref=fr:astra/solar-equivalence-equal-radii/d6"   # the reference service of the node
{"ref":"fr:astra/solar-equivalence-equal-radii/d6","kind":"astra_step","found":true,
 "proposition":"parallel(line(O, Ecc.E), line(Epi.C, Ecc.S))","from":["d2","d5"],"by":"Elements I.33",
 "status":"justified","binding":{"A":"O","B":"Epi.C","C":"Ecc.E","D":"Ecc.S"},
 "degenerate_at":["kappa_bar = 0°","kappa_bar = 180°"], …}

Writing about a model

Because every part has an address, prose can say exactly what it speaks of: “by fr:astra/solar-equivalence-equal-radii/d6, OE is parallel to CS; the step is an instance of Elements I.33 and fails to apply at the apsides”. The sheet is the table such a passage refers to; the figure shows the step.

What changed in famulus-reference (10 Nov 2026)

spec/kinds.yaml 2.4.0: fr:astra/<text>[/<object>]; the grammar-level kind of a text is astra_text, the resolver names the kind (astra_model, astra_parametrisation, astra_superposition, astra_figure, astra_derivation) and of an object (astra_parameter, astra_variable, astra_object, astra_observable, astra_proposition, astra_value, astra_given, astra_step, astra_computation). Object names may be dotted (Ecc.S, arcs.e). ids.py and the TypeScript twin fr.ts follow; three test vectors were added; both suites pass. Backups: ~/Library/Application Support/claude-backups/2026-11-10-famulus-astronomica-refactor/famulus-reference/.

Published by OpenScienceTechnology GmbH · Legal notice · Privacy