Table of Contents
Requirements for a wiki
(Material first written by Simon Grant, December 2020. If you want to help develop this, please e-mail me.)
(transcribed and adapted for dokuwiki, April 2022)
Start with the an introduction — my list of requirements follows below, each elaborated on a separate page.
The ones I see as essential
- a powerful, semi-automatic backlinking system — existing wikis do backlinks, but only within their own instance
- semantic links — very few wikis do this well
- metadata separation from page content — this is currently confused
- no categories; these are unnecessarily confusing — just have normal pages
- access control — some but not all wikis do this
- edit history and reversion — widely implemented already
- basic web compatibility — not consistently done
Important but less essential
- federated user browsing history — not just for one site or session
- graphical rendering of page graph — because many people find this helpful
- semantic search — to tie in with other semantic web tools
- change notification — picking up a common feature of blogs
- persistent author attribution — the better to know collaborators
- small, controlled page class vocabulary — for easier learnability
Some nice-to-have features
- drag and drop across sites — extending a feature of Fedwiki
- commenting and suggesting — emulating Google Docs and others
- fine-grained change indication
Here is a template for adding other requirements.
How to contribute to these pages
If you are interested in collaborating on this, please let me know and I will give you access to this whole wiki-related part of my wiki.
Links to other articles
Please add right here any links to articles that cover the same or very similar ground to here.
Possible APIs / protocols
- Straightforward https for latest version of page content along with last revision date
- More detailed history etc. given in response to a request for overall metadata about page.
- “give me that page as it was at this date-time”
- preserved in (but how demarcated? just characters?); also with date-time of last change within that portion