1. A search engine for retrieving documents from a database, the engine comprising a semantic document editor that is operable to allow a user to edit an existing document by creating at least one searchable compound word that contains information contextually relevant to the contents of the document and associate the at least one created compound word with the document to produce an enhanced document having the compounds word associated therewith, a database for storing a plurality of enhanced documents, a semantic rule engine that is operable to generate and store rules each of which includes at least one compound word derived from at least one of the enhanced documents, a semantic searching means that uses a selected enhanced document to generate at least one searchable compound word associated with the selected enhanced document, and search module for searching the rules to find at least one rule that contains both the at least one searchable compound word and at least one additional compound word, and a module for adding to the selected enhanced document the additional compound words from the located at least one rule, a semantic query editor operable to enable a searcher to address the database of enhanced documents with a query, said query editor being operable to receive the query and convert it into at least one query searchable compound word that contains contextually relevant information, and a search module operable to receive the at least one query searchable compound word and to locate the relevant enhanced documents that have compound words associated with the document matching the at least one query searchable compound word, and an output module for presenting any located documents to the searcher.