ref: jwz.org/blog/2019/09/tag-graph