2000-12-21: Tentative revision -- added section "Extendability'' (better word?) -- see WikiEngineReviewTemplateAnnotated (soon)
The WikiEngineReviewTemplate is intended to provide a checklist of attributes to consider in evaluating a WikiEngine. It also discusses WikiFarms which use that WikiEngine.
This annotated copy is intended to clarify the intent of each attribute to avoid confusion and minimize the need for notes on each individual review.
As new attributes are added they should be added in a consistent manner to all current reviews, the WikiEngineReviewTemplate, and this WikiEngineReviewTemplateAnnotated.
New versions of WikiEngines previously reviewed should trigger the creation of a new review page.
Reviews of old versions of WikiEngines will be kept because WikiFarms or public WikiSites may continue to use old versions of software rather than upgrade. See WikiEngineReviewNewRelease for the recommended approach to creating a review for a new version of a WikiEngine.
JuergenHermann has developed a naming convention to include the version number in a review. See WikiMoinMoinReview and WikiMoinMoinReviewZeroFive. The approach is self explanatory.
See WikiEngineReview and related pages (CategoryWikiEngineReview) for notes and discussion about these reviews and wikis in general.
- Date of Review: The date of this review.
- WikiEngine and Version Reviewed: The WikiEngine name and version, for example "UseMod Wiki 0.88".
- WikiEngine Author: The author of the WikiEngine.
- Review Summary: A not strictly objective summary of what the reviewer thinks of this wiki, probably evaluated in terms of his needs. (The more objective the better.)
- Review Quality: An assessment by the reviewer of how reliable this review is. Did the reviewer test every feature, rely on things he read, or make assumptions based on general knowledge of wikis? Is the reviewer counting on experienced users of the package to find and correct his errors or omissions, or does he believe that he has done enough research and testing to be 99% sure of the facts?
- Standard Features Missing: See WikiEngineReviewStandardFeatures for a list of attributes that I believe all wikis have. Only if an attribute is missing or defective will it be mentioned here. If no features are missing, this will say "None".
- Server OS: Operating systems on which this WikiEngine can run. Usually Linux will mean Linux and any version of Unix or BSD -- any exceptions should be noted if known.
- Language: The programming language the WikiEngine is written in.
- Database: The name of the database program if one is required.
- Required Software: A list of the major software packages required to run this WikiEngine.If possible to run on more than one operating system and the major software required is different, the requirements for each operating system should be described separately.
- Installation Difficulty: Comments about the difficulty of installation. I thought the assumption should be that the installer can handle a normal installation of the required packages other than the WikiEngine, but I'm not entirely sure? Is there an installation tool available? What is entailed in the installation of the Wiki engine? Untar and compile files? Is a precompiled RPM available? Must configuration files be created or modified? Where are the instructions that describe this? Are the instructions understandable by a newbie? by an expert? Must anything be changed in the normal installation of the other required packages (like the database, webserver, etc.)?
- License: Is the WikiEngine licensed under a free license, an open source license, or a commercial (proprietary) license?
- Standard Features Missing (see WikiEngineReviewStandardFeatures): See WikiEngineReviewStandardFeatures
- Name / cost / limits / URL / backup schedule / comments: Is there a WikiFarm that uses this WikiEngine? If so, what is its name, cost, and what limits are there on size or bandwidth? Is the site (content) backed up on a regular schedule? What is that schedule? Other comments?
- If there is more than one WikiFarm, list each as a separate paragraph.
- Display WardsWiki text? Will this wiki properly display text marked up with the WardsWiki text formatting rules? Include a reference to the WikiEngineReviewTextFormattingTest. With the cooperation of the owner of a WikiForum run by this WikiEngine, cut and paste the test page to a page on that forum, link to that page, and suggest that the reader read that page.
- Text formatting rules: A brief overview of any enhancements or differences to the text formatting rules for WardsWiki.
- Headings? Do the text formatting rules provide a means of defining headings of different levels? (The WardsWiki rules do not, but headings can be simulated by applying varying using italics or bold face type.)
- Allowable WikiNames: Any enhancements or differences to the original allowable WikiNames? WardsWiki names are created by concatenating two or more capitalized words, without any adjacent capital letters. Numbers and spaces are not allowed. (This is also tested on the WikiEngineReviewTextFormattingTest.)
- Finegrained Linktargets? Is there a way to address arbitrary locations of a page as link targets?
- Subpages? Is there a way to create subpages of a page with local WikiNames?
- Max Page Size: I will only specify this if I know something specific. Otherwise, be aware of the limit on edit box size which is sometimes 32,000 characters. (Learn about ExtremeProgramming and Refactoring, and convert your learnings to invent ExtremeWriting?. -- I know, I need to follow my own advice.)
- Tables? Is there a way to create a table using the text formatting rules? In wikis that support this feature, a common approach is to insert "|"s at the beginning and end of each line and between the contents of each cell.
- Images? Is there a way to insert an image on a Wiki page so that it is viewable on that page, as opposed to providing a link to an image that can be called up separately via the browser?
- Attachments? Is there a way to attach a file to a wiki page? (I know one wiki claims to do this, I don't really know what the result is.)
- Editing Contention Resolution Is any mechanism provided to prevent or resolve the problems of simultaneous editing? Even if not, describe how the software reacts, for example, "first to save wins, second to save is warned", "last to save wins", or ?
- Search capabilities: Some comments on the search capabilities. Can one search for words in the titles and text of the wiki, including * and ? wildcards. Can one search for regular expressions? Can one search for phrases, boolean combinations of words, or words within x words of each other?
- Email notification of changes: Can an author, editor, or reader request that he be notified by email when a specific page (or group of pages) is edited.
- Diffs: Does the wiki provide a diff to show the changes from the last edit (or perhaps between the current version and any existing previous version, or even between any two previous versions)? How is the diff displayed. (Aside: Somewhere I want to explain what CliffordAdams explained to me about the format of diffs in his UseMod Wiki -- what things like 3c5 mean.)
- Password protection? Can editing on specific pages (or groups of pages) be limited to certain individuals or groups using passwords or similar means? If the means is unusual, provide a brief description.
- Delete Pages? Deleting pages is not possible in all wikis (other than by starting a new wiki and copying the desired pages over). Can pages be deleted, briefly describe how if unusual.
- Revision Snapshots? Does the Wiki save old versions of each page? What are the criteria for saving an old page? (One fairly common approach seems to be to save the last revision by the previous author.)
- Rollback: If the wiki saves old versions of each page, is there a way to restore these old versions if desired? Who can do so?
- Delete Snapshots? If the wiki saves old versions of each page, is there a secure way to delete snapshots to preserve the WikiNature of forgetfulness? Who can do so?
General Note: Several desirable features are often not available. Depending on how the page content is stored, these features can be provided by "packaged" external programs; for example, htDig to provide extended search capability. This section is intended to capture appropriate information.
Extensibility not only depends on page storage alone. The source code, and its organisation, also greatly influence how easy it is to add features. I stress this point because lately MoinMoin got changed a lot to enable exactly this (keywords: plug-ins, Wiki API). -- JuergenHermann
As always, thanks for your comments! I understand what you're saying (I think) but I am trying to focus more on what a non-programming user or administrator can do in the way of providing increased functionality by the use of external programs, not integrated into the WikiEngine software. I probably need to make that more clear. I am resisting learning enough programming to make my own modified wiki (although I will probably learn that much). I wonder if everybody else who is considering a wiki would also consider modifying the program to suit their needs? I guess I don't think so, but I'm not sure. Maybe we are crossing the divide between Linux gurus and Linux users? -- RandyKramer
Even for you as a non-programmer, such a means to plug in components rather easily has consequences: namely, that (other) people write such plug-ins, and you just use them. See http://purl.net/wiki/moin/MacroMarket and http://purl.net/wiki/moin/ParserMarket for the practical implications. -- JuergenHermann
Page content will be stored in one of five ways (I think):
- a large "hash" file? (dbm?)
- a large "text file" with a custom organization
- in another custom storage mechanism, perhaps intrinsic to the programming environment (like for Squeak Swikis?)
- small text files, one per page
- in a database with each page as a record (perhaps with additional information in the same record or in related records)
With at least the last two methods of storage, features not supported directly by the wiki might be obtained easily.
Note: Even if the WikiEngine provides excellent search, import / export, and global search and replace features, the answers to these questions are still interesting.
- Pages stored in individual text files? Yes or No, plus what directory and extension, if known.
- Pages can be added / deleted from directory and wiki will recognize automatically? If pages are "magically" popped into or deleted from the storage directory, can the wiki automatically recognize and incorporate those pages. If not, is there some simple method of forcing the wiki to recognize the changes. It is possible that the answer will be different for added pages vs. deleted pages -- if so, please answer for added and deleted separately.
- Pages stored in database?
- Database provides phrase, boolean, and proximity search? Self explanatory? Maybe even if the database does not, there is an auxiliary search program available for that database?
- Database supports global (across pages) search and replace? Self explanatory? Maybe even if the database does not, there is an auxiliary search program available for that database?
- Pages can be added / deleted from database and wiki will recognize automatically? If pages are "magically" popped into or deleted from the database, can the wiki automatically recognize and incorporate those pages. If not, is there some simple method of forcing the wiki to recognize the changes. It is possible that the answer will be different for added pages vs. deleted pages -- if so, please answer for added and deleted separately.
Working Well with Others
- Static or dynamic web pages: Are the web pages served by the Wiki static or dynamic? (FilesystemBasedWiki discusses serving static web pages, but so far it seems completely hypothetical -- all real wiki serve dynamic pages).
- Indexed by search engines? I believe that search engines have a more difficult time indexing dynamic pages. If the Wiki provides some means to facilitate (or prevent) indexing, mention it or describe it briefly. (I don't really know what I'm talking about here -- something else to learn (and then refactor the reviews accordingly).)
A user may, for example, have a preferred search engine.
Aside: I am still not clear on whether something special must be done to have an internet search engine index dynamically generated pages. If not, the method of storage is irrelevant to the question of using an auxiliary search engine, but is still relevant to global search and replace and import / export.
Nothing special. See CanWebSearchEnginesIndexWikis
- InterWiki Links? Does the Wiki have a means to facilitate linking to pages in another Wiki? Describe it briefly. (Until I find out that all Wikis use a similar mechanism, and then I refactor these reviews appropriately.)
- Import / Export Features: Are there any utilities or features provided to facilitate the import or export of pages (beyond cut and paste)? Describe them briefly.
- Translators to/from other Wikis? Such translators are probably not part of the Wiki itself, but separate programs, probably by other authors. The intent is to list any that I learn of, and briefly list what they can translate to and from.
- Extra Features: List any significant extra features, perhaps with a brief description.
- References: List relevant references, at least one on the Internet. Note that references can be listed at any or all of the attributes above, and it is advisable to do so if there might be confusion or controversy about the point, if you are correcting an error, or if it is an obscure or difficult to find piece of information.
- Browsers Used: (See WikiEngineReviewBrowsersUsed for abbreviations) A list of browsers used to view / edit the Wiki and any significant observations. If you experience slow response it may be helpful to describe your connection to the Internet. The WikiEngineReviewBrowsersUsed page is intended to allow you to create an abbreviation for yourself and your browser. On that page, describe anything you think is relevant about your hardware / software configuration.
- Comments by Users: Comments, good or bad, by users or other reviewers.
Originator / Author, Maintainer, Contributors