Using poppler, examine the file and read a "copy" as text into a database. Make the annotations. Then again using poppler, read the annotated file. Diff to find the Object ID, make note in the database. Manipulate the crap out of the file. Add annotations, delete annotations, edit annotations. As long as the annotation still exists with its unique identifier, I can pull the content out of the pdf via a python script and supply okular with a command line argument to open the file at the correct location.
It would be simpler if the pdf reader supplied the Object Identifier as part of what is visible about the annotation.
Chris