Hyperlog is a declarative, graph-based language that supports database querying and update. It visualises schema information, data, and query output as sets of nested graphs, which can be stored, browsed and queried in a uniform way. Thus, the user need only be familiar with a very small set of syntactic constructs. Hyperlog queries consist of a set of graphs that are matched against the database. Database updates are supported by means of programs consisting of a set of rules. This paper discusses the formulation, evaluation, expressiveness and optimisation of Hyperlog queries and programs. We also describe a prototype implementation of the language, and we compare and contrast our approach with work in a number of related areas, including visual database languages, graph-based data models, database update languages and production rule systems.

Index terms: database browsing, database query languages, database update languages, graph-based models and languages, hypernodes, visual database languages.