A wiki stores text with markup that defines some structure. A SQL database stores a number of rows with some non-recursive structure (columns). A noSQL database stores a number of documents with some structure (e.g. JSON)
Since quite a few wikis are used to store a lot of similar facts and objects, thus creating light-weight databases, it seems interesting to explore the possibility of extending this database ability of wikis.
Here is a list of features/topics that are relevant and could be considered:
- search in a wiki is similar to querying a database, although it ignores structure
- templates in a wiki are helpful to show the user what should be input and create similar pages easily.
- some plugins such as the task list plugin of the Confluence wiki offer a user interface for data input
- using some simple mapping rules, wiki text could be mapped to JSON structures and a couchDB backend would then be able to process the pages. If one writes the pages with some care, the JSON structures could be convenient to use in queries.
- A plugin in the wiki can display the result of a query (sort of a page include plugin on steroids)
A Frenchman's ideas of names for a Wiki/database hybrid:
- datki
- datiki
- dataki
- datuki
Now for the American way:
- WikiBase
- WWDB (Wiki Wiki Database)
No SQL Databases#
MongoDB#
Very simple to setup (yes, in reality), uses BSON (binary JSON). MongoDB can be the one database for everything the wiki needs (users, groups, documents, history, etc.) Scales horizontally, which is what we want as we will have unlimited document growth until the end of the universe.Works well with zfs compression.
Integration With Ye Olde SQL RDBMS#
It is currently possible to embed SQL queries against available (to the servlet container) databases in wiki pages. It is also possible (with this wiki) to embed forms for inserting into a database in wiki pages.One interesting use for this would be to allow management of wiki users and roles (stored in an RDBMS) via the wiki itself.
Database for Wiki File System Provider#
CouchDB sounds like an interesting candidate for a JSPWiki File System Provider.
Name: Implement CouchDBFileProvider / Started: 2010-07-14 / Status: Going for broke | |||||||
Task | Starting | Ending | Work | Progress | Resources | ||
---|---|---|---|---|---|---|---|
Install CouchDB | 2010-07-14 | 2d | ShanghaiScott | ||||
Create CouchDBFileProvider | 2010-07-14 | 3d | ShanghaiScott, pog |
A JDBC file system provider has been implemented but is not currently integrated into this wiki.