within this modelling framework. This allows models to be
built which can be manipulated and analysed in an intuitive
manner, using terms with which users are familiar.
This concludes the description of the design of the
framework. The remainder of the paper will describe how it
has been implemented.
4. FRAMEWORK IMPLEMENTATION
The implementation of the framework was carried out using
the object-oriented programming language, Eiffel. To write
programmes in Eiffel, classes are defined and compiled to
produce executable systems. At run-time, objects are
generated from these classes, and execution occurs as
messages are passed among the objects.
The framework itself is not executable. Instead it consists of
a library of classes which provide the capabilities to build,
query and analyse models of the real world. Tools (or
applications) which need to make use of these capabilities
can be built on top of the framework. Tool classes can be
written and compiled, along with the framework classes, to
produce executable systems. When such a system is
executed, tool objects provide a user interface. This allows
users to access the framework objects and make use of its
model handling capabilities.
The framework classes can be broken down into three
groups. The first consists of those classes which define
entity and relationship types. Two root classes — entity
and relationship — define the state and behaviours
which are common to all such types. The class
complex entity is defined as a specialised subclass of
entity. It adds the state and behaviour for handling
components.
Eiffel's inheritance mechanism is used to implement the
generalisation/specialisation modelling concept. When a
model is to be built, the user must first of all decide what
entities and relationships need to be represented. New
classes must then be defined which inherit from the
appropriate root classes. These new classes add definitions
of the attributes (and components) of the specialised types.
They also define any specialised behaviours, such as the one
for finding the shortest route through a road system.
Once these classes have been defined, an executable system
can be compiled which will allow a model to be built.
With hindsight, it seems that this use of the inheritance
mechanism is not the best way to implement the object-
oriented modelling concept of generalisation/specialisation
— at least for entities and relationships. Future
developments should allow the definition of specialised
entity and relationship types to be done at run-time —
before, during and after the building of a model. Such
definitions should not require recompilation, as is the case at
present. A simple to understand, application language could
be developed to allow users to write 'scripts' defining
functions and attributes for entities and relationships.
The second group of framework classes implement attribute
value types. Instances of them are attribute values, and store
different kinds of ififformation. A class is defined for each
available attribute value type in the modelling framework.
Some simple, vector based spatial attribute types have been
designed and implemented, along with some simple textual
attribute types. The ability to plug new attribute value types
into a hierarchy as they are developed, and without affecting
existing models is an attractive benefit of the framework. It
comes about because of the de-emphasis of structures for
758
storing information, and the increased emphasis on the
things being represented.
The third group of classes is concerned with the management
of a model. It allows the creation of the model, and its
analysis through a querying mechanism which has access to
the analytical functions contained within it. The querying
mechanism is, at the moment, rather rudimentary, the
emphasis to date having been on the building of models. A
simple selection capability is in place, however, and allows
access to the states and behaviours of model components.
Some very simple tools have been developed which make
use of the capabilities supplied by the framework. The
BUILD tool interprets a simple text files written in a simple
language which enables models to be built. It allows entities
to be created and associated with one another through
relationships. Attribute values can also be set and attached to
the entities and relationships. The INFO tool allows a model
to be examined — textual attributes can be displayed as text,
while positions can be displayed graphically. The
SH_PATH tool is a special tool for displaying a road
system, and for allowing the user to pick junctions and
determine shortest paths between then. Both INFO and
SH_PATH are rather specific in their applicability, and work
needs to be done in developing more general purpose tools.
5. SUMMARY
A framework for storing geographic information has been
designed and implemented at the University of New
Brunswick. It employs object-oriented concepts both in its
modelling capabilities and in its implementation. It allows
users to build models which bear more resemblance to the
real world, and is very flexible in its handling of structures
for storing information.
The development of this framework has provided a great
deal of insight into the potential of object-orientation in
modelling and programming. Continued work should result
in an improved and extended framework, as well as more
useful tools making use of its capabilities.
ACKNOWLEDGEMENTS
This reserch was partially funded by an NSERC operating
grant and two EMR research agreements.
SELECTED BIBLIOGRAPHY
Feuchtwanger, M., 1989. An Object-oriented Semantic
Association Model for GIS. In: Proceedings of the 1989
National Conference on GIS, Ottawa, Canada, pp. 689-703.
Kemp, Z., 1990. An Object-Oriented Model for Spatial
Data. In: Proceedings of the 4th International Symposium
on Spatial Data Handling, Zurich, Switzerland, pp.659-668.
Khoshafian, S. and R. Abnous, 1990. Object Orientation :
Concepts, Languages, Databases, User Interfaces. John
Wiley & Sons, Inc., New York.
Meyer, B., 1988. Object-oriented Software Construction.
Prentice Hall International (UK) Ltd., U.K.
Morehouse, S., 1990. The Role of Semantics in Geographic
Data Modelling. In: Proceedings of the 4th International
Symposium on Spatial Data Handling, Zurich, Switzerland,
pp.689-698.
suk
iss
tex
dec
def
sur
muc
The
Unc
enc
or