Skip to content
Rolf's Orphaned Tagging Zythepsary
C Scilab
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.


Rolf's Orphaned Tagging Zythepsary.


Wrapper around tokyocabinet to store tag metadata of items in a bipartite graph, much like vertexdb but with the emphasis on bulk operations.

Currently, access via command-line is implemented, and access via http is envisaged.

Command-line tools

  • rotz-add Add tags to symbols
  • rotz-del Remove tags from symbols
  • rotz-show Show symbols associated with tags, or tags associated with symbols
  • rotz-alias Make a tag also known under a different name
  • rotz-rename Rename a tag
  • rotz-search Show tags beginning with a specified prefix
  • rotz-combine Combine several separate tags into one
  • rotz-cloud Display tag clouds
  • rotz-fsck Check database file and optimise it


Start out anywhere by adding some tags:

$ rotz-add foo bar
$ rotz-add foo baz

Now show all associations with foo

$ rotz-show foo

Show all associations of bar

$ rotz-show bar

Delete the association between foo and bar

$ rotz-del foo bar
$ rotz-show foo

Add a tag alias to foo, something more meaningful

$ rotz-alias foo important

Find important items

$ rotz-show important

Make bar important again

$ rotz-add important bar
$ rotz-show foo


The API contains the usual graph operations:

rtz_vtx_t rotz_get_vertex(rotz_t, const char *v) : Identify a vertex by name and return its object handle.

rtz_vtx_t rotz_add_vertex(rotz_t, const char *v) : Add vertex V to rotz database file and return its object handle.

rtz_vtx_t rotz_rem_vertex(rotz_t, const char *v) : Remove vertex V from rotz database file and return its former object handle.

int rotz_add_alias(rotz_t, rtz_vtx_t v, const char *alias) : Make ALIAS an alias for vertex object V.

int rotz_rem_alias(rotz_t, const char *alias) : Remove ALIAS from the list of aliases associated with ALIAS.

rtz_buf_t rotz_get_aliases(rotz_t, rtz_vtx_t v) : Return the list of aliases for vertex object V.

int rotz_get_edge(rotz_t, rtz_vtx_t from, rtz_vtx_t to) : Return non-0 iff the edge from vertex FROM to vertex TO exists.

int rotz_add_edge(rotz_t, rtz_vtx_t from, rtz_vtx_t to) : Add an edge from vertex FROM to vertex TO.

int rotz_rem_edge(rotz_t, rtz_vtx_t from, rtz_vtx_t to) : Remove an edge from vertex FROM to vertex TO.

rtz_vtxlst_t rotz_get_edges(rotz_t, rtz_vtx_t v) : Return all (outgoing) edges from vertex V.

size_t rotz_get_nedges(rotz_t, rtz_vtx_t v) : Return the number of (outgoing) edges from vertex V.

int rotz_rem_edges(rotz_t, rtz_vtx_t v) : Remove all (outgoing) edges from a vertex V.

You can’t perform that action at this time.