Semantic resources project/PRO/Broker Implementation/Extra Broker Writing

Ontology User
We have identified several kinds of ontology user. Understanding the different types of user, and the manner in which they use ontologies, can help us understand the different requirements for both the interface and the implementation of a software ontology broker.

Knowledge Engineer
The knowledge engineer uses the broker to as an ontology-authoring tool. She wants to represent a portion of her expert knowledge as completely as possible, matching to existing terms where possible and submitting new terms everywhere else.

The broker should:
 * provide reviewable (OBO) output
 * check for consistency of representation against ontology
 * allow submission of new "subsidiary" terms (i.e. "exon", "site", "modified residue," etc.)
 * allow submission of new "primary" terms ("protein", "isoform")
 * provide a catalog of existing primary and subsidiary terms for review

An example of the knowledge engineer is our work with APP and (now) with Tau, either a scientist (such as Gwen) or an informed reader of the literature.

The knowledge engineer uses the broker by
 * uploading created catalogs of subsidiary and primary part terms
 * reviewing matches of submitted terms against existing ontology terms
 * reviewing inconsistent submissions (and re-submitting revised terms where necessary)
 * examine complete catalog of existing+submitted terms.



Role Requirements

 * Broker should provide a simple web-interface
 * Request fulfillment from ontological text (i.e. requests via OBO or OWL)
 * a "request" from the user may result in multiple terms being created (protein, exon, and sites)
 * broker must be able to communicate multiple term requests in response to a single request from user.
 * Broker should require provenance from the user:
 * Uniprot, Genbank, or other database identifiers

Curator
The curator is a user role which involves intermediary software (like the text annotator) but which also requires ontologically-detailed requests (like the knowledge engineer role). In this context, a "curator" is a user involved in the large-scale, detailed annotation of a database or collection of similarly-formatted records. Curation of these records requires linking them to controlled terms from the ontology broker. An example of this task is the extraction of protein and protein fragment terms to represent the specificity of antibodies in a text annotation database.

The curator finds a string, or other indicator, in the resource she is annotating. For example, she finds "human Tau R5H". She recognizes this to be a "human tau" protein, subclass of "tau," with the sequence variant R5H (histidine at position 5, which would normally carry an arginine.)

The curator:
 * 1) Asks the broker for terms "human tau" and part "R5H"
 * 2) If the broker does not recognize either term, it allows the curator to submit provisional term requests for either one.
 * 3) The curator then requests a new term defined by the intersection of these terms -- "human tau" and "has_part R5H".
 * 4) the broker responds with an existing ontology term ID (if such a term exists), or with a provisional nonce ID otherwise.
 * 5) The curator later returns to the broker, queries the provisional IDs she was granted, and replaces them with "real" IDs where available -
 * 6) or submits additional information for term requests, if the original request contained insufficient information to be filled.



Role Requirements

 * Broker provides HTTP interface, communicating with XML
 * Single "structured" requests
 * (ex. "first a protein, then an exon part, then a site...")