ethica

Spinozas ethics and various translations, edited for easy post processing.
git clone https://git.repetitions.de/ethica

readme.md (2579B)


 1 This repository contains the full latin text of Spinoza's Ethics as well as
 2 various translations in a format that makes it easy to programatically process
 3 them.
 4 
 5 The repository also contains the sources to generate
 6 https://ethica.repetitions.de.
 7 
 8 # ethica
 9 
10 The `data` directory contains all data and metadata needed to reconstruct the
11 full text of the ethics.
12 
13 `data/meta.json` contains a json representation of the structure of the ethics.
14 Each json object represents one node (axioms, propositions, proofs, etc.). Each
15 node has fields:
16 
17    - id: unique identifier of the node.
18    - children: array of ids of child-nodes.
19    - ref: array of ids of nodes referenced by this node.
20    - number: Number of node. Only present if the node appears in the text with a
21      number attached (e.g. Axiom 1).
22    - type: Type of the node, according to the latin versin.
23 
24 Each subdirectory of data contains one version of the text. Each version of the
25 text is split into one file per node, named by the id of the node. The files are
26 Markdown formatted. Each version directory also must contain exactly one json
27 file containing meta data specific to that text version. The json object in that
28 file must at least contain the
29 
30 - `types` field maping each type of node to a name to be used for that type of
31   node in the text version and the
32 - `name` field, specifying the name of the text version presentde to the user.
33 
34 e.g. `data/de_stern/types.json` looks like this:
35 ```json
36 {
37     "name": "German (Stern)",
38     "language": "de",
39     "translator": "Jakob Stern",
40     "types": {
41         "ethica": "Ethik",
42         "pars": "Teil",
43         "definitiones": "Definitionen",
44         "definitio": "Definition",
45         "explicatio": "Erläuterung",
46         "axiomata": "Axiome",
47         "axioma": "Axiom",
48         "propositio": "Lehrsatz",
49         "demonstratio": "Beweis",
50         "corollarium": "Zusatz",
51         "aliter": "Anderer Beweis",
52         "scholium": "Anmerkung",
53         "appendix": "Anhang",
54         "praefatio": "Vorwort",
55         "lemma": "Hilfssatz",
56         "postulatum": "Postulat",
57         "postulata": "Postulate",
58         "affectuum definitiones": "Definitionen der Affekte",
59         "affectuum generalis definitio": "Allgemeine Definition der Affekte",
60         "caput": "§"
61     }
62 }
63 ```
64 
65 # ethica.repetitions.de
66 
67 Building the page source for `ethica.repetitions.de` requires a common lisp
68 implementation as well as a functional quicklisp setup. The code to generate the
69 site is located in the `lisp` directory. The `html` directory contains templates
70 used by the lisp program.
71