My first vim plugin: gather-todo.txt

Lately, I started caring about a vim plugin for organizing todo notes. After switching around between vim-orgmode, vim-dotoo, todo.txt-vim and plain markdown. I finally decided for the todo.txt filetype, since it is very simple, yet useful. It supports priorities, dates and due-dates (with overdue highlighting), context and project tags, and furthermore sorting by any of these criteria.

However, I do like to keep a little hierarchical structure inside my todo-notes, which is not natively supported by the todo.txt filetype. Therefore, I used the native filesystem approach to keep one todo.txt file for each project I am working on. But then at some point, I would like to have a look at all of these files at once.

So I implemented a simple plugin extension to todo.txt-vim, which recursively gathers the todo items from all todo files in a directory tree and merges them into a single scratch buffer. It also adds the location, where the specific todo item was found as a context to each item, so that you can simply go the respective file by pressing $gf.

Since the result is actually a temporary scratch buffer you can conveniently use the power of vim to filter with respect to certain project names or contexts.

In case you are interested. Just have a look at lgalke/gather-todo.txt-vim.

RDF Reification

In the Linked Open Data world all the information is stored as triples consisting of subject, predicate and object, where every element is an IRI.

However, two types of information are slightly difficult to store in this format:

  • Provenance (Statements about statements)
  • Qualified Statements (N-ary relationships)

There are several approaches to solve this task:

RDF Statement Reification

A blank node points to the statement elements via rdf:subject, rdf:predicate, rdf:object, and can be linked with additional information about the statement. For example: dc:created can be used to store the creation date of the triple. Still, this makes it difficult to interpret and use the data correctly. Some object of the real world maybe created earlier than the triple. Note that this variant uses 3-4 times additional triples.

Ad-hoc Reification

In ad-hoc reification, an additional node is inserted directly in between the subject and object and additional predicates are used to model all components of the n-ary relationship or the additional information about the provenance of the statement. The ad-hoc reification can also be realized with a blank node.

Named Graphs

Another approach is compounding a set of triples to a so-called named graph. Then you can add statements to the names of the named graphs, for example about the source and creation date of all the triples in the graph.

In order to realize this approach, the actual statement’s triples become quadruples because the named graph has to be referred in every statement.

This makes it hard to query such structures because you have to list all the named graphs you want to access.

Descriptions and Situations

In this setting, there are descriptions defining concepts which classify the entities as usual. The entities have the setting of a situation which satisfies the description.

Using Vim as Latex Editor

Vim-latex turns the vim text editor into a useful latex environment. In order to install vim-latex, you can either download it directly from their website or install it directly from the package repositories of your operating system:

  • # dnf install vim-latex for RPM-based distributions (Fedora, openSUSE)
  • # apt-get install vim-latexsuite for DEB-based distributions (Debian, Linux Mint)

After installing vim-latex, you may not immediately notice the difference, but there are many features which are useful to speed up your writing.

I recommend this vim-latex cheat-sheet to get started. In conjuction with an advanced pdf viewer like okular or evince, which are capable of auto-reloading the pdf file’s content, you receive an enjoyable latex environment.


WordPress Plugin: Content Views

Recently I discovered the wordpress plugin Content Views, which proves to be very useful for displaying specific posts or pages in a grid layout. Unfortunately, there is a pro-version which promises to offer even more features. Still, the free-to-use version currently satisfies all the basic requirements and produces beautiful output. For examples check the new projects page or the recipe page on

Major Update of the Machine Learning Ontology

Updated project: Machine Learning Ontology

  • flattened the class hierarchy and added semantics for most of the classes
  • added the MachineLearningModel class in order to connect the algorithms with the applications.
  • Added a lot of individuals

The updated RDF/XML document will be available very soon.