TWiki is a
Perl-based structured
wiki application,
[1
] typically used to run a
collaboration platform,
knowledge or
document management system, a
knowledge base, or team portal. Users can create
wiki applications using the TWiki Markup Language, and developers can extend its functionality with
plugins.
The TWiki project was founded by
Peter Thoeny in 1998 as an
open source wiki-based application platform. In October 2008, the company TWiki.net, created by Thoeny, assumed full control over the TWiki project
[2
] while much of the developer community
[4
] forked off to join the
Foswikiproject.
[5
]
Major features[edit]
- Revision control - complete audit trail, also for meta data such as attachments and access control settings
- Fine-grained access control - restrict read/write/rename on site level, web level, page level based on user groups
- Extensible TWiki markup language
- TinyMCE based WYSIWYG editor
- Dynamic content generation with TWiki variables
- Forms and reporting - capture structured content, report on it with searches embedded in pages
- Built in database - users can create wiki applications using the TWiki Markup Language
- Skinnable user interface
- RSS/Atom feeds and e-mail notification
- Over 400 Extensions and 200 Plugins
TWiki extensions[edit]
TWiki has a plugin API that has spawned over 300 extensions
[6
] to link into
databases, create
charts,
tags, sort tables, write
spreadsheets, create
image gallery and
slideshows, make
drawings, write
blogs, plot
graphs, interface to many different
authentication schemes, track
Extreme Programming projects and so on.
TWiki application platform[edit]
TWiki as a
structured wiki provides database-like manipulation of fields stored on pages,
[7
] and offers a SQL-like query language to embed reports in wiki pages.
[8
]
Wiki applications are also called
situational applications because they are created ad-hoc by the users for very specific needs. Users have built TWiki applications
[9
] that include call center status boards,
to-do lists,
inventory systems,
employee handbooks,
bug trackers,
blog applications, discussion forums, status reports with rollups and more.
User interface[edit]
The interface of TWiki is completely skinnable in templates, themes and (per user)
CSS. It includes support for
internationalization ('
I18N'), with support for multiple character sets, UTF-8 URLs, and the user interface has been translated into Chinese, Czech, Danish, Dutch, French, German, Italian, Japanese, Polish, Portuguese, Russian, Spanish and Swedish.
[10
]
TWiki deployment[edit]
TWiki is primarily used at the workplace as a
corporate wiki [11
] to coordinate team activities, track projects, implement
workflows [12
] and as an
Intranet Wiki. The TWiki community estimates 40,000 corporate wiki sites as of March 2007, and 20,000 public TWiki sites.
[13
]
TWiki customers include
Fortune 500 such as
Disney,
Google,
Motorola,
Nokia,
Oracle Corporation and
Yahoo!, as well as
small and medium enterprises,
[14
] such as
ARM Holdings[dead link] [15
]and
DHL.
[16
] TWiki has also been used to create collaborative internet sites, such as the
City of Melbourne's
FutureMelbourne wiki where citizens can collaborate on the future plan.
[17
]
Realization[edit]
TWiki is implemented in Perl. Wiki pages are stored in plain text files. Everything, including meta such as access control settings, are version controlled using
RCS. RCS is optional since an all-Perl version control system is provided.
TWiki scales reasonably well even though it uses plain text files and no
relational database to store page data. Many corporate TWiki installations have several hundred thousand pages and tens of thousands of users. Load balancing and caching can be used to improve performance on high traffic sites.
[18
]
TWiki has database features built into the engine. A TWiki Form
[7
] is attached to a page as meta data. This represents a database record. A set of pages that share the same type of form build a database table. A formatted search
[19
] with a SQL-like query
[20
] can be embedded into a page to construct dynamic presentation of data from multiple pages. This allows for building
wiki applications and constitutes the TWiki's notion of a
structured wiki.