Is there a tool already extant that will "coalesce" a set of snapshots?

Here's the thing, I have a Usenet news spool (using LeafNode), in /news,
and weekly I run the purge script, but before I purge I take a snapshot,
the idea being that when I get a roundtuit I will whip up a database to
archive the messages, and a PHP interface to search them, and an NNTP
front-end, and so on...

Anyway, I have this sort of thing:
/news/.zfs/snap_20070505
/news/.zfs/snap_20070512
...
/news/.zfs/snap_20080528
and what I would like to do is produce a directory that contains what is
in the snapshots (and skips duplicates, because there will be
duplicates), and then deletes the snapshots.

Now, I could write a program to do it, but I thought I'd check first if
I'd missed something in the documentation, or if someone had already
done it.