Extension:Contest

Fra Wikimedia Norge

Extension:Contest is an extension to support a wide range of contests. Its main goal is to support such contests on the Northern Sami Wikipedia, a rather small 'pedia for a language spoken by a medium sized community. It should be be noted that the focus should be on friendly competition and not hostile competition, and if possible the competitions should be focused on coopetition – that is competition as a cooperative effort.

Use cases

It is possible to describe a few simple use cases for how a contest can be set up.

Use case 1

This is a situation where a municipality wants to increase the interest in writing articles about anything of interest that relates to the municipality itself as long is it is above som minimum limit. The bounty hunt is for all articles categorized as within the municipality's category or any subcategory thereof. There is a total sum of NOK 6000 to cover the bounties; with a first prize of NOK 3000, a second prize of NOK 2000 and a third prize of NOK 1000.

First the referee ticks off email addresses as identification, it is necessary for payment of bounties through Paypal. Then the inclusion of articles are set to category and enroll is set to before assessment of the contest. The contest is then opened with this options, verified and started.

Users can now write articles as they use to, and they can join in at any time when they get aware of the contest. The latest time to enroll in the contest is at the last assessment (calculation of rank) before the prizes are delivered to the winning competitors.

The referee will do a finish on the contest and this stops the time span for the calculations of contributions, yet users can be included until assessment (rank calculation) are done. The inclusion is necessary to allow identification, it is not necessary for the calculations.

The referee will then start the assessment of the contributions. This calculation can take a lot of time and is a background processing task. Before this task is finished the referee can't assign prizes. This calculation will not include ranking for users not joining the contest.

When the referee is allowed to proceed he will then be able to assign prizes, if necessary he can overrule the calculated rank and assign new individual placements. This will be logged for the individual users winning such prizes, but the identification of the users won't be logged. It is although implicitly logged that the referee had access to the information.

The referee will be given the option to download a file with the identification of the winners and this file can be used for setting up a batch payment through PayPal. The referee then logs in to the account at PayPal and transfers sufficient funds to the account to do the payments, then uploads the register file to PayPal.

The winners will then get a email from PayPal about the pending money transfer. If they choose to accept the money transfer they are free to do so, if not the money goes back to the source account after a set time frame to be used for other contests or used according to the agreement with the municipality.

Use case 2

This is a situation where a institution wants to increase the interest in articles about a very limited field, typically the actual articles are listed, and want the writing of the articles to be a media event. The single winner is given a free travel to a site of special interest. Each article is given rank according to entrophy, but the final judgment is up to a jury.

First the referee ticks off email addresses as identification, it is necessary to get in touch with the winner. Then the inclusion of articles are set to marked articles and enroll is set to before start of the contest. The contest is then opened with this options, and the community is informed that anyone interested can join in.

Users join in as soon as they are aware of the contest, but not later than the start of the event. The referee then starts the contest. Writers can now write the articles as they use to. The referee will do a finish on the contest and this stops the time span for the calculations of contributions.

The referee will then start the assessment of the contributions. This calculation can take a lot of time and is a background processing task. Before this task is finished the referee can't assign prizes. This calculation will not include ranking for users not joining the contest.

When the referee is allowed to proceed he will then be able to assign the prize. Because the jury assigns the prize he will overrule the calculated rank. This will be logged but the identification (email) of the winner won't be logged. It is although implicitly logged that the referee had access to the information.

The winner will then get a email from the referee himself about the traveling prize. Further contact will then be directly between the referee and the winner.

Use case 3

Beskriv en løsning for en ren bountyhunt på bakgrunn av omfattende masseproduserte småartikler

Special pages

The following pages are various distinct pages for the user, but not necessarily different pages internally. Probably they could all be implemented as one single special page.

Bounty contest
The page for defining a contest. Actions are open, start, finish and close. When opened there can be set a number of flags that are later used as a contract for the contestants. When the contest is finished it can be analyzed.
Bounty hunt
The page for enlisting into a defined contest. Actions are join and part. It will only be possible to join a contest when it is open.
Bounty analysis
The page for analysing the contributions for the given hunt. Actions are analyze and will result in logged entries for the competitors giving the assigned rank. It will only be available after a contest has finished and before it is closed.
Bounty prize
The page for downloading identification of the contestants. It will only be available after the analyze is done and before it is closed.

Log actions

Log actions for the special page is about the same as the actions done at the special page. The only exceptions are rank and prize which creates multiple entries during each run of the action.

Bounty/open
Log entry when a contest is defined. The earliest time when a bounty hunt can be started. Options can delay it but no further than the assessment before closing of the contest.
Bounty/start
After the contest is logged as started it is on-air, before that it can be closed directly but afterwards it must cycle through finish and then closed.
Bounty/finish
The contest is run until flagged as finished, but the individual bounty hunts either run from the user joins in or from the start of the hunt.
Bounty/close
Marker in the log for when the contest is closed, afterwards all further processing of the contest is halted.
Bounty/join
The contestant is added to the given contest. Later processing is done according to the options given when the contest was opened.
Bounty/part
The contestant is removed from the given contest. If the contest is closed it is not necessary to part from the contest as further processing is halted.
Bounty/rank
Marker used to store the calculated rank for the contestants result in the contest. Note that the marker can identify both an user and an article. Processing of the options should be accordingly. The processing can be run several times during a competition.
Bounty/prize
Marker used to identify the bounty hunters that has been identified and given the prize. After they are given the prize, that is logged, no other referee can download their identification credentials. The assigned prize is although available to all users that has access to the log.

