I'm working on a new interface for an existing set of data. The goal is to allow users to find & explore "activities". There are currently about 1500 of these activities in the system and they all share a number of relevant properties that I am trying to expose through a faceted search / navigation interface.
I have arrived at a set of facets that are shared by all the data, however not all of the data is properly classified for each facet. For some of the items in the data set, very little metadata is known. The properties still apply to those items, but their value is unknown. This is true for about half of the items in the database (and unfortunately, will remain true for new items being added in the future). I am unable to improve the quality of the data, so I unfortunately have to find a way to deal gracefully with this reality.
To illustrate this with an example: I have the following facets, Region and Topic:
All of the items are from either the region Europe, Asia-Pac or USA, but for only about half of items the region is known. This leaves me with a bit of a "precision vs recall" problem, which currently has me erring on the side of precision: filtering by the region Europe shows only the 203 items which have been positively tagged with that region, resulting in other items for which the region is unknown (so Europe or other) to be left out.
I'm trying to figure out the best way to deal with this missing metadata. It looks like Amazon, eBay and others are able to cope with poor classification of their data by relying on free text search first and using facets as refinement only, but unfortunately this is not possible in my situation.
In short, how do I:
- Disclose / communicate that filters may result in false negatives being filtered out.
- Keep the search filters as useful as possible, despite the poor data quality.
In a first attempt to address this, I have come up with the following:
This discloses that the region, topic etc. are not known for all items, but I'm not convinced that these search filters are actually useful. Is there a better way to deal with this problem?