In the heyday of the proceduralist paradigm, semantic interpretation was typically accomplished with sets of rules that matched patterns to parts of syntactic trees and added to or otherwise modified the semantic representations of input sentences. The completed representations might either express facts to be remembered, or might themselves be executable commands, such as formal queries to a database or high-level instructions placing one block on another in a robot's (simulated or real) world.