This user account is a bot operated by Tony Sidaway (talk). It is used to make repetitive automated or semi-automated edits that would be extremely tedious to do manually, in accordance with the bot policy. This bot does not yet have the approval of the community, or approval has been withdrawn or expired, and therefore shouldn't be making edits that appear to be unassisted except in the operator's or its own user and user talk space. Administrators: if this bot is making edits that appear to be unassisted to pages not in the operator's or its own userspace, please block it. |
Please leave messages that need to be read on Tony Sidaway's talk page
This bot is approved and doesn't need a flag. Except for tests, it's inactive.
The software it runs is called Iron Chicken, or FeCk. It's open source (BSD license) and written in compiled Chicken Scheme.
Purpose
editThis is to be a general purpose query engine for English Wikipedia, using a simple functional programming interface to permit queries of varying complexity to be performed, and the results delivered to a nominated page in the user's userspace and, optionally, sent to the user's enabled email address.
Query language
editThe query language is based on scheme, a dialect of the lisp family. If you can write a simple lisp expression you can query this bot.
Typical query functions will look like:
- (whatlinkshere PAGE)
- Produces a list of pages that link to the page.
- (editorsof PAGE [datetime-since [datetime-to]]))
- Produces a list of unique usernames and IP numbers identifying all editors of the page
- (editsof PAGE [datetime-since [datetime-to]])
- Produces a list of edits to the page
- (editsby USERNAME/IP [datetime-since [datetime-to]])
- Produces a list of edits by the user
- (apply EXPR [PAR...] LIST)
- Applies the single expression, with optional parameters, to the list
- (map EXPR [PAR...] [LIST...])
- Maps the single expression, with optional parameters, to the each member of the list.
- (list [EXPR...])
- Composes a list of the expressions
- (email EXPR)
- Sends the result of evaluating the expression in email. The result will also appear on the wiki.
Using the bot
editTo register to use the bot, you must edit the bulleted list of usernames at User:TonyBot/Users with the edit summary "add". To remove yourself from the list of registered users, use the edit summary "remove".
The content you add to the list doesn't matter, although it probaby makes sense to add something like * ~~~~ to the end of the page. From time to time the bot will update the page, producing a checkpoint containing all current permitted users. If you add yourself but cannot get bot jobs to run, please ask the bot operator, User:Tony Sidaway.
To make a query, edit any page in your userspace or user talkspace to add the query. TonyBot will execute the query and edit the page to provide a list of links to the pages edited.
You don't need to know anything about programming to run a TonyBot query. If you do know how to program, however, particularly if you are willing to write programs in Scheme, one of the three main dialects of Lisp, you can get a lot more out of this bot, and also help to build a library of canned scripts that other Wikipedians can use.
Limitations
edit- Queries that take too long to execute may be stopped before completion
- Queries that are judged too complex will be rejected
- Queries that return very large volumes of data may be rejected or cut short.
The value of "too long", "too complex" and "very large" may vary over time in an unpredictable way.
Conditions of use
editThis bot is an experimental service and is provided as-is. Queries are run at the discretion of the bot operator and subject to the operational requirements of Wikipedia's services. It may be subject to unplanned outages, and may disappear without warning, at the discretion of the operator and subject to the wishes of the community.
All queries must be made by registered Wikipedia users, in public, on the wiki. The bot owner reserves the right, for good reason and with the interests of Wikipedia in mind, to refuse access to any user. The reason for refusal will be stated publicly on the user's talk page and may be subject to revision if you can somehow successfully cajole, persuade or provide reasonable reassurances.