Abstract Wikipedia
Abstract Wikipedia |
---|
(Discussion) |
General |
Development plan |
|
Notes, drafts, discussions |
|
Examples & mockups |
Data tools |
Historical |
Abstract Wikipedia | |
---|---|
Start: | 2020-07 |
Team members: |
|
Updates: | Updates |
Project
This project consists of two parts: Abstract Wikipedia and Wikifunctions.
The goal of Abstract Wikipedia is to let more people share more knowledge in more languages. Abstract Wikipedia is a conceptual extension of Wikidata.[1] In Abstract Wikipedia, people can create and maintain Wikipedia articles in a language-independent way. A particular language Wikipedia can translate this language-independent article into its language. Code does the translation.
Wikifunctions is a new Wikimedia project that allows anyone to create and maintain code. This is useful in many different ways. It provides a catalog of all kinds of functions that anyone can call, write, maintain, and use. It also provides code that translates the language-independent article from Abstract Wikipedia into the language of a Wikipedia. This allows everyone to read the article in their language. Wikifunctions will use knowledge about words and entities from Wikidata.
This will get us closer to a world where everyone can share in the sum of all knowledge.
What is a function?
A "function" is a sequence of computer program instructions that makes a calculation based on data you provide. Functions are a form of knowledge that can answer questions, such as how many days have passed between two dates or the distance between two cities. More complicated functions can answer more complicated questions, such as the volume of a three dimensional shape, the distance between Mars and Venus on a certain date, or whether two species were alive at the same time. We already use functions in many types of knowledge inquiries, such as asking a question to a search engine. The templates known as {{convert}}
and {{age}}
in English are also examples of functionalities that are already used in many Wikipedias, written in wikitext and Lua and manually copied to each wiki where it's wanted.
More examples of functions are at Early function examples, and very rough sketches of how the interface might look are at Early mockups.
In short, functions make a calculation on the data you provide, and answer a question you have about it.
This new Wikimedia project will build a library of functions, written by volunteers, to help answer questions like these across languages. By building out our library of functions, we can enable more people to access and explore free knowledge in new ways.
What is Abstract Wikipedia?
The term “Abstract Wikipedia” itself refers to the long-term goal – that this library of functions will someday enable the creation of language-independent articles. Once more pieces of this project are in place, this will mean that any wiki – especially small to medium wikis – will be able to dramatically increase the number of articles available in their language. It also means that editors can share knowledge from their culture and contexts with a larger and more global audience.
The new wiki of functions, Wikifunctions, will develop the coding infrastructure to make this vision possible. The Abstract Wikipedia part of the project has started with our shared work on natural language generation functions, such as morphological functions.
In other words: we will be able to combine the functions from the new wiki, with the data and linguistic-information in Wikidata, in order to generate natural language sentences in any supported languages. These sentences can then be used by any Wikipedia (or elsewhere).
Timeline
- 2013–2020: Project discussion, research, and proposal
- May 2020: Project approved
- July 2020: Project announced; Development begins on Extension:WikiLambda; Mailing list and other channels created and in-depth discussions increase
- September 2020 – December 2020: Wiki of functions naming contest.
- December 2020: Start discussions for the Wikifunctions logo contest and submissions of proposals.
- August 2022: Launch Wikifunctions Beta
- July 2023: Launch Wikifunctions in production
- 2023/2024: Add more types to Wikifunctions
- 2024: Using Wikidata in Wikifunctions
Participate
- Edit
- Contribute to Wikifunctions
- Work on lexicographic knowledge in Wikidata. This will be needed for Abstract Wikipedia to succeed and can be worked on right now.
- Translate the documentation pages here on Meta-wiki.
- Translate the software interface on translatewiki.net (completion statistics)
- Discuss
- Read the weekly updates (subscribe)
- Talk:Abstract Wikipedia
- Dedicated mailing list
- Main chat: Telegram or IRC #wikipedia-abstractconnect (bridged together) (current logs, old logs)
- Developer chat: Telegram or IRC #wikipedia-abstract-techconnect (bridged together) (logs)
- Regular meetings:
- Volunteer's corner: This is a monthly meeting on the first Monday, from 18:30–19:00 UTC. It is currently hosted on the Google Meet platform (link). It is an informal space for code review, talking about what volunteers have achieved or how to approach a task, which task is best to pick up next, and similar. Volunteers can come in with questions, show progress, discuss things, tell us about their plans, or ask for ideas. If you need someone specific from the development team to join in, please let us know in advance.
- Natural language generation (NLG) on Wikifunctions: This is a monthly meeting on the third Tuesday, from 16:30–17:30 UTC. More information.
- Previous office hours: 2021-12-20, 2021-08-14 (Wikimania), 2021-06-22
- Develop
- If you want to help with development:
- You can see information about the Extension at Extension:WikiLambda and some developer tips at Abstract developer cheatsheet
- Phabricator:tag/abstract wikipedia – Add feature requests and bug reports here. (See Phabricator for details on how to use it)
- You can see a list of smaller development tasks – These are good first tasks for newer developers.
- You can see these other good listings for open tasks: #fix-it tasks – unassigned tasks – nice-to-have tasks
- You can email Quiddity or write on the talk page if you'd like to work with us more closely.
- If you want to help with development:
- Try it out
- Wikifunctions is now available live at wikifunctions.org
- on the Beta Cluster Instance
- Volunteer as a design-interview tester.
- You can see some early mockups for a rough idea of how the user interface might work.
- An early prototype implementation is available on Github. This may no longer be working with the latest MediaWiki releases.
- The easiest way to dive into the prototype is by reading the walkthrough.
- Alternative implementation in GraalVM.
- Foundation requests for work internally
- You can refer to this guide that describes step by step how to request work internally.
Background
An article in the Signpost provides a more detailed introduction to the idea. The material below – research papers, videos of talks, prototype software – offers a lot of detail. A detailed draft plan for the development of Abstract Wikipedia is also available.
See the Historic proposal page for the long list of related discussions, papers, videos, and comparable proposals.
Originally, the project was code-named Wikilambda, derived from Lambda calculus. The name is still referenced in the name of Extension:WikiLambda and in the Wikifunctions logo which contains a lambda character.
Highlights include:
- Short introductory video to Wikidata and the Abstract Wikipedia idea (New York, 2019) (18 min)
- Capturing meaning: Toward an abstract Wikipedia (short intro)
- Collaborating on the sum of all knowledge across languages (social aspects)
Further reading
- Wikifunctions as a project on its own
- Vision of Abstract Wikipedia
- Examples of abstract content
- Glossary
Project plan
- Summary: overview of the project plan
- Name: discussion on the name of the project
- Goals: what are we trying to achieve? Primary and secondary goals
- Organization: how the development team would be set up
- Requirements: overall conditions that the project needs to fulfill
- Architecture: an overview of how the project components would work together
- Components: individual software components the project needs to deliver
- Tasks: individual tasks that need to be done by the projects
References
- ↑ The new components (listed in the development plan for Abstract Wikipedia) include extensions to Wikidata, whose integration (in the second year of the project) requires the agreement of the Wikidata community before storing the “abstract content” there or on another wiki (such as the new Wikifunctions wiki developed in the first part of the project, or another multilingual wiki).