Abstract Wikipedia
Abstract Wikipedia seeks to help more people share more knowledge in more languages. It is designed to be a scalable way to close the knowledge gap between large and small language Wikipedias without giving up trust, transparency, or community control. Using Abstract Wikipedia, communities can add and maintain encyclopedic content in many languages without having to create it separately in every language.
The system works by enabling contributors to create an open source library of natural language functions on Wikifunctions, using the multilingual lexical data in Wikidata. Contributors can then use these functions to build language-agnostic encyclopedic content on Abstract Wikipedia. This content can be built once for generation into many languages
This project is built and maintained by a team at the Wikimedia Foundation together with the volunteer community. More documentation about the project can be found in the Abstract Wikipedia pages on meta.
Mission
[edit]Make it possible to create and maintain encyclopedic content across many languages in a scalable and sustainable way, while keeping humans in the center of knowledge creation.
Current Project Team
[edit]We are a cross-functional group working together with the volunteer community to build a system that enables language-independent knowledge creation. This group is part of the Structured Knowledge Platform team.
Meeting Plan
[edit]Regular team meetings help us stay aligned, collaborate effectively, and address challenges together. Meeting notes and agendas are documented in our Meetings plan for transparency and easy reference.
We run a 45-minute retrospective every two weeks to reflect on what went well, what needs improving, and give each other shoutouts and props. The goal is to maintain engagement and understanding, and to continuously improve our culture and product development processes.
Chores
[edit]To maintain system stability and ensure a well-functioning development environment, our team shares responsibility for engineering chores—recurring tasks that keep our infrastructure, codebase, and workflows in good shape. These include monitoring and addressing technical debt, improving test coverage, reviewing and updating documentation, maintaining observability tools, and handling infrastructure upkeep. Engineers rotate through these tasks to ensure an even distribution of workload and to provide everyone with a deeper understanding of our system.
Product Development Process
[edit]Our team plans work on a quarterly basis. Our Product Development Process defines how we plan, make decisions, and manage projects. We strive for a robust development process so our team can be more resilient, and we can ship more predictably. We continuously iterate on these processes as we learn.
Our workflow begins with work estimation, where we assess the complexity and effort required for tasks. You can find details on our approach in the Work Estimation Guide.
To ensure that completed work meets our standards before it is considered finished we maintain a clear Definition of Done.
To measure our progress and impact, we align our work with Objectives and Key Results (OKRs) and track our achievements using our OKR Scoring Framework.
Workflow
[edit]We track our work using Phabricator, following a structured approach for task creation, prioritization, and status updates. To ensure consistency, we adhere to our Phabricator Style Guide.
New to the team
[edit]Engineering Onboarding
[edit]This section will guide you through key technical aspects of our system, helping you get up to speed quickly.
Team Architecture
[edit]Understanding the architecture of Abstract Wikipedia is essential for contributing effectively. We encourage new engineers to review our Architecture Overview to familiarize themselves with our core components, services, and dependencies.
Observability
[edit]Maintaining a high level of observability is crucial for monitoring system health, debugging issues, and ensuring smooth operations. Our team relies on a combination of logging, metrics, and tracing tools to gain insights into system performance and behavior. New team members should explore our Observability Guide to understand how to access and interpret these insights.
Runbooks
[edit]We maintain a collection of runbooks — structured guides that outline common operational tasks, troubleshooting steps, and incident response procedures. New team members should familiarize themselves with our Runbook Repository and contribute updates when needed to keep them relevant and up to date.
Testing Status
[edit]Testing is an integral part of our development process to maintain code quality and system stability. New engineers are encouraged to review this and follow our Testing Guidelines when writing and reviewing code.
Git Workflow
[edit]We have a code-review workflow called "More eyes on code review" to ensure that at least two team members get to review one patch before it's merged. The goal of this system is to help with knowledge sharing, help navigate delicate areas of the code, and resolve some conflicts between author and first reviewer by adding a third party. Detailed guidelines can be found in our Git Workflow Guide.
How we code
[edit]We have a guide for anyone who produces, reads, vibes, and/or reviews code aimed at promoting readability, maintainability, and testability.
Versioning
[edit]Wikifunctions follows a versioning approach that differs the versioning that Wikimedia uses.
Team Culture
[edit]Our group is distributed around the world, so we interact through online meetings, asynchronous communication channels, working alone or in pairs, reviewing each other’s work, and communicating externally with other teams, communities, and the media.
We share principles to guide our communication, such as avoiding assumptions, building a culture that encourages good behavior, and leading with empathy.
Our team values honesty, transparency, respect, and fairness in our communication, and will work to provide context, avoid making assumptions, and communicate clearly and empathetically while reviewing each other’s ideas, concerns, suggestions, and other work.
We also seek to recognise and respect our colleagues’ communication preferences and acknowledge their differences, such as culture and language.
Main page: Team Culture
Keep in touch
[edit]- Visit the project newsletter page to see the latest news.
- Subscribe to the Abstract Wikipedia Public Mailing List to stay informed about the latest developments in Abstract Wikipedia and Wikifunctions. Join the discussion, get updates on new features, and connect with the community. Sign up here!