Ontological term broker/Old Notes

It allows the annotation software to search the ontologies for which the broker has responsibility for text-based matches. It guarantees that every such text search can be immediately attached to one or more terms from the target ontology, either by (a) identifying extant terms from the ontology which match the give query, or (b) by allowing the query to be turned into a new term request for the ontology maintainer. Term requests will be responded to immediately with a provisional identifier to be used in forming an annotation. The broker provides a protocol by which proposed responses to term requests can be accepted or rejected with feedback. For accepted term request the broker defines a protocol by which the annotation software can later find replacements for these provisional identifiers (when they have been granted) and replace the provisional with the ultimate identifier.

The broker implements a pair of software interfaces, one used by software acting on behalf of the document annotator and one by software acting on behalf of the ontology maintainer. The broker eases the process of looking up existing terms and requesting new terms in an ontology. It does this by acting as a middle-man between the user interfaces seen by the annotation software and the ontology maintainer.

For the annotation software, the broker:
 * answers text queries with ontology terms
 * immediately responds to each query with either an existing term in the ontology, or a provisional identifier for a new term request
 * identifies incomplete or ambiguous metadata in term requests
 * provides a facility and protocol for notification of provisional identifiers that have been remapped to ontology terms
 * allows the annotator to indicate whether requests which have been satisfied by the ontology maintainer have been satisfied acceptably -- that is, whether the new term accurately matches the intent of the original request.

For the ontology maintainer, the broker:
 * assembles and formats total set of queries into a single submission (a spreadsheet, or pre-formatted ontology fragment)
 * allows the ontologist to identify incomplete, incorrect, or already-fulfilled queries in batch (without requiring individual communication with the text annotator)
 * checks for consistency and minimal completeness all queries, so that the ontologist isn't required to hand-correct simple errors.