[Update: it has been politely pointed out (in the comments following this post) by David Semeria that the Post-it note analogy to FluidDB came from him, not me!]
It’s a pretty simple question, but you may have never thought about it directly. It’s the stickiness of Post-it notes that makes them so extraordinarily useful. The stickiness allows us to put a note in the place that makes the most sense, in the place where its information will be in context, and where it will have the greatest utility.
That’s trivial, agreed, but I nevertheless find it interesting and instructive.
Using Post-it notes we can add information to things in a very wide range of ways. The information might be about the thing to which it’s attached, or the object might just be something we anticipate being encountered at a relevant future moment.
How often do people ask for permission to attach a Post-it note to an object? Probably not very often. I’ve certainly never done it.
The information on the Post-it note can’t be presented by the object the note is on. If the object had been designed to carry that information, there’d be no need for a Post-it note. So Post-it notes are almost by definition for adding information to things in unanticipated ways.
And as for the content of Post-it notes – that’s clearly highly unpredictable. I’ve illustrated this posting with some fun examples.
It’s very useful to be able to put information in its most natural or useful place. We do it all the time. The other day I returned to my apartment and taped to the inside wall of the elevator was a form for the neighbors of my building to enter their gas meter readings. The elevator was the perfect place for the notice. But it certainly wasn’t designed for that purpose. The representative of the gas company didn’t ask permission, they just taped up the form.
I love thinking about how we work with information in the real world – especially the kinds of things we do so frequently or naturally that we barely notice them.
All of which brings me, inevitably, to FluidDB. As I’ve mentioned before several times, FluidDB objects have no owner. That means that anyone can put the digital equivalent of a Post-it onto anything they like, for whatever purpose, without asking for permission, and without anyone having to anticipate that they would want to do so.
That’s all I’ll say for now, as I’m trying to keep this short. I hope it will be thought provoking. Think about how tightly controlled, how unspontaneous, and how awkward our typical computational experiences are. There’s a reason for that, and it’s rooted in information architecture. Think about how Post-it notes, in a simplistic but important way, make the world writable. And then, for extra points, think about FluidDB ๐
I can’t resist one final image.
[…] This post was mentioned on Twitter by Terry Jones and Nicholas Tollervey, FluidDB. FluidDB said: RT @terrycojones: Blogged: Why are Post-it notes sticky? http://bit.ly/1FkJgs #FluidDB […]
Pingback by Tweets that mention FluidDB ยป Blog Archive ยป Why are Post-it notes sticky? -- Topsy.com — November 12, 2009 @ 1:47 am
Terry, I remember when we first spoke about Fluid DB, and I explained it back to you by way a Post-it analogy.
I think it's a very appropriate metaphor.
Comment by David Semeria — November 12, 2009 @ 2:34 am
Hi David. I don't remember at all where the analogy came from, which is *surely* a sign that I didn't think of it. Thanks a lot – I like it too, obviously ๐ I put an update at the start of the post, pointing to you. Please excuse my ailing memory!
Comment by terrycojones — November 12, 2009 @ 3:18 am
Comment by David Semeria — November 12, 2009 @ 3:29 am
Hey! I'm not claiming I came up with it first – who cares?
I'm just saying that since it was the first analogy that came to my mind, I think it's a good and useful one.
Thanks anyway, Terry.
Comment by David Semeria — November 12, 2009 @ 3:29 am
Well, I care. Maybe I'm too sensitive to that sort of thing after many years in academic circles (where it's the currency). Anyway, fair's fair – it came from your mind, so at the very least I can leave a pointer so people can follow it to you.
Regards.
Comment by terrycojones — November 12, 2009 @ 3:45 am
OK, my curiosity has been piquey and I'm eager to play. I stumbled across fluidDB and if I understand things fluidDB is a big bowl of
FluidDB is the left wing, left field anarchist that pronouncing equal rights for all data, an end to data/matadata apartheid
So here are my questions.
Anyone can tag anything, so long as it's an object. But what's an object? Wallowing around in the mists of my misunderstanding it seems to me that an object is no more than
Here's the thing, I think I get the whole tagging idea, even the permissions and the query language. What I am hazy on is what the hell is an object? Implimentationally
———————
The difference between stickies and tags, as far as I can see, is what they can be attached to. fluidDB tags only stick to fluidDB objects, Until the big bowl of fluidDB digital soup has been tipped over and poured all over the entire world wide table top, the tags are not going to be anywhere that anyone else is likely to see them.
This issue of visibility is one of the things I'm grappling with.
I'm wrestling with what is an object (in the fluidDB scheme of things)? It seems as if it is a URI tagged NULL. A uniquely identifiable placeholder standing in for something else. But how is a mapping established between a fluidDB object and and the actual target of our intent? More to the point, how is that mapping brought to the attention of everyone else?
If I want to rate my favourite book on Amazon, or suggest Delia Smith's pancake mix needs more flour, then how do I get my tags to appear where they will be seen?
I'm pondering on dividing the universe into two, the real universe and the virtual universe.
For the real universe, I can see no alternative other than Mohammed having to go to the mountain. Mohammed, Smith or Jones essentially will have to visit fluidDB (or some well known, derived application) and start their search there.
For the virtual universe though, could an agent be used to move the mountain to Mohammed, and Smith and Jones? Could a fluidDB aware browser place that mapping between fluidDB object and www URL right where it's needed, in front of the user. Metaphorically and perhaps graphically, could the fluidDB aware browser display the tags al la Stickies on he target object (page)?
I can imaging all sorts of implementational problems, dynamic html pages and so on, but the idea is a appealing. I can also imagine some interesting consequences!
What if fluidDB user “DumpedBitterGirlFriend” wanted to tag ExBoyFriend's inter dating profile with the “pedophile” tag? It's a libel issue I guess. But arming the world with intercontinental ballistic stickies strikes me as one of those technological changes that could… change the world!
What is there to stop the malicious user abusing the fluidDB API and writing an app that rampages through the fluidDB database looking for objects with about tags with common words and tagging everything with “information=//http:www.cheap-hand-guns.con”
On a personal note, I've tried to get fdb.py up and running (I'm using MacOS 10.5 and python 2.6.2) and I am getting nowhere fast. I just keep getting missing modules. I'm keen to take it for a spin so any pointers to a Dummy's guide to fluidDB would be wonderful.
Well, I've written this on the basis of my very limited understanding of fluidDB, (and limited python experience) so it's quite possible that my comments need to be tagged “HeadUpMyOwnArse”. It would not be the first time that something I have written has been tagged that way!
Comment by Michael Ellis — November 19, 2009 @ 8:13 am
Hi Michael
What a great comment – thanks! Tons of things shine through your words, and I like them ๐ I'm not sure how best to reply. I could do it here in Disqus, but maybe it would be better on the FluidDB discuss mailing list. What would you prefer? I have lots to say back, as you might hope. I'm happy to do it somewhere public too, as more people may read & benefit.
Terry
Comment by terrycojones — November 19, 2009 @ 9:10 am
Uhm, can you point me at the “FluidDB discuss mailing list”?
Comment by michaelpellis — November 19, 2009 @ 9:29 am
Here's the discuss group http://groups.google.com/group/fluiddb-discuss
I'm going to have to reply later, as I have to go see my kids and then there's a pre-conference dinner I have to attend.
But I will reply – with gusto!
Comment by terrycojones — November 19, 2009 @ 10:25 am
> One of the differences between stickies and tags, as far as I can see, is
> what they can be attached to. fluidDB tags only stick to fluidDB objects,
> Until the big bowl of fluidDB digital soup has been tipped over and
> poured all over the entire world wide table top, the tags are not going
> to be anywhere that anyone else is likely to see them.
Right.
> I'm wrestling with what is an object (in the fluidDB scheme of things)?
An object is nothing more than a container for tags (and their values), with a unique id.
> It seems as if it is a URI tagged NULL.
It doesn't correspond to anything, though you can use it to hold information about a URI.
> But how is a mapping established between a fluidDB object and and the
> actual target of our intent?
One way is to use the 'about' tag. If you ask FluidDB for the object that's about 'http://www.fluidinfo.com' you'll get back an object you can put tags on. Anyone other app asking FluidDB for the object about that URI will get the same object back.
> More to the point, how is that mapping brought to the attention of
> everyone else?
In the case of the 'about' tag, it's one of the core aspects of FluidDB – or put slightly differently, it's perhaps the most obvious initial way to use FluidDB.
> If I want to rate my favourite book on Amazon, or suggest Delia Smith's
> pancake mix needs more flour, then how do I get my tags to appear where
> they will be seen?
Right. So put the book tags onto the object that's about the URI for that Amazon product. Or, perhaps better, onto the object that's about the ISBN number of the book. It's your choice. You can do both. One might be better / more useful than the other. FluidDB doesn't tell you what to do here.
There's a pretty strong analogy with a wiki here. You can go to a wiki and ask for the page for any random string at all. If there's no such page, the wiki simply offers you a new blank one and lets you begin to edit. FluidDB does exactly the same thing if you ask for an object 'about' something – anything. That's the way in which we say FluidDB can be used as a universal metadata engine. It's much more suitable for apps than a wiki is though, as it has a permissions system, its data is all typed, and there's a query language – all of which can be used to build real apps.
> I'm pondering on dividing the universe into two, the real universe and
> the virtual universe.
> For the real universe, I can see no alternative other than Mohammed
> having to go to the mountain. Mohammed, Smith or Jones essentially will
> have to visit fluidDB (or some well known, derived application) and start
> their search there.
You could do that. In fact we'll launch a search engine for FluidDB content at some point. We built on for an earlier version, it's called Marbles.
> For the virtual universe though, could an agent be used to move the
> mountain to Mohammed, and Smith and Jones? Could a fluidDB aware browser
> place that mapping between fluidDB object and www URL right where it's
> needed, in front of the user. Metaphorically and perhaps graphically,
> could the fluidDB aware browser display the tags al la Stickies on he
> target object (page)?
Yes, exactly. The job can easily be done by something like a Firefox extension or a Grease Monkey script, etc. Some people are already building things like that.
> I can imagine all sorts of implementational problems, dynamic html pages
> and so on, but the idea is a appealing. I can also imagine some
> interesting consequences!
Me too ๐ I'd be happy to hear your thoughts / reactions / ideas.
> What if fluidDB user “DumpedBitterGirlFriend” wanted to tag ExBoyFriend's
> inter dating profile with the “pedophile” tag? It's a libel issue I
> guess.
I think so. It's a bit like the real world. You can take someone to court. You can also deny the charge – put more information onto your FluidDB object. Also as with the real world, observers get to choose who to pay attention to, if anyone.
> But arming the world with intercontinental ballistic stickies strikes me
> as one of those technological changes that could… change the world!
Good – we think so too ๐
> What is there to stop the malicious user abusing the fluidDB API and
> writing an app that rampages through the fluidDB database looking for
> objects with about tags with common words and tagging everything with
> “information=//http:www.cheap-hand-guns.con”
Nothing. But of course we can monitor for simple things like that. We could also bill them. And you, or anyone else, could add tags to their tags (or to the FluidDB object for that user) to indicate that they were a spammer, an illegal arms dealer, etc.
> On a personal note, I've tried to get fdb.py up and running (I'm using
> MacOS 10.5 and python 2.6.2) and I am getting nowhere fast. I just keep
> getting missing modules. I'm keen to take it for a spin so any pointers
> to a Dummy's guide to fluidDB would be wonderful.
Did you have any more luck with git?
I also have a feeling that njr0 may not have updated fdb.py recently. It may need a little work – there was an API change about a month ago. I'll ask him what the status is.
> Well, I've written this on the basis of my very limited understanding of
> fluidDB, (and limited python experience) so it's quite possible that my
> comments need to be tagged “HeadUpMyOwnArse”. It would not be the first
> time that something I have written has been tagged that way!
LOL. We have a tag for that. Thanks for your interest and lively questions. I'll be really happy to answer more, to discuss, etc. The fluiddb-discuss mailing list is a good place, but here is fine too. As you like.
Terry
Comment by terrycojones — November 20, 2009 @ 3:47 pm
FluidDB has identity. All users have their own top-level namespace. So putting a tag like you suggest onto FluidDB objects means that the tag would have a name like james/atm-notice. Of course it might not be james, it could be “trust-me”. The user in question has to somehow get others to look at their tag on the object.
The second thing to mention is that every tag and every user has an object that corresponds to them. On that object FluidDB can put information about the tag or user, as can others. Those objects give a locus for the accumulation of trust / reputation information. I could tag the object for michaelpellis with a terry/my-friend tag (note: only I could do that) and others could see that I am your friend. I could indicate that I trust you (or your tag), that I use it. FluidDB itself can tag those objects (think for example of Twitter's verified users) to show how widely used / trusted they are.
That's all nice. But at the end of the day, you're right. FluidDB in various ways is trying to emulate the way we work with information in the real world. And often the answer to problems is to let selection pressure, evolution, and emergence take care of things. That's part of the point – *don't* set the rules. Bad stuff will happen, no doubt. But good stuff will too. And over time the bad stuff can be dealth with – partly through some of the approached above. Having an extremely flexible writable underlying storage architecture makes a lot of things possible.
Comment by terrycojones — November 20, 2009 @ 3:55 pm
Terry, thanks!
Of course now I just have lots more questions, and a few ideas. I desperately want to get started. I want to write a python CGI that dips its toes into the fluidDB bowl of soup. I did not get fdb.py to load (as you said perhaps the github playing up). When I tried to pull down fdb.py from another source, I found I was missing some python modules (I am a python newbie).
I need an idiots guide to get fdb.py up an running on a Mac. If there isn't one, then I need some help and I'll write it. I'm quite good with idiots, I relate to them.
Comment by michaelpellis — November 21, 2009 @ 4:42 am
The next comment here will be from Nick radcliffe, I predict. Not only did he write fdb.py, but he also wrote some nice explanatroy blog posts on how to use it and about FluidDB in general. Stay tuned…
Comment by terrycojones — November 21, 2009 @ 5:43 am
Hi Michael (and everyone)
Yes, sorry, fdb.py is not up-to-date with the current FluidDB. I've been incredibly busy with my day recently and the last three times I've played with FluidDB, I've broken it, so olne way or another I've held off.
But…that's bad. I'l try to fix it over the weekend and blog about it over at abouttag.blogspot.com. (There's lots about how to use it over there, but unfortunately it's only valid for the old FluidDB API.) To make matters slightly worse, my tests were based partly on the idea that we'd keep FluidDB up and object IDs really would be permanent, but in fact that hasn't been the case so far. So they'll need some work too.
Comment by njr0 — November 21, 2009 @ 7:33 am
Terry, thanks!
Of course now I just have lots more questions, and a few ideas. I desperately want to get started. I want to write a python CGI that dips its toes into the fluidDB bowl of soup. I did not get fdb.py to load (as you said perhaps the github playing up). When I tried to pull down fdb.py from another source, I found I was missing some python modules (I am a python newbie).
I need an idiots guide to get fdb.py up an running on a Mac. If there isn't one, then I need some help and I'll write it. I'm quite good with idiots, I relate to them.
Comment by michaelpellis — November 21, 2009 @ 11:42 am
The next comment here will be from Nick radcliffe, I predict. Not only did he write fdb.py, but he also wrote some nice explanatroy blog posts on how to use it and about FluidDB in general. Stay tuned…
Comment by terrycojones — November 21, 2009 @ 12:43 pm
Hi Michael (and everyone)
Yes, sorry, fdb.py is not up-to-date with the current FluidDB. I've been incredibly busy with my day recently and the last three times I've played with FluidDB, I've broken it, so olne way or another I've held off.
But…that's bad. I'l try to fix it over the weekend and blog about it over at abouttag.blogspot.com. (There's lots about how to use it over there, but unfortunately it's only valid for the old FluidDB API.) To make matters slightly worse, my tests were based partly on the idea that we'd keep FluidDB up and object IDs really would be permanent, but in fact that hasn't been the case so far. So they'll need some work too.
Comment by njr0 — November 21, 2009 @ 2:33 pm
oh! i think really good site!
Comment by Ex Back — June 17, 2010 @ 10:08 am