#22 In my opinion there are two parts to this problem:
1. Opening transposition - detect that the game has transposed into some (unclassified) opening; i.e. that for a (PGN) game database and a live game, that the position on the live board exists in the database
2. Opening classification - classify with a name *which* opening the game has transposed into
I'd be glad to (again) demonstrate the former (using PolyGlot + Stockfish + a 2.2-million game database) on my stream, and I agree the latter is difficult and very time-consuming!
IMO classification is a problem currently better-suited for humans than for computers. For example a human would classify:
1. h4? e5 2. e4 Nf6 3. Nc3 Bb4 4. Nf3 O-O 5. Nxe5 d5
as "that looks like a Ruy Lopez reversed plus 1. h4?", whereas almost any computer program would classify that as "1. h4 is an irregular opening"
Solving the classification problem in any satisfactory way requires an advanced language like Chess Query Language (CQL) combined with (presumably human-generated) classification rules based on what humans believe to be the defining characteristics of openings. Classification is difficult!
http://xkcd.com/720/