Jeffrey M. Barber

Tombstone

bnjv3

Jun 2004 – Aug 2004 · age 22

What it was

Version 3 of an open-source Bayesian network toolkit in Java, rewritten over one summer in a university research lab. Jeff wrote most of the core, with three labmates adding samplers and other algorithms. Probabilities were not doubles but Value objects in an abstract field, so the same inference could run in floats, doubles, exact fractions or symbolic expressions. Probability tables were often not tables at all: products and projections computed through to their operands on demand, materialized only when a global memory budget allowed. Exact inference ran by clique tree, by bucket elimination, and in a multithreaded message-passing variant. On top sat an SWT desktop GUI whose visualizer showed pseudocode stepping in lockstep with the graph, and could play the algorithm backwards. It was handed off as a "3.0 pre-alpha" after five dense weeks.

Wins, for the age

What it taught

Genealogy

Ancestors: none on record. The narrating instinct starts here, in a lab, at twenty-two. Descendants: Edu Lang: stepwise, inspectable execution as a teaching surface. Tutor: symbolic values and the insistence on showing the work.

Epitaph

Five weeks, four students, one clique tree. It computed exact marginals as fractions, explained itself in pseudocode, and could run its own reasoning backwards, which is more than most mammals manage.