MeatballWiki | RecentChanges | Random Page | Indices | Categories

If a wiki is to be used for more traditional, rigorous organization than CategoriesAndTopics on BackLinks, pages must support the addition of meta-data. However, adding many extra fields to the edit page makes it hard to keep everything AboveTheFold, and complicates the creation of a simple stub. It also limits the range of possible meta-data, or forces complex forms with variable numbers of fields. It also goes against the wiki tradition of putting everything important into a single stream of text.

Therefore, simply add meta-data to the top of a wiki (or other enhanced-plain-text format) page using a RFC 822 header, prefixing the page like an e-mail:

Title: RFC 822 Meta-data Syntax
Abstract: A popular human-readable syntax for adding meta-data
Is-Part-Of: RdfForWikis
Has-Format: PeriPeri:PeriPeri+FacetWiki:RdfForWikis
Conforms-To: RFC 822

(These fields may be called statements, to conform to ResourceDescriptionFramework parlance.)


Representation versus represented

Since Wiki pages can represent concepts, one may need to distinguish statements about the concept from statements about the representation. Representation metadata is prefixed with an asterisk (allowed by RFC 822):

 Title: Chris Purcell
 *Creator: ChrisPurcell
 *Created: 2001
 *Contributor: SunirShah
 Identifier: Chris Purcell, born Bath, UK, 1981-02-17
 Created: 1981-02-17

A different set of metadata tags may be permitted for representation metadata.


More complex meta-data, where a statement about a page itself has qualifying statements, can be made by creating a separate page and using [reification vocabulary]:

 Subject: ChrisPurcell
 Predicate: Attends
 Object: Cambridge University
 Coverage: 1999-09 - 2006-06


[Text::Header] is convenient, although it doesn't really handle metadata with multiple datum for a single field. Is there any better existing code?

It looks to me like the only problem is putting the results into a hash; Text::Header doesn't mention any subtleties like internally enforcing uniqueness.

CategoryWikiTechnology CategoryUncommonWikiTechnology


MeatballWiki | RecentChanges | Random Page | Indices | Categories
Edit text of this page | View other revisions