G3.16.2nested scope inheritancedesignresearch

Nested scopes inherit: a child collection sits inside its parent

Aliases: scope inheritance · nested collections · include subfolders

What it is

Folders, sections, and wiki nodes are usually trees. Scope inheritance means a search on a parent covers all descendants by default, and a search on a child is a subset of the parent’s collection. The child range is contained in the parent, not a second plot of land sitting beside it. Filesystem search, site sections, and package paths in a repository all work by this containment. If a parent search cannot see an object that exists in a child, the tree holds for navigation and breaks for retrieval.

Inheritance is about set containment. It is not whether entries should be distinct, and not which layer the default lands on. Objects at one layer must be visible to a query one layer up, unless they are explicitly excluded.

Why it happens

People model a tree as containers: the outer box holds the inner boxes, so searching the outer box should see what is in the inner ones. Retrieval that slices each layer into non-containing index partitions (“only files sitting on this node,” no subtree) breaks the container model. People move objects to the wrong layer, or re-search down the tree, turning one lookup into a traversal.

Containment has to be the default, and it has to be switchable. If descendants are off by default, every parent lookup needs “include subfolders” turned on; the switch will be forgotten, and the miss will be remembered as “nothing there.” Default include, plus “this level only,” follows the container: work as the tree means, then allow a narrowing to direct children.

Studying it

Place objects on a known tree and compare “parent query includes descendants” with “parent query is direct children only.”

  • Paradigms: three folder levels, target in a leaf; the task starts at the root or a middle node. Nested collections in digital libraries and enterprise drives are field sources. Hit gaps for the same object under a parent path versus a child path in the logs are diagnostic.
  • Independent variables: whether the parent scope includes the subtree, whether “this level only” exists, depth of the tree.
  • Dependent variables: recall from the parent node, times the tree is re-searched level by level, rate of treating a subtree object as nonexistent.
  • Methodological note: a two-level lab tree with three items per level barely distinguishes include from not. Put the leaf deeper than the task’s starting node. A subtree cut by permissions (an invisible folder) is not an inheritance failure; score it apart from “the index did not include.”

Where it stops holding

Objects with several parents in a graph (one document hung under two projects) have no single “child contained in parent.” Inheritance has to say whether “any parent can see it” or “only the primary parent,” and must not pretend it is still a tree. Collections organized by tags rather than hierarchy have no parent to inherit from; forcing containment invents a fake tree. Subtrees isolated for permission or compliance must not appear in a parent search; breaking inheritance is then the correct safety boundary, but a zero should say permission, not absence.

Applying it

  • A parent-node search includes all descendant objects by default. Offer “this level only” as an explicit narrowing, not as the default.
  • Expand the index by tree path or ancestor ids so the parent query’s candidate set is truly the union of child sets, not some unrelated slice.
  • After an object moves subtrees, ancestor relations must show up in retrieval containment immediately. Do not leave “still searchable under the old parent, missing under the new.”
  • Verify by placing a file in a leaf three levels down and searching from the root on its unique name. It should hit. With “this level only” on, the root must not show it. If the root never shows it, inheritance is broken.

Related

  • Within the group: G3.16.1 Default scope should be the current context, not the whole collection · G3.16.3 Zero hits in a narrow scope should offer one-click expansion to the parent · G3.16.4 Searching several scopes at once requires one shared relevance scale · G3.16.5 Scope changes ranking; top hits from different scopes are not comparable
  • Adjacent: G1.03 Taxonomy and hierarchy · G3.12 Search scope · G4.02 Deep links
  • Search terms: nested collections · scope inheritance · search subfolders

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/G3.16.2