BACKGROUND
with the tremendous growth of the world wide web, search engines became key tools to find documents.
search engines retrieve documents for a user's keywords from a large index and rank them by various criteria.
while such keyword-based search is fast and powerful to retrieve single documents, it is far from the vision of answering a user's questions by "understanding" the user's query and answers in the documents as put forward already in the late 1960s  <cit> .
consider e.g.
a biomedical researcher, who might ask questions such as the following: which model organisms are used to study the fgf <dig> protein?
which processes are osteoclasts involved in?
what are common histone modifications?
which diseases are associated with wnt signaling?
which functions does rag c have?
which disease can be linked to fever, anterior mediastinal mass, and central necrosis?
what is the role of prnp in mad cow disease?
the web holds answers to these questions, but classical keyword-based search is not suitable to answer them, since the keywords are required to appear literally in text.
however, documents do contain statements such as e.g.
"wnt signalling is linked to cancer" or "we studied fgf <dig> expression in zebrafish development".
if there is background knowledge that cancer is a disease and that zebrafish is a model organism, then the above questions can be answered.
the use of such knowledge is at the heart of the semantic web, which promotes the use of formal statements and reasoning to deliver advanced services not available on the web now  <cit> .
to facilitate machine-readability and knowledge processing, a set of standards, query languages, and the semantic stack was proposed by the world wide web consortium .
the stack comprises at the base unique identifiers and xml as common markup language.
on top of xml, it defines the resource description framework  to capture subject-predicate-object triples.
furthermore, there is the modelling language rdf schema  and the query language sparql.
the basic class definitions and triples of rdf are extended at the next level by the web ontology language , which provides description logic as modelling language and by a rule layer  <cit> .
besides the expressiveness of owl, mark up for vocabularies and meta-data emerged such as simple knowledge organisation systems   <cit> , dublin core  <cit> , friend of a friend   <cit>  and the semantically-interlinked online communities project   <cit> .
additionally, there are formats to embed semantic annotations within web documents, such as embedded rdf , microformats  <cit>  or resource description framework in attributes   <cit> .
all of the above standards serve the need to formally represent knowledge and facilitate reasoning over this knowledge.
they require explicit statements of knowledge.
as a consequence, the amount of such structured data is still small in comparison to the unstructured data.
thus, to support semantic search there are essentially two approaches: those, searching structured documents and reasoning over them and those, searching unstructured documents and extracting knowledge and reasoning over it.
the knowledge extraction step of the latter uses combinations of natural language processing, information retrieval, text-mining, and ontologies for the knowledge extraction.
as mentioned, the above systems are limited by the availability of structured documents, a problem addressed by approaches such as the semantic media wiki  <cit>  and large efforts such as freebase  <cit> , which provides an environment to author formal statements.
the second class of tools works on unstructured text and therefore does not suffer from this limit.
the systems can be distinguished by the document source they work on , the use of background knowledge in the form of ontologies, the use of text-mining techniques such as stemming, concept identification, deep/shallow parsing.
hakia, start  <cit> , ask.com, brainboost , answerbus  <cit> , cuil  <cit> , clusty  <cit> , and carrot  <cit>  are engines that work on web documents.
hakia, start and answerbus use natural language processing to understand documents, while cuil, clusty and carrot cluster search results and aim to label clusters with phrases, which are offered as related queries.
cuil, clusty and carrot are not semantic search engines in a strict sense, since these phrases are not part of an ontology or vocabulary.
however, they do have the benefit of being generally applicable and cuil offers definitions for phrases where available.
ask.com uses its expertrank, an algorithm for computing query-specific communities and ranking in real-time, to identify relevant pages  <cit> .
they include structured knowledge to generate answers.
brainboost is a meta-search engine.
it uses the proprietary answerrank algorithm applying machine learning and natural language processing.
it ranks answers extracted from the top websites.
wikipedia is a valuable resource to answer questions and hence some engines are specifically applied to it.
powerset applies e.g.
natural language processing to wiki in a similar manner to hakia.
qualim  <cit>  uses a pattern based approach for sentence analysis.
semantic type checking for answers and a fallback mechanism with web search is implemented in qualim.
the above tools are intended to be general and as a result they generally do not cover the biomedical domain well.
searching for example for a protein such as fgf <dig>  powerset and hakia offer information on the protein, but are not able to find zebrafish as a model organism.
engines such as askmedline, eagli  <cit> , gopubmed  <cit> , clustermed, ihop  <cit> , ebimed  <cit> , xplormed  <cit> , textpresso  <cit>  and chilibot  <cit>  address this by processing biomedical literature in full text  or abstracts as available in the pubmed literature database.
with a focused domain, these engines can use background knowledge.
gopubmed and ebimed use e.g.
the geneontology and the medical subject headings, mesh; xplormed filters by eight mesh categories and extracts topic keywords co-occurrences; chilibot extracts relations and generates hypotheses; ihop uses genes and proteins as hyperlinks between sentences and abstracts; eagli and askmedline process questions as input for the search.
finally, besides all of the automated approaches, google, yahoo!
and microsoft use humans to answer questions in their services google answers, yahoo!
answers and msn live search qna.
closely related to semantic search, is semantic hyperlinking as implemented in the conceptual open hypermedia service .
cohse annotates a given web page with concepts and offers services based on the identified concepts  <cit> .
none of the above systems combines the simplicity of keyword search on the vast amounts of web documents with the use of biomedical background knowledge to filter large keyword results with biomedical ontologies.
here, we address this by introducing the goweb search engine.
goweb issues queries to yahoo and indexes the snippets semantically with ontology terms.
these are then offered to filter results by concepts.
in order to demonstrate the power of this approach in question answering, we evaluate goweb on three benchmarks with questions on gene/function, symptom/disease, and protein/disease relationships and compare it to existing solutions.
methods
goweb is an internet search engine based on ontological background knowledge.
it helps to filter potentially long lists of search results according to the categories provided by the geneontology   <cit>  and the medical subject headings .
with goweb one can use the gopubmed  <cit>  features together with the wide range of information sources available in the internet.
it offers an efficient search and result set filtering mechanism, highlighting and semi-automatic question answering with the ontological background knowledge.
to facilitate the easy usage of goweb, the website is structured in three panels.
please consider figure  <dig>  a screen shot of the goweb web page.
the left panel contains the background knowledge and other retrieved meta-data.
for quicker navigation the panel is organized in the four categories what, who, where, when .
the top-right panel holds the query field .
in the third panel below the input field, the actual search results are presented .
the semantic filters of goweb are presented in the  <dig> w panel.
the what category contains the result tree for the ontological background knowledge.
it uses a tree representation for relations between the ontology concepts of background knowledge.
in this way a concept in the tree represents the concept itself and its children.
thus, allowing the user to select relevant concepts with one click.
the who panel contains filters related to persons, companies or institutions.
in the where panel there are filters related to locations, such as cities, countries and similar.
the when category assists with time related filters, e.g.
a date.
algorithm
the search is executed by a traditional keyword based search service.
we use yahoo!
search boss service  <cit> .
the result of a submitted search is a list of textual summaries for web documents, called snippets.
next, goweb uses entity recognition techniques to map concepts from the background knowledge to the snippets.
the algorithm for the identification of ontological concepts in text is based on the gopubmed algorithms  <cit> .
for the identification of protein and gene names we use the approach by hakenberg et al.
<cit> , which achieved the best results in the gene identification task of biocreative  <dig>  in the year  <dig>  further entity recognition services can be integrated into goweb.
currently the opencalais service  <cit>  is used to identify names and places.
the identified entities of each result and found keywords are the basis for a co-occurrence based semantic filtering mechanism of goweb.
the filter uses the part-of and is-a relationships from go and the tree structure of mesh.
these relations are used to induce the relevant search result for each concept from the background knowledge.
the induction result for all search results for a query is also used to select important concepts.
these top concepts are selected for the entire background knowledge and for each sub category.
the selection of top concepts includes the occurrence frequency, the hierarchy level and, if available, a global frequency from a pre-analyzed corpus.
architecture
the workflow for goweb can be described as follows.
the user submits a query through the search form on the goweb website to the server.
the server preprocesses the query and sends a search request to the search service.
the search service returns the first results.
the first results are then annotated, highlighted , rendered and sent to the user.
the user can now already browse the first results.
once the first results are processed, the server starts fetching the remaining results.
this is done for up to  <dig> results.
then all fetched results are annotated.
to reduce the response time, the fetching and annotation of results is done in parallel.
the annotation information is then used to induce a tree representation and top concepts of the ontological background knowledge for the submitted query .
then this information is rendered and sent to the user-interface using ajax  technologies using a json  based message format to reduce the required time and bandwidth.
an overview is available in figure  <dig>
if the user selects a concept in the result tree by clicking it, a request is made to update the presented documents.
this includes a filtering step of the result set and a re-ranking step.
for an illustration of this workfow see also figure  <dig>  the new ranking is based on the found concepts, keywords and the original ranking.
a distance measure between keywords and selected concept is included for the reranking calculation.
once the user has decided to open a web page, goweb offers to highlight the page with the keywords and concepts from the background knowledge.
this is done with a proxy-based solution.
the server checks if this page is annotatable, e.g.
the content is html based.
then the goweb-server fetches the site and analyzes the content, adds the annotations and sends the result to the user.
if the content is not processable by the proxy there is an automatic forward to the original content.
RESULTS
the goal of goweb is to use ontologies and text-mining in semantic web search to answer questions.
here, we give some examples and evaluate the question answering capabilities of goweb on three benchmarks.
in the introduction we raised questions such as the following: which model organisms are used to study the fgf <dig> protein?
which processes are osteoclasts involved in?
what are common histone modifications?
which diseases are associated with wnt signaling?
in which countires the chagas disease is most prominent?
an answer to these questions can be found using goweb.
for example fgf <dig> is studied in mice, zebrafish; osteoclasts are involved in bone resorption; common histone modifications are methylation and acetylation; the wnt signaling pathway is associated with neoplasms like breast cancer, tumors or leukemia and chagas is most prominent in brazil, argentina, bolivia and other latin american countries.
the answers were directly obtained with goweb using simple keyword searches and the induced background knowledge.
for example the answer to the first question can be found in the following way: first submit the query fgf <dig> the answer is directly shown as listed concepts in the organism's part of the background knowledge .
to retrieve the corresponding search results click on the organism.
to answer the last question the approach is very similar.
submit the query keyword chagas.
open the where panel and the entities and countries.
there is a list of identified countries which are mostly located in latin america.
once again a click on the country of interest in the tree retrieves the relevant articles.
the simple strategy of using keywords and filter with the induced background knowledge can be generalised to support semi-automatic question answering.
next, we will demonstrate this using three independent benchmarks.
genes and functions
the first benchmark is based on the association of genes and their functions.
the biocreative  <dig>   <cit>  was a competition for text-mining algorithms to find functional annotations in the form of geneontology  concepts for genes in a given full-text corpus.
this task is a key problem for annotators of many databases and a key question for biologists encountering a novel gene/protein, they are not familiar with.
the test set for goweb now contains all go annotations and genes from the competition, which were labeled as identified with high confidence in the results.
this yields a list of  <dig> gene names with a total of  <dig> go concepts.
for example for "rag c" there are  <dig> annotations: cytoplasm, small gtpase mediated signal transduction, rna splicing, transcription, gdp binding, protein heterodimerization activity, small monomeric gtpase activity, heterotrimeric g-protein complex, protein binding and nucleus.
for a test run goweb was given a gene name as query.
then it is checked if the induced ontology tree contained the concepts corresponding to the expected functional annotations for the gene.
for all  <dig> submitted names the search returned documents and the goweb system could identify go concepts from these snippets.
the results show that for  <dig> %  of the benchmark concepts are contained in the tree .
as the original biocreative task specified a corpus and not an internet wide search as with goweb, precision is not applicable for this evaluation case.
symptoms and diseases
the second benchmark demonstrates the capabilities of goweb concerning the association of symptoms and diseases as carried out by general practitioners and medical researchers.
it is based on the study by tang et al.
<cit> , who used a set of  <dig> diagnostic cases published in the case records of the new england journal of medicine.
the symptoms were used as keywords for the search.
from the search results, they proposed a possible diagnosis.
for example for the symptoms "fever, anterior mediastinal mass and central necrosis", they expected to find the diagnosis "lymphoma".
with their google-based approach the proposed diagnosis was for  <dig> out of  <dig>  cases correct.
it also has to be remarked, that tang et al.
is a controversial  <cit>  article.
one of the main issues was a possible wrong impression to the patients.
it has to be clear that a search can not replace the professional and trained diagnostic capabilities of a physician.
especially in the medical domain web search results have to be handled with careful considerations.
in the experimental setup for goweb the same keywords as in the original paper, were used.
each diagnosis has been mapped to the corresponding mesh concept, if possible.
then in the experiment a query was given to the goweb system and the resulting induced background knowledge tree was evaluated.
as an additional comparison for goweb we also applied this benchmark and experimental setup to the gopubmed system  <cit> .
goweb can provide the correct answer in  <dig> out of  <dig>  cases.
in  <dig> of these cases, the answer term is found directly in the top categories of the diseases subtree of mesh .
with up to  <dig> categories per subtree, this equals to a top  <dig> ranking or better in these cases for the identified ontology concepts.
the cases  <dig>   <dig> and  <dig> are not marked as successful, although the results mention the searched concepts.
but they all find only one article, the article  <cit>  this analysis relies on.
with gopubmed an answer could only be found in  <dig> cases.
gopubmed searches only in scientific abstracts and does not include web contents such as clinical trails, general health pages, disease group pages, etc.
for a comparative overview see table  <dig>
for example for the case study number  <dig> goweb finds  <dig> articles for the query "anca haematuria haemoptysis".
under diseases one can find the mesh concept "churg-strauss syndrome".
a click on the concepts in the tree retrieves three snippets containing the concept.
the resulting snippets are:
• laboratory imposed restrictions on anca testing –  <dig> :  <dig> – annals of the rheumatic diseases
the laboratory has performed anca testing only when the request form indicated ... haematuria , churg-strauss syndrome, ...
• include haemoptysis , cystic bone lesions  positive  ...
the goweb system performs better than gopubmed because the underlying search engine has a larger repository of documents.
additionally, it can also index the full text, if it is available on the web.
the medline search for all pubmed based search engines, like gopubmed, is only based on abstracts.
this corresponds with the fact that the medline search returns often none or only one article abstract.
proteins, diseases and evidences
linking proteins and disease is a key task for many molecular biomedical researchers.
the third benchmark for goweb is based on the questions from the trec genomics track  <dig>  <cit> .
the results of trec genomics track  <dig> comprise a benchmark that focused on passage retrieval for question answering.
it is based on full-text documents from the biomedical literature.
for the year  <dig> there were  <dig> questions.
with goweb one can answer  <dig> of these  <dig> questions .
in  <dig> of these cases the semantic filter helped to reduce the result set.
for a summary of all questions please have a look at table  <dig>
for goweb the questions were transformed into keywords.
the complete listing of questions and keywords is available in table  <dig>  a question was marked as successfully handled, if there was a snippet that contained a valid answer.
the answers had to be available in the top  <dig> search results.
the second aspect addressed with this benchmark was to show the capabilities of the filtering feature.
filtering by background knowledge helps to reduce large results to a smaller set of relevant documents.
it was marked as applied, if the answers were found by using the filtering feature.
if the semantic filter feature was used the new top  <dig> after filtering and re-ranking were checked.
in most of the cases the re-ranking shifted a valid answer and evidence in the top  <dig> or better.
similar to the first benchmark, precision is not applicable.
the gold-standard for the trec genomics track  <dig> contains only passages from the original corpus and competition.
new answers and answers from other sources are not comparable.
the answers for the first four questions  are shown in table  <dig>  they also demonstrate what kind of textual evidence goweb can provide as answers.
the answer to question  <dig> , for instance, was found by submitting the keywords and selecting the mesh concept "encephalopathy, bovine spongiform"  as semantic filter.
the selected answer was now in the first part of the remaining relevant results.
the given number  <dig> corresponds to the original position.
this demonstrates that without the filter this answer would not have been found normally  <cit> .
for the question  <dig> the keywords were specific enough.
this corresponds with the original rank of first and second position for the answers.
there are two main reasons for goweb to not be able to find an answer for all question in the benchmark.
the first is that the question is too complex.
the answer is too long to be formulated in a sentence or snippet.
for example the question  <dig> contains actually two questions.
the second reason is that the question domain is not sufficiently modelled in the background knowledge.
for question  <dig>  for instance, skin biology has no corresponding concept and is too general to be mentioned directly in text.
discussion and comparison
the three used benchmarks provide a basis for the evaluation of goweb.
they demonstrate the power of the idea but also its limitations.
the starting point is the usage of snippets.
this is already a limitation in terms of completeness.
snippets can be seen as an abstraction.
they try to summarize facts related to the keywords.
a snippet might be too short to contain very complex facts, some information will be lost.
but important information is more likely to be in the snippet, because important facts are often close to each other in the original text.
thus it is more likely to be also contained in the snippet.
the co-occurrence is used as approximation for relation extraction.
one advantage of using this simpler approach is the reduced computational complexity.
a proper natural language processing  based approach would need more computational time.
furthermore, nlp might be hindered by the unpredictable grammatical structure of snippets.
with goweb the complete annotation for  <dig> results can be done on-the-fly and still provides response time of a few seconds.
the decision to use the yahoo!
boss api as search service was made on a technical level.
the yahoo!
api offers to retrieve the most results per requests, parallel requests, unlimited queries per day and allows re-sorting of results.
the latter is explicitly not allowed for the google ajax search api in their current terms of service.
the same goes also for the microsoft live search api.
other apis such as amazon's alexa web search or the google soap search api are deprecated and will be discontinued.
if more information than the snippet is required, it is necessary to fetch the web pages and analyze them.
this could be done on runtime for the result set or pre-calculated during a crawl of the internet.
both options have major drawbacks.
fetching and analyzing of web pages on-the-fly is not feasible with the requirement of a short response time.
the crawling of the internet is possible, but requires a significant amount of resources in terms of hardware and bandwidth to keep the index up-to-date.
this is demonstrated by the popular search engines.
each of them uses several data and computing centers.
although the search requests from the user are the main load, keeping the index up-to-date is an important aspect.
one advantage of a separate crawl is the chance to build a semantically enhanced index.
such an enhanced index offers the option to include concepts directly into the search and not as post-processing step like goweb.
to include all information from a web page will increase the recall.
but it would also increase the problem of false positives from matching errors or irrelevant parts.
the false positives would also unnecessarily increase the size of an index.
with the option to pre-process the information, e.g.
with topic recognition or disambiguation algorithms, this can be compensated.
for a specialized system with a limited number of documents and known document structure, a semantic index might be a better solution than goweb.
the application of text mining for concept identification is important for finding the relevant snippets in the search results.
a simple keyword can not easily replace the additional information from the background knowledge.
this includes synonymous labels and related concepts.
for example for heart diseases in mesh there are over  <dig> related labels.
although a user can try to emulate this behavior by using long boolean queries, there is a prerequisite.
the user has to know them beforehand.
this expert knowledge is compressed and available by using ontology concepts.
the types of questions handled best by goweb have to be transformable into keywords and concepts.
the answer provided by goweb will be either an inferred concept or a sentence/short text extract in the snippet.
these options reduce the types of questions which can be answered by goweb.
for example in a question classification by tomuro and lytinen  <cit>  goweb performs best with questions of type definition , reference  or entities .
but it can not answer question types like manner of action, degree or interval  and procedure .
for a medical question taxonomy by ely et al.
<cit> , goweb works with questions related to diagnosis branch but it fails for questions from the treatment branch , management  and nonclinical .
in comparison to existing systems which are mainly focusing on searching owl and rdf content  goweb covers a broader area.
current rdf search engines cover millions of rdf statements, whereas the internet search engines cover billions of websites.
unfortunately, most of the information in websites is unstructured text.
goweb tries to bridge the semantic gap with the limited amount of available semantic annotations by employing text-mining for extraction of ontology concepts from text.
in a nutshell, goweb exploits that keywords and ontology terms co-occurring in snippets are often facts.
traditional search engines like google have the coverage but they miss the explicit usage of ontological background knowledge.
they only present a long list of results.
this works very well for simple retrieval of documents, but has limits for more complex task, e.g.
answering questions.
here the semantic filtering with concepts as in goweb helps to reduce the result list to relevant answers.
if a snippet does not contain the relevant terms, it is likely to be not relevant.
in comparison with other internet search based systems like hakia or powerset the advantage of goweb is its additional background knowledge for the biomedical domain.
only goweb combines the usage of the geneontology , the medical subject heading  and protein identification.
a clustering of text labels like clusty or carrot can not replace the structural knowledge of an ontology.
in comparison to pubmed-based systems goweb can index the additional resources of full text articles on the web.
CONCLUSIONS
the search interface of goweb provides with the what-where-who-when categories a simple way to browse the results.
next to the actual search results goweb offers also additional information like definitions of concepts or wikipedia links.
together with the filtering mechanism to reduce the result set from  <dig> possible results to a small number of relevant entries goweb offers powerful tool for semantic search in the biomedical domain.
overall, the paper shows that co-occurrences of keywords and ontology terms in lists of snippets are often approximating facts, which aid to answer questions.
the simplicity of the approach ensures scalability and speed, still achieving success rates of up to 80%.
availability and requirements
goweb is online available under the url .
the goweb website has been tested with the following web browsers:
• firefox  <dig> ,  <dig>
• internet explorer  <dig> ,  <dig>
• safari  <dig>
the usage of goweb is free of charge for non-commercial users.
for commercial users some restrictions may apply.
for automated querying from any user, for example using programs, a registration is strongly recommended.
abbreviations
biocreative: critical assessment of information extraction systems in biology; go: geneontology; mesh: medical subject headings; rdf: resource description framework; sparql: sparql protocol and rdf query language; trec: text retrieval conference; xml: extensible markup language.
competing interests
the authors declare that they have no competing interests.
authors' contributions
hd implemented and tested the application, evaluated goweb and has written the manuscript.
ms initiated the project, provided the benchmarks and helped to draft the manuscript.
both authors read and approved the final manuscript.

 with the tremendous growth of the world wide web, search engines became key tools to find documents. search engines retrieve documents for a user's keywords from a large index and rank them by various criteria. while such keyword-based search is fast and powerful to retrieve single documents, it is far from the vision of answering a user's questions by "understanding" the user's query and answers in the documents as put forward already in the late 1960s. consider e.g. a biomedical researcher, who might ask questions such as the following: which model organisms are used to study the fgf protein? which processes are osteoclasts involved in? what are common histone modifications? which diseases are associated with wnt signaling? which functions does rag c have? which disease can be linked to fever, anterior mediastinal mass, and central necrosis? what is the role of prnp in mad cow disease? the web holds answers to these questions, but classical keyword-based search is not suitable to answer them, since the keywords are required to appear literally in text. however, documents do contain statements such as e.g. "wnt signalling is linked to cancer" or "we studied fgf expression in zebrafish development". if there is background knowledge that cancer is a disease and that zebrafish is a model organism, then the above questions can be answered. the use of such knowledge is at the heart of the semantic web, which promotes the use of formal statements and reasoning to deliver advanced services not available on the web now. to facilitate machine-readability and knowledge processing, a set of standards, query languages, and the semantic stack was proposed by the world wide web consortium. the stack comprises at the base unique identifiers and xml as common markup language. on top of xml, it defines the resource description framework to capture subject-predicate-object triples. furthermore, there is the modelling language rdf schema and the query language sparql. the basic class definitions and triples of rdf are extended at the next level by the web ontology language, which provides description logic as modelling language and by a rule layer. besides the expressiveness of owl, mark up for vocabularies and meta-data emerged such as simple knowledge organisation systems, dublin core, friend of a friend and the semantically-interlinked online communities project. additionally, there are formats to embed semantic annotations within web documents, such as embedded rdf, microformats or resource description framework in attributes. all of the above standards serve the need to formally represent knowledge and facilitate reasoning over this knowledge. they require explicit statements of knowledge. as a consequence, the amount of such structured data is still small in comparison to the unstructured data. thus, to support semantic search there are essentially two approaches: those, searching structured documents and reasoning over them and those, searching unstructured documents and extracting knowledge and reasoning over it. the knowledge extraction step of the latter uses combinations of natural language processing, information retrieval, text-mining, and ontologies for the knowledge extraction. as mentioned, the above systems are limited by the availability of structured documents, a problem addressed by approaches such as the semantic media wiki and large efforts such as freebase, which provides an environment to author formal statements. the second class of tools works on unstructured text and therefore does not suffer from this limit. the systems can be distinguished by the document source they work on, the use of background knowledge in the form of ontologies, the use of text-mining techniques such as stemming, concept identification, deep/shallow parsing. hakia, start, ask.com, brainboost, answerbus, cuil, clusty, and carrot are engines that work on web documents. hakia, start and answerbus use natural language processing to understand documents, while cuil, clusty and carrot cluster search results and aim to label clusters with phrases, which are offered as related queries. cuil, clusty and carrot are not semantic search engines in a strict sense, since these phrases are not part of an ontology or vocabulary. however, they do have the benefit of being generally applicable and cuil offers definitions for phrases where available. ask.com uses its expertrank, an algorithm for computing query-specific communities and ranking in real-time, to identify relevant pages. they include structured knowledge to generate answers. brainboost is a meta-search engine. it uses the proprietary answerrank algorithm applying machine learning and natural language processing. it ranks answers extracted from the top websites. wikipedia is a valuable resource to answer questions and hence some engines are specifically applied to it. powerset applies e.g. natural language processing to wiki in a similar manner to hakia. qualim uses a pattern based approach for sentence analysis. semantic type checking for answers and a fallback mechanism with web search is implemented in qualim. the above tools are intended to be general and as a result they generally do not cover the biomedical domain well. searching for example for a protein such as fgf powerset and hakia offer information on the protein, but are not able to find zebrafish as a model organism. engines such as askmedline, eagli, gopubmed, clustermed, ihop, ebimed, xplormed, textpresso and chilibot address this by processing biomedical literature in full text or abstracts as available in the pubmed literature database. with a focused domain, these engines can use background knowledge. gopubmed and ebimed use e.g. the geneontology and the medical subject headings, mesh; xplormed filters by eight mesh categories and extracts topic keywords co-occurrences; chilibot extracts relations and generates hypotheses; ihop uses genes and proteins as hyperlinks between sentences and abstracts; eagli and askmedline process questions as input for the search. finally, besides all of the automated approaches, google, yahoo! and microsoft use humans to answer questions in their services google answers, yahoo! answers and msn live search qna. closely related to semantic search, is semantic hyperlinking as implemented in the conceptual open hypermedia service. cohse annotates a given web page with concepts and offers services based on the identified concepts. none of the above systems combines the simplicity of keyword search on the vast amounts of web documents with the use of biomedical background knowledge to filter large keyword results with biomedical ontologies. here, we address this by introducing the goweb search engine. goweb issues queries to yahoo and indexes the snippets semantically with ontology terms. these are then offered to filter results by concepts. in order to demonstrate the power of this approach in question answering, we evaluate goweb on three benchmarks with questions on gene/function, symptom/disease, and protein/disease relationships and compare it to existing solutions. methods goweb is an internet search engine based on ontological background knowledge. it helps to filter potentially long lists of search results according to the categories provided by the geneontology and the medical subject headings. with goweb one can use the gopubmed features together with the wide range of information sources available in the internet. it offers an efficient search and result set filtering mechanism, highlighting and semi-automatic question answering with the ontological background knowledge. to facilitate the easy usage of goweb, the website is structured in three panels. please consider figure a screen shot of the goweb web page. the left panel contains the background knowledge and other retrieved meta-data. for quicker navigation the panel is organized in the four categories what, who, where, when. the top-right panel holds the query field. in the third panel below the input field, the actual search results are presented. the semantic filters of goweb are presented in the w panel. the what category contains the result tree for the ontological background knowledge. it uses a tree representation for relations between the ontology concepts of background knowledge. in this way a concept in the tree represents the concept itself and its children. thus, allowing the user to select relevant concepts with one click. the who panel contains filters related to persons, companies or institutions. in the where panel there are filters related to locations, such as cities, countries and similar. the when category assists with time related filters, e.g. a date. algorithm the search is executed by a traditional keyword based search service. we use yahoo! search boss service. the result of a submitted search is a list of textual summaries for web documents, called snippets. next, goweb uses entity recognition techniques to map concepts from the background knowledge to the snippets. the algorithm for the identification of ontological concepts in text is based on the gopubmed algorithms. for the identification of protein and gene names we use the approach by hakenberg et al., which achieved the best results in the gene identification task of biocreative in the year further entity recognition services can be integrated into goweb. currently the opencalais service is used to identify names and places. the identified entities of each result and found keywords are the basis for a co-occurrence based semantic filtering mechanism of goweb. the filter uses the part-of and is-a relationships from go and the tree structure of mesh. these relations are used to induce the relevant search result for each concept from the background knowledge. the induction result for all search results for a query is also used to select important concepts. these top concepts are selected for the entire background knowledge and for each sub category. the selection of top concepts includes the occurrence frequency, the hierarchy level and, if available, a global frequency from a pre-analyzed corpus. architecture the workflow for goweb can be described as follows. the user submits a query through the search form on the goweb website to the server. the server preprocesses the query and sends a search request to the search service. the search service returns the first results. the first results are then annotated, highlighted, rendered and sent to the user. the user can now already browse the first results. once the first results are processed, the server starts fetching the remaining results. this is done for up to results. then all fetched results are annotated. to reduce the response time, the fetching and annotation of results is done in parallel. the annotation information is then used to induce a tree representation and top concepts of the ontological background knowledge for the submitted query. then this information is rendered and sent to the user-interface using ajax technologies using a json based message format to reduce the required time and bandwidth. an overview is available in figure if the user selects a concept in the result tree by clicking it, a request is made to update the presented documents. this includes a filtering step of the result set and a re-ranking step. for an illustration of this workfow see also figure the new ranking is based on the found concepts, keywords and the original ranking. a distance measure between keywords and selected concept is included for the reranking calculation. once the user has decided to open a web page, goweb offers to highlight the page with the keywords and concepts from the background knowledge. this is done with a proxy-based solution. the server checks if this page is annotatable, e.g. the content is html based. then the goweb-server fetches the site and analyzes the content, adds the annotations and sends the result to the user. if the content is not processable by the proxy there is an automatic forward to the original content.  the goal of goweb is to use ontologies and text-mining in semantic web search to answer questions. here, we give some examples and evaluate the question answering capabilities of goweb on three benchmarks. in the introduction we raised questions such as the following: which model organisms are used to study the fgf protein? which processes are osteoclasts involved in? what are common histone modifications? which diseases are associated with wnt signaling? in which countires the chagas disease is most prominent? an answer to these questions can be found using goweb. for example fgf is studied in mice, zebrafish; osteoclasts are involved in bone resorption; common histone modifications are methylation and acetylation; the wnt signaling pathway is associated with neoplasms like breast cancer, tumors or leukemia and chagas is most prominent in brazil, argentina, bolivia and other latin american countries. the answers were directly obtained with goweb using simple keyword searches and the induced background knowledge. for example the answer to the first question can be found in the following way: first submit the query fgf the answer is directly shown as listed concepts in the organism's part of the background knowledge. to retrieve the corresponding search results click on the organism. to answer the last question the approach is very similar. submit the query keyword chagas. open the where panel and the entities and countries. there is a list of identified countries which are mostly located in latin america. once again a click on the country of interest in the tree retrieves the relevant articles. the simple strategy of using keywords and filter with the induced background knowledge can be generalised to support semi-automatic question answering. next, we will demonstrate this using three independent benchmarks. genes and functions the first benchmark is based on the association of genes and their functions. the biocreative was a competition for text-mining algorithms to find functional annotations in the form of geneontology concepts for genes in a given full-text corpus. this task is a key problem for annotators of many databases and a key question for biologists encountering a novel gene/protein, they are not familiar with. the test set for goweb now contains all go annotations and genes from the competition, which were labeled as identified with high confidence in the results. this yields a list of gene names with a total of go concepts. for example for "rag c" there are annotations: cytoplasm, small gtpase mediated signal transduction, rna splicing, transcription, gdp binding, protein heterodimerization activity, small monomeric gtpase activity, heterotrimeric g-protein complex, protein binding and nucleus. for a test run goweb was given a gene name as query. then it is checked if the induced ontology tree contained the concepts corresponding to the expected functional annotations for the gene. for all submitted names the search returned documents and the goweb system could identify go concepts from these snippets. the results show that for % of the benchmark concepts are contained in the tree. as the original biocreative task specified a corpus and not an internet wide search as with goweb, precision is not applicable for this evaluation case. symptoms and diseases the second benchmark demonstrates the capabilities of goweb concerning the association of symptoms and diseases as carried out by general practitioners and medical researchers. it is based on the study by tang et al., who used a set of diagnostic cases published in the case records of the new england journal of medicine. the symptoms were used as keywords for the search. from the search results, they proposed a possible diagnosis. for example for the symptoms "fever, anterior mediastinal mass and central necrosis", they expected to find the diagnosis "lymphoma". with their google-based approach the proposed diagnosis was for out of cases correct. it also has to be remarked, that tang et al. is a controversial article. one of the main issues was a possible wrong impression to the patients. it has to be clear that a search can not replace the professional and trained diagnostic capabilities of a physician. especially in the medical domain web search results have to be handled with careful considerations. in the experimental setup for goweb the same keywords as in the original paper, were used. each diagnosis has been mapped to the corresponding mesh concept, if possible. then in the experiment a query was given to the goweb system and the resulting induced background knowledge tree was evaluated. as an additional comparison for goweb we also applied this benchmark and experimental setup to the gopubmed system. goweb can provide the correct answer in out of cases. in of these cases, the answer term is found directly in the top categories of the diseases subtree of mesh. with up to categories per subtree, this equals to a top ranking or better in these cases for the identified ontology concepts. the cases and are not marked as successful, although the results mention the searched concepts. but they all find only one article, the article this analysis relies on. with gopubmed an answer could only be found in cases. gopubmed searches only in scientific abstracts and does not include web contents such as clinical trails, general health pages, disease group pages, etc. for a comparative overview see table for example for the case study number goweb finds articles for the query "anca haematuria haemoptysis". under diseases one can find the mesh concept "churg-strauss syndrome". a click on the concepts in the tree retrieves three snippets containing the concept. the resulting snippets are: • laboratory imposed restrictions on anca testing –: – annals of the rheumatic diseases the laboratory has performed anca testing only when the request form indicated... haematuria, churg-strauss syndrome,... • include haemoptysis, cystic bone lesions positive... the goweb system performs better than gopubmed because the underlying search engine has a larger repository of documents. additionally, it can also index the full text, if it is available on the web. the medline search for all pubmed based search engines, like gopubmed, is only based on abstracts. this corresponds with the fact that the medline search returns often none or only one article abstract. proteins, diseases and evidences linking proteins and disease is a key task for many molecular biomedical researchers. the third benchmark for goweb is based on the questions from the trec genomics track. the results of trec genomics track comprise a benchmark that focused on passage retrieval for question answering. it is based on full-text documents from the biomedical literature. for the year there were questions. with goweb one can answer of these questions. in of these cases the semantic filter helped to reduce the result set. for a summary of all questions please have a look at table for goweb the questions were transformed into keywords. the complete listing of questions and keywords is available in table a question was marked as successfully handled, if there was a snippet that contained a valid answer. the answers had to be available in the top search results. the second aspect addressed with this benchmark was to show the capabilities of the filtering feature. filtering by background knowledge helps to reduce large results to a smaller set of relevant documents. it was marked as applied, if the answers were found by using the filtering feature. if the semantic filter feature was used the new top after filtering and re-ranking were checked. in most of the cases the re-ranking shifted a valid answer and evidence in the top or better. similar to the first benchmark, precision is not applicable. the gold-standard for the trec genomics track contains only passages from the original corpus and competition. new answers and answers from other sources are not comparable. the answers for the first four questions are shown in table they also demonstrate what kind of textual evidence goweb can provide as answers. the answer to question, for instance, was found by submitting the keywords and selecting the mesh concept "encephalopathy, bovine spongiform" as semantic filter. the selected answer was now in the first part of the remaining relevant results. the given number corresponds to the original position. this demonstrates that without the filter this answer would not have been found normally. for the question the keywords were specific enough. this corresponds with the original rank of first and second position for the answers. there are two main reasons for goweb to not be able to find an answer for all question in the benchmark. the first is that the question is too complex. the answer is too long to be formulated in a sentence or snippet. for example the question contains actually two questions. the second reason is that the question domain is not sufficiently modelled in the background knowledge. for question for instance, skin biology has no corresponding concept and is too general to be mentioned directly in text. discussion and comparison the three used benchmarks provide a basis for the evaluation of goweb. they demonstrate the power of the idea but also its limitations. the starting point is the usage of snippets. this is already a limitation in terms of completeness. snippets can be seen as an abstraction. they try to summarize facts related to the keywords. a snippet might be too short to contain very complex facts, some information will be lost. but important information is more likely to be in the snippet, because important facts are often close to each other in the original text. thus it is more likely to be also contained in the snippet. the co-occurrence is used as approximation for relation extraction. one advantage of using this simpler approach is the reduced computational complexity. a proper natural language processing based approach would need more computational time. furthermore, nlp might be hindered by the unpredictable grammatical structure of snippets. with goweb the complete annotation for results can be done on-the-fly and still provides response time of a few seconds. the decision to use the yahoo! boss api as search service was made on a technical level. the yahoo! api offers to retrieve the most results per requests, parallel requests, unlimited queries per day and allows re-sorting of results. the latter is explicitly not allowed for the google ajax search api in their current terms of service. the same goes also for the microsoft live search api. other apis such as amazon's alexa web search or the google soap search api are deprecated and will be discontinued. if more information than the snippet is required, it is necessary to fetch the web pages and analyze them. this could be done on runtime for the result set or pre-calculated during a crawl of the internet. both options have major drawbacks. fetching and analyzing of web pages on-the-fly is not feasible with the requirement of a short response time. the crawling of the internet is possible, but requires a significant amount of resources in terms of hardware and bandwidth to keep the index up-to-date. this is demonstrated by the popular search engines. each of them uses several data and computing centers. although the search requests from the user are the main load, keeping the index up-to-date is an important aspect. one advantage of a separate crawl is the chance to build a semantically enhanced index. such an enhanced index offers the option to include concepts directly into the search and not as post-processing step like goweb. to include all information from a web page will increase the recall. but it would also increase the problem of false positives from matching errors or irrelevant parts. the false positives would also unnecessarily increase the size of an index. with the option to pre-process the information, e.g. with topic recognition or disambiguation algorithms, this can be compensated. for a specialized system with a limited number of documents and known document structure, a semantic index might be a better solution than goweb. the application of text mining for concept identification is important for finding the relevant snippets in the search results. a simple keyword can not easily replace the additional information from the background knowledge. this includes synonymous labels and related concepts. for example for heart diseases in mesh there are over related labels. although a user can try to emulate this behavior by using long boolean queries, there is a prerequisite. the user has to know them beforehand. this expert knowledge is compressed and available by using ontology concepts. the types of questions handled best by goweb have to be transformable into keywords and concepts. the answer provided by goweb will be either an inferred concept or a sentence/short text extract in the snippet. these options reduce the types of questions which can be answered by goweb. for example in a question classification by tomuro and lytinen goweb performs best with questions of type definition, reference or entities. but it can not answer question types like manner of action, degree or interval and procedure. for a medical question taxonomy by ely et al., goweb works with questions related to diagnosis branch but it fails for questions from the treatment branch, management and nonclinical. in comparison to existing systems which are mainly focusing on searching owl and rdf content goweb covers a broader area. current rdf search engines cover millions of rdf statements, whereas the internet search engines cover billions of websites. unfortunately, most of the information in websites is unstructured text. goweb tries to bridge the semantic gap with the limited amount of available semantic annotations by employing text-mining for extraction of ontology concepts from text. in a nutshell, goweb exploits that keywords and ontology terms co-occurring in snippets are often facts. traditional search engines like google have the coverage but they miss the explicit usage of ontological background knowledge. they only present a long list of results. this works very well for simple retrieval of documents, but has limits for more complex task, e.g. answering questions. here the semantic filtering with concepts as in goweb helps to reduce the result list to relevant answers. if a snippet does not contain the relevant terms, it is likely to be not relevant. in comparison with other internet search based systems like hakia or powerset the advantage of goweb is its additional background knowledge for the biomedical domain. only goweb combines the usage of the geneontology, the medical subject heading and protein identification. a clustering of text labels like clusty or carrot can not replace the structural knowledge of an ontology. in comparison to pubmed-based systems goweb can index the additional resources of full text articles on the web.  the search interface of goweb provides with the what-where-who-when categories a simple way to browse the results. next to the actual search results goweb offers also additional information like definitions of concepts or wikipedia links. together with the filtering mechanism to reduce the result set from possible results to a small number of relevant entries goweb offers powerful tool for semantic search in the biomedical domain. overall, the paper shows that co-occurrences of keywords and ontology terms in lists of snippets are often approximating facts, which aid to answer questions. the simplicity of the approach ensures scalability and speed, still achieving success rates of up to 80%. availability and requirements goweb is online available under the url. the goweb website has been tested with the following web browsers: • firefox, • internet explorer, • safari the usage of goweb is free of charge for non-commercial users. for commercial users some restrictions may apply. for automated querying from any user, for example using programs, a registration is strongly recommended. abbreviations biocreative: critical assessment of information extraction systems in biology; go: geneontology; mesh: medical subject headings; rdf: resource description framework; sparql: sparql protocol and rdf query language; trec: text retrieval conference; xml: extensible markup language. competing interests the authors declare that they have no competing interests. authors' contributions hd implemented and tested the application, evaluated goweb and has written the manuscript. ms initiated the project, provided the benchmarks and helped to draft the manuscript. both authors read and approved the final manuscript. 
