Version 1, changed by ehaugo. 11/10/2005. Show version history
By ehaugo at 11/10/2005 07:49AM Tags: tags
Tags are everywhere on the web these days, and for good reason. They're a great "new" option for categorizing information. The concept certainly isn't new -- categories and similar metadata have been around forever. But the particulars of implementation on the web pioneered by sites like Flickr, del.icio.us, and Technorati have given new life to this type of simple-but-effective way of organizing info, mainly due to the social nature of their implementation. This type of community tagging even has it's own name ( folksonomy), un-conference (TagCamp -- check it out on 10/28-29), and set of dedicated blogs (e.g. Tag Tuesday)!
Jot wikis contain a ton of information, both private and public. And while we've got links and search, it can be darn difficult to find that nugget of info after your wiki has grown a bit. Wikis, and Jot, and can definitely benefit from tagging.
To date there's no explicit support for tagging in Jot. The good news is that given Jot's dev capabilities, we've got the juice to roll our own! But what does that look like? How should tags work? What views into these tags make sense, other than the classic tag cloud?
Let's experiment here on the JDC. I've kicked off a group experiment (JotTaggingExperiment) to try to figure out how to implement and use tags in Jot wikis. To get the ball rolling, I've created a simple plugin that relates pages by tags stored in the main/tags property of each page. I've described the implementation a bit in JotTaggingExperiment. It's also running here already -- check out the toolbar to the left.
The idea is to treat RelatedTagsPlugin as a starting point, and brainstorm and implement additional approaches and views as well. We can run the code here on the JDC to get a feel for what works and what doesn't, as well as share full code so everyone can experiment on their own Jot. To that end here's the initial verion of RelatedTagsPlugin -- it's sure to change based on use:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:jot="http://www.foopee.com/ns/s3/srvtmpl/">
<jot:extension target="sidebarBottom">
<jot:nodeinfo name="p" href="wiki:/${page/name}" />
<div id="related-tags"
style="border: 1px solid #8cacbb; background-color: #eee; padding: 8px; margin-top: 8px; margin-bottom: 8px">
<jot:if test="${util:isDefined(page/main/tags)}">
<jot:then>
Page's tags (<a href="wiki:/${page/name}?edit=1&form=/TagForm">edit</a>): ${page/main/tags}
<br /><br />
Related pages by tag:<br /><br />
<jot:loop over="${p/main/tags}">
<jot:var key="tag" value="${it}" />
<jot:search forAll="1" filter="${util:listContains(it/main/tags, tag)}" set="taggedPages" />
<jot:if test="${taggedPages/totalSize > 1}">
<jot:then>
» ${tag}:
<ul>
<jot:loop over="taggedPages" set="tp">
<jot:if test="${not(tp/name = page/name)}">
<jot:then>
<li><a href="wiki:/${tp/name}">${tp/name}</a></li>
</jot:then>
</jot:if>
</jot:loop>
</ul>
</jot:then>
<jot:else>
No others found.
</jot:else>
</jot:if>
</jot:loop>
</jot:then>
<jot:else>
No tags yet -- <a href="wiki:/${page/name}?edit=1&form=/TagForm">add some</a>
</jot:else>
</jot:if>
<jot:script>
<![CDATA[
var pg = jot.pages[page.path];
try { var tot = pg.revision; } catch (e) {}
// Write each change to an array
var taggerArray = new Array();
var alreadyCounted = new Array();
for (i=1; i<=tot; i++) {
if (i>1) {
var currRev = pg.otherRevision(i);
var prevRev = currRev.prevRevision;
if (currRev.main.tags != prevRev.main.tags && typeof alreadyCounted[currRev.user] == "undefined") {
taggerArray.push("<a href='"+currRev.user+"-profile' class='wikiLink'>" + currRev.user + "</a>");
alreadyCounted[currRev.user] = "yep";
}
}
}
if (taggerArray.length>0) {
jot.out.write('<div id="tagger-log">');
jot.out.write("<br/>Taggers:<br/>");
for (j=0; j<taggerArray.length; j++) {
jot.out.write(taggerArray[j] + "<br/>");
}
jot.out.write('</div>');
}
]]>
</jot:script>
</div>
</jot:extension>
</html>
Other than setting up JotTaggingExperiment as an initial meeting page for our efforts, I have no idea how this should evolve. Let's have some fun and figure it out!
Technorati tags: tag, folksonomy, jotspot, wiki, tagcamp.
Back to WikiHome
dianesoini said, 10/19/2005:
Oh, Scott! How disappointed I am! After all the conversation about the evils of inline styles in these jot apps you've perpetuated the practice in your forms for the Jot Tagging code!
Will you be fixing that?