0

Hopefully this question fits here. I had it posted on another stackexchange site and it was deleted for being off topic--but the problem is this doesn't fit neatly into a topic. It lies on the border of software/algorithms, math/logic, possibly data structures, but since the main utility is in terms of the mental model of the human user it seems to fit here.

We are all familiar with tree/"folder"-based organization schemes, in which items are grouped in progressively more specific categories, with each single item or sub-category belonging to ONE larger category. However, there are quite some instances where it would be useful to allow each category to have MULTIPLE "parents". For instance, one might want to categorize a paper about an image processing algorithm under both a "photography" category and a "programming" category, or a photo of a bird taken on vacation in Africa to be categorized under both "Africa vacation" and "wildlife", and have it be equally findable browsing either of these categories. The tree model necessarily requires prioritizing one classification over the other, or keeping multiple copies of path nodes or even files themselves.

This problem seems obvious enough that I'd think someone would have already come up with a name, standard logical scheme, and implementation(s) for such a "non-exclusive classification". What I mean is, some kind of application layer that sits "on top of" the tree structure of the native file system and provides a "multiple overlapping category" metaphor to the user, allowing navigation to a sub-item from any of its parents, as well as displaying all parents of a node besides only the one on the path that was used to browse there. There are a few limited cases where I know such a thing DOES exist, like in photo apps where tags are assigned to images non-exclusively.

I'm wondering, though, if there is an accepted name for this type of organization scheme so that I can search for software that implements it. If not, I may choose to implement one as this seems too useful not to exist, but I don't want to re-invent something that's already out there. To give a concrete example, this idea was prompted for me by the specific case of Chrome bookmarks, but there are many other use cases I can think of.

1 Answer 1

0

We're deep into the mathematics here, which I'm no expert in, but for your use case a Directed acyclic graph (or perhaps more generally: Any directed graph) sounds useful. It's how Wikipedia and its sister project organize stuff in in practice.

UX-wise, the two edit options for this kind of structure I've seen are node editors, and free-text editing. The latter is how it's done on Wikipedia, you just have users decide "this is now a subcategory of this other one" and hope nobody runs into cycles - and if they do, have someone clean up after them.

In the context of a browser bookmark manager or similar, a node editor probably is way, way overkill.

Not the answer you're looking for? Browse other questions tagged or ask your own question.