In the middle of the desert you can say anything you want

09 Dec 2016

Semantic Mediawiki for personal knowledge management, using templates and a custom userscript

1368 words, ~5 min read

Here I’ll try to document my current setup for links management, which is slowly starting to take form.

Как мы пришли к такой жизни

Since the social bookmarking site Delicious (old links page) is seriously falling apart (which is very sad, I liked it almost as much as I liked Google Reader) I started looking for other alternatives. For some time, I used WordPress LinkLibrary plugin until I felt the hard category system lacked flexibility (you can see on the “Links” page of this blog how cluttered and repetitive it is), I needed _tags _and more ways to organize the links and, possibly, the relationships between them.

Then for a very short time I set up a WordPress installation specifically for links. I was not the first one who attempted this ( as an example), but it did not work out well for me.

As for the existing social bookmarking services, for example or, I did not want to pay and wanted control of my data (thank God the export feature in Delicious worked more often than not, but I don’t want to risk it anymore).

As for the need to “share” it, I want to have access to it from various places and, since there’s nothing private, putting it in the cloud and putting a password on it sounds like an unneeded layer of complication. Lastly — who knows — maybe someone will actually get some use out of it.

Semantic Mediawiki

Mediawiki is the software Wikipedia runs on. Semantic Mediawiki is an open-source extension for it that adds the ability to store and query data on a whole another level.

Semantics means, basically, meaning. The difference between “60”, “60kg”, “My weight is 60kg.”

Traditionally, Mediawiki allows the pages to link to each other, but the exact nature of the connection is not clear, and you can’t use the connections much. Semantic Mediawiki allows to define additional data for every page, and allows to define relationships between pages. The data “Benjamin Franklin was born in the USA in 1706” suddenly becomes searchable, for example as “Give me the people born in America before 1800” and “Give me the list of countries where people named Ben were born”. A link “Benjamin Franklin -> Philadelphia” becomes “Benjamin Franklin was (BORN IN) Philadelphia”.

This is awesome.

After looking at it, I understood that I have immense power in my hands, and that I have no idea how to use it. As in, how to create an architecture that was both meaningful and easy to adhere to.

Seeing all this, I thought it would make sense to upgrade my “Link database” to something much more interconnected and useful, a personal knowledge management system.

And here it is.


The system

Take this page.

Every page has 5 values:

  • l: The actual URI
  • t: the title
  • c: the complexity (how easy/hard is it to read; sometimes I just don’t want to think too much), 1 to 10
  • r: the rating, also 1 to 10
  • o: If it’s a page with only one link, around which the content of the page has been built. (As opposed to “Here are 5 links about X”)

Plus, of course, any additional text.

Properties can be set:

1) In the text itself, for example like this:

    - [[t::Uncoiling the spiral: Maths and hallucinations.]]

2) Invisibly:


3) using the following nice template I’ve written: 

    [[l::{{{1}}}]] - [[t::{{{2}}}]]. 
    Complexity: [[c::{{{3|5}}}]]; Rating: [[r::{{{4|5}}}]]; Is only link: [[o::{{{5|true}}}]]
     |t={{{2|1}}} <!-- If no title given, use URI as name -->
     |c={{{3|5}}} <!-- 5 as default value -->
     |r={{{4|5}}} <!-- 5 as default rating unless something else given
     |o={{{5|true}}} <!-- only link by default -->

which can be used like this:
|Why our brains love high ceilings

My main goal for this was that it should be fast, and fast for me. I can type the above much faster than I can multiple input boxes in a hypothetical GUI.

Then I decided to write some bad javascript to simplify it even more.

The bookmarklet/userscript

An actual bookmarklet would be definitely the next thing I'm doing, until then I'll be adding the pages manually.

