Abstract Wikipedia

Abstract Wikipedia is an in-development project of the Wikimedia Foundation. It aims to use Wikifunctions to create a language-independent version of Wikipedia using its structured data. First conceived in 2020 (with a precursor proposal in 2013), Abstract Wikipedia has been under active development ever since, with the related project of Wikifunctions launched in 2023. Nevertheless, the project has proved controversial. As envisioned, Abstract Wikipedia would consist of "Constructors" (templates for abstract statements), "Content" (the abstract statements themselves), and "Renderers" (which would automatically translate abstract statements into natural language).

Conception (2013–2020)
On 7 August 2013, Denny Vrandečić, the co-founder of Wikidata, suggested "an extension of the template system" where template calls would expand into content based on the language of the user. For example, a template call such as  could be variously expanded by Template:F12/en into "Berlin is the capital of Germany.", and by Template:F12/de into "Berlin ist die Hauptstadt Deutschlands." This has been viewed as a predecessor of Abstract Wikipedia proper.

Vrandečić proposed it again in a Google working paper in April 2020, formally proposed in May 2020 (as Wikilambda). It was approved by the Wikimedia Foundation Board of Trustees in July 2020 as Abstract Wikipedia.

Development (2020–present)
In April 2021, Vrandečić published an overview of the system in the computer science journal Communications of the ACM. In January 2023, The Signpost reported on the slow progress of the Abstract Wikipedia project. According to an evaluation by four Google Fellows working on the project, it was at a "substantial risk of failure" due to its poor technical plan. The Google Fellows recommended that Abstract Wikipedia be decoupled from Wikifunctions, that Wikifunctions refine MediaWiki's support for programming in Lua rather than having a completely new language, and that Abstract Wikipedia converge on a unified approach to natural language generation (NLG) that builds on open source software if possible.

The Wikimedia Foundation staff responded to this report by completely rejecting the idea that Abstract Wikipedia and Wikifunctions could be separated, and accusing the Google Fellows of making "fallacies and false comparisons". The Wikimedia Foundation also stated that using existing NLG pipelines like Grammatical Framework could not support certain languages such as the Niger–Congo B languages, and would also "replicate the trends of an imperialist English-focused Western-thinking industry.".

On 26 July 2023, Wikifunctions officially launched to the general public.

Technical components
The Abstract Wikipedia project would consist of three main components:


 * 1) Constructors, which enable abstract statements. The Abstract Wikipedia team prefers that these are hosted in Wikifunctions.
 * 2) Content, which consists of abstract calls to Constructors, with values for each slot. These are preferably hosted in Wikidata.
 * 3) Renderers (one per language), which convert the abstract Content into text in that particular language. These are, like Constructors, also preferably hosted in Wikifunctions.

Each version of Wikipedia, once Abstract Wikipedia is deployed, could choose between three options:


 * 1) Implicit integration with Abstract Wikipedia. There would be a special page called Special:Abstract that would display content automatically translated from Abstract Wikipedia into the local language. This content would be linkable and searchable. Furthermore, a new magic word   would be added in order to enable linking to Abstract Wikipedia content.
 * 2) Explicit integration with Abstract Wikipedia. In this scenario, to create a new article, the editor would add a sitelink on Wikidata to a not-yet-existing page. This would create a "virtual article" in mainspace that would be pre-populated with content from Abstract Wikipedia automatically translated into the local language. This "virtual article" would have a URL similar to that of a real article, and would also be linkable and searchable just like a real article.
 * 3) No integration with Abstract Wikipedia.

Example
As a preliminary example, content from Abstract Wikipedia could look like: Article(  content: [     Instantiation( instance: , class: Object_with_modifier_and_of(        object: center,         modifier: And_modifier( conjuncts: [cultural, commercial, financial] ),        of:         ) ),    Ranking( subject: , rank: 4, object: , by: , local_constraint: , after: [,, San Jose] )  ] ) This would translate into English as "San Francisco is the cultural, commercial, and financial center of Northern California. It is the fourth-most populous city in California, after Los Angeles, San Diego and San Jose."