Semantic Scrapbook
Posted by Trejkaz Fri, 20 Apr 2007 01:09:58 GMT
Over the past week or so I’ve started to pull together ideas for a new web application to write. There are a number of things I’ve fussed over and so I thought I would do a bit of a mind dump here so that people can comment on my ideas.
I started wanting a tumblelog, the reason being that I frequently decide not to post something because there isn’t enough content to post with it. So I investigated a couple of options for that, one hosted and one I could run myself.
But very quickly, a tumblelog becomes inadequate for what I want to do…
Semantics
Aside from posts being short, the only truly unique feature of tumblelogs is that there are different kinds of post, and each kind of post is formatted differently.
This starts to suggest that posts have semantics, but it doesn’t look like tumblelog developers see it that way. Which is a shame, because if it were simple enough to attach semantics to a link post, you could use the webapp as a bookmarks manager as well, either by using some kind of microformat, or by offering an alternative view of the site as XBEL.
Privacy
Real bookmark managers (e.g. Scuttle) allow bookmarks to be marked as private as well as public, so I started to branch my idea. Perhaps I can make something which is a superset of bookmark management and tumblelogging, where certain posts can be marked as private, or in a multiuser scenario, semi-private. The new idea is no longer as trivial as a tumblelog so I’m equating it with being more of a web-based scrapbook. You can still make questionable posts or personal reminders on your scrapbook, just mark them private so that the whole world doesn’t see it.
Tagging
I’ve already been told that as soon as you add tagging to a tumblelog, that it isn’t a tumblelog anymore, and that’s another reason why I’ll have to call this a scrapbook instead.
For finding historical information, tagging is very convenient. There’s no point dropping an interesting link into your scrapbook if a year later, you don’t know how to find it again.
In a way this would make the application similar to systems like TiddlyWiki, in that you could use it to dump all your personal notes and as long as things are tagged sensibly, you could always perform a query which returns all relevant comments in a single page (forming a kind of virtual write-only page.)
Going a step further, you might decide that if you add a new post to a page which was generated by a tag-based search, that the new post inherits those tags by default.
No user management
User management is a bitch, and really I only want to make this a single-user system, but I still want partial privacy eventually.
A simple password-based system might allow for partial privacy without actually implementing user management. Though I suppose you could say that in my system, the password represents a username.
No commenting
Lack of comments is already very much in the style of a tumblelog, but I thought I’d drop a note here because lately I’ve been thinking that no webapp needs commenting.
“That’s ludicrous,” you say.
But there are already a bunch of ways where an arbitrary web page can be commented on, without the site itself needing to implement it. Annotea is the obvious one, it even has a Firefox extension already. Other variations on the theme exist.
There are also systems like Weblin for real-time chatting on arbitrary web pages. If/when this system ever gets standardised and lets you use your own existing IM account, it would become the perfect way to implement live feedback systems.
And so because of this, I’m inclined to never implement commenting ever again. I just need to make sure that each post has a page you can visit to see only that post.
Plugins?
I did originally want plugins…
But it looks like implementing them might be a royal pain, at least if I want to use Rails as-is. I want posts to have semantics, and I want post types to be able to derive from other post types, and Active Record really sucks for storing objects whose classes inherit from other classes.
So I don’t know what I will do here. I could use an OODBMS, or I could ditch the plugin idea and every post type gets coded into the application itself (an admin screen could have checkboxes so that you never see the post types you don’t need.)
Language
Finally I’ve also been considering whether to actually use Ruby or not.
On one hand, Ruby is great, largely because of Rails.
On the other hand if I were to use Java I would get access to db4o, which is a really good OODBMS, supporting all sorts of nice things like syncing (so I could make an app where you can post while offline, which is priceless.)
I wonder if there is any merit in a fusion of the two, running Rails under JRuby (which is very possible) and having it access the db4o objects instead of using Active Record. Then I should theoretically get my sync functionality via some code running outside of Rails.