Launching the Computable Document Format (CDF): Don’t Compress the Idea, Expand the Medium
Today we launched our Computable Document Format, or CDF, to bring documents to life with the power of computation.
CDF binds together and refines lots of technologies and ideas from our last 20+ years into a single standard—knowledge apps, symbolic documents, automation layering, and democratized computation, to name a few.
Disparate though these might appear, they come together in one coherent aim for CDF: connecting authors and readers much better than ever before.
The idea is to provide a knowledge container that’s as easy to author as documents, but with the interactivity of apps—for CDFs to make live interactivity as everyday a way to communicate as spreadsheets made charts.
For too long, authors have had to aggressively compress their ideas to fit down the narrow communication pipe of static documents, only for readers at the other end to try to uncompress, reconstruct, and guess at the original landscape of information. Static documents are like a very lossy format, fuzzifying clear and fuzzy thinking alike, disguising problems, and often resulting in overwhelming communication failures: undeployed R&D, misunderstood risks, and wrong management decisions, not to mention limiting the flow of information intrinsic to education.
Static documents take their share of the blame in making us “information rich, but understanding poor”, to repurpose the common saying.
With CDFs we’re broadening this communication pipe with computation-powered interactivity, expanding the document medium’s richness a good deal. (Actually we’re also improving what I call the “density of information” too: the ability to pack understandable information into a small space—particularly important on small screen devices like smartphones.)
As a simple example of all of this, let’s say I want to communicate how the sound of an emergency vehicle changes as it passes by me. In other words, I would like to explain a particular case of the Doppler effect. Here’s the way it might appear traditionally (image courtesy of NASA).
Instead, look at (and listen to!) this knowledge app:
Play with it and get a feel for what’s happening. What changes as I move around, as the vehicle speeds up? Kind of interesting that if I’m on the road, the pitch changes much more suddenly and goes up before it hits me!
This is just a simple example, but I hope it gives a flavor for how much interactivity can help understanding. (My thanks to Alan Joyce for the example this is based on).
What I really like is that you, the reader, can drive—charting your own route within the landscape mapped out by the author. You’re not just a train passenger locked to the railroad’s route; you’ve rented a 4WD and can go wherever you want. And by driving yourself, and having to make decisions about which way to go, you’ll typically internalize the landscape much better, and potentially discover new terrain.
Think of how you consume or convey information to others today. With reports, papers, books? Or more recently, perhaps a slide show, web page, or blog?
All have one characteristic in common: the author lays out that railroad, and you, the reader, take a train ride down it. OK, perhaps with links, clickable graphics, video, and some other so-called interactive elements, you’re driving the train rather than just being a passenger. But freely explore the landscape you cannot. The author laid down the path and that’s the only place to go.
So with all the advantages of interactive documents, why have dead documents remained so predominant for communicating? Ease of authoring is central.
Unless content originators—that is, teachers, journalists, analysts, managers, academics, and so on—make the content interactive themselves, it won’t be interactive. It’s simply too expensive and too difficult if professional programmers are involved. Only where there’s been sufficient content-monetization potential for a high budget do we see it—examples like BBC News active infographics or our related company Touch Press‘s books come to mind.
Yet there’s been one exception: Wolfram Demonstrations Project. As I write this, it has 7,138 Demonstrations, or as we call them “knowledge apps”, almost all contributed by content originators who aren’t professional programmers.
Automation of authoring interactivity is key, and what makes that feasible is high-powered computation both in the authoring environment and particularly in the reading technology or Wolfram CDF Player. With a computation-powered knowledge container, you don’t need to pre-compute and pre-generate—you can leave that to runtime, your authoring can be at a much higher level than for example in Flash or HTML5.
Could one have a Demonstrations site with Flash apps? In principle, yes. But in practice, no. Too hard, too time-consuming even for pre-generated frames. “Citizen authors” simply wouldn’t bother, and haven’t: I can find no larger knowledge app site than Demonstrations.
So that’s a key idea of CDF: step up the ease of authoring with the power of computation and generate results that are live.
And let’s be clear, the Demonstration Project is only one style of use of CDF. CDFs can look like documents, slide shows, or websites. We’ve got a range of early examples here.
Is today’s CDF authoring easy enough? Or to spell that question out, is authoring now no longer the main barrier to interactive content? Not yet. Though we’ve made it an order of magnitude better than others, it’s got further to go, quite a bit further so that it’s truly democratized. We’re at the level now where the sorts of authors who’d be able to learn how to make a Microsoft Excel macro could learn how to make a CDF. Instead I’d like anyone who can make an Excel chart be able to make a CDF (i.e. almost anyone).
I think Wolfram|Alpha-style linguistic programming will be a key answer to achieving that… eventually mapping out a workflow where you type in your language and out pops your answer as an interactive CDF.
But that’s a future refinement of today’s bold new concept, namely, to use computation just to communicate. I think it can make as big a difference as everyday charts and diagrams did. Or to put it another way—if a picture is worth a thousand words, a knowledge app is worth a thousand pictures. Live interactivity for communicating steps up the bandwidth of ideas that much.