MicroDB:
A Distributed, Tag-Based Database
for Annotating Anything and Everything

Introducing MicroDB

PERMALINK • 2018-03-11T20:00:00Z • Nick Radcliffe
NEXT: MicroDB Shell Quick Reference
INDEX

This is a new blog about MicroDB, a distributed online tag-based database for humans.

Over the coming weeks and months, I will try to explain and motivate MicroDB in some detail, but today I just want to make a number of statements about the system that I hope will help people with different backgrounds to understand roughly what it is, where it has come from, and why it might be interesting.

Like a Database.

MicroDB is a distributed online database with a REST-based API that allows anyone to attach information to anything in the world. The information takes the form of tags with (typed) values. So whereas a simple, valueless tag would normally be a word such as like or own, a tag with a value might be something like rating=3 or owner="njr".

Like a Social Bookmarking Site for Everything.

Social bookmarking sites (originally Joshua Schachter’s Del.icio.us, and today, primarily, Maciej Cegłowski’s excellent Pinboard) allow users to bookmark URLs onine, organize them by attaching tags, and see each other’s bookmarks (subject to permissions).

MicroDB is like a social bookmarking site in which the items saved don’t have to be web pages and where tags can have values.

A Phoenix Rising from the Ashes of Fluidinfo.

Fluidinfo, the brainchild of Terry Jones, was an attempt to create a centralized online tag-based database that was world-writable and world-readable, subject to a rich permissions system. The fundamental idea was that each user had a namespace and stored his or her data in the values of tags within that namespace. But while tags were owned by users, all users attached their tags to a shared set of common “objects” that could be used to represent different real-world entities or other things—the Eiffel Tower, George Orwell’s 1984 or π.

Cover: Getting Started with Fluidindo

Fluidinfo had a query language and a REST-based interface. I was peripherally involved in the company, wrote an O’Reilly book Getting Started with Fluidinfo withone of its staff—Nicholas Tollervey. Fluidinfo captured the interest of an interesting set of investors, including Tim O’Reilly, the afore-mentioned Joshua Schachter and Esther Dyson, but ran out of money before reaching critical mass.

MicroDB is a fairly direct reimagining of some of the core ideas from Fluidinfo with two key modifications:

For more information on Fluidinfo, see my About Tag Blog, now hosted here on MicroDB at https://njr.radcliffe0.com/abouttag/index.html.

Like a MicroBlog for Data.

Microblogging is a term that has been coined by IndieWeb proponents to describe Twitter-like systems in which users post short-form updates across a network. Attempts to create more distributed, open alternatives to centralized systems like Twitter, have included app.net, Mastodon, Diaspora and more recently Manton Reece’s micro.blog.

MicroDB takes the same idea of moving from a centralized service containing everyone’s (social) data to a more distributed system in which users can own and control their own (social) data, but rather than focusing narrowly on microblog posts, MicroDB is a distributed database in which users can store any kind of data and share some subset of it publicly through well-defined REST APIs (and other web interfaces).

My own Microblog, which you can access at micro.blog/njr, is in reality just a set of tags on my own MicroDB server. There’s OID (object ID) for each post—e.g. microblog:2018-02-28T17:49:33—and each such OID has two tags—post.html, with the content of the post, and date, with the date of the post. So

njr.radcliffe0.com/microblog:2018–02–28T17:49:33/post.html

is a microblog post (which the server serves with Content-Type set to text/html). There’s also a tag (feed.rss) on the whose value is the RSS feed for the microblog at njr.radcliffe0.com/microblog/feed.rss.

An A-List on Everything.

When Terry described Fluidinfo to Paul Graham, Paul summarized the system as “an a-list on everything”—an a-list being what lisp programmers call the data structure variously known in other contexts as a dictionary, a hash, an association list or set of key-value pairs.

This is a great characterization of Fluidinfo before, and of MicroDB now, though perhaps even more accurate would be “an a-list per person on everything”.

A Personal Repository for your Key Data.

Most of us entrust some of our data to one or more applications or services from one or more of the tech giants. I’m thinking particlarly of things like contacts, calendar entries, to-do lists, bookmarks, notes and so forth, but also other things such as books or products you’ve rated, lists you’ve made, posts to social media services, or other data you might have stored in files or databases.

Many of us have a feeling of unease about such data being siloed in applications and services that might not last, might not respect our ownership and control of the data, and which might make migration to other services or use in other contexts harder than we would wish. I’ve long had that feeling, ever since I started viewing my collection of such data as a coherent entity, which was really back when I first got a Palm V.

So another way of thinking about MicroDB is as a personal data silo, somewhere you can keep key data for yourself, but also with the option to share/publish some of it if you wish.

More to Follow

That’s probably enough for an introduction. Further details will follow.