Conceptually, a Wikit is a searchable collection of inter-referential pages entered in a markup language and displayable/editable by several user interfaces.
Wikit functionality falls into four general and orthogonal categories:
1. Content and Title Keyword Search
As snitvfs points out, keyword and title keyword search functionality is directly supported by metakit views, using the mk::select facility -keyword. This is also provided by mkvfs as a special case of its pass-through to metakit select.
2. Titles: Linkage between pages
Wikit provides the ability to reference pages in a [keyword] form within markup, where the keyword maps to a page title.
This is implemented by a metakit view mapping referring->referenced pages, which is updated by inspection of pages upon creation, editing and re-titling. mkvfs could store titles as a file attribute and make them searchable as for content.
3. Markup Language with display conversions
Absent a page-typing system, only one kind of markup is supported. Given a more general page store, content typing could be used to store and deliver arbitrary file types. mkvfs can be generalised to support arbitrary meta-data such as mime-type by means of file attribute.
Different markups would be possible, as would
4. User Interfaces - Tk GUI and HTTP/HTML
5. Revision History
This could be provided by a versioning virtual filesystem
6. Image Storage
Images can be stored in the Wikit, details of this mechanism are unclear to the author.
7. User and Modification Control
Wikit provides rudimentary modification control by specifying a hard-coded list of page numbers which may only be edited via the Tk GUI, or from localhost by HTTP. mkvfs supports unix access and ownership semantics, with user identification in a separate module.
- CMcC 20040726