Semi-Naive Evaluation for Hyperlog, a Graph-Based Language for Complex Objects

This paper is concerned with the evaluation of a graph-based declarative language called Hyperlog. Hyperlog is a query- and update-language for a graph-based data model called the Hypernode Model. The single data structure of this model is the hypernode — a graph whose nodes can themselves be graphs. A Hyperlog program is a set of rules whose bodies consist of templates to be matched against a database of graphs. The heads of rules are also templates and indicate the updates to the database to be undertaken for each match of the templates in the body. These updates may include the update of existing graphs or the generation of new graphs.