On Wed, Dec 3, 2008 at 12:37 PM, Aerik Sylvan aerik@thesylvans.com wrote: [snip]
But it sounds like maybe those of us who'd like to see this happen should discuss a UI (or several) for it. I was thinking the most intuitive interface was a sort of "browse" type function, where for any given group of categories (could just be one category), you have two result sets: related categories (other categories of pages in the starting category), and articles at the intersection of the group. The articles are what we generally think of, but the related categories gives us an intuitive way to navigate through category intersections.
The articles in the group of categories are the problem we've already solved (mostly): they are the result from the fulltext or lucene search. The related categories problem is harder,
[snip]
So an interface I had that was really pleasing was that I asked the database to find a random subset of the results, which it could do quickly, (or I used the whole results if the initial query contained them) and I found the set of categories which maximally bisected the result and presented the list with a set of +/- buttons.
I.e. you search for Animal and you'd get: Mammal[+/-] Reptile[+/-] Kittens[+/-] Taken with Canon Camera[+/-] Human[+/-]
based on the how close to 50% of the results have the suggested category.
It's not exactly a 'related category', but I thought it was very useful.
I also did a fuzzy text matching search one the category names using a trigram index, so it was always sure to suggest Category:Cats when you searched for Cat, or whatever. (I did this with an ajaxy-search-while you type, it was handy)