Repost DM skepticmystic question

First

This is a copy of a direct message I sent to SkepticMystic but we didn’t get in touch and I understand from that not to bother / contact again. So I thought of throwing it out here, maybe someone has some pointers/tips.

Hello SkepticMystic,

I was wondering if you could help me out. I (only recently) started using the plugin you made, as suggested in this thread. Breadcrumbs is such a great effort and ontologically advanced way of interacting with pieces of data; in a dynamically related and multi structured way.

Some context

One of the pillars for setting up my knowledge management / system has been a very fundamental insight into non-fixedness of thought. As such I work with hundreds of separate notes that are structured in different ways: by hierarchy in the folder structure, by (hierarchy of) tags, and by similarity of properties/YAML frontmatter (I have a cobbled together service running in the background to consistently add properties depending on the separate tags a file has; e.g. a tag #todo adds date as a property and #todo/comms adds correspondent from #comms and date from #todo). That way I have an organized schema and end up with these ‘meta’-tables/databases of notes related by mutual properties).

After lots of studying and brainstorming and empirically questioning (abstract) concepts of how things can be organized I settled on these above and one more that I don’t know how to implement. That is exactly the type of relationship you have solved so thoroughly with Breadcrumbs. Parent-Child (graph) relation across, multiple and overlapping nodes.

Your implementation is advanced and very useful for some scenarios (so I’ll keep using it), but I have (a) use case(s) where I would like to dynamically (dataview) display very simple parent-child relationships, where the only relation defined is the parent (on the child note).

Unfortunately I have stretched my capacities (learning JS from scratch to having a so called MindstuffAPI in NodeJS), and this final solution is eluding me because I don’t really know/practiced how to properly think computationally. Looking at the source at main.js does help a bit but it’s all still a bit overwhelming.

My actual question

Could you help me understand how to build (a) function(s) that makes a breadcrumb trail? In the context of dataview that could be an indented list (or even just compose a hierarchical list with tabs and dashes like your index), but I am also very much interested in understanding the computational thinking/concepts behind it. For example: If I would make a function to recursively add pages based on checking the parent, what would I store it to? (an Array of Arrays?) Or would I make some other structure to better be able to process it in whatever form I need?

Of course I can (and will) use the BC functionality to make indices, but I feel it’s important to have good understanding of this bit of my process. An example would be that I’d like to ‘filter’ what to add to the index based on all previously mentioned dimensions (tags, folder, property)

Thank you for reading, thank you for your attention and time (also with making Breadcrumbs) and maybe until later!

Kind regards,
Paul