From Wikipedia, the free encyclopedia
Jump to: navigation, search
Administrators: if this bot is malfunctioning, try changing its settings.

It can also be shut off there in a server friendly way.

NOTE: if one typical infobox is giving typical problems, try shutting down the edit privileges for that box first.




(I hope)

Tasks 1 - Tasks 2


As the editor who is responsible for this bot,
I reserve the right to turn off the editing privileges for the bot (either completely, or per infobox)
and change any other settings!


This bot is used to monitor changes to infoboxes in mainspace. These changes can be compared to verified/off-mainspace copies of the boxes. Such changes can be logged to a log connected to the wikiproject who is the (main) maintainer of the infobox. For infoboxes where the functionality has been enabled, it also adds parameters to the infoboxes which help to track changes to the verified information.

What was it programmed for?[edit]

Some of the typical information that is available from Wikipedia is verifiably correct ('true'). That type of info is not likely to change without a major change throughout the world, or throughout Wikipedia. Examples of such 'immutable' type of information are:

  • The boiling point of water is 100 °C (under the normal conditions)
  • The birth date of John F. Kennedy is May 29, 1917.

Information of this type is generally put into infoboxes. They contain parameters and fields which result in the data being formatted and displayed, e.g.:

  • The infobox on the page water would contain:
boilingpoint = 100

which would be displayed as:

Boiling point: 100 °C
  • The infobox on John F. Kennedy would contain:
Birthdate = {{Birthday|29|5|1917}}

which would be displayed as:

Date of birth: May 29, 1917

Changes to these values on these two pages are easily seen, and many people know which one is 'correct'. However, for less famous people and for less known chemical compounds (or whatever infobox we are talking about), such values are not known. It is then difficult to detect (and one would have to find the literature and check) if the change is resulting in a correct value, or in an incorrect value.

Wikipedia contains a plethora of such information. On practically every single page there is an infobox, and practically all possible infoboxes contain information which is verifiably correct.

What is the bot doing[edit]

For the more basic operation, it simply tries to see if an edit is changing a field in one of the infoboxes it follows. It does this by loading the current and previous revid of the page, extract the infoboxes from these pages. From the infoboxes it creates a list of the fields in those two boxes, and compares the content. Changed content is reported. This can be reported to an IRC channel, or be logged.

A couple of WikiProjects have taken up the gigantic task, of, page by page, checking certain of the values. When they have verified that those values are correct, they record the revid of the page containing the correct values, and index these revids. When such an index exists, the bot also compares the value in the current version of the page with the values in the 'verified revid', and when values are changed, those can also be reported to an IRC channel, or be logged.

When the bot detects fields which have changed from since the 'verified revid', it can add or update parameters in the affected infobox. These parameters can be used to add YesY or N to the displaying of the box, or to just categorise these boxes so they can be reviewed.

It is not restoring values to the verified version, it only adds parameters which can be used to notify changes since a verified version.


All settings explained below are defined in User:CheMoBot/Settings. This page is fully protected, so values can only be changed by an administrator.


CheMoBot needs to be told, which boxes to follow. From the list of boxes that it follows it creates (from Special:Whatlinkshere) a list of pages which it needs to monitor. CheMoBot will parse the changes when a page on this list gets edited.

Telling CheMoBot to follow an infobox can be done by adapting the value of the parameter <boxes>:


Make sure that you use the real name of the infobox, do not use template redirects, as it will give erratic results. However, the redirects need to be defined as another parameter, vide infra.

Per followed infobox, a set of parameters can be defined, which are all explained below. These parameters are named after the infobox, by appending the name of the infobox with an underscore and the parameter, e.g. for the infobox 'Chembox' there is a sub-parameter 'channel', so the full name is 'chembox_channel':


If the name of the infobox template contains space, then they have to be replaced with underscores, and all characters have to be converted to lowercase. Below I will use 'infobox' denoting that it is a 'per infobox' parameter.


Fields in infoboxes can be divided into two categories: those which can be verified and be 'correct' (like the boiling point of water; that should have the value '100', and that is not likely to change or the birthday of John F. Kennedy), and those which are more subject to the editorial taste (compounds related to water; such a field is not likely to have a 'correct' value, or the awards of John F. Kennedy, where e.g. the order of the fields can change).

Watched fields[edit]

The fields which can be verified are the fields that CheMoBot can watch for changes, and are denoted 'watched fields', the remaining fields are 'other fields'.

To tell CheMoBot which fields to follow, use 'infobox_watchedfields, e.g.


tells the bot that for the Infobox Royalty the fields to watch are 'birth_place', 'death_place', and 'website'

A special set of watched fields are the verified fields, which are explained below.

Verified fields[edit]

A subset (or all) of the watched fields can be denoted as 'verified fields'. The bot treats verified fields slightly different than watched fields. For both watched and verified fields the bot follows the changes, but for the verified fields the value in the revid is checked and correct, whereas that does not have to be the case for the watched fields.


For the {{chembox}} both the field 'CASNo' and the field 'BoilingPt' are immutable data. However, the project related to these boxes has decided to only verify the CASNo first, and when the CASNo is correct, to record the revid in the index. The BoilingPt may very well also be correct, but that has not yet been verified. The settings for the chembox are hence:


When someone edits a verified page changing both the BoilingPt and the CASNo, then CheMoBot will alert that the BoilingPt has changed (but it does not know that it changed from or to correct), for the CASNo it will report that it changed from a correct or incorrect value.






Command Function Example
wl add <username> <page>
wl add <username> *
Adds <username> to the whitelist for <page>
Use * for all pages
CheMoBot wl add Beetstra Water
CheMoBot wl add Beetstra *
wl del <username> <page> Removes link between <username> and <page> from whitelist CheMoBot wl del Beetstra Water
wl search <username> <page>
wl search user <username>
wl search string <page>
Searches if the link is on the whitelist
searches if username is on the whitelist, reports to which pages they is linked
searches if pagename is on the whitelist, reports to which username it is linked
CheMoBot wl search Beetstra Water
CheMoBot wl search user Beetstra
CheMoBot wl search page Water
bl add <username> <page> Adds <username> to the blacklist for <page>. If <user> edits this page, the bot will report. CheMoBot bl add Beetstra Water
bl del <username> <page> Removes link between <username> and <page> from blacklist CheMoBot bl del Beetstra Water
bl search <username> <page>
bl search user <username>
bl search string <page>
Searches if the link is on the blacklist
searches if username is on the blacklist, reports to which pages they is linked
searches if pagename is on the blacklist, reports to which username it is linked
CheMoBot bl search Beetstra Water
CheMoBot bl search user Beetstra
CheMoBot bl search page Water
ml add <page> Starts monitoring <page>, if any not-whitelisted user edits this page, the bot will report. CheMoBot ml add Water
ml del <page> removes <page> from monitorlist CheMoBot ml del Water
ml search <page> searches if <page> is on monitorlist CheMoBot ml del Water
fieldlist <boxname> lists all fields monitored for a certain box CheMoBot fieldlist Drugbox
managers <boxname> lists all managers for a certain box CheMoBot managers Drugbox
boxlist lists all boxes monitored CheMoBot boxlist
quiet/silent silences the bot CheMoBot quiet
report return reporting back on after a 'quiet' or 'silent' CheMoBot report
reportlevel <level> sets reportlevel (0 = silence, 1 = high priority changes, 2 = all changes) CheMoBot reportlevel 1
status status messages (uptime, reportlevel) CheMoBot status
die/quit quits the bot (only by User:Beetstra and User:Versageek) CheMoBot quit
help shows available helpmessages CheMoBot help
help <command> shows help for command CheMoBot help wl