here, we introduce a third approach, goweb, which combines classical keyword-based web search with text-mining and ontologies to navigate large results sets and facilitate question answering. goweb's combination of classical web search with text-mining and ontologies is a first step towards answering questions in the biomedical domain. semantic technologies promise a next generation of semantic search engines, which will be able to answer questions. current approaches either apply natural language processing to unstructured text or they assume the existence of structured statements over which they can reason.
 current search engines are keyword-based. semantic technologies promise a next generation of semantic search engines, which will be able to answer questions. current approaches either apply natural language processing to unstructured text or they assume the existence of structured statements over which they can reason.  here, we introduce a third approach, goweb, which combines classical keyword-based web search with text-mining and ontologies to navigate large results sets and facilitate question answering. we evaluate goweb on three benchmarks of questions on genes and functions, on symptoms and diseases, and on proteins and diseases. the first benchmark is based on the biocreative task and links gene names with functions. goweb finds 58% of the functional geneontology annotations. the second benchmark is based on case reports and links symptoms with diseases. goweb achieves 77% success rate improving an existing approach by nearly 20%. the third benchmark is based on questions in the trec genomics challenge and links proteins to diseases. goweb achieves a success rate of 79%.  goweb's combination of classical web search with text-mining and ontologies is a first step towards answering questions in the biomedical domain. goweb is online at: semantic web applications and tools for life sciences, edinburgh, uk 