The Book of Conworlds Scan Processing System
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
isoraqathedh b52282e534 Include search file in system. 1 year ago
doc Add fonts. 1 year ago
.gitignore Start off with a quick gitignore. 1 year ago
COPYING Change the copyright licence to GPL. 1 year ago A quick version bump and why. 1 year ago
bocproc.asd Include search file in system. 1 year ago
bocproc.lisp Add run code. 1 year ago
bocprocdb.lisp Ensure that there is always a final newline. 1 year ago
call-programs.lisp Add feh display option. 1 year ago
entity.lisp Add a function to iterate across columns. 1 year ago
package.lisp Better matching. 1 year ago
page.lisp Add tag-plist access for the entry-getf as well. 1 year ago
posting.lisp Repalce lookup-* with find-* for 1-dimensional searches. 1 year ago
search.lisp Extra section for expansions. 1 year ago
utils.lisp New functions for merging tags. 1 year ago
visualisation.lisp Use the str macro. 1 year ago

Book of Conworlds Processing System version 8

This is the Book of Conworlds Processing System, Version 8.

What happened to bocproc7?

This is a complete rewrite of bocproc. Originally bocproc7 was supposed to be an extension of bocproc6 with the ability to search and manage the scans that it uploads. However, with this rewrite, it seems imprudent for this to share the same version number so we bump it up instead. It's not without precedent; some older versions of bocproc, back when it was still written in AHK, are abandoned in a similar fashion (in particular, version 3).

The version number 7 will be used as beta versions of version 8.

What this is

BOCPROC is, at its core, a collection management program that has been tailored to fit a very particular set of requirements that the author of this program has.

The goal of this program is to manage the scanned-in pages of a particular set of notebooks. It might be of use to you if you also have a collection of files which:

  • Have a lot of metadata which might not fit inside the files themselves
  • Should have those metadata be exposed for easy analytics
  • Are structured like one or more stacks of physical notebooks, with books and pages
  • Revolve around a list of recurring and related topics in no particular order, of which there might be many

    • Those topics are all related to each other in complex ways expressible by inheritance
    • They themselves have metadata attached to them, for relational reasons
  • Are to be published in other places, such as social media websites or just in an online gallery in general

And additionally, you:

  • Want to be able to browse through those files and search by those topics;
  • Are happy to use the command line; and
  • Are able to write additional programs to do exactly what you want it to do

It's not an enormous audience to be sure, but the author intends to use this system on a daily basis to manage his notebooks which just so happens to fit the criteria set up above.

How to use

This library is currently in a prototype stage and does not have any stable API yet. Therefore, it is not currently very usable.


The idea of BOCPROC is that it manages two things:

these are the objects that represent pages and scans in the introductory section above. They have an identity and can contain various topics that are represented by tags. Entries can be added, changed or removed at any time.
these are bits of metadata that themselves have metadata. Entries can have tags placed on them, and the tags' metadata are then put into the entries as well. Tags are generally stable and they don't change very frequently, but they do grow and change from time to time. Tags are not generally deleted.

The program then ensures that entries are linked to the right tags in hopes of being able to provide meaningful information about their relationship. They are expressed as Lisp expressions in particular files, for which see the detailed documentation.

Detailed documentation

Further information can be found in the documentation file. At the moment it describes in detail how tags work and a brief specification for the files that it works with. As the program develops the documentation will grow along with it.


This program is licensed under GNU GPL, version 3.