During a Christmas dinner, someone commented that many texts are too long these days and that it would be nice to have shorter versions available. One could think of large language models (LLMs) as a good solution for this. However, a better conceptual starting point may be the the concept of stretchtext, coined by Ted Nelson back in the 1960s.
I wrote about application writing as stretchtext here on this blog back in 2011. Then, I used the example of having to write both a 5-page and a 15-page application for the ERC Starting Grant. Now, I am curious about how we could use the stretchtext concept to improve contemporary reading and learning.
A long fascination with hypertext
My interest in stretchtext dates back to my interest in hypertext theory, which began in the late 1980s with a novel I randomly found in the school library. It was based on a form of nonlinear writing, often called hypertext fiction, that allowed readers to choose different paths through the book. Each chapter would end with a choice between two paths. This was all on paper; I recall physically looking up the right page to continue reading the story.
My childhood experience opened my eyes to a conceptually different approach to thinking and writing. Later, when I began my university studies, I was introduced to informatics as a discipline and snuck into some research seminars, where I was exposed to hypertext theory. I even recall attending a guest lecture by Ted Nelson, in which he discussed the theoretical developments in hypertext and stretchtext.
Many people believe that hypertext is “the Internet”. However, hypertext theory goes beyond the current realization of HTML on the Web. It is based on the fundamental idea that text can link to other text, turning documents into navigable networks rather than linear sequences.
Stretchtext
While hypertext is ubiquitous on the Web these days, stretchtext is much less used. One reason is that it is challenging to implement in practice. You need to write multiple versions of your content and lay them out so the user can expand or shorten them at will.
It is essential to highlight the difference between hypertext and stretchtext. Hypertext is based on linking, where you move from one page to another. For example, if you click on any of the links above, you will end up on a different web page. As you move from one page to another, you gradually move away from this blog post. You can choose to open a separate tab instead, but you still need to move to another “context” for your reading. Stretchtext is based on the opposite idea, you stay within the same “document” but expand or collapse the available content inline.
One could argue that link popups can be a form of stretchtext. At least they appear within the same context and “expand” the content.
A popup window can be seen as a form of stretched text.
Summary boxes are becoming increasingly popular in newspaper articles, providing a short, often bullet-pointed, form of the story. Accordion menus are another approach to presenting content that can (un)fold based on whether the reader is interested.
However, such summaries, popups, and accordions would be limited to a two-layer structure, which is a limited implementation of stretchtext. In Nelson’s original thinking, stretchtext could take on a much more multidimensional nature. Fortunately, today, I think LLMs may be the perfect tool for exploring stretchtext in practice.
Stretchtext with LLMs
Some years ago, I explored using ChatGPT to shorten my bio. Although not implemented seamlessly on a page, I see this as an example of how a text can be “shrunk” with LLMs.
LLMs are generally good at writing, although they have their own style and jargon. They are also remarkably good at shortening text. However, they struggle with “growing” text. This is understandable; to make an analogy, it is easier to squeeze toothpaste out of the tube than to put it back.
Now, with modern web tools, including HTML, CSS, JavaScript, and APIs that can interact with LLMs, we have the technical framework in place to explore true stretchtext. However, this requires a very different type of “writing” than we are currently used to. Instead of writing a single, complete, linear text, stretchtext writing will be based on provided content (data), independent of form (rendered text).
Here is a very basic example of how it can look like, implemented with JavaScript directly into the blog post:
With LLMs, you could even tailor this to the number of words used to generate the result.
Challenges with LLM-based stretchtext
Some core challenges with this approach are well-known problems with LLMs at large: they hallucinate and invent new facts through “interpolation” of data points, which may lead to very wrong statements. Thus, data provenance—including sources and confidence statements about data—will be even more critical in the future.
Form is also important. I find that many commercial LLMs write in a style that feels foreign to me, often in an exaggerated manner. This will help as we move forward, and where LLMs can be trained and modelled to fit one’s own style and preferences.
Conclusion
Some may argue that LLM-based stretchtexts may ruin reading and writing. I don’t think it is the solution to everything. In fiction, for example, form and content go hand in hand. However, for non-fiction, particularly when developing learning material, I think stretchtext is a brilliant idea. It can facilitate progressive learning, where you start with the big picture and then gradually “zoom” in on details.
While I think LLM-based stretchtext is interesting. LLMs make it practical to implement adaptive, context-sensitive expansions at scale. The result can be a richer, more personal web that honors hypertext’s original promise while adapting it to today’s computational possibilities.
However, we shouldn’t be naive about its potential problems, including hallucinations due to the lack of data provenance and various types of (subtle) bias introduced during the scaling process.
I got some help from CoPilot while building the main argument of this post and used Grammarly for grammar checking.
