The ability to make variables in a wiki.
A variable is a miniature “storage bin” for information- sort of like a page, but much, much smaller, and made to be readily accessible to software.
On a wiki, you might say, “foo = 35” somewhere. Then, elsewhere, whenever you type “$foo”, the number 35 could be substituted. Or, perhaps with MachineServices, you could make it so that a program could refer back to the wiki, and ask it, “What is the value of ‘foo’?” …to which the wiki would reply, “35.”
(When there is a “general programming wiki,” we can link to it’s basic description of “what is a variable?”) (Is http://en.wikibooks.org/wiki/Computer_programming/Variables close enough?).
Scripting languages tend to converge on three basic units of data:
You could also add to that “number.” (You do have to index a list, after all.)
Generally, you can nest these. So, you have a list of dictionaries, some of the dictionary entries being strings, or more lists, or even other dictionaries. You can put strings and lists and dictionaries into lists and dictionaries. (But not lists and dictionaries into strings.)
These three things are “primitive” to most scripting languages: Perl, Python, and PHP. They are all easily communicated by XmlRpc.
A wiki page can actually implement all three of these:
You could retrieve the values of a WikiVariables from outside of the wiki.
You could use XmlRpc, Soap, a Wiki:ScreenScraping, or whatever.
Then you could have a computer game, that pulls the latest game data from the wiki. Or you could publish the data by BitTorrent. Or whatever.
The “help” system of a program could use wiki pages, and use Wiki``Variables to mediate things, such as “which pages of the wiki are part of the built-in help system,” and such.
MoinMoin 1.2 has variables by the page, rather than the whole wiki.
You attach variables to a given page. If you want global variables, you could make a page called “Site``Variables,” (consider StandardPages), and place the variables there.
| status | wiki engines |
|---|---|
| Implemented | MoinMoin MoinMoin 1.2+ |
| Developing | MediaWiki MediaWiki |
| Intend to Develop | - |
| Considering | - |
| Rejected | - |
MoinMoin’s implementation presently does not support nesting lists, dictionaries, and strings. – LionKimbro
MediaWiki’s implementation (called “transclusion”, using the keyword “template:”) does support recursively nested transclusion.
variable - a container for some (generally small) data, intended to be easily read by machines.
Each WikiEngine should document their own method of doing it. Please add a link to that documentation in the “Implementations” table, on this page. (I’ve already linked to the one that I know about).
LionKimbro RichardTallent DavidCary