GeneWeaver : a novel genome annotation system based on software agents