Columbia Technology Ventures

Data Programming: Rule-based programming with persistent in-memory tabular structures

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.

Unmet Need: Allowing continuous revisions of complex representations in interactive graphical applications

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.

The Technology: Declarative rule-based programing method for developing complex rules with flexibility

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.

Applications:

  • Graphical programming visualization
  • View management of head-worn, desktop, and handheld displays
  • Web-based development
  • Database support
  • Converting object-oriented programs into rule-based

Advantages:

  • Seamlessly develop complex rules
  • Allows flexibility and modification of rules
  • User-defined memory allocation
  • Logic may be distributed on many computers
  • Uses persistent in-memory tabular structures

Lab Director:

Steven K. Feiner, Ph.D.

Patent Information:

Patent Status

Related Publications:

Tech Ventures Reference: