Principles of database and knowledge-base systems, Vol. I
Principles of database and knowledge-base systems, Vol. I
A logical language for data and knowledge bases
A logical language for data and knowledge bases
Language features for interoperability of databases with schematic discrepancies
SIGMOD '91 Proceedings of the 1991 ACM SIGMOD international conference on Management of data
Implementation of the CORAL deductive database system
SIGMOD '93 Proceedings of the 1993 ACM SIGMOD international conference on Management of data
Optimizing toolkit-generated graphical interfaces
UIST '94 Proceedings of the 7th annual ACM symposium on User interface software and technology
Supporting distributed, concurrent, one-way constraints in user interface applications
Proceedings of the 8th annual ACM symposium on User interface and software technology
ICDE '95 Proceedings of the Eleventh International Conference on Data Engineering
Towards a Real Horn Clause Language
VLDB '88 Proceedings of the 14th International Conference on Very Large Data Bases
SIGMOD '97 Proceedings of the 1997 ACM SIGMOD international conference on Management of data
A Graphical Query Language: VISUAL and Its Query Processing
IEEE Transactions on Knowledge and Data Engineering
Data and knowledge in database systems: deductive databases
Handbook of data mining and knowledge discovery
Selected ingredients in end-user programming
AVI '98 Proceedings of the working conference on Advanced visual interfaces
Hi-index | 0.00 |
Programming nontrivial GUI applications is currently an arduous task. Just as the use of a declarative language simplified the programming of database applications, we ask whether we can do the same for GUI programming? Can we then import a large body of knowledge from database research? We answer these questions by describing our experience in building nontrivial GUI applications initially using C++ programming and subsequently using Logic++, a higher order Horn clause logic language on complex objects with object-oriented features. We abstract a GUI application as a set of event handlers. Each event handler can be conceptualized as a transition from the old screen/program state to a new screen/program state. We use a data centric view of the screen/program state (i.e., every entity on the screen corresponds to proxy datum in the program) and express each event handler as a query dependent update, albeit a complicated one. To express such complicated updates we use Logic++. The proxy data are expressed as derived views that are materialized on the screen. Therefore, the system must be active in maintaining these materialized views. Consequently, each event handler is conceptually an update followed by a fixpoint computation of the proxy data. Based on our experience in building the GUI system, we observe that many database techniques such as view maintenance, active DB, concurrency control, recovery, optimization as well as language concepts such as higher order logic are useful in the context of GUI programming.