Jump to content

Como

From Meta, a Wikimedia project coordination wiki
Como
A GWAP Platform

Como is a Toolforge platform designed to facilitate the creation of gamified tasks for knowledge contribution. This page provides documentation for using and contributing to Como.

How to Use Como?[edit]

Play in your web browser here: [1]

Or download the Android App: [2]

How to Create New Games?[edit]

Here are some examples. The game creation form includes the following elements:

Name[edit]

  • The name's slug must be unique.

Short Description[edit]

  • Displayed in multiple locations.

Long Description[edit]

  • Displayed only on the details page.
  • Contains clickable http/s links.
  • Should include information about:
    • The origin of the data.
    • Actions executed on the data.

Question[edit]

  • Displayed on each prompt.
  • Can include placeholders.
  • Can be formatted with "?" or "!".
  • Can reference either custom prompt labels or the default labels ("A", "B", "C").

List Publicly[edit]

  • If "no" is selected, games will not appear in the game list or on the main page.
  • Games can still be shared using their URL.

Prompt Type[edit]

  • Determines how prompts are composed, affecting which columns are read from the input data.
  • Text prompts require columns named "text1", "text2", etc., with an optional link parameter ("link1", "link2") that turns the text blue.
  • Image prompts need an "image" + number column with a direct URL to an image.
  • Available prompt formats include:
    • Two Texts
    • Three Texts
    • Four Texts
    • One Text, One Image

Prompt Labels[edit]

  • A JSON-formatted string array, for example:
["Item", "DE description"]
  • Displayed next to items in the game interface to facilitate understanding of the question.
  • If unspecified, default prompt labels "A", "B", "C", etc., are used.

Response Type[edit]

  • Yes/No/Skip
    • Three buttons; action executed with each green button press.
  • Editable Text
    • Adds an editable text box.
    • Includes a "response_text" placeholder in the Request Body of Actions containing the user-approved text version.
    • Executes an action every time text is submitted.
  • Single Choice
    • Adds a list of selectable choices (up to 4)
    • The number of the selected option is saved in the resulting table
    • The data table needs columns with the names "option1" up to "option4"
    • The options can also be a clickable link by supplying a "option1link"

Confidence Type[edit]

  • Single Confirmation
    • Available to both anonymous and Wikimedia Account users.
    • Marked as done after a single evaluation.
  • Single Confirmation (requires account)
    • Requires a Wikimedia Account; marked as done after a single evaluation.
  • Double Confirmation
    • Available to both anonymous and Wikimedia Account users.
    • Settled as the answer after evaluation by two users.
  • Double Confirmation (requires account)
    • Requires a Wikimedia Account; settled as the answer after evaluation by two users.

Action Type[edit]

  • Actions will be executed by logged-in accounts (Maybe anonymous accounts will edit as a bot in the future)
  • It's possible to include multiple requests per prompt
  • Each possible request consists of three parts
    • HTTP Method: One of POST, PUT, PATCH
    • Request URL: An URL to run the action on (supports placeholders for Wikibase REST API)
    • Request Body: A JSON Formatted Object (supports placeholders)
  • There a three possible choices:

Data[edit]

  • Contains the actual data used in the game.
  • Should be formatted as CSV text or a CSV file (comma-separated) in UTF-8.

Submitting[edit]

  • You can check most of the advanced game settings by clicking on "Show Advanced Information" in the menu on the top right of a game
  • Games need to be activated by an Admin to be playable at the moment

Integration with OpenRefine[edit]

Logo of OpenRefine

To export a game with reconciliation information from OpenRefine, use the following code snippet in the "Edit Cells" dialog:

import json

resultSet = []
for cand in cell.recon.candidates:
    resultDet = {"suggest_id": cand.id, "suggest_name": cand.name, "suggest_score": cand.score}
    resultSet.append(resultDet)
return json.dumps(resultSet)

Here is some more information on how to extract different variables from OpenRefine.

Placeholders[edit]

Used in various parts of Como, namely the Question and Actions, referencing a column in the uploaded data with the notation "%variable1%".

Custom ID[edit]

  • A special field in the uploaded data used to reference it later.
  • Named "custom_id".
  • Also usable as a placeholder.
  • Included in the exported table.

Export Data[edit]

  • Games can be exported from the details screen.
  • The export includes a zipped CSV table containing only the fields used by Como and special fields like "custom_id".

Planned Features[edit]

  • Enhanced gamification features such as score visibility.
  • Improved support for images.
  • Introduction of fun default games like image description checking and translation tasks.

Get Involved[edit]

Suggest features and report bugs here.

See Also[edit]