Hi.
First off, excuse my temerity.
That out of the way, in reply to the two last posts and only the two last posts:
Have each registered user enter a rating and where it is from if she knows it, or "unknown" if she is not.
Convert this to an internal linear scale (like ELO or the old -100 to 100; anything where small adjustments could be made). This mapping could be fashioned by a dozen people here that are certain of their rank in various forms (Euro, KGS, DGS, IGS, AGA, Japan, etc) and thus fashioning a crude linear scale. The entry-point shouldn't matter that much in the long run anyway.
Adjust both user and problem rating slightly after attempts.
E.g. a 1 kyu attempts a 1 dan problem:
She succeeds: her rating is adjusted up by a tiny fraction, and the problem's rating is adjusted down by a tiny fraction (this possibly based on number of rated attempts).
She fails: rating is adjusted down by an even tinier (approaching the infinitesimal as the difference between the user's and the problem's rating increases) amount. (This is necessary, otherwise a user could simply attempt only problems above their level and never decrease.) Problem is likewise adjusted up by a mote. (This is also necessary, as most of a problem's valiant challengers will be slightly below that problem's level because of this thing called "ambition".)
Likewise for a 1 dan user and a 1 kyu problem, only reversed.
Where the user and problem differes by more than, say, 5 stones (converted to the linear scale), it does not affect either rating.
Users with "unknown" could get a rating after, say, they have completed a run of 20 random problems of varied difficulty, simply interpolating their rating by what they solved...
OR all "unknown" users could start out at a nominal 0.00 (or whatever the system-wide average is) and one's adjustment after fail/success is linear with how many rated problems one has completed. If 10, then the adjustment is severe, if 500, then the adjustment is itsy-bitsy teensy-weensy. (But if this, then there must be a minimum, so that after, say, 500, the adjustments do not decrease anymore.)
NB: there should be two different ratings associated which each problem, one for "normal run" and one for "time trial". I.e. problems that require a lot of reading will be rated higher when it requires to be solved quickly because the stronger player's experience allows him to forego or speed up the reading, but with unlimited time stubborn double-digit kyus might also adamantly work their way to the solution.
OR just use time trial results to adjust rating, period. (Because some users might solve problems fast even with a logical search set.) Actually, I'm in favor of this, but then problems' ratings might be found too low for the stubborn time-employing thinkers' tastes...
On worry: users have no reason to "cheat" or sabotage and enter idiotic ratings. In fact, you could add features such as "get problems suitable for me" etc. which would make it even more pointless to do such a thing.
Site-wide ratings should adjust dynamically for problems as well as users... In theory.
Finally, an idea I consider solid: hide users' goproblem.com rank from them! Then there can be no sense of competition, and it might cull people's obsession with their personal position in the big graph of go players... Besides, users can get a rank graph kick on ten other go playing sites like KGS and DGS, so what's the point. "Get problems suitable for me" will still work fine, so there is no reason to complain, and the problem's ratings might also be hidden in favor of "problems way above my level", "problems below my level" etc difficulty-levels...
This would be in the name of convenience and service, eroding the obsession over relative strength.
Anyway, just some thoughts. I know, it sounds like a complete server-side rewrite, and I, for one, would be willing to do whatever I can to help with programming and such. I have some experience with such things from various programming languages (though not Java yet), so anything I can do... This is such a great site, and I love it.
{Posted by tristesse}