Aging Plugin

Author: Chris Malek <cmalek@caltech.edu>
Version: 0.0.17
MoinMoin: Release 1.3.0 and later
License: GPL

Summary

For some kinds of information, accuracy and currency is important. When viewers see this information, they need to be able to determine whether they can trust it to be accurate and current.

The Aging plugin provides macros and actions which try to help people evaluate the trustworthiness of the information on a page.

  • The plugin helps readers to determine whether the information on a page

is trustworthy by showing the last time a page was deemed to be accurate, the next time the page will be reviewed for accuracy, and who they can go to for further information.

  • It helps authors to keep the information in their pages updated and accurate by periodically reminding them to review and update each page for accuracy.

Background

Information Aging

Information is accurate and useful only within a specific context, and one part of this context is time. At the time a page is authored, it (theoretically) is at its most accurate: it represents the author's best effort at capturing some aspect of the world as it is at time of authoring.

As time passes, the world changes but the information on that page doesn't: it becomes out of date. Periodically, the page must be revisited and evaluated in relation to the current state of the world: either the information is still accurate, or it needs to be updated, or it is no longer relevant and the page should be deleted.

Apperances are also important. Even if the the information on a page is not actually out of date, if the page has not been modified for some time, it can appear to be untrustworthy to readers.

Information Sources

If a reader sees that the information on a page is out of date, or questions its trustworthiness, she should be able to contact the source of the information to at least attempt to confirm its accuracy.

The information on a page comes from the world, and particular people either possess the live information, or know how to obtain it. These people are the information sources for a page. Note that the information source for a page is not necessarily the author for a page: the source is the person who has the knowledge (or can obtain it) and is willing to be contacted about it.

Endorsements and Expiration

I propose the concepts of endorsement and expiration.

Endorsement is a way for someone to mark a page and say: on a certain date, I read through this page, and it looked accurate to me. That way, a reader or author can look at the page and see that someone, at least, checked it over at a certain point and found it to be accurate.

Since information ages, endorsements should not be permanent -- they should be valid for a limited time, and have an expiration date. After the endorsement expires, the should be re-examined for accuracy and then re-endorsed.

Usage

Quickstart

To use the Aging Plugin on a page:

  1. Add the page metadata to the top of the page.
  2. Add the [[AgingTable]] macro somewhere on the page.

  3. Endorse the page with the Endorse action.

After you have setup your pages, periodically visit the ExpiredPages page to find out which pages need to be revisited.

Page Metadata

To support the concepts of information aging and sourcing, the Aging plugin macros use two bits of metadata for each page:

  • source: the WikiName of the user who is the information source for the page

  • expires: the number of days past the last edit of the page after which

the information on the page should be reviewed. The Aging plugin macros will use expires to determine the expiration date for a page, which is last_endorsement_date + (expires days). If the page has never been endorsed, it is marked as expired.

These metadata are implemented as special comment lines in the header of the page:

 ##aging source $WikiName
 ##aging expires $days

where $WikiName is the WikiName of the person who is the information source (typically the original page author), and $days is a positive integer.

These two comment lines should be added to each page for which you want to track information aging and sourcing.

The Endorse Action

Use the Endorse action to endorse a page (or the "Endorse" button in the [[AgingTable]] plugin, which calls the Endorse action).

The Endorse action adds a line to the top of the page which looks like

 ##aging endorsed $WikiName $epoch_seconds

where $WikiName is the WikiName of the endorser, and $epoch_seconds is the date and time of the endorsement, in seconds since the UNIX epoch (Midnight Jan 1, 1970).

  • The endorser must be logged in order to Endorse.
  • The endorser must have write privileges on the page in order to Endorse.

Expired Pages

If a page has

 ##aging expires $days

the page is considered to be expired if its endorsement date is more than $days days in the past.

  • Go to the ExpiredPages page to see a list of pages that are currently expired, will expire within the next 7 days, and will expire within the next 30 days.

Main Macros

There are two main macros in the Aging plugin: [[AgingTable]] and [[ExpiredPages()]].

[[AgingTable]]

  • Creates a table on the the page showing the information source, the last endosement date, the WikiName of the endorser and the expiration date. For CSS styling, the table is in a <div> of class="aging".

    • If the page has no "##aging source" line, the Source row will be None.

    • If the page has no "##aging expires" line, the Expires row will be Never.

    • If the page has expired, the Expires row will be Expired, and a "Endorse" button will be displayed in place of the endorser and endorsement date rows.


    Examples:

Page is expired

Page has been endorsed

[[ExpiredPages(days)]]

  • Display a list of all pages in the wiki which will expire within the next days days. If days is not supplied, list all pages that are currently expired.

    Example: See ExpiredPages

Utility Macros

There are also several utility macros:

[[LastModified]]

  • Print the date and time that the page was last modified.

    Example: This page was last modified 2006-08-10 21:18:36.

[[LastModifiedDate]]

  • Print the date on which the page was last modified.

    Example: This page was last modified 2006-08-10.

[[Expires]]

  • Print the date and time at which the page will expire.
    • If the page has no "#pragma expires" line, the Expires row will be Never.

    • If the page has expired, the Expires row will be Expired.


    Example: This page will expire Never.

[[ExpiresDate]]

  • Like [[Expires]], but only print the date.

    Example: This page will expire Never.

  • [get | view] (8.0 KB) attachment:endorsed.png
  • [get | view] (6.0 KB) attachment:expired.png

CategoryPlugin