Jeffrey M. Barber

Tombstone

GEM (Graph Editor & Modeler)

Jun 2005 – Jul 2005 · age 23

What it was

A graph editor in Java and SWT, built as a graphical front end for probabilistic models at a university research lab, that knew nothing about probabilistic models. It knew about graph types, declared in XML: which kinds of node exist, which edges may join which kinds, how many, and whether the whole must stay acyclic, connected, a tree or moral. The editor enforced those rules live, refusing a bad edge the moment it was drawn. A tensor widget laid out each node's probability table with axes taken from its parents, and when a parent was added it remapped the existing numbers by name instead of wiping them. A compiler turned any graph type into typed C++ readers. Two C++ programs proved the pipeline: a hidden Markov model evaluator, and an automaton that generated Conway's look-and-say sequence. Three weeks, an installer, then summer moved on.

Wins, for the age

What it taught

Genealogy

Ancestors: none on record. The first time a schema became an editor. Descendants: Jovian Suite: a visual editor compiling a typed model into generated code.

Epitaph

Here lies GEM. Tell it what a graph was allowed to be and it would draw one, refuse the wrong edges and hand you C++ to read it. It spent its one summer between a Bayesian network and Conway's sequence.