1. A system for knowledge representation in a computer that can enable unrestricted natural language communication with a computer, comprising: a database configured to store at least one table, the table configured to store associations between concepts in a text string and associated concept identifiers; and a builder interfaced with the database, the builder configured to construct a table that represents knowledge defined by a text string by performing a process comprising the following steps: assigning a unique identifier to a concept defined by the text string, breaking the concept into sub-concepts, assigning a unique identifier to each sub-concept, using legal joins to join sub-concepts into higher order sub-concepts, assigning a unique identifier to the higher-order concepts, and repeating the steps until the higher order sub-concepts join to form the concept, and storing the concept, sub-concepts, higher order sub-concepts and unique identifiers in a table in the database.