Welcome, guest ( Login )

» Home (JDC Blog)
» Forums

Page Tags

experiment tags

Search Tags:
WikiHome » WikiZone » CommunityExperiments » JotTaggingExperiment

JotTaggingExperiment

Version 9, changed by ScottMcmullan. 10/17/2006.   Show version history

Overview

Tagging is all the rage in computing these days. A tag is metadata applied to some information (typically a URL) to help organize and categorize that info. Tagging first appeared in popular use in sites like Flickr and del.icio.us, and has spread like wildfire since then. For good reason: it works well in practice and is easy.

There's been much written and done with tags in the past 18 months, including around a particular type of collaborative tagging called a folksonomy. The goal of this experiment is to get first-hand experience with tagging in a wiki context and get a better understanding of what works and what doesn't. This experiment will create tagging features and views for JotSpot wikis that will be tested here on the JDC, as well as other Jot sites as they see fit.

(This experiment was introduced in the Jotspot Tagging Experiment blog post.)


TagLib: Faster/Better/Slicker Tagging Library


Updated 10/17/2006

Phil took a huge leap and created a new tagging library from the ground up. Optimized for speed and ease of use.

Details here on http://tag-dev.jot.com. (Download the zip file)

The library consists of a set of pages that live under TagLib. To install, download the latest package from http://tag-dev.jot.com/WikiHome/ProjectDownload and install it by following the Manage Packages link in your footer menu.

Demo Pages:



Older Experiments



RelatedTagsPlugin Experiment


Version 1

Overview

This initial experiment consists of a plugin that puts a very simple box in the sidebar that shows:

  1. a list of tags embedded in the page
  2. links to related pages containing identical tags
  3. the users who have contributed or edited the page's tags

Here's what it looks like:

Tags are embedded in a page by adding a main/tags property to a page of type stringList. This property can be edited for a given page using the TagForm form. (See DifferentFormsTutorial for more info on how this works.)

In this experiment, tags are globally shared amongst all users.

Implementation

See RelatedTagsPluginImplementationV1


TagCloudLib Experiment


Version 1

Overview

TagCloudLib is a set of server-side Javascript functions that create and display a tag cloud. This library can be used by other apps and plugins to create appropriate tag clouds.

There are currently two pairs of functions:

  1. createTagCloud() and displayTagCloud()
  2. createTagCloud2() and displayTagCloud2()

These use different algorithms to collect the tags and display the cloud. createTagCloud2() is a bit more efficient, althought they both have difficulty computing a tagcloud for the entire site (or the entire forum for that matter). I'll be looking into what we can do to optimize this algorithm so it doesn't exceed the maximum allowable execution time for server-side Javascript.

Here's what the current version of this tag cloud looks like:

To use the library, you can include it in a page and then call createTagCloud()/displayTagCloud() appropriately. For example, here's a page that shows all the tags used in the forum reply pages: AllForumReplyTags

<jot:include node="TagCloudCSS" />
<jot:include node="TagCloudLib" />
<jot:script>

var allTagsResult = jot.lib.search({forFormName: "ForumReplyForm", collect: "it/main/tags"});
var allTagsArray = allTagsResult.getItems();
allTagsArray.sort();

//hack to remove tags that have characters that cause problems -- e.g. &
for (i=0; i<allTagsArray.length; i++) {
  if (allTagsArray[i].indexOf("&") > 0)
    allTagsArray[i]="";
}

var tagCloudArray = createTagCloud(allTagsArray);
displayTagCloud(tagCloudArray);

</jot:script>

Implementation

See TagCloudLibImplementationV1


RelatedPagesDynamic Experiment


Version 1

Overview

This is an extension of the previous TagCloudLib and plugin, written by Phillip Kast, that uses some simple AJAX technique to dynamically display the TagPivot page introduced above.
That also opens the door to the faceted tag approach suggested by ehaugo, and this is implemented here: if you click on multiple tags, they stay highlighted and you get a list of all pages that contain all of those tags.

This version of the plugin also lets you change a page's tags without leaving that page. Clicking "tag this page" reveals a box with the tags, and an Update button.

Implementation

See RelatedPagesDynamicV1 or just grab the package.

Attachments (2)

  File By Size Attached Ver.
 relatedTagsPluginV1Screenshot.png ScottMcmullan 5K 11/03/2005 1 Delete attachment
 tagCloudV1Screenshot.png ScottMcmullan 7K 11/03/2005 1 Delete attachment