I would like to propose a concept of scopes for SilverBullet. Wouldn’t it be nice to have scoped pages, tags, and attributes?
The primary idea is to enable the distinction between separate scopes, forming clusters of information within the whole. Each scope would not have a definitive root. Instead it would function as a graph that connects branches or leaves of the global root, effectively linking parts of the tree together and allowing inheritance of the scope from these points down the tree.
All tags and attributes would continue to belong to the global (default, implicit, root) scope as they currently do. But they would also be available within specified scopes when explicitly requested. This would allow users to, e.g., search for tags exclusively within designated scopes and interact with pages, tags, and attributes in the same manner as they do in the global scope. Users could generate a list of all pages tagged in a specific manner within a particular scope, for instance. If no scope is specified for an action, the global scope (which would remain the same as it is now) would be implicitly used, thus maintaining backward compatibility with the current behaviour is possible.
More ways to achieve something close to this certainly exist - tag inheritance, hierarchical tags, some form of classification etc. But I somehow like the idea of loose scoping which allows for the grouping of tree components into clusters of information within the entire space. I sort of feel it matches notes-taking and similar tasks quite well. What is your opinion on this topic?
Additional idea: references between pages form clusters of information naturally. Apart from this manual clustering I propose it would be nice to detect already formed clusters and let users to assign custom names (scopes) to them so that they become easily distinquished.