DJFacet is a pluggable module for the Django web application framework that allows you to navigate the data in your webapp using an approach based on 'facets'. I've already written about DJFacet in the past; now the good news is that I've released a major update to the software, as now there is complete support for hierarchical facets too.
Wikipedia describes faceted search as
"a technique for accessing a collection of information represented using a faceted classification, allowing users to explore by filtering available information. A faceted classification system allows the assignment of multiple classifications to an object, enabling the classifications to be ordered in multiple ways, rather than in a single, pre-determined, taxonomic order".
Although faceted search systems aim at providing search interfaces that go beyond the model of a single, rigid, top-down catalogue for an information space, taxonomical classifications remain always one of the most useful ways to organise a dataset, as they implicitly provide support for 'zoom in' and 'zoom out' search operations. A good compromise then is to allow the simultaneous selection of search filters coming from different taxonomical schemas - or mixing them with non-taxonomical ones.
Version 0.9.7 of Djfacet, among several other things, includes full support for displaying and navigating through hierarchical facets as long as they are expressed in the DB via django-MPTT. A demo is available here (just browse into the 'religion' facet to see what I mean).
There are still a few things to sort out before reaching version 1.0 (including updating the online docs), but it's getting closer - stay tuned!
Cite this blog post: