
Just read a post on Paolo Massa’s Blog, where he requests to add a Flickr/ del.icio.us/ Technorati style of tagging to Webjay music playlists. In hip speak this practice is called a “folksonomy“.
Folksonomy is a neologism for a practice of collaborative categorization using simple tags. This feature has begun appearing in a variety of social software. At present, the best examples of online folksonomies are social bookmarking sites like del.icio.us, a bookmark sharing site, Flickr, for photo sharing, 43 Things, for goal sharing, and Tagsurf, for tag-based discussions.
(from wikipedia.org)
Strictly speaking, this would be a 4th way of organising stuff, somewhere between a taxonomy (categorized) and searchable (indexed). It’s not a taxonomy because one item can have multiple free-text tags, and it’s not straightforward indexing, because it is information ‘outside’ the item (meta-information), and not part of it.
When I was thinking about how Lucas should implement this, I found it a pity that Webjay has to re-develop something that already exists in other services. Or, the other way around, it would be great to have a service that does ONLY that: add folksonomy support to just about anything. Let’s call it ‘www.folksonomizer.new‘. It would look something like this:
- the service allows the adding of tags to objects. A ‘tag’ is a string ATOMICS: the atomic operations are
write_tags(URI, service, tags): add these tags to the URI, overwriting what existed before, can be used to erase some or all tagsadd_tags(URI, service, tags): add these tags to the URI, leaving existing tagsget_tags_for_uri(URI, service, params): get tags for this URI. Params can be used to influence the maximum number of tags returned (default: 100), the sort orderget_uris_for_tag(service, tags, params): get URIs that have this tag. Params can be used to influence # URIs, sort orderget_tags_for_service(service, params): get all tags for this service. Params is used for #tags returned and sort order.
The sort order might be: alphabetically, chronologically (most recent first), by frequency (most used tags), or by some combination (e.g. first the relatively ‘new’ tags with a lot of traffic – the new memes or hypes).
- SCOPE: A service is public (i.e. the tags are also visible when the service is not specified, tags trickle up) or private (the tags only show up when the correct service is specified).
- AUTHORISATION: the tagging is ‘narrow’ (i.e. only the author(s) can add tags, like Technorati) or ‘broad’ (i.e. anyone can add tags to a URI, like del.icio.us) (terminology from vanderwal.net)
- API: the service can be called with SOAP/XML-RPC (within PHP/Perl/ASPX scripts) or Javascript (within HTML pages) links.
- SIMPLE: To show the tags, all the webmaster should do is add a piece of code in his pages like <script src=”http://www.folksonomizer.new/get?SVC=Webjay&URI=$URI”> </script>. If the folksonomy is broad, the webmaster can throw together a standard HTML FORM that allows users to add tags to a URI via POST or GET.
- FLEXIBLE: To have more control over the layout and sort order, the webmaster uses the XML-RPC API, which returns a richer XML list. E.g. when he requests the URIs for a certain tag, he gets a list in the format: URI/date added/#tags/#taggers and can use the extra information to make fonts bigger, change sort order, …
Any programmers out there with a lack for a pet project?
Some services that are quite close to this: the del.icio.us API and Flickr API.
Technorati tags: folksonomy – socialsoftware – webjay
Related posts:
- Folksonomy and google bombs Folksonomy or social tagging A folksonomy is a system that...
- Idea: preview service for URL shorteners I was using my iPhone to read my Twitter feed...
- Web-based web development Writing code in your browser, it’s coming this way, I...
- Web 2.0 mememap overview After I saw Tim O’Reilly’s Web 2.0 mememap (via readwriteweb.com)...
- Moving up the feed chain While playing with Feed43 recently (an excellent anything-to-RSS converter), I...




If every URI that belonged to a “service” had a tag associated with it that was the name of that service, wouldn’t that solve the problem?
So, for every URI to an MP3 on webjay (say http://www.grooveattack.com/mp3/non14_01.mp3) it has the tag “webjay” and whatever other descriptive tags (jazz, shank, etc.) you like. A “service” can really just be another tag.
Yes and no. It might be one way to implement it, but you cannot do public/private tags, plus the authorization for narrow folksonomies becomes tricky.
Peter and Peter,
I think you are working on the same thing…
http://poorbuthappy.com/ease/archives/2005/02/10/2508/
http://blog.forret.com/blog/2005/02/folksonomizer-generic-folksonomy.html
Pascal Van Hecke
Interesting.
You could theoretically use something like Freetag to get started. I released it this past weekend so that it could get used to toss up tagging sytems for projects like Webjay in a matter of hours. It’s more of a basic system right now, but a RESTful API based upon my work for Upcoming.org is in the pipeline, as well as tag namespaces.
It’s geared more towards interoperability of multiple object repositories that run the same backend and communicate over the same framework, though. But I suppose you could implement it on a generalized directory of taggable services, and then use URI’s to manage everything. Or maybe I misunderstand your point?
I’d be happy to help extend Freetag somewhat towards new requirements – take a look at it and let me know if it might be suitable.
one step backwards, two forwards:
the rusty old annotea project laid the grounds for adding tags to diverse webpages, including a protocol and user authorisation/identification etc.
Suppose that the protocl of annotea is weird and not as simple as REST, but its a good starter (and has implementations)
http://www.w3.org/2001/Annotea/
I`ve become fascinated with this whole culture.Where do you think the future of Folksonomy lies? Please take a look at my site and give critical feedback.
http://www.domeafavorbuddy.com/beta
much appreciated
James
“Any programmers out there with a lack for a pet project?”
…Im building a kind of generic folksonomy API for my organization’s intranet. Something kind of like IBM’s DogEar, but more generic. I’d be interested in collaborating on something public though.