Predicate caching is a powerful memory caching technique especially suitable for a class of applications called autonomous systems. These systems can act according to presupplied logic that defines predictable, repetitive data access requests. This class includes rule-based systems, expert systems, logic programs, active database systems, database integrity constraints, triggers, alerters, and autonomous intelligent agents. Some of these systems are data-intensive. Predicate caching improves memory utilization and response time of repetitive queries by prestoring partial results in primary memory, which results in minimizing secondary storage access. With predicate caching, a system applies a predicate to the data on its way from one memory device to another. A predicate, in this context, is any predetermined calculation made by a program. I describe the predicate caching technique and, specifically, the page-predicate approach that I developed to resolve problems of cache partitioning, management, and optimization. The work discussed is based on simulation experiments I devised, programmed, and conducted.