
Current mood.
In a study of how information workers organize their workspace, Thomas Malone quotes an interview with one of his research subjects, “Kenneth,” who says of his desk:
The desk is sort of random. It’s sort of mostly recent stuff, because I periodically do clean off my desk. For about 30 seconds it’s clean. I usually separate it into piles that have to be instantly answered, should be answered in a week, or whatever has appropriate places. That pile there is mostly stuff that should be dealt with in a week… And its been sitting for months. The desk mostly has right now sort of—I get infinite junk mail, subscribe to too many magazines. So a lot of that is magazine reading I haven’t caught up on. And there’s a few piles of critical stuff in there. I don’t know … I’m sure when I find them, somebody will be mad at me for not answering their letter. I have a letter from Baker hidden someplace in here complaining about one of my papers. It’s been here for a year and a half and I haven’t answered it. (Malone 1983, 104)
For anyone who has worked in knowledge production, it’s not surprising to hear this, or to learn that Kenneth is just as productive as anyone else in the office. Untidy office workers in Malone’s study were often shy and self-deprecating, but nonetheless seemed to know intuitively where every paper in the office was, and what it was for. Items were sorted into stacks, with the most recently added or accessed items on top of the stack. More recently accessed stacks were near the worker’s chair; less frequently used—and lower-priority or longer-term projects—moved to the edge. These messy spaces had an organization of their own, one that emerged from the aggregate traces of patterns of use.
Kenneth is me. I have always wanted to capture in an electronic system what emerges from the accumulation of paper files on my desktop. This was in fact the main conclusion of Malone’s study. Information systems serve two purposes, to both make it possible to find specific items when they are needed, but also to create an environment which can remind the user what they may need now or in the near future. Hypertext and wikis are one step in that direction. The software that runs this site is my effort to get closer to the paradoxically messy yet ordered desk.
KEN is the KEN Epistemological Network
In essence this site is a wiki. My ultimate aim is to create a wiki that makes its own links, so I don’t have to. I throw stuff into it, and an order emerges from the chaos. This would be similar to the automatic classification function that Malone argued should be built into operating systems—which, in the internet age, we all have learned to practice with hashtags or by using recommendation systems or ranking algorithms. I have built into the site ways of tracking my own recent activity on the site and natural-language processing techniques for calculating similar pages or clusters of related pages. I hope to keep developing ways to achieve automatic classification but for now, I want to start adding stuff and see what happens. Ethnograph is the first site to use KEN.
Where did the software come from?
That is a story of its own. KEN is inspired by DokuWiki, built using Python, Flask, and Pandoc. It allows for easy creation and management of wiki pages with a focus on extensibility through a plugin architecture. Like Dokuwiki, all data is stored in flat files, predominantly Markdown text files with YAML metadata. The code for the site was initially created in an interactive chat session with Google Gemini 2.5 pro (preview). The AI followed the instructions given by a human creator, starting with the prompt,
I have a new1 vibe coding project for you. Dokuwiki is a content management system based on flat file data storage. It’s implemented in PHP. I would like to create a dokuwiki clone implemented in python. It should have the same basic architecture as Dokuwiki including plug-in extensibility.2
This ultimately evolved into a simpler version of KEN, called Pandoky. Did that experience train me to develop the more dynamic, self-organizing KEN model? No, but with one site up running Pandoky I was able to realize what I really wanted. So, like an addict, back I went to Google for another really involved conversation about what I wanted.3 I explained my ideas. The AI replied with, initially, an overview of how one might create such an app, and then a skeleton for a Flask app, followed by initial versions of core files, basic templates and static assets, and plug-ins. The human creator in turn followed the instructions of the AI, asked questions of procedure, copied the files, ran them, reported errors, made changes (or copied over corrected or improved versions of different components), and then suggested new plug-ins or expanded functions.
Who was the lord and who was the servant? Is the human a creator, worker, or just another Google customer? Is the AI a worker, a creator, or just another product? It is a question for the ages. If anything, I have learned how little I know about the basic conventions of software development. I would love to be able to share the underlying code for this site now, but I am not even sure how one packages it in a self-contained way for others to install. So for now, this code is still being tested by me, and so this site may not always work. Please let me know if you find any errors, but I can’t promise any fixes.
References
The earlier project was to create a command-line app that would convert Markdown text files and CSV files to pages and assignments and upload them to Canvas LMS using its API. What can I say? I love learning outcomes.↩︎
The full chat transcript is (for now) available here: https://g.co/gemini/share/8e3b3be23d77.↩︎
Is it just me that uses “please,” “thank you” and generally modulates my stance in conversations with AI bots? No?↩︎