ihop ( 1 ) ( ihop literature server , http://www.ihop.net.org ) allows researchers to explore a network of gene and protein interactions by directly navigating the pool of published scientific literature . rather than providing long lists of entire abstracts upon keyword searches ,
ihop selectively retrieves information that is specific to genes and proteins and summarizes their interactions and functions .
the system adds value by filtering and ranking extracted sentences according to significance , impact factor , date of publication and syntax .
ihop web content is pre - compiled and generated in a multi - step process to annotate biomedical texts with gene and protein names , chemical compounds and mesh terms .
this annotation task is computationally expensive because of the sheer number of entities , but more importantly , hindered by a high semantic overloading of abbreviations and synonyms in biomedicine .
the continuous development and optimization of heuristics and machine learning algorithms to improve entity detection and synonym disambiguation is therefore a central effort in the maintenance of ihop .
given the complexity and effort that goes into the development and maintenance of a text - mining pipeline , it makes sense to build upon the existing infrastructure of ihop rather than reinventing the wheel .
already numerous online resources are linking to ihop and novel tools are emerging which are based on the ihop resource , e.g. ihoperator ( 2 ) .
the ihop web service api has already been tested in selected projects over the last 2 years and is made publicly available now .
although on any biocomputing facility apis are not as visible to the end user , they are very important for the different omics , which usually depend on powerful data set analysis . those powerful analysis run distributed workflows , which have to semantically integrate the results from diverse biocomputing facilities and data sources .
other large - scale biocomputing facilities provide environments such as ncbi entrez ( 3 ) ( entrez cgi services , http://www.ncbi.nlm.nih.gov/entrez/query/static/eutils_help.html ; entrez soap services , http://www.ncbi.nlm.nih.gov/entrez/query/static/esoap_help.html ) or ebi ws ( 4 ) ( ebi soap services , http://www.ebi.ac.uk/tools/webservices/ ) .
to make the ihop programmatic interface remotely accessible and integrable on workflows in a way that is neutral to programming languages and vendor independent , we decided to implement the public api in the form of web services ( 5 ) .
three popular web service api models have been implemented for ihop : the rest model ( 6 ) ( wikipedia description of rest , http://en.wikipedia.org/wiki/representational_state_transfer ) , which the das ( 7 ) protocol follows ; soap + wsdl , which is based on wsdl document description and uses soap messages and xml for messaging ; biomoby ( 8) , which is focused on bioinformatic workflow building ( 9 ) . table 1 contains a brief description of these api models .
all three api implementations are based on a common internal library and common xml schemas to facilitate maintenance and future developments .
moby implementation required additional efforts to integrate ihop web services into the moby ontology . 

table 1.brief description of web services api models , used on ihop web servicesweb services api modelsdescriptionrestthe representational state transfer paradigm is based on the http protocol .
it is an improvement over cgi sub - protocol , used by web browsers to send the data in the html formularies .
the main difference is on the provided results : a rest service is usually restricted to answer with an xml document with all the information ; a cgi service can return any document type ( html , gif , pdf , etc . ) .
there are also differences between cgi and rest is the way to send the queries : a key - value model is used to send the query data to the cgi service ; rest implementations send an xml document with the whole information .
some implementations following rest paradigm ( e.g. das and ihop cgi - xml ) , follow the cgi sub - protocol for the queries , and answer an xml document as the result.soap+wsdlthe simple object access protocol web services paradigm tries to isolate the used communications protocol from the message representation by using xml formatted messages and different message exchange patterns .
soap messages have an envelope and a body , so complex features and message exchange patterns can be implemented , nevertheless the used communications protocol . although there are soap client and server libraries for ftp , smtp , pop3 and other protocols , the most used communication protocol is http . 
wsdl documents are usually used to describe soap services : their inputs and outputs , their xml data types , the data encoding and the message patterns to use . although any soap service can be used without the aid of a wsdl document which describes the service , they are a standard way to distribute that information.biomobybiomoby web services architecture has three main roles : moby central , moby clients and moby services .
moby central is the repository of the ontologies used by the architecture : namespace ontology , which is used to label biological references so they can be unambiguously identified ; object ontology , which defines the object types which can be consumed and produced by the services ; service type ontology , which contains the classification of service types used to label the different services ; and the service ontology , which contains the description of all the registered moby services .
one of the features which distinguishes biomoby architecture from soap protocol is that many queries can be clustered on a single message when they are sent to a service .
although biomoby architecture has its own message formats and query protocols , soap infrastructure is used to wrap moby messages .
biomoby community is now discussing the need to drop soap ( due its overhead ) in favour of lighter rest paradigm .
brief description of web services api models , used on ihop web services the schema design was driven by the ihop functionalities that are directly useful for bioinformatical workflows ( figures 1 and 2 ) .
table 2 contains a brief description of these functionalities , with their inputs and outputs . 

these functionalities and the web services which implement them are focused on automation , so almost all functionalities have more than one input type .
so , depending on the api model , some of these functionalities have been implemented more than once , based on each one of the possible input types.functionalityinputsresultsgetrelatedsymbolsfree text ( e.g. p53 , breast cancer or brca2 ) , and an optional ncbi taxid.a list of the possible ihop identified gene or protein symbols , related to the input.getsymbolsfromreferencea biological database reference ( e.g. uniprot accession , ncbi gene).the ihop identified gene or protein symbol related to the input.guesssymbolidfromsymboltextfree text , and an optional ncbi taxid.the ihop identified gene or protein symbol related to the input , chosen by nave heuristics.guesssymbolidfromreferencea biological database referencethe ihop identified gene or protein symbol related to the input.getsymbolinfofree text , and an optional ncbi taxid , or an ihop gene or protein symbol id , or a biological database reference.the information available at the ihop server about the ihop identified gene or protein related to the input ( name , organism , database references , synonyms , etc . ) .
when free text is used , nave heuristics have been used to choose the ihop identified gene.getsymboldefinitionsfree text , and an optional ncbi taxid , or an ihop gene or protein symbol id , or a biological database reference.the abstract sentences available at the ihop server which uniquely define the ihop identified gene or protein related to the input , along with their score , ihop abstract i d , journal impact , etc .
when free text is used , nave heuristics have been used to choose the ihop symbol.getsymbolinteractionsfree text , and an optional ncbi taxid , or an ihop gene or protein symbol id , or a biological database reference.the abstract sentences available at the ihop server which show evidences about interactions between the ihop identified gene or protein symbol related to the input and other ihop symbols , along with their score , ihop abstract i d , journal impact , etc .
when free text is used , nave heuristics have been used to choose the ihop symbol.getpubmeda pubmed pmid , or and ihop abstract id.ihop analysed and enriched pubmed abstract associated to the input .
all the abstract sentences are annotated , focusing on remarkable sentence elements ( verbs , nouns , adjectives , gene or protein symbols , etc . ) . 

each box is a web service , and double boxes are the recommended starting points for workflows .
green links represent bi - directional flow , and black arrowed blue lines mean uni - directional flow .
grey thick lines illustrate bidirectional external access and orange dashed lines are accesses to the ihop core ( http://www.ihop-net.org/ ) . 

figure 2.this is a taverna workflow diagram which takes as input some free text ( e.g.  breast cancer ) .
the workflow fetches the gene and protein symbols related to the input free text , and it returns those symbols , their synonyms and all the abstracts with sentences where the symbols are showing interaction evidences with other protein or gene symbols . 

the ihop widget shows sentences with evidences of some relationship between p53 and other genes .
these functionalities and the web services which implement them are focused on automation , so almost all functionalities have more than one input type .
so , depending on the api model , some of these functionalities have been implemented more than once , based on each one of the possible input types .
each box is a web service , and double boxes are the recommended starting points for workflows .
green links represent bi - directional flow , and black arrowed blue lines mean uni - directional flow .
grey thick lines illustrate bidirectional external access and orange dashed lines are accesses to the ihop core ( http://www.ihop-net.org/ ) .
this is a taverna workflow diagram which takes as input some free text ( e.g.  breast cancer ) .
the workflow fetches the gene and protein symbols related to the input free text , and it returns those symbols , their synonyms and all the abstracts with sentences where the symbols are showing interaction evidences with other protein or gene symbols .
the ihop widget shows sentences with evidences of some relationship between p53 and other genes . a key issue in the development was the design of an xml schema rich enough to describe and integrate the valuable information that is already accessible through the ihop user interface .
each sentence also provides information about the abstract , journal and the journal impact factor .
basic symbol information is provided by getsymbolinfo , and it can also be found on getsymboldefinitions and getsymbolinteractions results .
the designed xml schema , along with its documentation , is available at the ihop web services site . usually , gene symbol disambiguation is a hard task , made in the last term by the user , and its automation is an essential part in a useful workflow .
using specific heuristics for these web services , we have created an additional functionality called guesssymbolidfromsymboltext , which guesses the nearest unambiguous ihop gene symbol i d from free text input and an optional target organism .
workflow writers are not tied to this service and its heuristics , because anyone can create their own heuristics about symbol selection using getrelatedsymbols output . under the rest ( representational state transfer )
special return cases have been modelled using standard http codes : when there is no answer for a query in a cgi - xml service , a 404 not found error is returned ; if an internal error happens , a 500 internal server error is used ; if no input parameter is specified , a 400 bad request error is returned . for soap ( simple object access protocol )
, we created for each functionality variations of the same web service , to simplify workflow building .
soap services use the rpc / encoded wsdl style , so they can be used from perl programs with any soap::lite version .
critical errors ( no input parameter , internal server error ) are reported by the ihop soap services using the standard soap fault mechanism .
when there is no answer to return , the services return a specific xml structure ( ihopsoapnotfound ) designed for these soap services , instead of using soap fault mechanism .
this is important , because some workflow enactment tools ( like taverna ) stop the whole workflow when a soap service returns a soap fault , an undesirable effect when a service invocation has not failed . in the design of biomoby services it was necessary to comply with the common object ontology on moby central and the portfolio of services that are using this ontology .
although the main ihop services take the same parameters as input and use the same xml schema as cgi - xml and soap for their outputs , the true power of ihop moby service are the additional translation services .
these services take as input ihop xml structures generated by the ihop services , and translate the content into a collection of usable moby objects .
this way , other moby services which use the same ontology can be chained to this output .
cgi - xml services were tested using both web browsers and command - line http retrieval tools ( like wget ) .
we tested and cross validated the functionality of ihop soap web services with unit tests based on the perl soap::lite library and in the context of taverna ( 10,11 ) , a workflow enactment tool extensively used by the bioinformatics community .
we found that soap::lite 0.60 had a better behaviour than former versions and some new intermediate ones ( last version is 0.69 ) .
older versions , like taverna 1.3.1 , also work , but they have many limitations related to biomoby services .
a proof for the functionality , completeness and usefulness of the ihop web service apis are a number of collaborative projects that make programmatic use of ihop content .
table 3 contains a brief list of the projects where ihop web services have been used , and figure 3 shows a cargo ( cases et al . , submitted to nar - web 2007 ) widget using information provided by ihop cgi - xml services . 

table 3.projects where ihop web services have been ( or are being ) usedprojectdescriptionurl / referenceorielthe cgi - xml api was developed in the context of this project , and it was integrated with other biological information resources.http://www.oriel.org/diamondsthe ihop soap interface was developed and applied to the dynamic extraction of proteins related with cell cycle in various genomes with special emphasis in arabidopsis proteins .
this information was used as input for the modelling approaches developed by the partners of this project.http://www.sbcellcycle.org/ecidthese projects and their tools ( e.g. enfin spindle proteins tool , cargo framework ) are currently using these ihop web service apis in different biological and technical contexts.http://www.pdg.cnb.uam.es/ecid/combiohttp://somosierra.cnb.uam.es/servers/combio/enfin ( enabling systems biology ) network of excellencehttp://www.enfin.org / http://www.pdg.cnb.uam.es / enfin / index_spindle.phpcargohttp://cargo.bioinfo.cnio.es / inbbiomoby ihop web services were funded by the spanish national bioinformatics institute ( inb ) , and published on the inb specific moby repository , integrated in the inb curated bioinformatics object ontology .
the services will also be made available in the central moby repository of canada.http://www.inab.org/ projects where ihop web services have been ( or are being ) used in the context of the use of ihop as a web service it is necessary to be aware of the current limitations of biological text mining .
biocreative ( 12 ) and other blind community assessments ( 13 ) have clearly shown that name identification and in particular matching gene / name in the literature with the corresponding database entries is a hard problem and the best systems are still far from perfect ( 14 ) .
our own evaluation of ihop in 2005 ( 15 ) shows that in model organisms the average precision is around 94% and the recall around 87% .
even if the inclusion of additional refinements and dictionaries is producing continuous progress the poor adhesion of the community to naming standards ( 16 ) will continue creating problems in this area
. other obvious limitations of ihop and all other current text mining systems are imposed by the limited availability of full text sources [ main reason for the common use of abstract collections ( 17 ) ] and the still limited possibilities to incorporate effective natural processing techniques for the extraction of additional features from biomedical text .
a more detailed description of the status of this fast developing field can be found in ( 1820 ) . despite these general limitations in the field ,
the ihop web interface has become popular among biologists searching for information about the function and relation of the genes and proteins of their interest . to our knowledge
, ihop is the only large - scale text mining resource in biology that is offered as an open web service , we therefore , expect that the novel possibilities described in this work will contribute to the use of ihop as part of numerous high - throughput analysis environments .
information relevant to developers , like detailed documentation of the ihop web service xml file format , the urls required to invoke the rest api , the wsdl document describing soap services and usage examples in perl and taverna are available at http://www.ihop - net.org / unipub / ihop / webservices/.
 ihop provides fast , accurate , comprehensive , and up - to - date summary information on more than 80  000 biological molecules by automatically extracting key sentences from millions of pubmed documents . 
 its intuitive user interface and navigation scheme have made ihop extremely successful among biologists , counting more than 500  000 visits per month ( ihop access statistics : http://www.ihop-net.org/unipub/ihop/info/logs/ ) . 
 here we describe a public programmatic api that enables the integration of main ihop functionalities in bioinformatic programs and workflows . 
INTRODUCTION
METHODS
RESULTS AND DISCUSSION
AVAILABILITY