A long time ago, my best bud Trav and I found ourselves both grousing at standard methods of presenting information, namely hierarchies that forced people down a certain path. We both wanted something more flexible, that allowed the data to speak for itself, and for the user to access it as they chose, not how some person at the other end arbited.
Well, unbeknownst to ourselves, we were talking faceted classification. Since then, we've both studied the subject a bit, and Trav has now whipped up FacetMap, an exploration of such an organization. Hie thee yonder to consider it.
I'm sure he'll correct me if I'm wrong (it's one of the things he does best), but from what I can tell, FacetMap isn't *all that* different from how Epinions presents its products (click "Wine" on the left, then use the categories on the left side to select further down), nor how Epicurious presents its recipes (though Epicurious only exposes one facet at a time once you click in). Still, I found Trav's site valuable, because he bothers to explain to you what he's doing each step of the way. He also presents the text files which make up the database, demonstrating how durn simple faceted classifications are, technically.
Anyway, enjoy, and please discuss your thoughts here.
11 comments so far. Add a comment.
Previous entry: "SOFT AND CHEWY."
Next entry: "What Software Do You Think In?"
That thing's great! It's such a rarity to see someone build something like this: a learn-by-showing example of a complex subject, with (mostly) real data in it. And you can get through the whole presentation in 15 minutes.
Posted by Andrew @ 02/04/2002 06:42 AM PST [link to this comment]
I think the categories that Trav calls the taxonomy can be seen as facets themselves:
Just thinking out loud here. These are different faces of the element Wine -- or maybe to be more precise, bottles of wine(?). When you think of a diamond and the multiple faces (facets) of it, each face is part of the diamond as a whole. When you take the diamond analogy to describing other objects, each facet should be an attribute that can be shared by each entity you describe, whether they're bottle s of wine, objects of art or whatever. Therefore the facet "Varietal" is described by the these terms: Red Wines, White Wines, etc. because Varietal is a common facet or attribute you can use to describe all bottles of wine in a store. All bottles cannot, howeber, be described via an attribute like "Red Wines".
Does that make sense? This is my understanding of facets. All the discussion of facets lately has been all over the place and this is how I understood their use in print indexes and in Ranganathan's writing.
Posted by Michael Angeles @ 02/04/2002 12:45 PM PST [link to this comment]
Durn. I'm getting a 404.
Posted by Spidra Webster @ 02/04/2002 03:26 PM PST [link to this comment]
Circumvent the 404 by going directly to:
My hosting company for ciaheadquarters.com is down, but the facetmap box is still online. Rrrr.
Posted by Travis Wilson @ 02/04/2002 03:47 PM PST [link to this comment]
I would hate to disappoint Peter by not correcting him, even though he's not strictly wrong --
I like what Epicurious, and now Epinions, has done, but why did they do away with hierarchy? Check out the list of main ingredients on Epicurious -- then imagine a bigger recipe base with a hundred different main ingredients, and you start to wish the ingredient facets could be organized into meat/vegetarian, redmeat/whitemeat/seafood, and so on. Imagine always being confronted by the 355 choices for "Brand" in Epinions' wine selection. It just doesn't scale.
They may just not have had the technology to use hierarchies; I had to develop entirely new set representations from scratch in order to do it. But whatever the reason, it seems that browsing is only going in one of two ways: use a single hierarchy, or use flat arrays of facets... but not the best of both. I want to see that change.
Note to Michael and anyone else interested: you're right, the taxonomy can itself be seen as a facet. In fact, it's the "root facet" of that taxonomy. This is more clear if you look at one of my diagnostic pages -- http://126.96.36.199:8080/facetmap/tSpace.jsp -- a printout of each taxonomy. You can select the root facet (e.g. "all varietals") just as easily as you select any of its child facets. That's actually what happens when you start browsing -- you've selected the root facet in each taxonomy.
And yeah, we do have different definitions of what a "facet" is, though we can both be right because of the root facets in the taxonomy. It does not help that I developed my own understanding of them before reading Ranganathan or any of the peterme discussion from September (which, according to Google, is the definitive work on faceted classification). Facets can be attributes, as you suggest, like "varietal", but I use the word to mean (in programming parlance) an "instance" of the attribute, like "Merlot". I'm curious what word you would use here.
Posted by Travis Wilson @ 02/04/2002 10:08 PM PST [link to this comment]
I haven't heard the term 'facet map' before, but the ability to view different aspects of a hierarchy and view those options that don't exist as you make choices within a taxonomy feels like it was one of the central elements in Andrea Gallagher's "Oxford Express" for LandsEnd...it's a java applet that helps you select dress shirts along the different axes such as cut / color / sleeve / collar / etc. You can still see it here:
Click on the "all shirts" link and then play with the applet if you are interested...she did this back in '98 or so
Posted by Scott Brylow @ 02/04/2002 11:05 PM PST [link to this comment]
My notes, posted at istori/log:
I think FacetMap ends up being similar to Ted Nelson's ZigZag, with facets==ranks and resources==cells. Trav adds what he calls "taxonomy," which I think are your close neighbors in each of two ZigZag dimensions (or something like that).
So, let's see: TouchGraph is a fun way to explore a neighborhood around a node in one dimension of connectivity; FacetMap is a good way to see two dimensions at once; ZigZag navigates arbitrary dimensionality. Wouldn't it be cool to have a smooth way to move between those UIs while browsing the same information space?
As long as I'm wishing, I wish my AudioTron had a ZigZag/FacetMap inteface: skip to another song on this album/by this artist/in this genre, etc.
Posted by Peter Kaminski @ 02/05/2002 08:17 AM PST [link to this comment]
And why shouldn't your AudioTron have a FacetMap interface? They may or may not want to use the model in their software, but you shouldn't have to wait for them. The module I'm working on now will let you turn any collection of files into a facet map on your filesystem. This is pretty easy when you see that the heart of FacetMap is simply the conceptual data model.
In comparison, ZigZag is an interesting and well-conceived system that, I think, tries to do too much. For one thing, and I don't mean to discredit my fellow mad scientists, but I don't see how ZigZag can represent a hierarchy well -- although it claims it does.
More to the point, though, ZigZag is actually a bunch of different functions lumped together, and it would do us well to separate them. It is both a way of modeling data, and a visualization tool for that data. In my mind, a data model is the system you use to connect bits of data to each other. FacetMap, ZigZag, and more traditional methods like hierarchies, lists, and Java classes, are data models. Here's my functionality breakdown, offered for discussion:
- construction/editing tools (client gui)
- visualization (HTML, applet, etc.)
- data model/manipulation (FacetMap, ZigZag, hierarchy tree)
- data (text, XML, RDF, db, etc.)
So, something like TouchGraph is visualization for a hierarchy model. The Oxford Express applet is a brilliant visualization tool for shirt facets -- really, well-presented and way ahead of its time, props to Andrea -- and it proves that a single visualization style is not appropriate for all facet data, as Ted Nelson's ZigZag docs would have you believe. Users don't want a generic interface to their data, they want as much specific context as possible. But that's not new information to the readers of this column.
My intention with FacetMap is to provide the data model as accessibly as possible. (I can't find 'accessibly' in the dictionary, but I'm sure it's in there somewhere...) I want IAs to understand the model, then wrap the model in something that works for their users. The presentation in the demo is by no means the best way to do the visualization. If you have other examples (like the Oxford Express applet), please send em my way!
Posted by Travis Wilson @ 02/06/2002 03:41 PM PST [link to this comment]
Here are two excellent faceted classification links, both blow you away by their usefulness:
Flamenco at berkley:
Aidministrator is an awesome and underadvertized tool. Check out www.aidministrator.nl->Products->Spectacle->Visualization for some intense graph visualization pics. Also, check out this paper http://www.cs.vu.nl/~frankh/postscript/VSW01.pdf
Flamenco is also pretty impressive. The above link seemed to be down for now, but you can see here for a description + links to other cool stuff:
For some of my personal thoughts on the interactions of faceted classification and graph visualization, see http://nooface.com/comments.pl?sid=02/02/04/1830239&threshold=0&commentsort=0&mode=thread&cid=1
Posted by Alex Shapiro @ 02/06/2002 11:17 PM PST [link to this comment]
Facety goodness - indeed!
I think the power of these interfaces is in letting users create 'AND' based joins on the data set one step at a time.
You could get the same result sets returned from a 'traditional' advanced search interface that exposes the fields, but the result set is much less interactive.
It really maximizes the tradeoffs between precision and recall for users by letting them know 'what's nearby' to winnow or expand the results.
As bandwidth increases these interfaces are critical data visualization tools for manipulating results client-side, rather than the call and response of queries via http.
Posted by Lawrence Lipkin @ 02/07/2002 11:42 AM PST [link to this comment]
I like the taxonomy idea since it helps break up heterogeneous collections into more manageable groups. Wine isn't a good example of this, but consumer electronics might be.
Also, introducing a hierarchy can help solve the problem in large collections where resources share some qualities (price, manufacturer) but not all (e.g. varietal).
Anyway, it seems like a fairly useful bastardization of faceted classification.
Posted by Gene @ 02/07/2002 03:17 PM PST [link to this comment]
Add A New Comment: