A while ago, my partner and freelance copywriter Kate Griffin proposed a challenge method for anyone commenting on a blogpost. It wasn't really intended as a spam trap so much as a test of reading comprehension: it would ensure the commenter acknowledged they'd read and understood some key aspect of the content, to avoid kneejerk misunderstandings like the one which fuelled the recent NPR hoax. But, almost as a side effect, it might catch a lot of spam without resorting to visual CAPTCHAs.
After a few hours' development on her own website, I was able to cobble together a solution for Drupal 6, which we called The Comprehender. It worked fairly well and it was based on a CCK field where the multiple-choice question could be configured. But that, for the time being, was that.
Last week, however, I was trying to think of a way to tackle the growing rate of automated spam on my website. Sure, Mollom is very straightforwardly capturing it; but it's arguably a performance issue (especially given the back-end request/response to Mollom) and certainly a maintenance issue: my site logs fill up with the resulting Mollom reports.
Finally, then, The Comprehender obtained independent existence, on Drupals 6 & 7. You can download this module to your own Drupal site and enable it, if you like. If you then add a field called "field_comprehender" to any content type, and then populate it with "Question?|Answer1|Answer2|Answer3|...|N", then the comment form will not be submittable until the commenter selects answer N from a radio-button list.
It's a slightly trivial thing, really, and it wouldn't take the place of Mollom on a site with complex, determined spam attempts. But, who knows? Maybe it could do what Kate wanted it to do in the first place: very slightly, improve the bottom half of the internet.