axd/Hypertagging
Hypertagging attempts to simplify things.
Introduction
The basic idea is to go back to basics.
Del.icio.us introduced tag bundles, but this is similar to what SL did with subpages: there it ends.
I use ClearCase? and played a bit with CVS (these are
wikipedia:sourcecode versioning tools); now at the company we are moving to SVN, and there I discover that branches nor tags need to be "special" objects, but rather what imagination makes of it. So I thought: how about removing those special tags, remove the asymmetry between pages and tags? Also, the current concept of subpages is outdated and cramped.
Enter hypertagging: there are no tags, pages are tags
- Make tags the general and only way to organise objects. This should simplify SL code?
- Demote existing page types, difficulty and keywords to common tags.
- here's the best part: tags and pages are the same. Therefore, there is no need for tag objects any more. Indeed: a page is a text string (the page name) and content. A tag has a name (a string in the most general way is still a tag) and - usually missing - explanatory content. Once it has content, there is no difference any more with pages. Conclusion: remove the tag concept alltogether (from wiki source code), allow pages to be used as tags. Equating tags to pages allows to create various kinds of structures - including the current structure. SL is already a bit of a jungle, why not admit and encourage this? Yes, I know this doesn't sound very structured at all.
- I guess the concept of discarding tags as separate entities already exists somewhere. Otherwise I'll claim the term "hypertagging" to describe the concept. Paradoxally, there are no longer tags in this view - as every page can be used as a tag. To avoid confusion, I'll keep referring to the tag aspect of pages.
Notes
- There are no such things as "meta"tags: tags can organise themselve (eg page type tags, keyword tags, difficulty tags).
- There is no strict hierarchical ordering of pages: similar to hyperlinking, hypertagging introduces a web of relationships between pages.
User interaction
Calling up a page then presents three sections and allows for a new way to navigate the wiki:
- tags attached to the page (use as parent tags, page tags, ...)
- page content with normal hyperlinks to other pages.
- pages tagged with this page (use as child pages, subtags) (note that this can also describe paths - another candidate for removal)
- optionally: a fourth section listing pages that link to this one (backlinks) (FIXME: this is quite close, yet different to the third section)
The advanced find page becomes much more simple now - it's a matter of selecting the right combination of keywords.
Extensions
- a page tag also has a fuzziness factor, to express how related the page is to the tag. when listing page tags, the most relevant are on top.
- Allow to create tag expressions: "show me objects that have " (tag A and not tag B) etc...
Issues to handle
- mapping of path concept to tag concept
- the relationship between tag and tagged object could be given a name too: "parent", "related to", "see also", "part of path" ...
- tags are usually presented in drop-down boxes, populating those drop-down boxes with all pages in existance is a no-go. but presenting top-level tags (the root page is the root tag) and a tag hierarchy (in a tree dialog, rather than a drop-down) allows to navigate to the desired tag. As tags can be linked in various ways, an HTML page containing a tag's various relations to other tags is the better way to navigate to a tag.
- namespace issues
- how to avoid forcing the user to choose a unique name
- consider the parent tag combination plus page name as unique
- how to refer to a specific page - there are many ways to refer to it...
- tag inheritance?
- tags and sets have much in common; if page 'a' is tagged with tag 'b' (notation: b <- a ), this means 'a' belongs to a set 'b'. what if c <- b <- a; must transitivity be enforced (=> c <- a) ?
- If yes, is it meaningful to propagate (system)tag "path" (see above) downwards?
- If no, do we lose information?
- is there still a meaningful difference between {b,c} <- a and c<-b<-a?
- is circular tagging allowed ( a <- b <- c <- a)?
- allow anyone to manage tags? see also
http://en.wikipedia.org/wiki/Folksonomy wery wiki, I guess...
- support must be given to easily tag large sets of pages when a new tag is "discovered": otherwise the already existing pages end up missing the tag (if applicable) because they were created before the tag sprang into life.
- tags relate to pages as directories relate to files
- if tags allow to express IS-A relationship, how to use them to express HAS-A? (subpages) -> to have a subpage tree, avoid multiple parents.
Links
Epilog
This is no more than the
WikiMedia Category concept.