document: A search engine for natural language applications Many modern natural language-processing applications utilize search engines to locate large numbers of Web documents or to compute statistics over the Web corpus . Yet Web search engines are designed and optimized for simple human queries -- they are not well suited to support such applications . As a result , these applications are forced to issue millions of successive queries resulting in unnecessary search engine load and in slow applications with limited scalability . In response , this paper introduces the Bindings Engine ( BE ) , which supports queries containing typed variables and string-processing functions . For example , in response to the query `` powerful ` noun ' '' BE will return all the nouns in its index that immediately follow the word `` powerful '' , sorted by frequency . In response to the query `` Cities such as ProperNoun ( Head ( ` NounPhrase ' ) ) '' , BE will return a list of proper nouns likely to be city names . BE 's novel neighborhood index enables it to do so with O ( k ) random disk seeks and O ( k ) serial disk reads , where k is the number of non-variable terms in its query . As a result , BE can yield several orders of magnitude speedup for large-scale language-processing applications . The main cost is a modest increase in space to store the index . We report on experiments validating these claims , and analyze how BE 's space-time tradeoff scales with the size of its index and the number of variable types . Finally , we describe how a BE-based application extracts thousands of facts from the Web at interactive speeds in response to simple user queries .
doc_bio_tags: O B I O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O