shared seem to be binary in nature, simply to include articles in virtual lists of articles.
Strn has a couple of unrelated but relevant features. The virtual newsgroups, as discussed, are a lot more powerful than you'd think -- in fact, they could be ideal for the Ratings system. Virtual newsgroups can be constructed from arbitrary lists of message-id's... the intent, I think, was to use nngrep and such to supply them, but you could just as easily use the result of post-processing your ratings-list to generate them. (Virtual newsgroups can be constructed from a number of sources, actually, both "live" and with preprocessing.) On *top* of that (ie. at the reader's side of the system, regardless of whether the group is real or virtual) you have a scoring system, which is based on applying regular expression patterns to messages, and producing scores. (For example, I read comp.sys.palmtops because I have an hp100, so I have a positive score for subject:.*hp100, but I'm also interested in new things that might show up there, but I know I *don't* care about the Tandy Zoomer, so /zoomer/ gets a negative score.) Scores are cumulative on an article. Since strn is built on trn, if a score gets you to read an article mid-thread, you can easily move around in the 2d representation of the thread, even if those items didn't score as well.
agent, but it seems not to have the social goals that the ratings proposal I have in mind does.
I think it has the flexibility to implement most, if not all, of what you want your ratings system to provide. (Pedantic point -- would it not be more correct to say that *you* have social goals, not the rating system -- the system is merely your tool...) strn works quite will with a local news spool, and is supposed to work with an XOVER database (or whatever the other equivalent was) if you're using NNTP. _Mark_