I put technical knowledge under ~7-background/tech/~, rather than ~by-name/~. For example, who developed Emacs is general non-technical knowledge and belongs under ~by-name/Emacs/~, but details about elisp belong under ~7-background/tech/Emacs/~.
Why not put all Emacs-related info under ~by-name/Emacs~? Some reasons:
Technical knowledge has more in common with other technical knowledge than with its name. Emacs is best understood in the context of Vim and Unix, not Emma and Eniac.
Technology has one true hierarchy to unify it; people or companies don't. When possible, Textmind capitalizes on the user's mental hierarchies. It's useful to force technical headings through layers of specificity to ensure correctness of scope. There are practical benefits, e.g. in debugging and systems design.
There's no way to do the same with people or companies, because neither has a reliable true hierarchy that places a person or company at one and only one path. Categorization of people and companies is messier and requires a DBMS for contact management.
Therefore, when a person or company (or game title, movie title, book title, etc) is well-known, it belongs under ~by-name/flat~, which simply lists the names in alphabetical order. When the name isn't reliably retrievable in all appropriate circumstances using the brain's database, then it is filed under ~by-name/hierarchical~. However, there's no expectation that this will result in only one record per name. So fragmentation will result, which links and searching can partially mitigate.
With support from Dbmind, one can retrieve the relevant names for any group. Then perhaps info pertinent to the named entity itself can always be stored under ~flat/~, and only info about group relationships stored under ~hierarchical/~.
Yeah, I think that's a better schema that avoids fragmentation. So I'll need to start moving lots of fragmented names out of ~by-name/hierarchical/~ into ~by-name/flat/~.
Flat is still for entities that have one and only one true non-generic name.
I should shift ~3-Names~ down to right before ~7-Background~, since cascade rules mean that object, locations and actions don't go under ~3-Names~.
Dbmind is on the roadmap. I anticipate it'll be in Postgresql.