Plugin to tag wiki content collectively in order to find content by tags and to get a meaningful page ranking.
Note: (TWiki 4.2) If you have upgraded TagMePlugin and appear to have lost all your old tags: copy all your tag files from pub/TWiki/TagMePlugin/ files to pub/_work_areas/TagMePlugin/ and they should magically re-appear.
The larger a wiki gets, the harder it is to find content. This wiki tagging plugin attempts to solve the issue based on these assumptions:
Assertion 1: Intranet search does not work well due to inadequate ranking of search engines on intranets. This is because there are typically not many cross-links between pages.
Assertion 2: Let the individuals build their own taxonomy to find content quickly
Assertion 3: Let the users do the ranking to get an "human intelligence" ranking of important content
There are clear benefits in tagging content in a large TWiki (10K or more topics):
Find relevant content in a large system quickly,
by quickly accessing related topics via the tags on a topic
by quickly accessing related topics via related tags listed in a specific tag view
by quickly identifying important tags in the tag cloud
Access my favorite topics quickly (assuming I tag topics of interest)
Solve the search ranking issue of wiki content indexed by a search engine
Help solve stale content issue (old topics do not get tagged)
The design goals of the TagMePlugin were as follows:
Any topic can be tagged by individuals -> create taxonomy for individuals
Show tag statistics of all users on each topic -> show popularity
Encourage users to reuse the same tag on a topic -> get a "collective ranking", or "vote for a tag", or "tag count"
Make it as easy as possible to increase the tag count
Make it as easy as possible to add a new tag to a topic
Encourage users to create new tags, but try to avoid use of similar tags for the same subject
Search for topic by tag, sorted by tag popularity
User Interface
Tag List on Topic
Every topic has a list showing all tags associated with the topic. Additional tags can be added to the topic, and new tags can be created.
Screenshot of tags shown on a topic:
You see:
a list of tags with vote count and add/remove vote buttons,
an add tag selector
a link to create a new tag
a link to the all tags view
Create, Rename, Delete tags
Create New Tags
Go to TagMeCreateNewTag to create new tags.
Anyone is allowed to create new tags.
For developers:
Use the url parameter createtag=my+tag+name to pass a new tag name to the form.
Add Tag to Topic
Once a new tag is created, it can be added in the tag list of the topic.
Rename Tags
Go to TagMeRenameTag to rename existing tags.
Rename permissions are controlled with ALLOW_TAG_CHANGE (see Plugin Settings below).
For developers:
Use the url parameters renametagfrom=my+old+tag+name and renametagto=my+new+tag+name to pass the old and new tag names to the form.
Delete Tags
Go to TagMeDeleteTag to delete existing tags.
Delete permissions are controlled with ALLOW_TAG_CHANGE (see Plugin Settings below).
For developers:
Use the url parameter deletetag=my+tag+name to pass the to-be-deleted tag name to the form.
List All Tags
TagMeViewAllTags shows all tags used in the system. The font size indicates the overall tag count of a tag.
Screenshot of tag cloud in the list all tags view:
Tip: In a WebHome of a web you can show a tag cloud of all tagged topics in that web with this variable:
Limit query to a topic, or a comma-space delimited list of topics with optional asterisk wildcards
all topics
tag="..."
Name of tag
(required)
sort="web"
Sorting of tagged topics: "tagcount" by tag count (relevance), "web" by web then topic name, "topic" by topic name
"tagcount"
norelated="on"
Do not show the list of "related tags"
(show related tags)
nototal="on"
Do not show total number of topics found
(show total)
minsize="90"
Minimum size of topic $size (typically percent font size)
"90"
maxsize="180"
Maximum size of topic $size
"180"
format="..."
Format of a topic, any token of FormattedSearch can be used, such as $web, $topic, $summary, $rev, $n. In addition, $votecount expands to the number of tag votes, $size to the suggested font size, and $taglist to the tag list of the topic.
(nice formatting)
separator=", "
Separator between tags, $n or $n() can be used for newlines
"$n"
limit=""
limit number of results if sort="web"
header=""
if sort="web", add this header once per web with results (only $web is interpreted)
---+++ $web
footer=""
if sort="web", add this footer once per web with results (only $web and $count and $showmore are interpreted)
showing $limit out of $count results $showmore
refine
Normally related tags are shown that when clicked on will search for the related tag. If refine is set to 1, then the link instead will add the clicked tag to the set of tags being searched for, allowing you to incrementally refine search results. If not set the value of ALWAYS_REFINE is used.
Turn off status text shown when a tag is removed or voted on
(show status text)
How to put tags on every page
To show the tag interface at the top of the page directly below the breadcrumb (like on twiki.org), use the default template view.tagme.tmpl in the templates directory.
This template is in fact a 'skin' template. To enable it, write in Main.TWikiPreferences:
* Set SKIN = tagme,pattern
The list of skins can be appended, for instance: tagme,corporate,pattern.
For TWiki 4.1, use:
* Set SKIN = tagme04x01,pattern
Customizing the appearance
If you customize your site you probably want to change overall appearance. You can find instructions how to do that - at least for default pattern skin - in TWiki.PatternSkinCssCookbook.
The short summary is:
Create an empty CSS file, for instance sitestyle.css
Text style of the line "Related tags (Click to refine the search)"
tagmeResultsTable
Table style for search results
tagmeResultsTableHeader
Table header with link to topic, last modified date and author. These have the additional classes td.tagmeTopicTd, td.tagmeDateTd, td.tagmeAuthorTd, tagmeTopicTdWeb
tagmeResultsDetails
Wrapper around tagmeResultsSummary and tagmeResultsDetails
tagmeResultsSummary
The topic summary
tagmeResultsTags
List of tags for the topic
Preventing link wrap
If users are allowed to use spaces in their tag names (when NORMALIZE_TAG_INPUT is set to 0), tag links may break halfway to the next line. To prevent wrapping, add a wrapper div around the tags:
Set SHORTDESCRIPTION = Tag wiki content collectively to find content by keywords
Log add/create actions:
Set LOGACTION = 1
Optionally normalize tag names. Set to 1 to translate international characters to their latin match (ü to ue, å to aa, etcetera), and to convert spaces to underscores. Set to 0 to allow any user input, except for the reserved characters ,#'"|*. Setting to 0 also sorts tags case insensitive: 'U' comes after 't'.
Set NORMALIZE_TAG_INPUT = 0
If 1, then the refine parameter is always added to TAGME queries.
Set ALWAYS_REFINE = 1
List of users and groups that are allowed to change (rename and delete) tags (names separated by commas). Users that are not allowed to change post their change requests to TagMeChangeRequests. If not set anyone can change tags.
Note: You do not need to install anything on the browser to use this plugin. The following instructions are for the administrator who installs the Plugin on the TWiki server.
Download the ZIP file from the Plugin web (see below)
Unzip TagMePlugin.zip in your twiki installation directory. Content:
Arthur Clemens: updated example template to TWiki template convention.
11 Jun 2007:
Arthur Clemens: fixed sizing of tags with the same tag count; fixed CSS class for select box; updated documentation with "How to put tags on every page".
07 Jun 2007:
Arthur Clemens: removed dependency on (unreleased) TWiki 4.2.
Arthur Clemens: The "topic tags" select box is now created with Javascript to prevent the tag options getting indexed by search engines. The former select box is used for noscript fallback.
02 Apr 2007:
Arthur Clemens: Added "Delete Tag" interface. Added tabbed interface for Create, Rename, Delete tags.
30 Mar 2007:
Arthur Clemens: Added "Rename Tag" interface.
22 Mar 2007:
Arthur Clemens: Added option NORMALIZE_TAG_INPUT (to be set to 0) to allow any word as tag name (including upper case, punctuation characters and spaces). Moved "Create New Tag" to dedicated page. Created CSS styles in tagme.css. Added mincount parameter to TAGME{tpaction="showalltags"}.
14 Nov 2006:
Fix IE browser crash issue on print (forms can't be named "tags"; debug by TWiki:Main.KevinKalmbach)
Fix issue of missing topics in tag search if topic name contains plus or minus sign (workaround for TWiki core TWikibug:Item2625 and TWikibug:Item2967)
04 Oct 2006:
Fix issue of statistics moving WebHome tags to WebStatistics
02 Oct 2006:
Support for topic rename (tags are no longer lost)
Support for sub-webs; enclose tag list on topic in span class="tagMePlugin"; tag selector not shown if empty; limit max size of new tags to 30 characters
21 Mar 2006:
TagMeSearch with minsize and maxsize parameters; TagMeSearch format with $votecount, $size; fixed JavaScript compatibility issue on TWiki 4.0
11 Mar 2006:
TagMeSearch with sort, norelated, nototal, format and separator paramters; linked tags in create new tag section; renamed TagMeViewSpecificTag to a shorter TagMeSearch; workaround for Dakar TWikibug:Item1838 to fix broken links in top bar
06 Mar 2006:
Remove my tag vote; added exclude="", minsize="" and maxsize="" parameters; more intuitive icons; in default view, sort tags alphabetically instead of sort by tag vote
03 Mar 2006:
Allow underscore in tags (and convert space and dash to underscore); added web="" and topic="" parameters; fixed font size issue in tag cloud with disproportional counts
28 Feb 2006:
Use tabs in all/my/specific tags view; show related tags in specific tags view; check if topic exists when adding tags;
26 Feb 2006:
Added view all tags / my tags (as tag clouds); view specific tag (sorted by tag count); do not allow guests to create new tags; log add/create tag actions