This technology, Data Programming, is a rule-based programming method where programs are defined as persistent in-memory tabular structures that are used for complex rule-based systems and interactive graphical programming.
Interactive graphical applications require a continuously changing representation of relationships and constraints throughout program execution. Currently, object-oriented programming is limited as the constraints passed to a module complexify. Declarative rule-based programming languages allow users to define complex representations but do not permit rapid changes to the representations. Methods of improving these systems have been developed, like parallelism and increasing working memory, however, these methods still fail at providing adequate performance for interactive graphical programming.
This method defines programs as persistent in-memory tabular structures that combine data and code. Users control memory management explicitly, which permits a controlled environment and minimizes memory allocation. Data Programming also allows developers to build complex interactive applications that are flexible and quickly modified. Data Programming can be extended to control logic on several computers, with future applications to control view management.
This technology has been successfully implemented in prototypes of mixed-reality hybrid user interfaces.
IR M06-072
Licensing Contact: Satish Rao