  In this paper we describe the design and implementation of the Prolog
interface to the Unstructured Information Management Architecture (UIMA) and
some of its applications in natural language processing. The UIMA Prolog
interface translates unstructured data and the UIMA Common Analysis Structure
(CAS) into a Prolog knowledge base, over which, the developers write rules and
use resolution theorem proving to search and generate new annotations over the
unstructured data. These rules can explore all the previous UIMA annotations
(such as, the syntactic structure, parsing statistics) and external Prolog
knowledge bases (such as, Prolog WordNet and Extended WordNet) to implement a
variety of tasks for the natural language analysis. We also describe
applications of this logic programming interface in question analysis (such as,
focus detection, answer-type and other constraints detection), shallow parsing
(such as, relations in the syntactic structure), and answer selection.
