The web will change dramatically—will disappear, and be replaced by a new form of Cybersphere—because there are only two basic choices when you arrange information, and the web chose wrong. You can arrange information in space or in time. Arranging information in space means distributing it over a surface or through a volume, as in any ordinary data structure; as in any shop selling fruit, where different kinds of fruit are stored in different places (in different crates or heaps or boxes). Arranging information in time requires that it be time-ordered to begin with, as in a diary or journal or on a timeline; we borrow one dimension of space to indicate the flow of time. A fruit shop arranged by time would be a single vector of fruit crates or boxes. The nearest fruit would be the newest, most recently arrived. Moving further back, you would find successively older arrivals.
There are certain advantages to arranging a fruit shop by time. If you want the freshest (newest) oranges, you pick the ones that are closest to the front of the time vector. If you want to make sure to get ripe fruit, you might move away from the front. But on the whole, an ordinary spacearranged fruit shop is more efficient and reasonable.
Information on the Internet is very different, for several reasons. What we most often seek on the Internet is the latest or newest information. The Internet’s most important role is to deliver information directly to human users, not to software; and the oldest and most natural way for people to convey and absorb information is in time, in the form of a story or narrative. If the matrix and the recursive list are, in a sense, the basic data structures of software, the story is the basic data structure of human beings. As we will see, information arranged into stories is far more easily handled than space-distributed information: stream algebra is simpler than graph algebra.
It’s clear a priori that the web is only a temporary state in the evolution of the Cybersphere (meaning sum of all data available via the Internet). We can tell it’s temporary because the web takes the same form as the Internet—both are a set of points or nodes, unsystematically connected. Both are irregular graphs. Both are chaotic. The first stage in the evolution of software generally works this way: in the beginning, software looks like or strongly reflects the underlying hardware. The web belongs to the same state of Cybersphere evolution that early machine and assembler languages, or the operating systems of the 1950s and 1960s, belong to.
It’s therefore not surprising that feeds or time-ordered streams or lifestreams are increasingly dominant on the Internet. By lifestream (which I will discuss further), I mean a heterogeneous, content-searchable, realtime narrative (i.e., time-ordered) stream. We invented lifestreams in the early 1990s as a data management system to integrate documents (in file systems and other storage applications) and real-time messages such as e-mail, and make all data objects available to users in narrative order by means of content search and browsing. A lifestream was to be stored in the cloud, so as to be available on all platforms.
Lifestreams, under many different names, are the dominant organizing paradigm for new data on the web today—lifestreams in the form of blogs, Twitter streams, chat streams and activity streams, Facebook wall and timeline and other feeds, RSS feeds, and many others. Before long, I believe, we will think of the Cybersphere as information ordered by time, not scattered in space. We will think of it as an enormous, fast-flowing river of information roaring backwards into the past.
This new view has many important implications. We will understand the Internet not as we do a chaotic graph (or spider’s web) but as we think of electronic circuits: in a circuit, the flow (or current or amperage) is important. We will think of individual computers as step-down information transformers, like the step-down voltage transformers that connect us to electric power networks. Most important, any two streams (or many streams) can be merged into one, automatically. This stream addition and corresponding stream subtraction are the basis of stream algebra, which will allow each user to make easy adjustments to his own view of the
Internet and the Cybersphere.
Of course, flow through time is (ordinarily) visible only in one particular sense: by watching something grow older, we watch it move through time. Flow through time would be easier to see if we ourselves were moving through time at a faster or slower rate than data in the Cybersphere. But since this is difficult to arrange, it’s more convenient to borrow one dimension of space to represent time, and to imagine the Cybersphere as a gigantic river of information flowing backwards into the past.
Along with many other people, I believed at first that a space-based organization was ideal for the Cybersphere. A book called Mirror Worlds (1991) pre-dated the web, but did describe a space-based Cybersphere: it imagined the Cybersphere as a perfectly smooth pond, reflecting the image of a village (meaning the world at large) standing right beside it. The Cybersphere (like a smooth pond) would mirror the structures and activities of the real world. The image created by the Cybersphere would be entirely independent of implementation —just as the image on a pond’s surface has little to do with the composition or density of the water, or the shape of the basin.
Mirror Worlds opened by saying, “This book describes an event that will happen someday soon. You will look into a computer screen and see reality. Some part of your world … will hang there in a sharp color image, abstract but recognizable, moving subtly in a thousand places” (Gelernter 1991).
To get information about some school or government agency or hospital or shop or museum, you’d steer or navigate to the part of the reflected image that represented the particular organization in which you were interested. “Search for Bargello, Florence” would take you on a quick trip from a whole-world view down to a view of Italy, Tuscany, Florence, and finally the Bargello. You would then go inside to find (in effect) the Bargello’s website. (I’ve described something like a trip within Google maps, but of course the book was written long before Google existed.)
All this information —the Mirror World, or Cybersphere— would be stored in the sort of distributed object memory we had built earlier when we designed the distributed programming system called Linda —a tuple space, so called. A tuple space was a content-addressable cloud. Reality mirrored in a pond, implemented by a globally addressable, content-searchable cloud— that was the original idea. (Notice that, in this view, searching is intrinsic to the structure of the Cybersphere, not layered on top.) We developed the Lifestreams system starting in 1994. Eric Freeman built the first implementation, and he’s the co-inventor of Lifestreams. Today (as I have mentioned), the searchable, heterogeneous, time-ordered real-time messaging stream is the dominant paradigm on the web.
Now to the future: today’s web is likely to evolve into a single Worldstream, one raging torrent of information. One way to picture it is to start with an old-fashioned well, with a bucket for drawing water. Imagine the bucket plunging deeper and deeper down an infinite shaft, at increasing speed, as the rope unreels. The unreeling rope is the Worldstream. The bucket is the start of the stream the oldest, earliest document in the stream—plunging deeper and deeper into the past.
The unspooling, unreeling, rushing-downwards rope is a sequence of all kinds of digital documents; whenever anybody anywhere creates a new electronic document, either a purely private document or a document to be published, it appears at the top of the rope. The new document is spliced into the rope at that point—and the instant it appears, it goes plunging down into the well as part of the downward-plunging rope, into the past, into history, down into the unbounded well of time.
Of course, we are talking about a virtual structure built of software. So consider one more image. (The search for images is made necessary by the fact that we can invent and build virtual structures using software that have no close analogs in the physical world.)
Imagine standing on a bridge over a large, fast river (say the Danube or the Rhine). The source of the river lies behind us. In front of us, we see the great river rushing outward toward the sea. If we think of the Worldstream as this river, we are watching the Worldstream rush into the past.
Of course this global Worldstream is itself a virtual structure. It exists nowhere as a single, centralized data structure, any more than the cloud or the web is one single, centralized structure.
The Worldstream is, like them, a useful and powerful abstraction realized or implemented using many millions of separate streams all over the global Internet.
Today’s web is an abstraction too, though a strikingly literal-minded one. It reflects the structure of the underlying hardware—just as machine code reflects the structure of the underlying processor. The Internet consists of many millions of nodes (each a separate network) connected into a chaotic graph. The web likewise is many millions of addressable sites and objects connected into a chaotic graph. When a software structure (such as the web) reflects the shape of the underlying hardware (the Internet), we can assume we are seeing a first-generation software solution.
The Worldstream is a higher-level abstraction, based on a structure (the narrative or story) that makes sense at the user level rather than the hardware level.
The Worldstream begins with each user’s and each organization’s individual lifestreams. An individual lifestream and the Worldstream are structurally identical: the tools users need to search or browse, publish or consume information in the Worldstream are identical to the ones they will use in dealing with their own individual lifestreams. The web, on the other hand, is an unwieldy structure for local use. Local information management used to be a matter (not of an individual web but) of the file system, desktop, and many specialized applications, including the mailer, browser, MP3 stores, photo albums, and so forth. Today it’s unclear what the dominant model is. The field is in transition. In the future, the dominant model is apt to be some form of lifestream.
A lifestream has a past and future, divided by the now line. New information joins the stream at the now line and flows into the past. The user puts information in the future when it deals with future events (notices of appointments or deadlines), and moves information from the past to the future when there is no time to handle it right now. (If an e-mail appears that the user must deal with but has no time for now, he can copy the e-mail into the future.) The future flows toward now, then into the past.
Each user’s lifestream is the sum of all his own private and public data, in the form of cards ordered by time. We first introduced the card in our first lifestream implementation in 1996. We faced then a problem that computing still faces today: no user-level data structure corresponds to “data of any type that has meaning to the user as a unit.” A photo or video, a single e-mail, or a large document are all examples of this non-existent (but extremely important) type—henceforth called a card. I’ll use the word card not only as an element of the user Interface but as the user-level “makes sense as a unit” data structure.
The user’s private data cards consist of everything he creates or receives, and intends to keep private. Each arriving e-mail takes it place in time order. Photos and video are uploaded to the lifestream. Documents are added, at time of creation or revision, to the stream. When they are next revised, the previous document can be moved forward to its new (and later) time of modification, or the old document can be left in place and a new version copied to now for further work. Every card in the stream is fully indexed by contents and metadata. Searching the stream yields another (persistent) substream. The user can maintain many simultaneous substreams (each might flow at a different rate, depending on the frequency at which new cards are added); or he can depend on his single comprehensive lifestream and search whenever he has to find some particular card or group of cards.
Each card in the stream is individually permissioned, marked public, private, or (some version of) friends. Private cards are visible only to the owner. Public cards are visible to anyone. This simple mechanism makes my lifestream both a personal information-management and a publication medium. All public cards in my stream are (in essence) a blog that I publish—or equivalently, they are my stream-structured website. Friends covers any combination of individuals and groups; might extend access to one other person or a million others.
Stream algebra is simple, and its simplicity makes it easy to build, specify, and understand lifestream and Worldstream tools. Adding two streams means blending them together in time-order:
X + Y = Z
where X, Y, and Z are all lifestreams. Subtracting one lifestream from another simply means deleting its cards; and subtraction is the basis of searching.
yields the stream Z minus the stream consisting of all stream elements that do not mention Bargello.
Lifestreams have been implemented since our very first system using virtual 3D interfaces designed to make browsing easy and give users a feel of overview, of seeing the big picture. Our first implementation showed a single file of cards seen from the front, and slightly to the side and above. The stream disappeared into the virtual depths of the screen. In the next few years, we switched to the V-stream (which we still use today), where the stream has two arms meeting at a point in front. This point—the point that is closest to the user in virtual space—represents now. The future, in the right arm, flows forward toward now; the past, in the left arm, flows away from now into the depths of the screen. The stream has always been intended to flow in real time, although different streams flow at widely different rates.
Notice that our approach is to treat the screen not as a flat, opaque surface (as in most standard UIs, except for those belonging to video games) but as a transparent windshield with an infinitely deep virtual space beyond. The amount of space you can see through a pane of glass is much greater than the amount of space that is available on the pane of glass when it is treated as a simple surface.
We have found since the beginning of lifestreams development that search together with visual browse is a powerful combination. Users often search the stream to focus on potentially interesting cards, and then browse the result stream directly to find the exact card or group of cards they need.
We have left squish(Z), where Z is any lifestream, as a user-defined operation; the intent is to map an entire stream Z to a single card. (The card is itself a variable-size structure, but it consists of a single part.) Squish makes it possible to search for all cards dealing with, for example, Matisse cut-outs, and then to compress the whole stream into a singlecard summary or overview of all information on Matisse cut-outs in the stream. There are endless variations on this summary or overview function.
Lifestreams were always designed for storage in the cloud. The system was easily implemented in Linda; when a lifestream was built using Linda, the cards it contained would be distributed automatically over the multimachine tuple space in which Linda stores data structures. Cloud storage (or at least Internet server storage) was central to lifestreams from the start, because the system was to be orthogonal not only to all separate type-specific data stores (file systems, desktops, specialized storage applications) but to all of a user’s computing platforms. In the 1990s, personal computers, laptops, and personal digital assistants (PDAs) were already proliferating. It was crucial that a user have access to his lifestream from any Internet-connected platform.
Users were intended to have access to lifestreams by means of stream browsers—like ordinary browsers, but optimized to the display of lifestreams and able to do stream algebra efficiently. A user’s lifestream, a stream browser for each platform, and the applications that (collectively) created the content of each card in the stream, constituted a complete personal operating environment. (The applications might be web apps, or platform-native; a card can always be downloaded from the stream to some particular machine, and uploaded from machine to stream.)
Now I’ll consider the Worldstream environment from the opposite side, the viewpoint of public streams; and see how the two views come together.
The web will be replaced by the Worldstream; but the Worldstream moves much too fast to be useful to any individual. And most (or much) of the information moving through the Worldstream is private: available only to its owner, or to some limited group.
The user accordingly makes use of the Worldstream in disaggregated form, as a huge number of separate streams (which, added together, make the Worldstream). The user deals with these many streams in roughly the way a web user deals with websites. But the Worldstream user, as well as examining as many separate streams as he chooses, can build his own version of the Worldstream, watch it flow past, search, filter, and browse it.
Virtually all public organizations or institutions will have lifestreams (or some equivalent form of time-ordered stream). Any organization tells its story in the public cards of its lifestream. Its own private cards can be mixed into the same stream. The Bargello in Florence (a national museum of sculpture) might announce its public events, gallery openings and closings, publications, and so on by means of cards on its lifestream. Private information for the staff flows through the same lifestream. A lifestream is also a good medium for a catalogue (one card for each artwork, for example); the catalogue cards might be arranged in order of creation or acquisition. In either case, they are searchable and browsable along with
the rest of the stream.
Of course the Bargello (or anyone else) can keep its old-style website—filed on one card in the stream. The newest website card in any stream contains the latest version of the old-style site.
Now, the Worldstream user has available an endless collection of streams like the Bargello’s. Some are organizational or institutional, corresponding roughly to today’s conventional websites. But of course every user in the world has a stream also. It might consist only of private or restricted cards and have no public visibility. But any user who chooses can mark any chosen subset of his cards public. Those public cards constitute a personal stream that’s available to any Worldstream user.
The Worldstream user chooses any set of streams he likes and blends them together—simply adds them. Imagine a gigantic custom coffee machine where you choose any set of bean types or other flavors you like, press a button, and they’re all blended together into your ideal cup of coffee. The Worldstream user makes himself an ideal sub-Worldstream in the same way. By watching this blended-together stream, he watches those parts of the Cybersphere (those aspects of the Worldstream) that are of greatest interest. (The resulting stream might flow too fast for convenient watching; we have a family of simple flow-control algorithms we are now testing to deal with over-fast streams. Controlling the flow rate of realtime streams will be one of the most important software challenges over the next decade.)
Of course the user can also focus on specific substreams of his blended sub-Worldstream. Suppose he’s interested in David Cameron and African elephants. He can blend together every newspaper stream in the world, then search on Cameron and African elephants; the result is a global stream of all news stories dealing with exactly those two fascinating topics.
A user might add to this stream the blending together of all the streams belonging to his friends. No doubt he has access to many of the restricted friends cards in each of these streams, and of course to any public cards. By blending together the streams of all my friends, I develop a friends stream which keeps me up to date on all their activities and comments. (This mechanism might well be as flexible and useful as Facebook.) Of course, users can also search the Worldstream directly—with access restricted to public cards, and others for which they qualify.
The Worldstream is a Cybersphere model based on flowing rather than static data. The Worldstream is fed by many sources—in principle, by every Internet user in the world.
Or we could equally well say that it’s fed by exactly one source, a virtual stream called the future. Billions of people are each feeding into the grand global Worldstream their own streams or sequences of cards, digital things—and all those not-yet-added streams of not-yet-created digital things, blended together, merged together, are the Worldstream’s future. An as-yet-unrealized future.
So we have a single enormous river of data—and after all, in the world at large we generally care about new data, we need the latest data— that’s the particular value of the Internet: it can supply us with the latest, newest, most up-to-date information.
And so it’s natural to understand Internet information as a flow or current—a constant supply of new information. The Worldstream is like a huge power network that carries information at enormously high voltage; we all tap into this high-voltage worldwide cyber-main—connecting of course not by means of a voltage transformer but of a stream browser. The stream browser is a kind of cyber-transformer, standing between the user and the Worldstream—not just the Cybersphere but the Cyber-main, or Cyberflow.
The Worldstream carries flowing information, new information that creates value in the Internet economy. It’s the motion and momentum of a stream that turns a waterwheel, the current in an electric circuit, driving a load (or encountering a resistance), that makes it possible to do work. In the case of the stream-structured Internet, an information flow encounters a software load.
And again, we depend not just on information but on the flow of information; the trend or direction of information. After all, we care not only about the state of the world now, but the direction in which the world is moving.
The flow of news, of financial information, the flow of e-mail, of Twitter tweets, of blog posts or Facebook posts—of all sorts of lifestreams—and of course the flow of text messages, voicemail, phone calls, taking place largely on a separate physical network but part of the same worldwide cyberflow.
Again it’s not just cyberspace but cyberflow that’s important. And in the cyberflow view of Internet information, what matters is not the URL or identity of individual documents or conventional websites. What matters is the identity of particular streams of information; you can identify such a stream—a substream of the Worldstream—by describing the subset to a stream browser, just as you identify a subset of websites by describing the subset to a search engine.
(One important implementation note: cards I drop into the global stream are maintained in my own personal partition of the Cybersphere or cloud; but I make some of those cards visible to global stream search by labelling them public of for friends. When we consider privacy and security, we only need to focus our attention on our own private pieces of the Cybersphere.)
In talking about the Worldstream or Cyberflow, and the stream browser, I am, of course, neglecting the sort of relevance-ordered list of search results that’s so important today. But of course we’re not disabling relevance measures, and if you want to display a stream ordered not by time but by something else—for example relevance—you can do it.
But time has the useful characteristic that it’s a worldwide total order on everything, all cards, all digital things—everything has a position in the Worldstream. (Same-time objects are arranged in random order; and of course we neglect relativistic simultaneity effects.) In normal web use today, we prefer time order to relevance order whenever we look at a blog, a Twitter stream, any sort of chat stream or activity stream, an e-mail inbox or voicemail box, a timeline profile, a receding stream of saved drafts, or saved states of any kind; whenever we look to the Internet for news of the world or the markets or the weather or any other topic. And my own guess is that traditional relevance-ranked search results will be increasingly replaced by automatic summaries—answers to questions, or one-screen information summaries—of the sort provided by various implementations of the squish() function in lifestreams.
To conclude: there is an underlying idea or thesis or guess here. The thesis is that the basic human data structure is the story (conversation, narrative). If I have a digital conversation with one other person, it’s usually what we think of as mail or messaging; a conversation that involves myself and a group of friends is the basic function of social networks; a conversation with the public—where I make comments and anyone can respond—yields a blog or, in some cases, a different form of social network. A conversation with myself is more of a story or narrative. And of course, when I deal with the world at large, I often want to know, what’s the story? Or—just as often—what’s the situation right now? And perhaps I also want to know, how did it get this way? These are all questions about stories, narratives,
Equally basic to this thesis: with lots of information sources and types in the world, it’s crucial that you be able to take the hundred sources or thousand that are most interesting, most important to you and add them or blend them into one thread, one stream of information. It isn’t practical to start the day by checking 100 separate websites. It’s a nuisance and it doesn’t scale; the idea of a bookmark list, or a desktop, is a way of discouraging you from discovering interesting new sites.
Information arithmetic will clearly become a fundamental issue in the Cybersphere.
Mirror Worlds: or the Day Software Puts the Universe in a Shoebox… How It Will Happen and What It Will Mean. New York: Oxford University Press, 1991.