title: Chess position representation for non-playing software
body: <p>I'm looking for an efficient way to represent a chess position.
  my "efficiency" criteria are these:</p>
  
  <ol>
  <li>requires as little memory as possible</li>
  <li>given a position representation and a legal move (represented in the usual way, e.g. as in pgn format) it is easy to compute the resulting poisition representation. that is, the function   new_position = compute_position(old_position, move) can be (or is already) implemented in a very efficient way (from a run-time perspective).</li>
  <li>it is easy to compare two positions to see if they are identical</li>
  </ol>
  
  <p>The reason I try to deviate from standard representations is that my requirements are slightly different. Specifically, I am not trying to develop a chess engine, so move generation and related issues are not required. I only need to follow some existing games, and represent certain positions, and store them in a database.</p>
  
  <p>If there is a software package that that already gives this functionality, that would be great. if you have ideas on how to do it, I'd be happy to develop it :)</p>
  
  <p>Thanks...</p>