Towards Model-Driven Authoring: What’s Missing?

Model-driven Reading

Back in 2015, Bret Victor published his seminal essay: What Can a Technologist Do About Climate Change? Under Media for understanding situations, he argues that in a space of contradicting claims (e.g. CNBC: Is it better to rent or buy?), readers should not be forced to pick a side based on rhetoric and belief - even if those claims are backed by numbers. Providing the reader the agency to explore the space of possibilities and draw their own conclusions is more useful than having them pick a side.

This is well-illustrated in NYT: TheUpshot’s Rent or Buy Calculator, which rather than simply claiming a side, lets the reader become active and explore their possibilities in the context of their own lives (is it better for me to rent or buy?). This is a good case of an Explorable Example, an idea that has been around for a long time but made popular in the 2011 essay Explorable Explanations, also by Bret Victor. In essence, the essay describes methods to foster active readership by providing agency for exploration:

An explorable explanation (or model-driven reading) is made possible by embedding calculations that describe the dynamics of the problem using domain data alongside text and graphics. Interactive elements let the readers drive the parameters of the calculations to make the problem space tangible and relevant.

While none of these methods (reactive documents, explorable examples, contextual information) have been adopted on a broad scale, many interested authors have created explorable narratives. Notably:

While it’s great that more and more material like this exists now, there is still the flip side of the coin: how to create these explorables?

Model-driven Authoring

Victor, in both of his essays, calls for the tools to make model-driven authoring and reading available at scale:

"Why doesn’t such material exist? Why isn’t every paragraph in the New York Times written like this? One reason is that the resources for creating this material don’t exist. In order for model-driven material to become the norm, authors will need data, models, tools, and standards." —Bret Victor, Model-driven Authoring (What Can a Technologist Do About Climate Change?)

Data, Models, Tools, and Standards

Almost all explorable explanations are created by enthusiastic programmers and designers (or teams thereof) doing a lot of tedious work (gathering the data, cleaning it, building models, writing the narrative, building custom UIs and visualizations) to make these documents as effective as they are. At this point, there simply are no integrated solutions available for making these type of explanations.

Currently, at the tools level, three platforms stick out:

Mathematica/Wolfram Language probably comes closest to providing seamless data access and ready-to-use models to compute with it. While this is certainly impressive, it lacks tools for building compelling reactive explanations and users are locked into a proprietary ecosystem.

Observable, on the other hand, did a fantastic job building a tool for creating reactive explanations with JavaScript. Since JavaScript is so popular, there is a good chance many people can readily pick it up. But with execution happening entirely on the client side, any serious scientific computation is ruled out.

Idyll is a markup language, similar to Markdown, that is designed for building explorable explanations (see their examples). It’s based on JavaScript and runs entirely on the client side so it has the same limitations as Observable.

What’s missing?

While there are curated and free-to-use data and model repositories available, there is no unified way of accessing and querying them with an UI as simple and effective as e.g. WolframAlpha.

But the biggest hurdle is the creation of reactive documents that are not limited to client-side code but work seamlessly with scientific computation pipelines and lots of data.

We don’t have the solutions for this yet, but we want to make model-driven authoring capabilities one of Nextjournal’s core features. We built some of the foundation for this over the last few years (arbitrary computation, immutability of content, code, data and computational environments, attribution of everything) and we will continue to refine the tools needed for building and publishing dynamic documents.

If you are interested in these issues, please don’t hesitate to reach out to us and perhaps we can work on this together.