19. A method for generating a knowledge base system comprising: providing in memory a knowledge base comprising a relations table and a plurality of linked tables, a first of the linked tables comprising a predicate table, the relations table including slots which, for each of a plurality of rows of the relations table, store a relation identifier, a predicate identifier, and first and second arguments of a respective relation; with a processor, for each a plurality of candidate relations to be added to the knowledge base, the candidate relation comprising first and second arguments and a predicate which links the arguments: determining if the predicate in the relation exists in a predicate table and if so, retrieving a corresponding predicate identifier from the predicate table, determining if argument types of the first and second arguments in the candidate relation match respective argument types that are encoded in the predicate identifier, the argument types being selected from a finite set of argument types; if the argument types of the first and second arguments in the candidate relation match the argument types encoded in the predicate identifier, for at least one of the arguments in the candidate relation, determining if the argument exists in a respective linked table corresponding to the encoded argument type, and if so retrieving its identifier, and if the argument does not exist, adding the respective argument as a new entry in the entity table with a respective identifier; and where a record does not yet exist in the records table which includes the candidate relation, creating a new record in the records table which includes the argument identifier of the at least one argument and the retrieved predicate identifier.
19. A method for generating a knowledge base system comprising: providing in memory a knowledge base comprising a relations table and a plurality of linked tables, a first of the linked tables comprising a predicate table, the relations table including slots which, for each of a plurality of rows of the relations table, store a relation identifier, a predicate identifier, and first and second arguments of a respective relation; with a processor, for each a plurality of candidate relations to be added to the knowledge base, the candidate relation comprising first and second arguments and a predicate which links the arguments: determining if the predicate in the relation exists in a predicate table and if so, retrieving a corresponding predicate identifier from the predicate table, determining if argument types of the first and second arguments in the candidate relation match respective argument types that are encoded in the predicate identifier, the argument types being selected from a finite set of argument types; if the argument types of the first and second arguments in the candidate relation match the argument types encoded in the predicate identifier, for at least one of the arguments in the candidate relation, determining if the argument exists in a respective linked table corresponding to the encoded argument type, and if so retrieving its identifier, and if the argument does not exist, adding the respective argument as a new entry in the entity table with a respective identifier; and where a record does not yet exist in the records table which includes the candidate relation, creating a new record in the records table which includes the argument identifier of the at least one argument and the retrieved predicate identifier. 20. The method of claim 19 , wherein when the predicate in the candidate relation does not exist the predicate table, providing for creation of a new entry in the predicate table with a respective new predicate identifier and retrieving the new predicate identifier.