Theo stores all of its data in a frame-based system. It gives Theo the ability to store large knowledge bases, and to access knowledge efficiently
Data on a particular subject is organized symbolically using entities. Entities have attributes, or slots, each of which may have a value. All knowledge in Theo is stored in these ( < entity > < slot > ) = < value > triplets. Indeed, Theo's job consists of determine the values of slots on an as-needed (impasse-driven) manner.
Some slots have predefined meanings: DEFINITIONS, DOMAIN, RANGE, INVERSE, TOGET, AVAILABLE METHODS, etc. The slot value *NOVALUE* may be used to represent a non-existing value of a slot, and expressions can refer to slot values that are not explicitly described by the current data structures in memory, but which must be inferred on demand.
Theo supports meta-knowledge with its frame-based memory system. It has a glassbox open policy of access to knowledge. The frame structure provides both uniform knowledge representation and uniform access to knowledge.
Go to a discussion of this property for multiple architectures.