Runway 20.
c. 2012–2013
From messages to timely action.
Runway 20 explored a personal assistant that could recognize useful information and bring it forward when it mattered. The work joined a full email server and client, trainable language recognition, calendar and location context, and the infrastructure to turn those signals into timely actions.
Reading the structure inside a message.
A flight confirmation contains a small itinerary inside a much larger document. The recognition pipeline downloaded and decoded messages, classified their contents, and extracted fields such as passengers, confirmation codes, airports, and departure times. Pattern matching identified candidate spans; learned models scored what those spans meant in context.
The underlying C library represented text at several scales. Fragments before, within, and after a candidate became features, with position grouped more coarsely at larger scales. This positional “blur” let compact, perceptron-style models learn from surrounding language without depending on one exact offset or template. Separate document-level features supported classification across the broader message.
Teaching through correction.
The training interface exposed both predictions and the source text. A reviewer could label a document, select a passage, assign its meaning, and mark positive or negative examples. Corrections were saved as lessons and triggered retraining of the affected models. Classification, field extraction, annotation, and model updates formed one working environment.
This built on earlier work in interactive learning and document recognition. A desktop browser tool had made page elements teachable through direct selection and scoring, using their text, layout, and surrounding structure as evidence. Those ideas carried into Runway 20’s recognition workflow: human judgment could become training data at the point where a mistake was visible.
Knowing when information matters.
Extracted flight details fed into trip records, advance reminders, and information triggered by proximity to the departure airport. Calendar events, location, and traffic informed when to leave for a meeting. The assistant connected interpretation to timing: understanding a message was the beginning of deciding what to surface, where, and when.
Building the system around the models.
An Erlang backend supervised workers, recorded events, and dispatched scheduled actions. Python workers connected recognition results to calendars, geographic context, and notifications, while client-side triggers combined time windows and geofences. The architecture supported both continuous processing and actions that belonged at a particular moment.
A small deployment control plane described how to build specialized servers from a base operating system, with composable setup steps for services and their dependencies. The engineering spanned text features and training tools through runtime coordination and deployment, making the learning system part of a complete product.