Design Datalog Templates for Synthesizing Bidirectional Programs from Tabular Examples

Bach Nguyen Trong,Kanae Tsushima,Zhenjiang Hu
DOI: https://doi.org/10.1007/978-3-031-45784-5_2
2023-01-01
Abstract:In the database community, many synthesizers have been proposed to synthesize unidirectional programs (queries) from tabular examples, but it remains as a challenge to synthesize bidirectional programs (view update strategies) from examples over tables that have internal functional dependencies. In this work, we propose a systematic method to synthesize bidirectional programs from examples with functional dependencies using ProSynth. By forward propagation of functional dependencies from the source through intermediate relations to the view via a set of atomic forward programs, we show how to design Datalog templates encoding the well-behaved view update strategies with minimal effects as well as the constraints and effects imposed by the specified functional dependencies, to guide the synthesis of atomic backward programs which could be combined into a complete backward program. We have fully implemented our proposed approach in a tool called SynthBP, which is capable of automatically synthesizing bidirectional programs for 31 out of 32 practical benchmarks.
What problem does this paper attempt to address?