But I wrote a small script (two years since I've used any Javascript, haha), to minimize the text above to just this:
Why our brains love high ceilings

The (badbadbad) Javascript code is the following:

var lines = $('#wpTextbox1').val().split('\n');

for (i=0; i<5; i++) {
if (typeof lines[i] == 'undefined') {lines[i]='';}

if (!ValidURL(lines[0])) {alert(lines[0]+" doesn't look like a valid URL.")};
if (lines[1]=='') {lines[1]=lines[0]};
if (lines[2]=='') {lines[2]='5'};
if (lines[3]=='') {lines[3]='5'};

if (parseInt(lines[2]) > 10 || parseInt(lines[2])<0 || isNaN(lines[2])) {
alert(lines[2]+'is not a valid value, setting to default 5');

if (parseInt(lines[3]) > 10 || parseInt(lines[3])<0 || isNaN(lines[3])) {
alert(lines[3]+'is not a valid value, setting to default 5');

var text="{{B|\n"+lines[0]+"\n|"+lines[1]+"\n|"+lines[2]+"\n|"+lines[3];
if (lines[4]!='') text+="\n|"+lines[4];

var field = document.getElementById('wpTextbox1');
var textArray = field.value.split("\n");
textArray.splice(0, 4);
textArray[0] = text;
field.value = textArray.join("\n");

function ValidURL(str) {
var pattern = new RegExp('^(https?:\\/\\/)?'+
return pattern.test(str);

The minimized variant of the above now sits nice in my bookmarks bar, and is bound to a keypress in cvim. So I can fill just the URI, and it sets everything else to some default values and adds the Mediawiki template formatting.


  1. Getting the page title automagically (see, I'll need a PHP backend. It would be also interesting to check from the PHP if the IP making the request is currently logged in in my wiki, and get the title only then, to prevent abuse
  2. Making a bookmarklet which populates automatically most of the fields, like my old Delicious bookmarklet (sigh.)

Searching the wiki

The search in Semantic Mediawiki is explained pretty well here. Now I can do neat things like "Give me the pages in the Category 'To read' with complexity < 4". And lastly, categories can be inside other categories. If X is in category  A, which is a subcategory of B, it still shows up in searches for category B. (example) Pretty nice!

Knowledge Management

Things I want to learn or will probably need pretty often will have their own pages, like the Formulating Knowledge page. Simply because interacting with the material always helps much more than just reading it. Also I like that it will be represented in a way relevant for me, without unnecessary data and with additional material I think should be there.

For the link pages, there will be the link + very short summary (it has been working pretty well) + a couple of thoughts about it, + maybe relevant data or links to other pages.

TODO: Quotes + Move there my "To Read" / "To Listen to" lists. Also think of a better name for it.


Warum einfach, wenn es auch kompliziert geht? (A nice German phrase about avoiding the unbearable simplicity of being: "Why simple, when it can be complicated as well?")

On a serious note, I don't have any doubts that in the long run I'll be thankful for this system.

Firstly, I control all of this data. Feels good. Take that, capitalist ad-ridden surveillance corporations!

Secondly, working with a lot of information has always been something I do often and enjoy immensely, and it would make sense to start accumulating everything in one place. Every day I stumble upon a lot of material on the Internet, of very different nature, and with not-obvious connections between them. I have more interests than I can count.

Organizing everything like this so far looks to me the best alternative, and I'm reasonably certain it will work out. There's a lot that can be improved, and I think in a couple of moths it will morph into something awesome.

Finding ways to use all the accumulated data is a topic for another day.


A couple of nice relevant inspiring places:  - in Russian, a person using Mediawiki as central hub for everything.  - personal wiki, mostly design. a much more advanced version of what I'm trying to do, also using Semantic Mediawiki. I should drop him a line :)

18 Nov 2016

Three tales about the Universe

1036 words, ~4 min read

Now playing: o/` эта осень еще сильнее грузит меня o/`

A couple of articles I especially liked the past week or so, which are too awesome not to share (and too awesome not to internalize by rephrasing them).

(Read More)

18 Oct 2016

Программированиие + пассивный доход + очередной пост о том, что делать со своей жизнью

1103 words, ~4 min read

Нехарактерно длинный постик о двух идея для веб-приложений, которыми мне бы хотелось заняться, и ресурсы/мысли на тему создания пассивного дохода.

(Read More)

09 Oct 2016

Милан Кундера "Искусство романа"

1172 words, ~4 min read

Хочу возродить древнюю графоманскую традицию писать несколько строчек о прочитанных книгах. В первую очередь, это навеяно вот этого плана списками правил, но еще — мне необходимо бороться с этим вечным стремлением проглотить-и-ничего-не-запомнить. Книга, лично мне, ценна ровно настолько, насколько она что-то после себя оставила — я вот хочу ей в этом помочь. Смысла во всех пометках очень мало, если потом они так и остаются пометками на полях. А еще — мне нужно лучше учиться выбирать важное или хотя бы интересное мне. Надеюсь, что переписывая, я еще раз задумаюсь на счет того, действительно ли настолько важен этот отрывок.

Мне нужно создать лучшую систему анализа прочитанного. В первую очередь для развития навыков анализа и соотношения с остальным, развития концентрации, способность видеть вещи в контексте. Сейчас много работы идет зря, много времени теряется, мало запоминается — я не удовлетворен, в общем. Пусть это будет условным началом.

(Read More)

27 Sep 2016

~/notes/quotes; ~/notes/phrases

15956 words, ~63 min read

Follows the dump of two files that I always have on my computers. They contain quotes that I have found inspiring and random bits and pieces that I find interesting logically or linguistically. Everything as-is, sadly I don’t have sources for everything, but should be pretty easy to google. Putting it here mostly for backup purposes. A phrase being here doesn’t imply I agree with it, just that I found it interesting.

(Read More)

17 Jul 2016

"Теория практического мышления" — основное

3965 words, ~15 min read

Показавшиеся мне интересные мысли из книги “Теория практического мышления”


[…]Вместе с тем, я все глубже убеждался в том, что само по себе знание логики не учит ни критическому, ни исследовательскому мышлению, хотя, безусловно, прибавляет ему строгости и порядка.

[..] Печатное слово, уважающее человека и несущее ему истину и добро, кажется, обречено если не на исчезновение, то на прозябание на задворках человеческой жизни.

(Read More)

13 Jul 2016

Лето 2015, Львов

509 words, ~2 min read

Тільки тим, хто бував
На далеких войнах,
Ці слова про любов
Мало що говорять.
Ти повір, нам усім
Хочеться одного:
Щоби дощ не стихав
Безконечно довго.

Внезапное воспоминание о Львове, летом 2015 года.

Я был в очень пролетарской забегаловке недалеко от центра, стоял около окна, пил кофе. (“Чай? Чаю у нас немає. Є сік, кава та горілка”). Кстати кофе пил там только я. По радио передавали погоду на Западной Украине, и я очень четко воспринимал конечность своей жизни и огромное значение этих последних месяцев перед отъездом. Осознание того, насколько важная каждая моя секунда жизни там, /той/ жизни. Как все меняется, как прошлое безвозвратно уходит в прошлое, и как очень важные воспоминания затираются.

(Read More)

09 May 2016


75 words, ~0 min read

Life is a non-zero-sum game.


SIT, be still and listen,
because you are drunk
and we’re on the
edge of the roof


Be a light upon yourself.


I make my own coincidences, synchronicities, Luck and Destiny


Rule your mind, or it will rule you




Trust God and your Soul


Либерально добавлю сюда еще следующую мысль:

Ты – Человек, следовательно – Ты. Можешь. Все.

11 Apr 2016

Соннамбулический романс

180 words, ~0 min read

Фон: Прокофьев, “Ромео и Джульетта”, Танец Рыцарей.

Дворец культуры НТУУ “КПИ”, нарядно разукрашенный концертный зал.

Ю н о ш а  в зале.

Д е в у ш к а  на сцене, в коричневом средневековом платье и странной высокой шапке, она —  ведущая концерта.

После окончания Ю н о ш а  и  Д е в у ш к а  выходят из зала, направляются к Библиотеке, поднимаются на четвертый этаж, останавливаются около окошек справа от Маятника Фуко.

Ю н о ш а  и  Д е в у ш к а  стоят на площадке четвертого этажа.

Слышен звук воды, которая начинает литься в здание Библиотеки внизу.

Ю н о ш а  и  Д е в у шк а  начинают танцевать.

Звук воды все сильнее и сильнее, вода начинает подниматься

Музыка все громче и громче, Ю н о ш а  и  Д е в у ш к а  продолжают танцевать.

Вода равномерно поднимается по этажам, музыка играет невыносимо громко.

Ю н о ш а  и  Д е в у ш к а  продолжают танцевать.

Вода достигает площадки четвертого этажа.

Сама Библиотека ((Фотография отсюда:
11 Feb 2016

Мысли о демонах, Красоте, Абсолютной Реальности, Блейке; "Лейпцигская теория сознания"

2063 words, ~8 min read

Mara, I see you. (Buddha) 1

“It is wonderful you demons came today. You must come again tomorrow. From time to time, we should converse.” (Milarepa) 2

Who […] were run down by the drunken taxicabs of Absolute Reality (Ginsberg) 3

“Сережа, я тебе желаю в этом году пить со своими демонами чай, а не вино” (Л)

“Демоны связывают меня, садятся за мой стол, пьют мой чай, потом заканчивают и насилуют меня по очереди”

Drinking tea with the taxi drivers of Absolute Reality

Начать пост шестью эпиграфами это конечно сильно, но я чувствую его длина будет соответствовать.

“Пить чай со своими демонами” невероятно сильный образ, который отлично поддается интерпретациям и вариациям, что было мной использовано эти пару лет довольно часто. Принять их существование, не убегать от них, не отворачиваться от них, не пытаться делать вид, что их не существует. Пить чай со своими демонами, чтоб чувствовать свои отношения с ними, быть честными с ними и собой,решать возникшие проблемы, договариваться о сферах влияния, чертить/пересматривать эти грани когда старые утратили актуальность.


Now playing: Casta Diva (Norma)

Little Lamb, who made thee?
Dost thou know who made thee?
Gave thee life, and bid thee feed
By the stream and o’er the mead;
Gave thee clothing of delight,
Softest clothing, woolly, bright;
Gave thee such a tender voice,
Making all the vales rejoice?

(Blake) 4

Последние пару лет стал обращать внимания на маленькие события, моменты, отрывки, которые самим своим существованием очень сильно впадают душу, в самом-самом положительном значении. Настолько, что я постоянно возвращался к мысли что, возможно, существует еще одна реальность, где все невероятно светло и прекрасно, которая местами попадает в нашу серую, нормальную и никакую. То, что может чувствоваться когда, например, смотришь на рассвет. В идеале с какой-то горы и на природе. Или стих Блейка выше, который не совсем об этом, но который в моем мире с этим очень связан. Гладить белую-белую шерсть маленького ягненка — сам акт чего-то невероятно светлого, чистого, ясного, идеального, незатуманенного, настолько, что это сложно вынести. Если ты способен чувствовать и видеть это, of course, а жизнь меня учит что сильно чувствовать или вообще чувствовать способны далеко не все.

Помню одну поездку в метро нехорошей зимой 2013 года. Я стоял и читал, передо мной на сидении была женщина лет 30 и ее дочка, той внешности, которую рисуют на конфетках и рекламах, лет пяти. У мамы в руках был большой букет цветов, у дочки — плюшевый кто-то. И они обе были очень красивыми и выглядели счастливыми. Очень счастливыми. Обе улыбались просто в воздух и почти светились изнутри, я почти видел ореол вокруг них. Я не знаю, что конкретно в них меня так зацепило, но зацепило просто до боли.

(Read More)