8. A computer-implemented method for automatically generating a database query request for performing a join across tables in a heterogeneous database, each of the tables including a plurality column fields, the method comprising the steps of: providing a knowledge base that defines relationships between column fields in the database; receiving a database query; mapping each query to the knowledge base; generating the database query request, the database query request requiring at least one join between two of the fields; executing the database query request and receiving results from the heterogeneous database; providing a list of potential fields that comprise implicit fields and a first set of explicit fields that correspond to column fields from which to retrieve values for each variable in the query; expanding any implicit fields present in the list of potential fields into a second set of explicit fields; providing a list of literals that define relationships between column fields in the databases wherein a plurality of the literals contain implicit fields representing concepts that are implicitly referenced in the tables; and providing each one of said literals with a predicate, an implicit field and an explicit field, such that the predicate represents a particular concept that is attributable to the concept represented by the corresponding implicit field, and the explicit field indicates where values for the concept represented by the predicate are stored.
9. The method of claim 8, further comprising the step of: providing each query literal with a query predicate.