1. A method for constructing a semantic query over a corpus of data, the method comprising: using a graphical user interface to create an aggregation of graphical representations of annotations associated with a plurality of data elements contained within the corpus of data and graphical representations of search terms contained within the plurality of data elements, by: creating a separate display window within the graphical user interface for each annotation and for each search term; and entering an annotation or search term into each display, wherein the aggregation comprises at least one annotation and at least one search term; manipulating relative positions of the graphical representations of the annotations and the search terms within the aggregation within the graphical user interface to express relationships among the annotations and search terms by moving the display windows within the graphical user interface relative to each other to generate a visual spatial representation of the semantic query, the annotations, search terms and expressed relationships defining the semantic query; and searching the corpus of data using the defined semantic query.