Short of magic, any software is going to need something to go on. As you’ve noted, prototypes are yous friend. They enable:
- identification of all notes of a common type (e.g. people, projects, etc). This is even more useful if the notes of a type aren’t all in one part of the document.
- visual identification of notes of a type: consistent colour, shape, badge, flags, etc.
- consistent Key Attributes - these will likely vary by type
- they assist in emergent structure, things that are of a similar type are different: people, vs orgs, vs products, etc.
Storing strands of data in attributes (which don’t have to be Key Attributes†) either as well as in note $Text or as well as it, can help a lot as you start exploring structure. Why? Because it makes it much easier to query things. Otherwise any query becomes a regex ‘contains’ query. Also, once a an attribute has range of values it makes use of Attribute Browser (as @PaulWalters has rightly already suggested above) easier. Plus, you can use the values() action code to collect a list of unique attribute values. If you pass that to a note’s text and explode it, you have per-value notes. I use this technique a lot to do things like extract—via values()—all the authors for some papers/objects/whatever, and split them out into pre-author notes which I can then link back to the relevant per-paper/projects/etc. notes. This works well as the amount of information grows.
Also as your dataset grows, keeping it all on a single map (i.e. in a single container) becomes a chore. This is where hyperbolic view can help. It only shows notes with (in-document) links but shows them regardless of where they are in the document.
† A common misconception amongst some users is the attributes only exist if they are shown in a note’s Key Attributes. Wrong! Key Attributes are simply those attributes—system or user—that you choose to display for a given note when it is selected, i.e. in the text pane. Inclusion in Key Attributes has no effect on an attribute’s value. If you set Key Attributes for a prototype it formalises this display for notes using that prototype as they inherit the latter’s Key Attributes.