How do Wiki Categories work

Difference between version 143 and 144 - Previous - Next
!!!!!!
|[About the WIki%|%previous : About the Wiki]|[Contents%|%up: Contents]|[The Tcl Core%|%next: The Tcl Core]|
!!!!!!



** History **

This wiki has always had the feature that clicking on a page title when viewing
the page produces a list of all the other pages that link to that page. Other
wikis have this feature too. In September 2001, [WHD] added categories to the
wiki, using only this feature, i.e. he added no code to the wiki software. See
the [comp.lang.tcl] post at
https://groups.google.com/forum/#!original/comp.lang.tcl/4cIvZt2VA44/TzhWkf3AimgJ .



** Description **

In the post linked to above, [WHD] said
|Categories are very simple.  Suppose you want to provide an|
|<<br>>index of all pages on the Wiki relating to the WiKit software.  To|
|<<br>>each such page, add the following link: [[Category WiKit]].  Then,|
|<<br>>create a [[Category WiKit]] page that defines the purpose of the|
|<<br>>category.  It need not have much text on it; its primary value is|
|<<br>>that if you click on its title, the search features built into the|
|<<br>>Wiki will give you a list of all pages that link to [[Category WiKit]]|
| |
|<<br>>...|
|<<br>> |
|<<br>>and, finally,|
|<<br>> |
|<<br>>`Category Category`|
|<<br>> |
|<<br>>That last is the category to which all Category pages belong, so that|
|<<br>>you can go to Category Category, click on its title, and get a list|
|<<br>>of all Category pages.|
That's it. (except that you can't click on the page title any more, you have to choose '''References''' from the '''Page''' menu.)

By convention, the links to a page's category or categories go at the end of
the page, and there is now the ''<<categories>>'' macro to format them.

======none
<<categories>> Topic | Other Topic
======

However that macro has no function other than formatting, and the standard wiki
functionality doesn't care where in the page they are.

Another convention, obviously dating back to [WHD]'s original, is that
category pages have names starting with the word "Category" so you can see
what they are. However, any page that has a link to [[Category Category]]
behaves like a category page, so it might be considered to be one, and the
''<<categories>>'' macro allows that by formatting the above example as if
it were specified as

======none
!!!!!!
| [Category Topic] | [Category Other Topic] |
!!!!!!
======

prepending the word "Category" unless there is only a page (e.g. "Topic") 
without it and no page (e.g "Category Topic") with it.

The whole category thing is automatic, except that the original version of
'''this''' page said:

"An attempt is being made to produce some sort of self-categorizing of the pages on this web site. To do this requires one to enter at the bottom of pages one or more links to one of these tags:"

followed by a very short list of categories. Hence the rather longer and necessarily always
incomplete list below.

The last quote also shows that categories are just tags with no hierarchy or any other structure.

[PYK] 2015-11-08:  In that case, "categories" is an unfortunate name for this
system, as "keywords" would have been more fitting.  It goes to show that the
idea was half-baked from the beginning, and that initial descriptions of it
shouldn't be taken too dogmatically.

