Bidirectional model transformation plays an important role in maintaining consistency between two models, and has many potential applications in software development, including model synchronization, round-trip engineering, software evolution, multiple-view software development, and reverse engineering. However, unclear bidirectional semantics, domain-specific bidirectionalization method, and lack of systematic development framework are known problems that prevent it from being practically used. In this paper, we propose a novel compositional framework for bidirectional model transformation based on an existing graph querying language UnQL, so that one can develop various useful bidirectional model transformation by combination of a fixed number of primitive bidirectional model transformations. We have implemented a prototype system, and the experimental results show promise of the new approach.