Hyperlog is a graph-based declarative language which supports both queries
and updates over the Hypernode Model. By requiring only a very small number
of graphical constructs, Hyperlog is well-suited to non-expert database
users. This paper is concerned with the implementation of Hyperlog, concentrating
in particular on its graphical aspects. Key issues addressed include the
following:
-
Graphical techniques for representing and updating data, queries and
programs: in particular, we will see how all of these are created by
instantiating currently available types, thereby guaranteeing their
type-correctness.
-
Graphical techniques for representing and browsing the database: we will
describe a novel algorithm for the automatic display of the contents of a
database which uses concepts from mechanics and self-organising networks.
-
Graphical techniques for representing and browsing the output from queries,
which can be arbitrarily large: we regard the query output as data which can
be stored and browsed in the same way as the database.
We begin the paper with a brief introduction to Hyperlog in Section 2, which
sets the scene for the rest of the paper. In Section 3 we describe the
architecture of our implementation. Section 4 is the key section of the
paper and is concerned with the graphical aspects of the implementation,
covering the above points. Section 5 compares Hyperlog with other
graph-based database languages and highlights some of its distinguishing
features. Finally, Section 6 gives our concluding remarks and directions of
further work.