A Certain Knowledge Modeling Experiments
An exploration of self-hosting Wikibase-like app as a sandbox for experimenting with knowledge representation beyond Wikidata's current data model.
After receiving tons of harassment, I decided to delete my main Wikipedia account.
At the time, I was busy translating Wikimedia Tech News. One day, one of the entries mentioned that they were improving the Special:GlobalVanishRequest page. My immediate reaction while translating it was, “Wait... you can request euthanasia on Wikimedia? That’s really cool...”
Because I had had enough, I decided to request my own end.
As it turned out, I didn’t completely vanish. My account was simply renamed, while my old username became free to claim.
I immediately realized that this could become a problem. Someone else could quickly register that username and impersonate me. I didn’t want to deal with even more trouble, so I quickly re-registered the old username to prevent anyone else from claiming it.
After that, I stepped away from the Wikimedia movement for a long, long time.
Then I quietly made a comeback.
This time, I chose Wikidata as my home wiki.
Two years later, if you open Special:CentralAuth, enter my username, and sort the list of local accounts by edit count, Wikidata still appears at the very top.
That basically means I’ve minimized my interaction with the local wikis where my enemies reside.
I thought I was finally free from harassment on Wikidata.
Turns out, I still receive it occasionally.
This time, the source of the conflict was different. Wikidata’s current set of properties isn’t sufficient to properly model knowledge in certain domains. I tried to improve the situation by proposing changes, but some people didn’t like the direction I was taking.
That got me thinking.
What if I deployed something similar to Wikibase on my own server, where I had full control? I could freely experiment with knowledge models that are difficult or impossible to express using Wikidata’s existing properties, while still linking my local items to their corresponding Wikidata items whenever appropriate.
After weeks of experimentation, here are my initial findings.
First, I really like Wikidata’s “significant person,” “significant event,” “significant work,” and “significant place” properties.
They’re surprisingly flexible. Whenever you can’t find the perfect property, you can often fall back to one of them because they’re so general-purpose. In many cases, you don’t even need to specify why something is significant.
So I generalized the idea even further and created a single property: P7: significant item.
Second, Wikidata has multilingual descriptions. These are short sentences that describe an item in a particular language, but they’re stored separately from the item’s statements.
That made me wonder: what’s stopping me from treating descriptions as statements instead?
Third, this one is admittedly a bit lazy.
I realized I could simply dump entire paragraphs into a P12: note property.
Now I can attach paragraphs upon paragraphs of information directly to an item’s statements. The result is this strange hybrid that sits somewhere between a Wikidata item page and a Wikipedia article.
Surprisingly, I really like it.
Fourth, this stems from a hypothesis I’ve developed after years of editing Wikidata.
I think “ordering” is actually far more important than we tend to realize.
A surprising amount of implicit knowledge can be conveyed simply by the order of items and statements. The first item listed may indicate greater importance, or it could also imply chronological order, or something else entirely.
We don’t always have to make the reasoning explicit. Instead, we can let the reader or data consumer infer the meaning behind the apparent order.
I think I relied heavily on this same hypothesis in my previous essay about Wikidata.
In Wikidata, you can reorder the values listed within a statement. This isn’t supported natively, but it can be done using a special gadget. I used that feature extensively whenever I edited Wikidata.
However, I still don’t know of a way to reorder the statements themselves.
So, in my sandbox, I decided that statement and item ordering should be treated as a first-class feature. Users can freely reorder both items and statements with simple drag-and-drop interactions.











