A common way of arranging things is to do the following:

You end up with CategoryBins. If you have a lot of stuff, you end up with nested category bins: Bins with bins inside, and still more bins inside those bins.

(In the words of computer programmers, you end up with a "category tree.")

The virtues of CategoryBins are well known. CategoryBins are, for the most part, good things in our toolset.

That said, I think the time is right to work on something else, called SpatialArrangement?. But this page is not about spatial arrangement, this page is on category bins. The purpose of this page is to point out some weaknesses in CategoryBins. Go read spatial arrangement, to see an answer to these problems.


We'll consider these in turn.

Category bins are like infinitely deep holes.

That is, if you have a category tree, and then get to a leaf in the tree, (or the bottom of the tree, depending on how you think about it,) you end up with a big mass of undifferentiated stuff.

Let's look at FreshMeat for a moment.

We can consider Games/Entertainment, drill down into Role Playing, and then drill down into,…

Oh, we can't drill down any more. This is the end of the line. Hrm.

Okay, so, what do we see?

We see Vega Strike. Looks cool. Haven't played it, but it looks cool. Probably requires a 3d accelerator. I have one, don't think I know how to get it to work on Linux, though. At any rate. Where were we.

So, this page, this list of games, is what I call: "an infinitely deep hole."

It's just this list. This list that goes on and on. It doesn't provide any real intelligence to us.

Looking at this list, we can't see similarities, we can't see dissimilarities. We can't see which games are more important, which games are less important. We can't see anything about what's cool, what's not, what's active, what's got a bunch of people around it, etc., etc.,.

Now, to be sure, you can log in, and you can sort by various categories. These include Popularity, Vitality, Rating, etc.,. And, this is useful.

But it still doesn't get around the fact that we're looking at an infinitely deep hole. (Well, an infinitely deep hole containing 186 items. More than 20 is "infinite" enough for me, I guess. Though, if we consider the hole, rather than the things in it, I think we find that we have an infinitely deep hole.)

There can be no intuition here of the relationship between the various projects. It's just like you reach your hand into this hole, and can only really consider these projects one by one. Or, I guess, there are ways of stringing these on a line, so we can also consider them on a string. But anything more complex than that, and we just can't express it with category bins.

To make this more generic:

With category bins as we use them today, we can only do the following:

Now, why is this a problem? Why do we care?

Because the interrelationship between ideas, projects, things, are extremely interesting. If you have an UnvoicedConnection, it's very useful to say, "This is nice, it's sort of like the unvoiced connection in my mind, but I want something similar but different."

If you have an UnvoicedConnection, then the infinitely deep hole that is a category bin will not help you. Not unless you feel like going through 186 items, one by one.

If we take all the worlds projects, and pile them up into CategoryBins, we are going to have very little additional intuition about the interrelationship between the projects. True, we'll have a nice high-level map of the general types of projects exist: That is a virtue. But, we won't have much understanding about a given project in relationship to it's neighbors. It doesn't even have neighbors, after all (except in the sense of one of the sorting lines): It's just an entry in an infinitely deep hole. All neighbors are equally in the hole as itself, and that's the end of the relationship.

But this talk about the nice high-level map advantage brings us to another problem.

Category bins take time to make and maintain.

That is, category bins are frequently old. They fall victim to ChangeFailure, where the world changes around faster than your efforts to organize it.

Reconceptualizing a category tree, and then applying the new tree, takes a very long time. FreshMeat features 36,303 projects at the time of this writing.

Some bottom-level categories are extremely deep, whereas some are extremely shallow. The deeper they are, they more "anonymous" the individual projects in them are, and the less understanding we have of their context.

Perhaps FreshMeat can somehow delegate the process of building and maintaining subtrees? Of arranging "the worlds' software project category tree?" The OpenDirectoryProject tried something like that, after all.

I'm personally not a big believer in it, though.

Category bins are necessarily a matter of partitioning. There's a "planning ahead" process involved. It can also be somewhat exacting and hair-splitting. You get into all these cases of, "Well, is this an Apple, or is it an Orange?", and you maintain these tables of deciding if it's a "foo" or a "bar." The idea is that, someone who wants to find something, they'll go through these tables too, and work out the proper place. I'm not so sure it really works all that well.

Because of the aspect of planning ahead, and the difficulty of rearranging everything, they have some difficulty in coping with change.


Category bins are marvelous things. Not only are they technically easy to implement, they also help us find related things, and give us some understanding of overall structure.

That said, they don't shed much light on the things within individual category bins, and they can fall out of date pretty fast.


I forgot to mention, (perhaps to be included in a rewrite,) that another problem is that category bins have an isolating factor as well.

That is, something tends to be in one bin or another bin, and then any WeakConnections? (but still extremely useful connections) between things are completely lost.

That is, if you have a two constellations that are connected by a weak line between two stars, but that connection crosses category boundaries: Then, when you consider categories themselves, you completely lose site of that line.


Also: Perhaps this page should have been called LimitationsOfCategoryBins?. You know, like: LimitationsOfMailingLists.

Thinking about this some more, I realize:

  • It's not really that there are category bins, but it's how things within categories are presented.
  • The criticism about hiding weak links still applies, unless you display the "off to neverland" link somehow.
  • I intuit that there are still problems with how category bins change. That is, it's a lot of work, in many situations, to restructure a category tree with many entries. But, I think this has more to do more with the method of maintaining categorization (distributed vs. centralized,) rather than the actual use of categories or no.

So, I think this page should be called "LinearPresentation?," or "LinearVsSpatialPresentation?."

I still intuit that there are intrinsic problems with category bins, but we'll have to find out what those are. The reasons I gave on this page are not enough.

I think also that it's more than just spatial arrangement that I am talking about.

For example, to break "spatial arrangement," all you have to do is show a lame spatial arrangement: Organize FreshMeat projects by date on one axis, and first letter on the other axis.

So, I think what I'm really after is IntuitiveArrangement.

Buckets-inside-of-buckets, seem to me to be a kind of hierarchy (see LimitsOfHierarchies).

Is there any significant difference between CategoryBins and hierarchy?

It certainly looks different than a picture of a tree. But I think it's ultimately the same sort of thing, no matter how you represent it (see EmbeddedCircleDiagram for a few other ways to represent a hierarchy).

I've been using C2 so long that when I use the term "categories", I mean that a single thing can be tagged with any number of categories. This is more flexible than hierarchies.

Unlike hierarchies, C2-style categories can show the WeakConnection? illustrated here. One way would be to make up some 3rd category, and tag both of the 2 weakly-connected items with this third category.

I agree that restructuring a tree is a lot of work. Restructuring categories is much easier. If you come up with some new category tag, simply slap it on every item it could possibly apply to – generally this causes most items to be tagged with multiple categories. If you don't like some category tag, simply delete it.

Go read spatial arrangement [SpatialArrangement?], to see an answer to these problems.

I can't, it doesn't exist!

I agree with DavidCary that some of this should go on the page LimitsOfHierarchies.

But I guess that your main criticisms apply to both HierarchialOrganization?s and also to CategoryTagOrganization?s.

As I said, I don't believe that my original title is correct: This isn't really about CategoryBins, LimitsOfHierarchies, yadda yadda yadda.

This is actually a criticism of a method of presentation.

That is, FreshMeat could keep it's Category tree, and just change it's method of presentation, and it would be good.

I think I really need to just write IntuitiveArrangement.



Define external redirect: SpatialArrangement WeakConnections WeakConnection LimitationsOfCategoryBins LinearVsSpatialPresentation CategoryTagOrganization HierarchialOrganization LinearPresentation

EditNearLinks: OpenDirectoryProject