FrontPage RecentChanges AboutWikiFeatures WikiNode

WikiVariables

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?).

Possibilities

The Scripting 3: Strings, Lists, and Dictionaries

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:

External Retrieval

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.

Variables by the Page

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.

Implementations

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.

Activity

Terminology

variable - a container for some (generally small) data, intended to be easily read by machines.

So how do you actually create and use wiki variables within a wiki page?

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).

See Also

Contributors

LionKimbro RichardTallent DavidCary


CategoryFeature CategoryObject