A system and method for dynamically creating web applications from data is described. Simple data is transformed into a declarative application data model that is then parsed by a server and compiled into a functional web application. Application functionality is partly determined by rules applied to web application objects in response to user actions. These rules are triggered by various cues, including user actions and relationships among objects in the web applications. A web application is considered an n-dimensional problem space, and relationships among application objects can be modeled using set theory. The status of a particular relationship among objects and user actions can trigger specific application behavior. Additionally application behavior can be triggered in other ways, like conditions in arbitrary scripts or combinations of multiple triggers combined using logical connectives.