Tremendous amount of work (mostly reading, thinking, and sketching) about the data structure and API behind hierarchical categorization in CouchDB, taxonomies, categories and categorizing items. Captured notes in notebook and a new doc including all the actions needed and how those breakdown into Clojure and REST APIs.
Some good ideas in the reading about categorizing items and querying, but decided to stick with keeping the category tree all as a JSON block in the taxonomy rather than breaking it up (relational DB style).
Seems that can only optimize for tree manipulation (by keeping category details out of the item doc) at the expense of easy and fast categorized item retrieval, or optimize for fast and easy retrieval (by putting the category details in the item doc) at the expense of easy and fast tree manipulation. Seems clear that with Falkland CMS the right optimization is for easy insertion, deletion and retrieval of items, not tree manipulation.
More work on category tree manipulation.
Nice to be back at it after some time off to focus exclusively on the day job, but frustrating day due to lack of real progress and the complexity of this problem.