1. A computing system configured to provide results of a received query based on triples, the computing system comprising: computer-readable storage storing: a fact table having triples, each triple having a subject, a predicate, and an object, the subject and object being entities; a type table having a mapping from entities to one or more types of those entities, the type table having one entry for each of a plurality of entities that maps to the one or more types of that entity; the received query having one or more non-type query triples and one or more type query triples, each non-type query triple having a subject, a non-type predicate, and an object, and each type query triple having a subject, a type predicate, and an object; computer-executable instructions that add to the type table mappings of entities to types corresponding to triples of the fact table that have a type predicate; computer-executable instructions that retrieve from the fact table triples that match the one or more non-type query triples; computer-executable instructions that, for each retrieved triple, when an entity of the retrieved triple matches the subject of a type query triple and the type table does not have a mapping from the entity of the retrieved triple to the object of that type query triple with the matching subject, exclude the retrieved triple from the results of the received query; and computer-executable instructions that provide as the results of the received query the retrieved triples that have not been excluded from the results of the received query; and a processor configured to execute the computer-executable instructions stored in the computer-readable storage.