[EMJ] 2015-11-08: The name was already used by other wikis for the same sort of concept, so why not?
As for being half-baked, no, it seems to have been more of "hey, we can do what they do with our existing
functionality, we just have to use it in a particular way". And at the time (yes, I was here then!) it looked like a clever and
wonderful idea. Also, there is no reason why "A class or division of people or things regarded as having particular shared characteristics" (
http://www.oxforddictionaries.com/) has to be part of a hierarchy (though of course it can). For an explanation of why I 
and others have a very deep suspicion of any attempt to turn even part of the Wiki into to a hierarchy, ask someone about the unperson episode.
Hierarchies are useful, but they are not essential, and can even be used to hide things. They are also, by the way, contrary
to the spirit of the internet.

----

** Major Categories **

In addition to the list of categories automatically generated by clicking on
the title of the [Category Category] page, the following is a manually-curated list of major
categories (where, for the time being, "major" means "in this list"):


   [Category Category%|%Category]:   the meta category - covers the list of all categories
   [Category Uncategorized%|%Uncategorized]:   the "anti-category" - put on a page as a reminder that it hasn't really been categorized yet.
   [Category 3D Graphics%|%3D Graphics]:   pages relating to 3D graphical display of information
   [Category Actions%|%Actions]:   pages that talk about the concept of ''actions''
   [Category Advanced Programming Fundamentals%|%Advanced Programming Fundamentals]:   
   [Category Advocacy%|%Advocacy]:   pages dealing with tcl vs other languages
   [Category AI%|%AI]:   pages relating to [Artificial Intelligence]
   [Category Ajax%|%Ajax]:   WWW protocol
   [Category Algorithm%|%Algorithm]:   pages that describe either the general idea behind an algorithm or an implementation of the algorithm
   [Category Animation%|%Animation]:   pages that describe techniques and tools for performing animation
   [Category AOLserver%|%AOLserver]:   popular web server
   [Category Application%|%Application]:   pages that describe a stand alone application or group of applications.
   [Category Argument Processing%|%Argument Processing]:   pages that deal with tools and techniques for parsing arguments to a command or proc

   [Category Audio%|%Audio]:   Recording, processing, and playback, of audio signals.


   [Category Barcode%|%Barcode]:   pages discussing barcode related processing
   [Category Binary Data%|%Binary Data]:   pages discussing dealing with data rather than printable strings.
   [Category Biology%|%Biology]:   pages discussing Tcl use within the biological community
   [Category BLT%|%BLT]:   pages discussing programming using the [BLT] extension
   [Category Book%|%Book]:   pages that describe specific literature.
   [Category Broken Links%|%Broken Links]:   used in connection with the [Broken Link Report]
   [Category Business%|%Business]:   various pages describing business related applications and libraries.
   [Category Bwise%|%Bwise]:   pages related to the [Bwise] environment.<<br>><<br>>

   Category Calculator%|%Calculator]:   calculators: scientific or otherwise
   [Category Channel%|%Channel]:   pages about [channel]s in Tcl, and their counterparts in other languages.
   [Category Characters%|%Characters]:   pages describing internal or external manipulation of characters, fonts, glyphs, code-points, etc.
   [Category Chat%|%Chat]:   Wiki pages related to Internet [chat] programs.
   [Category Chemistry%|%Chemistry]:   extensions, concepts, algorithms, etc. dealing with problems in the field of chemistry
   [Category Cloverfield%|%Cloverfield]:   a programming language project
   [Category CMS%|%CMS]:   content management system related pages
   [Category Command%|%Command]:   pages describing particular Tcl extension commands
   [Category Community%|%Community]:   pages describing/promoting community spirit
   [Category Company%|%Company]:   pages describing companies with Tcl related products
   [Category Compression%|%Compression]:   pages dealing with the reduction of files/strings/etc
   [Category Concept%|%Concept]:   basic C.S. and mathematical concepts, and how to implement them in Tcl
   [Category Concurrency%|%Concurrency]:   
   [Category Control Structure%|%Control Structure]:   implementation of various tcl related control structures
   [Category Core%|%Core]:   pages relating to functionality in the TCT managed portion of tcl's central source code implementing interpreter, etc.
   [Category Critcl%|%Critcl]:   discussion of the Tcl runtime compile extension [critcl]
   [Category Cryptography%|%Cryptography]:   pages describing algorithms, software, etc. relating to encryption/decryption
   [Category Currency and Finance%|%Currency and Finance]:   monetary related issues<<br>><<br>>

   [Category Data Serialization Format%|%Data Serialization Format]:   
   [Category Data Structure%|%Data Structure]:   pages describing implementation/etc. of existing or new data structures
   [Category Database%|%Database]:   pages describing database issues.
   [Category Date and Time%|%Date and Time]:   pages discussing topics of date and time calculations, calendaring, etc.
   [Category Debugging%|%Debugging]:   pages describing helpers/strategies for debugging
   [Category Deployment%|%Deployment]:   pages that relate to how to get your application into a destination environment
   [Category Design%|%Design]:   pages that relate to application design
   [Category Desktop%|%Desktop]:   pages that relate to applications that run on, or provide support to, [GUI] desktops, regardless of platform
   [Category Dev. Tools%|%Dev. Tools]:   pages that relate to development tools for Tcl.
   [Category Development%|%Development]:   Programming, software development and software engineering.
   [Category Device Control%|%Device Control]:   pages that relate to interacting with hardware.
   [Category Dialog%|%Dialog]:   pages that relate to [dialog] windows.
   [Category Discussion%|%Discussion]:   pages where some topic is being discussed that doesn't fit into the other categories
   [Category Distribution%|%Distribution]:   discuss methods, tools, etc. for getting tcl applications and tcl itself out to appropriate locations
   [Category Documentation%|%Documentation]:   pages describing documentation issues.<<br>><<br>>

   [Category Editor utility%|%Editor utility]:   pages relating to editors and code to augment editors
   [Category Education%|%Education]:   pages provide examples of Tcl used in education
   [Category Embedded%|%Embedded]:   Pages discussing issues relating to devices with tcl embedded in them.
   [Category Engineering%|%Engineering]:   Mechanical / Electrical engineering etc.
   [Category Essay%|%Essay]:   lengthy writings on relatively narrow topics
   [Category Event Loop%|%Event Loop]:   Event loop tutorials and usage examples
   [Category Example%|%Example]:   Page provides example of using a particular technique or command
   [Category Expect%|%Expect]:   Topics relating to the Expect package<<br>><<br>>

   [Category File%|%File]:   processing of files
   [Category Foreign Interfaces%|%Foreign Interfaces]:   pages about interfaces from other programming languages
   [Category FORTRAN%|%FORTRAN]:   pages about interfacing [Tcl] and [FORTRAN]
   [Category Function%|%Function]:   
   [Category Functional Programming%|%Functional Programming]:   relating to the style of programming

   [Category Games%|%Games]:   Applications and design issues relating to things hopefully fun to play
   [Category Geography%|%Geography]:   Geography, Maps, Navigation
   [Category Glossary%|%Glossary]:   Page that defines a particular word, term, acronym
   [Category Graph theory%|%Graph theory]:   
   [Category Graphics%|%Graphics]:   pages relating to graphical display of information
   [Category Groupware%|%Groupware]:   software designed to aid info sharing and collaboration
   [Category GUI%|%GUI]:   pages relating to graphical user interface related topics, applications, libraries, etc

   [Category Handwriting Recognition%|%Handwriting Recognition]:   pages related to handwriting recognition in Tcl/Tk
   [Category Human Language%|%Human Language]:   pages that discuss use of tcl to process text of various languages
   [Category Humor%|%Humor]:   attempts to be humorous<<br>><<br>>

   [Category Image Processing%|%Image Processing]:   pages for discussion,tools, etc. for manipulating files or in memory structures that represent images
   [Category Internals%|%Internals]:   pages describing how Tcl works (e.g. bytecode compiler). Useful for maintainers and TIP authors
   [Category Internet%|%Internet]:   pages describing Tcl interactions with the Internet in all its forms
   [Category Interprocess Communication%|%Interprocess Communication]:   process to process techniques, commands, discussions
   [Category Introspection%|%Introspection]:   discussions of Tcl's introspective functionality
   [Category Itcl%|%Itcl]:   Wiki pages relating to [incr tcl]<<br>><<br>>

   [Category Java%|%Java]:   pages that relate to programming in Java, invoking Java classes, etc
   [Category Jim%|%Jim]:   pages that relate to the [Jim] tiny, Tcl-alike language<<br>><<br>>

   [Category (L)GPL Licensed%|%(L)GPL Licensed]:   wiki pages about programs with a [FSF] license
   [Category Language%|%Language]:   pages that describe programming languages
   [Category Licence%|%Licence]:   relating to various end user license agreement issues
   [Category Linguistics%|%Linguistics]:   
   [Category Linux%|%Linux]:   relating to Linux specific issues
   [Category Local%|%Local]:   topics dealing with local specialties for given countries or natural languages<<br>><<br>>

   [Category Mac%|%Mac]:   pages discussion the Apple Macintosh computer and related topics
   [Category Mail%|%Mail]:   
   [Category Mailing List%|%Mailing List]:   pages describing mailing lists
   [Category Mathematics%|%Mathematics]:   pages relating to mathematical concepts, calculations, algorithms, etc
   [Category Medicine%|%Medicine]:   programs and code applicable to the field of medicine
   [Category Mobile%|%Mobile]:   Tcl on mobile platforms
   [Category Multimedia%|%Multimedia]:   pages relating to Multimedia concepts
   [Category Music%|%Music]:   pages that discuss generation of music<<br>><<br>>

   [Category NaviServer%|%NaviServer]:   pages about the [NaviServer] web server.
   [Category Networking%|%Networking]:   pages relating to various networking issues.
   [Category Numerical Analysis%|%Numerical Analysis]:   pages for this specific field of math<<br>><<br>>

   [Category Object Orientation%|%Object Orientation]:   pages relating to OO packages, design issues, and other related topics
   [Category Office Automation%|%Office Automation]:   pages describing Tcl applications and packages used in automating office work
   [Category Oldies%|%Oldies]:   dealing with old versions of Tcl as well as old, no longer supported, operating system platforms
   [Category Operating System%|%Operating System]:   Pages about operating systems
   [Category Operator%|%Operator]:   used to link the various [expr] operator pages
   [Category Optical Illusion%|%Optical Illusion]:   
   [Category Package%|%Package]:   pages describing specific Tcl related re-usable software entities, sometimes referred to as extensions
   [Category Parsing%|%Parsing]:   
   [Category Performance%|%Performance]:   pages dealing with improving, measuring, comparing etc. the performance of Tcl and associated extensions and applications
   [Category Person%|%Person]:   pages describing specific people or used by an individual to describe their personal likes, dislikes, projects, etc
   [Category Physics%|%Physics]:   pages discussing programming relating to physics.
   [Category PIM%|%PIM]:   pages whose topic relates to Personal Information Management programs or technologies
   [Category Platform Issues%|%Platform Issues]:   
   [Category Plotting%|%Plotting]:   pages concerning the graphical presentation of a dataset (why not just use visualization?)
   [Category Polygon%|%Polygon]:   pages whose topic relates to polygons, geometric objects, etc.
   [Category Porting%|%Porting]:   pages describing porting tcl programs and extensions to newer or older platforms / versions
   [Category PostgreSQL%|%PostgreSQL]:   popular database related topics
   [Category Presentation%|%Presentation]:   discussion, concepts, packages relating to the presentation of content
   [Category Printing%|%Printing]:   pages relating to some aspect of achiving hard copy<<br>><<br>>

   [Category Repository%|%Repository]:   pages related to requirements, creation, operation, maintenance, and availability of repositories for Tcl code<<br>><<br>>

   [Category Science%|%Science]:   pages relating to sciences other than computer science
   [Category Scripted Document%|%Scripted Document]:   old name for [Starkit].
   [Category Security%|%Security]:   pages that suggest extensions or topics relating to software/data/computer security issues
   [Category Signal Processing%|%Signal Processing]:   processing measured data signals
   [Category Simulator%|%Simulator]:   simulators: electrical, mechanical, biological ... systems
   [Category Snit%|%Snit]:   pages about [Snit's Not Incr Tcl]
   [Category Snit Widgets%|%Snit Widgets]:   pages of [megawidget]s written in [Snit]
   [Category Sound%|%Sound]:   pages connected to generating and analyzing soud data (music, monitoring, etc.)
   [Category Speech Synthesis%|%Speech Synthesis]:   pages related to speech synthesis.
   [Category Statistics%|%Statistics]:   pages relating to the mathematical calculation of statistics
   [Category String Processing%|%String Processing]:   Strings, text, regular expressions, etc.
   [Category Suggestions%|%Suggestions]:   pages that suggest extensions or new features that still wait for someone to implement them
   [Category Survey%|%Survey]:   
   [Category Syntax%|%Syntax]:   discuss Tcl syntax and related issues
   [Category System Administration%|%System Administration]:   pages relating to issues of managing computer systems and their users.
   [Category Tcl Implementations%|%Tcl Implementations]:   pages that discuss the various Tcl-like interpreters available
   [Category Tcl Library%|%Tcl Library]:   pages that document the various Tcl C API functions
   [Category Tcl3D%|%Tcl3D]:   pages related to the [Tcl3D] [package]
   [Category Tcler's Wiki%|%Tcler's Wiki]:   pages that relate to the meta-topic of [the Tcler's Wiki] web site itself
   [Category TclHttpd%|%TclHttpd]:   pages relating to the popular Tcl web server
   [Category Tclkit%|%Tclkit]:   pages discussing the building and use of [tclkit] all in one "Batteries Included" distribution format
   [Category tcllib%|%tcllib]:   the tcl script based [tcllib] [package].
   [Category TclX%|%TclX]:   the extension which adds more ''unix'' type commands to tcl
   [Category Telecoms%|%Telecoms]:   
   [Category Template%|%Template]:   
   [Category Testing%|%Testing]:   pages discussing the building and use of tcl in various testing capacities
   [Category Text Screen%|%Text Screen]:   
   [Category Text Widget%|%Text Widget]:   
   [Category Threads%|%Threads]:   Collection of Tcl and thread application architectural issues
   [Category TIP%|%TIP]:   pages discussing [Tcl Improvement Proposal]s
   [Category Tk%|%Tk]:   relating to the [Tk] package
   [Category Tk Library%|%Tk Library]:   the C API provided by the Tk library
   [Category tklib%|%tklib]:   the tcl script based [tklib] [package].
   [Category Toys%|%Toys]:   fun code that technically isn't related to games
   [Category Tutorial%|%Tutorial]:   pages that are suitable for learning<<br>><<br>>

   [Category Unix%|%Unix]:   [Unix]-specific things.<<br>><<br>>

   [Category VFS%|%VFS]:   pages relating to [vfs], the virtual file system
   [Category Visualization%|%Visualization]:   pages relating to graphically displaying data<<br>><<br>>

   [Category Webserver%|%Webserver]:   web server info on the wiki
   [Category Whizzlet%|%Whizzlet]:   What are [whizzlets]?
   [Category Widget%|%Widget]:   pages that relate to Tk [widget]s
   [Category Wikit%|%Wikit]:   pages that relate to the general software used to run this web site itself
   [Category Windows%|%Windows]:   pages that relate to [Microsoft]'s [Windows] operating system in any of its incarnations
   [Category WindowsTricks%|%WindowsTricks]:   
   [Category Word and Text Processing%|%Word and Text Processing]:   pages that deal with the programatic processing of words or text (i.e. editors, formatters, spelling checkers, etc.)
   [Category Wub%|%Wub]:   technology behind this web site<<br>><<br>>

   [Category XML%|%XML]:   pages related to [XML]
   [Category XOTcl Code%|%XOTcl Code]:   pages of topics and code relating to the [XOTcl] object oriented extension

!!!!!!
|[About the WIki%|%previous : About the Wiki]|[Contents%|%up: Contents]|[The Tcl Core%|%next: The Tcl Core]|
!!!!!!

<<categories>> Tcler's Wiki