During a recent slog up treadmill hill I read through Wm. Denton’s How to Make a Faceted Classification and Put It on the Web.
I feel better now. After my grad school deja vu experience with Simplified Facet Classification I was despairing of ever being able to bring facets to the masses. Or in my case to intelligent but not LIS qualified engineers and other tech types.
You’ll still need some background in classification to understand the details but it’s a great overview that is understandable by people with some background knowledge modeling. Most web and software dev types have, often unknowingly, done a fair amount of informal knowledge modeling.
Denton’s straight forward style makes his discussion clear enough that, barring melt down
over the technicalities of the entity/instance analysis and facet creation in steps 2 and 3
you can hand this essay out as background reading.
Section 1: When to Make a Faceted Classification gives a nice overview of where faceted classification systems fits into the field of classification and organizing schemes in general. Denton provides useful questions to ask when considering faceted classification. It’s refreshing to see a consideration of facets that also discusses when facets are not the best answer to your questions.
In the second section Denton divides the actual work of creating the classification system (facets and foci) into 7 steps. Beginning with Domain Collection and ending with Revision, Testing, and Maintenance. (Love to see that word maintenance laid out in black on white!) It’s a simple methodology that will get you through the process and give you a workable system at the end of the day.
What follows are a few notes on his description of the process.
Starting with what I believe is the missing first step.
Defining Your Domain
Step 0: Define the Domain
You must have a solid and agreed on definition of the subject and scope of the domain
before you start. We are all aware that assuming that what’s already in the system is the
limit of the domain that needs to be considered but also be careful that you do not make
the assumption that everything dealt with by your website or software should be included in
the domain for which you are building the classification.
Building the Faceted Classification
The next five steps make up the building the facets and foci part of the process.
Step 1: Domain Collection.
Step 2: Entity Listing.
Step 3: Facet Creation.
Note that you’ll have to do quite a bit of iterating over steps 1, 2, and 3. The process of collecting, analyzing, and defining always brings to light bits and pieces that were missed in the first (latest) go ’round. It’s just a fact of life, so plan for it.
Denton does not discuss the techniques of analysis that can be used to get from the entity (things) list to the facets (characteristics) list. This sort of analysis is complex and domain dependent and IMHO the most common point of break down for many attempts. I’m always on the look out for material that describes these techniques, as well as “real” world examples.
Once you have a system of facets and foci you have to decide on how to arrange its pieces:
Step 4: Facet Arrangement
I find Denton’s explanation of this step not entirely clear. You may have to explain that
you are now working with both the foci (terms) and facets. The end result of this step will
be a list of facets and and arrangement of the foci within each facet. You will definitely
have to reiterate that the foci within each facet are arranged in a way that best reflects
the subject of the individual facet. Once again — the things inside one facet don’t have to
be arranged in the same way as the things inside another facet. (Can you tell that I’ve had
trouble with getting this across? Database jockeys are the worst. Facets and foci do not
map well onto tables, fields, and joins.)
Step 5: Citation Order
Citation order is of less importance in an electronic system than it was in the paper
systems in use when faceted classification was first invented. Though you may find yourself
in a situation in which you aren’t going to be able to take full advantage of the
flexibility of a computer based system to mix and match your facets for technical or budgetary reasons. No matter how flexible your system is you are going to have to decide on a default display order and behavior so don’t skip this step entirely but don’t allow anyone to get hung up on it either.
Apply the Faceted Classification
Step 6: Classification
And now we get to the whole point. Applying the classification system to the stuff. And
it’s about as simple as Denton makes it sound. Sometimes…
Before handing this task off to the nearest convenient, unoccupied,warm body take a clear
eyed look at how many of your facets include terms (foci) that will require judgment calls
to get things labeled properly. Who’s best qualified to make these judgment calls in a way
that will serve your -users-?
Checking it twice, Getting it on the road, and Keeping it running
Step 7: Revision, Testing, and Maintenance.
Note that you have been doing iterative testing and revision through out the creation of
the system. If you’ve gotten here without having to rethink or redo any part of your system
you are one of: working in a very limited well-know domain, very lucky, not paying
Actually only revision and testing should be included in step 7. Maintenance should be step
8. Any classification system that doesn’t include maintenance as separate, on-going phase
is bound to suffer ROT.
The final section: How to Put the Classification on the Web tackles the question of how to use your new faceted classification scheme to help your users navigate the stuff. I’ll be discussing Denton’s helpful suggestions in another essay.
If I were handing this out ’round the table in a conference room packed with devs and coders I’d leave out the third section titled: “How to store the faceted system in a computer”. The technical Ways, Whys, and Wherefore’s of storing and accessing metadata such as a faceted classification system go far beyond what is covered by Denton’s couple of pages of X(F)ML and SQL examples. It never pays to drop a shallow solution to a problem into a room of people who are trained to take any problem laid before them and debate the best way to do it.