The ability to use composition across bases as a way to defining complex queries in multiple places. (I.e. Don’t Repeat Yourself, for the predicates themselves).
I.e. the ability to reference all the predicates in source-A.base and source-B.base from C.base.
Anywhere where you want to find the union or intersection of two or more bases.
E.g. I have a complex bases to find notes related to a topic, and complex bases to find notes that I should be looking at soon, and it would be helpful to be able to define a third bases which references them, rather than duplicating all their predicates and trying to keep them in sync.
Ok, the OP and you have two different ideas of what nested bases means and this is what I was concerned about.
OP seems to want a bases of bases, where each “child” bases have attributes testable against the parent base attributes.
Right now, bases have no intrinsic attributes, aside those coming from being files (like creation date). It isn’t clear to me how this would be useful without first extending/exposing the bases attributes. To the OP, you can open a FR and try to be as clear as possible to what you want and why.
@mbhutton What you are describing is not nesting of bases, but the intersection of bases (views) within the same base.
Re use cases: this ability becomes more useful with scale, especially when using Obsidian for task management.
An example case for task management:
I have multiple bases to show tasks for projects A, B, C, … D, and bases to show tasks for different contexts (eg at/town, at/home), and bases to and ishow things by date and priority.
I want to create a composite base for my active projects (A, B).
Composing these would allow me to do all sorts of things like: “show tasks for all my active projects that I can do in town which are scheduled or due today.”
Sorry I hadn’t seen your reply before my follow up!
What you are describing is not nesting of bases, but the intersection of bases (views) within the same base.
To clarify - I mean the ability the compose bases from the predicates in multiple other bases. Because in my case I have an increasing number of complex bases that I want to combine in different ways for different contexts.
Ie I effectively want to do a macro style include in my bases for code reuse.
Sorry for hijacking and confusing this thread! I wrongly assumed it amounted to the same thing. I can create a separate thread with more thought out use cases and suggestions if helpful.
My use case may be better served as a DSL/plugin on top of bases, especially if it seems too complex and niche.
As long as the upcoming bases API includes some way to show a programmatically generated base, then I should be able to solve it that way by writing a plugin.
I could write a plugin with a base-template file type or similar, then have the plugin compile those to base format in memory and call the bases API.