Annotate is a tool for efficient semi-automatic annotation of corpus data. It facilitates the generation of context-free structures and additionally allows crossing edges. Functions for the manipulation of such structures are provided. Terminal nodes, non-terminal nodes, and edges are labeled. In the NEGRA project, these labels are used for parts-of-speech and morphology (terminal nodes), phrase categories (non-terminal nodes), and grammatical functions (edges). Type and number of labels are defined by the user. Annotated corpora are stored in a relational database. Annotate has a specified interface for communication with external taggers and parsers.