These days, I have been spending a lot of time on Abstract Wikipedia and Wikifunctions— without, of course, forgetting Wikidata and Wikimedia Commons, two projects that have long been at the center of my interests.
And one question keeps coming back to me:
What does an Abstract Wikipedia article actually look like?
Does it look exactly like a Wikipedia article, with paragraphs, infoboxes, templates, images, references, and links? That is certainly the picture I have in my head, and I imagine it is something many contributors have been thinking about as well.
For my part, my initial goal has been somewhat more specific: to experiment with articles powered by Wikidata, where the factual content comes directly from structured data.
I have been happy to share several experiments around programming languages, software, and related topics. I am particularly pleased with the articles currently generated for C and C++.
C++: https://abstract.wikipedia.org/view/en/Q2407
But the more I work on these articles, the more I see how much room there is for improvement.
Consider a sequence such as:
C is a programming language. The programming paradigms of C are … It was designed by … It was developed by …
Every sentence may be factually correct. Every fact may come from Wikidata.
And yet, something is missing.
At first, the problem looks straightforward.
Wikidata gives us facts that can often be thought of as statements involving a subject, a property, and one or more values.
For example:
C → programming paradigm → procedural programming, imperative programming, structured programming…
The temptation is to take each statement independently and transform it into a sentence.
That works.
But after a few sentences, the result can start to resemble the first essays we wrote at school: one simple sentence after another, repeating the same subject, using very little coordination, variation, or discourse structure.
And this is where things become much more interesting.
Writing and reading these generated articles has made me think constantly about concepts such as pronouns, tenses, noun phrases, verb phrases, agreement, coordination, conjunctions, active and passive voice, reduced clauses, and complex sentences.
These are things we use every day when speaking or writing without necessarily thinking about them.
When building language generation functions, however, we cannot ignore them.
Suddenly, questions that seem trivial become design problems.
Should the next sentence say “C” again, or “it”?
Should we generate:
“C was designed by A. C was developed by B.”
or:
“C was designed by A and developed by B.”
Or perhaps several Wikidata statements should become something more elaborate:
“Designed by A and developed by B, C was first published in …”
The facts have not changed.
But the language has.
I am now working more on these complex constructions: combining several Wikidata properties, several values, and several grammatical structures into sentences that feel more natural.
On paper, something like:
Designed by A, developed by B, and published in C…
looks easy.
Building it is another story.
That is also where the challenge becomes fascinating.
How do we connect Wikidata items, Wikidata Lexemes, and compositions of Wikifunctions?
How do we decide whether two facts can share a subject?
How do we coordinate predicates without repeating unnecessary words?
How do we choose a pronoun?
How do we generate the right verb form?
How do we turn a list of values into a natural noun phrase?
And, eventually, how do we move from generating isolated sentences to generating an actual article?
For me, this is one of the most exciting aspects of Abstract Wikipedia. We are not simply displaying structured data. We are exploring the machinery required to transform structured knowledge into readable language.
There is an even bigger picture here.
Once you start thinking about Abstract Wikipedia this way, it becomes difficult to look at Wikimedia projects as completely separate worlds.
Imagine an article whose factual structure comes from Wikidata, whose images come from Wikimedia Commons, whose language generation relies on Wikifunctions and Wikidata Lexemes, and whose concepts connect naturally to material elsewhere in the Wikimedia ecosystem.
A quotation on Wikiquote may also appear in a Wikisource text.
A historical text in Wikisource may contain a word whose history is documented in Wiktionary.
A person, place, work, concept, quotation, image, lexeme, and source may all be connected through structured knowledge.
I can see this larger picture quite clearly.
But imagining the final system is the easy part.
Building it with the community, one piece at a time, is where things become real.
And the initial Abstract Wikipedia articles are part of that process.
Perhaps, several years from now, we will look back at today’s generated articles and find them wonderfully naive.
We may wonder why subjects were repeated so often.
Why sentences were so simple.
Why facts were expressed independently instead of being elegantly combined.
Why an article sounded more like a list of Wikidata statements than an encyclopedia entry.
I actually hope that happens.
Because reaching the point where today’s results look primitive will mean that we have made enormous progress.
There is something exciting about being able to see that evolution happening now — from individual facts, to simple sentences, to coordinated predicates, to complex clauses, and eventually to rich encyclopedic articles.
And I hope that the History button of Abstract Wikipedia will one day tell part of that story: how the articles, the functions, and perhaps even our understanding of multilingual knowledge generation evolved over time.
Not all at once.
One brick — or perhaps, in this case, one function — at a time.