Options for "open"

When the referee opens a new contest some options are stored in the log for later use. Note that it should be possible to extend the set through other extensions. Typically through adding handlers in LocalSettings.php or full extensions. This extension will add default handlers.

When to enroll in the competition

This is when the users shold enroll in the competition, specifying the latest possible moment. Users attempting to join after this time will be refused to join in to the spesific competition.

Enroll before the competition is started
Competitors must enroll to the competitions before it is started. This is usual for short and intense competitions, like writing most short stubs within a few hours.
Enroll before the competition is finished
Competitors must enroll to the competitions before it is finished. This is usual for medium length competitions, typical for in-depth articles.
Enroll before the competition is assesed
Competitors must enroll to the competitions before it is assesed. This is usual for longrunning competitions, typical for maintanence type of work.

Which articles to include

This is the articles included in the contest set, contributions to the articles within the set are analyzed and counted while the articles outside the set is not included in the analyzis.

All edited articles
All articles from the marked start of the competition or enrollment in the competition up to finish point is included in the analysis.
All marked articles
Only marked articles are included in the analysis, and then from the marked start of the competition or enrollment in the competition up to finish point. When the contest is closed the marks are removed.
All articles in marked categories
Only articles in the marked categories is included, and then they themselves become marked in case they are moved out of the category. When the contest is closed the marks are removed.

How to assess the contributions

This is how the articles and the content areassesed (counted) to weight the different contributors against each other. Different models will support different types of contests and should be chosen according to the wanted outcome, small articles vs larger aticles, etc.

Use the number of articles
Count all articles where a contributor participated and use the number as the weight in the competition.
Use the article with maximum added entrophy
Calculate the maximum entrophy for the added words from any article where a contributor participated and use the number as the weight in the competition.
Use the total added entrophy
Aggregate a total entrophy for the added words from all articles where a contributor participated and use the number as the weight in the competition.

Necessary identification to close the competition

This is the information necessary to fullfill the closure of this contest. If someone will participate in the contest they will grant the referee the right to collect this information from the database and make use of it.

The user name will be released to the referee
For internal competitions with no prize except fame and glory the user name would be sufficient.
The full name will be released to the referee
For external competitions with prize money and tax demands the full name will be necessary for book-keeping purposes.
The email address will be released to the referee
For external competitions with prize money and no tax demands the email address will usually be sufficient.

Number of winners

This is how many bounty hunters that will be assigned prizes, and a distribution key. It could be that this is better handled as a specific task during assessment istead of being done up front before the competition.

Optional comment

There is an optional comment for the log entry.

Options for "rank"

Processing of rank is run as a background job and will produce a log entry with three additional options. It could be that this should be divided into two log entries, one for subject pages and one for users.

Type
Is this an entry for a subject page or an user.
Name
The page name assigned the rank, may be an ordinary page or a user page. In the later case it can directly translate to a user ranking, while in the first case it must be split among the contributors. (Perhaps it is better to make a log entry for the user in question even if its not this user who initiates the processing. This makes it possible to ask for all rank entries for a given user within a given contest.)
Rank
Actual calculated rank for the given name.

Options for "prize"

The log entries for the prize is made when a referee asks for identification of the winning competitors. Typically this could be the email addresses to pay some prize money through the PayPal system. Note that the released identification itself is not logged.

User name
The actual user identified.
Rank
The assigned total rank. It may differ from the rank log if that is for a subject page or if several rank entries are accumulated into a total.
Placement
The actual placement set by the referee. It may differ from the calculated rank.

Parser functions

To ease access to certain information about the contest there are some parser functions. These will use the information available at the moment when they are evaluated. This may be a problem if the page where they are included changes to slowly.

{{CONTEST:identifier}}
Parser function that reports the state of the given contest, that is open, start, finish or closed. If an additional parameter is given and this identifies an user the state for this user is given, that is join or part. If the additional parameter is given and this identifies a subject page in the main space the state for this page is given, that is marked or unmarked.
{{RANK:identifier}}
Parser function that reports the rank of the given contest, possibly a truncated list. This comes from the log entries made during the rank assessment. If an additional parameter is given and this identifies an user the rank of the user within the given contest is returned. If the additional parameter is given and this identifies a subject page in the main space the rank of the page within the given contest is returned.
{{PRIZE:identifier}}
Parser function that reports the prizes of the given contest, possibly a truncated list. This comes from the log entries made during the prize assessment. If an additional parameter is given and this identifies an user the prize assigned to this user within the given contest is returned. If the additional parameter is given and this identifies a subject page in the main space the prize assigned to the contributors of this page within the given contest is returned.

See also

Some central concepts to understand how competitions work and how they are implemented.

Contest
The actual event of a competition taking place.
Competition
One or more contests between two or more individuals or groups (combatants).
Coopetition
A cooperation between two or more individuals or groups to get a gain over other competitors in a contest.
Sweepstakes
Prizes given away on chance and not on skill or work.
Bounties
Prizes connected to skill or work and delivered upon completion of tasks.
Bounty hunter
A competitor attempting to win a bounty.
Competitor
Someone engaged in a competition in a friendly environment.
Combatant
Someone engaged in a competition in a hostile environment.

External links