Wikibot Programming Competition

Overview & Objectives

Wikibot is a programming competition inspired by the classic “Wikipedia race” game, where competitors develop automated solutions to navigate from one random Wikipedia page to another using only internal HTML links.

Key Objectives

  • Develop an automated solution finding paths between random Wikipedia pages
  • Optimise for efficiency, elegance, and code quality
  • Compete across technical and creative categories
  • Have fun with friendly competition

Rules

✅ Allowed

  • Any programming language, or combination of languages
  • Open-source libraries/snippets (with attribution)
  • Compiled binaries (with source code provided)
  • Algorithmic approaches including:
    • Breadth/depth-first search
    • Heuristic methods
    • Cached/pre-computed data

🔒 Strict Requirements

  • GitHub repository submission (private/public)
  • Original core solution (AI-assisted but not fully AI-generated)
  • Complete build/execution documentation
  • Agreed development timeframe

⚠️ Disqualification & Disputes

  • Cheating results in immediate disqualification
  • Disputes resolved by a pre-agreed impartial arbitrator

Competition Format

Each round provides competitors with start and end Wikipedia pages as JSON input. The Wikibot must output the complete path taken from start to end, traversing only via internal HTML links found on each page.

Input Format:

["{start_url}", "{end_url}"]

Expected Output Format:

["{start_url}", "{intermediate_url_1}", "{intermediate_url_2}", "...", "{end_url}"]

Execution & Timing

  • Timing begins when the bot starts and ends when the final solution is returned
  • Multiple rounds ensure robustness and fairness
  • Two timing modes available:
    • Real-world mode: Includes network latency from HTTP requests
    • Cached mode: Uses local/cached data to isolate algorithmic performance

Scoring Categories

Runtime Performance

MetricDescriptionPoints (1st/2nd/3rd)
StepsFewest links traversed from start to end15 / 10 / 5
SpeedFastest computation time15 / 10 / 5
MemoryLowest peak memory usage5 / 3 / 1

Code Quality

MetricDescriptionPoints (1st/2nd/3rd)
SizeFewest non-whitespace characters5 / 3 / 1
EleganceMost readable/maintainable code (judged)5 / 3 / 1
TestingMost thorough test coverage (judged)5 / 3 / 1

Innovation

MetricDescriptionPoints (1st/2nd/3rd)
CreativityMost novel/creative approach (judged)5 / 3 / 1

Scoring adjusts proportionally for more than three competitors

Submission Requirements

  • Complete GitHub repo containing:
    • Source code/binaries
    • Build instructions
    • Dependency documentation
    • Minification proof (if applicable)
  • README must explain:
    • Algorithmic approach
    • Execution instructions
    • Testing methodology

Fair Use & Conduct

  • Wikipedia compliance: All solutions must respect Wikipedia’s terms of service and avoid abusive scraping
  • Sportsmanship: Competitors expected to maintain collaborative spirit throughout the competition

About Wikibot

Conceived by @alexfayers after extensive play via The Wiki Game Daily. Rules developed collaboratively with @unkokaeru and LLM assistance.


May the best Wikibot win! 🏆