This fall was supposed to be my 25th class reunion at St. John’s College in Santa Fe, but since traveling to gather in large groups is obviously inadvisable the event was made virtual. I did not have time to attend many of the online meetups, but I wasn’t going to miss the alumni seminar on Book I of Euclid’s Elements, which all Johnnies* spend most of freshman year reading in math class.

Euclid’s Elements, which dates from about 300 BCE, is one of the oldest extant deductive treatments of mathematics (geometry); in addition, it is a great introduction to thinking in logical, contained systems: after setting out some Definitions, Postulates, and Axioms the work comprises a series of proofs (Propositions) that successively and progressively demonstrate increasingly complex geometrical proofs, culminating (but not ending) with Proposition I:47 describing the properties of squares on the sides of right triangles (another proof of which is commonly known as the Pythagorean Theorem).

After rereading Book I a couple of times and reflecting on the text it occurred to me that it could be modeled as an ontology in RDF. I did this using Graphite, Synaptica’s ontology modeling tool, over the course of a couple of hours.

Since each Proposition explicitly depends on – that is, uses as part of the proof – one or more of the Definitions, Postulates, Axioms, and previously demonstrated Propositions, I built a simple SKOS model of the logical dependencies four schemas and a single custom unidirectional relationship *dependsOn*.

Visualization of Dependencies in Euclid Book I: Each *Proposition* can depend on other Propositions, *Definitions*, *Postulates*, and *Axioms* as part of its proof.

In this way, Propositions can *dependOn** *Axioms, Postulates, Definitions, and other Propositions, but the dependency is one-way; that is, the relationship is not reciprocated.

For each scheme I built a simple model with a Scope Note field to hold the text related to each concept; I also left room to add URIs and Linked Data (eventually) as I’d like to add diagrams for each Proposition as well (if I can work out a good source):

Here is the text of Proposition I (image credit: https://mathcs.clarku.edu/~djoyce/java/elements/bookI/propI1.html):

Visualizing the entire project lets me explore the dependencies** through a graph; I can begin with any proposition (say, I:47):

…and view its immediate dependencies. As you can see, Proposition I:47 depends directly on Axiom 2 and Propositions I:4, 14, 41, and 46. I can expand the graph to see the dependencies of the various Propositions I:47 depends on; expanding I:46:

…and continue to expand the graph to see the chain of dependencies (and their interrelations):

The idea is that the closed- and constrained-system thinking demonstrated by Euclid in Elements I lends itself fairly easily to a simple RDF model; this provides a rich interactive exploration experience, which could be further enhanced by connection to external resources (like Wiki pages) and Linked Data to construct a knowledge graph.

————————————————————————————————

*Johnnies

**UF** Students at St. John’s College

**To be clear: I did not work these out myself; I used the annotations for each Proposition explicated in the well-known Heath edition of Euclid.