Steve Allenstein
Model-Based ArcView Development:
A County Tax Parcel Interface
Abstract
Once an ArcView application has been developed for a particular client and problem context, it can be difficult to re-use in other different but similar circumstances. When adapting such applications, major code revisions are often needed due to differences in underlying data models, and in the logical data views and operations desired by different clients. Also, the difficulty of revising Avenue scripts increases with the size, complexity, and functional scope of the application.
This paper examines an approach to ArcView development which is model-based.
A GENERIC model of the application and its database is developed by simulating
the creation of higher-level objects relative to those available in ArcView.
The model is specified by the developer who makes entries in ArcView table
documents. Once a model has been developed, it may then be CUSTOMIZED to
similar situations. Customization is accomplished by adjusting the table
entries, or more dramatically by deleting or adding new table records.
The technique has several advantages. Within certain constraints, it accommodates
the transformation of different data models into that of some standard.
It allows a certain level of independence of the application from its data.
It allows for easy revision and re-use of previous developed applications.
It may also be generalized into an object-oriented framework that employs
a truly extensible programming language.
Introduction
The common thread which binds the attendees of this conference is an interest in GIS technology relative to a particular problem or area of application. Software engineering technologies such as Object Oriented Programming (OOP) are part of a global economy that has revolutionized the production of software components across ever-expanding domains. It does so through efficient assembly of parts into marketable products. The transfer of this technology across institutional structures is reorganizing society and the way we work. As the dissemination of GIS technology continues to open new doors for application, new questions and priorities will emerge. The question of appropriate product design will come to fore, not only in the marketing of such products, but also in the use of these products to address issues of concern at the local level.
The premise underlying this paper is that global forces will never be able
to fully respond to the requirements of local situations. Almost by definition,
marketing strategies respond to the aggregate characteristics of populations,
rather than idiosyncrasies of local initiatives such as landuse planning,
or the re-districting of legislative representation or school attendance
zones. Local situations encompass many more variables than a marketing strategy
can formulate. Local situations also display a 'fast dynamic' that requires
'real-time' application planning and design. GIS application developers
who respond to local situations require additional flexibility in the products
which they use in order to respond in kind.
In this context, this paper reviews an approach to GIS application development
which is "model-based". The approach encompasses the topic of
GIS/model integration, yet it goes beyond this to suggest that the whole
of a GIS application and its problem context is amenable to model-based
representation. A local Land Records initiative concerned with data integration
provides the vehicle for the discussion.
Project Background and Overview
The purpose of this project is to develop
an ArcView interface for use with local Land Records, one which might be
used in a local land information or tax assessor's office. Specifically,
the interface is to support nominal browse and query operations on tabular
and spatial databases. A consortium of eight County governments in Wisconsin
and Illinois, a private consultant, and University researchers is involved
in the effort, with various County agencies serving as clients. The initial
phase of the project focused upon issues related to implementation the interface
within an agency context. Later phases will be concerned with Public Access
to information contained in these databases.
Objectives: Various goals and objectives were established from a
series of consortium meetings and survey questionnaires. From the standpoint
of GIS application development, the main requirements and constraints are
listed below.
(1) Data Integration -- The
interface will serve to integrate local tax assessment records in tabular
form, land ownership parcel coverages, and related land-based information.
(2) Browse and Query Capability -- The
interface will support nominal browse and query operations on tax parcel
data only. In later phases this functionality may be expanded to other thematic
types.
(3) Exclusive use of ArcView/Avenue -- Exclusive use of Esri's ArcView/Avenue product
as the application development environment. Limited financial/technical
resources rules out 'high-end' solutions such as an integrated ArcView/SDE/Oracle
solution. Later phases of the project may examine the use of other software
to augment interface functionality.
(4) ArcView Look and Feel -- Maintain and otherwise enhance the ArcView
interface.
(5) Separate Database for the Interface -- A separate database will serve project needs
in order to protect coverages and tax files from potential abuse by users.
It will be a relatively static database which is periodically updated. Feature-based
data will be in shape file format to enhance ArcView performance. Image
data will be in TIFF format. A second interface project (not discussed in
this paper) coordinates the necessary format conversions and other pre-processing
needed by the shape file database.
(6) Use of high-end PC hardware -- under NT or Windows95
Questions: From this, several challenges of a technical nature can
be inferred.
(1) How does one design a
'single' application for each client without extensive revisions to Avenue
code each time the interface is installed and/or enhanced with new features?
The interface must be installed for each
county participant. The manner in which databases are organized varies widely
across the different county participants. Some have fundamentally different
data models. Moreover, each client has somewhat different desires and expectations.
While agreement was reached as to what constitutes 'core functionality'
for the interface, customization and revisions are expected.
(2) How does one manage 700 to 1000
ArcView themes in a single project?
The databases for County-level Land Records
and Tax Assessment can be quite large. Some of the data layers are tiled
by PLSS township. Good cartography, graphic design, and other operations
require representation of a full range of available feature types for any
particular thematic type. This leads to a lot of themes in a single ArcView
project.
(3) How does one design a
responsive ArcView interface under these constraints?
A Solution for a Tax Parcel Interface: Given the requirements and
constraints discussed above, the challenge of this project was not the implementation
of the usual interface functionality that is commonly associated with ArcView.
Rather, the challenge was responding to the social context of the application
-- the needs of the consortium and individual agencies, including financial/technical
resources and established practices in handling spatial data.
A 'modeling environment' was developed for creating ArcView-based interfaces to tabular
and spatial data. Once the developer constructs a model, the ArcView interface
becomes operational only if the model is internally consistent and the data
to which it refers can be found. The strategy allows for development of
a generic model of an interface that might be expected to accommodate a
range of needs. It may then be customized to meet specific needs.
The Tax Parcel Interface is based upon this development strategy. The underlying
model, or Application Model, consists of two sub-model components and a
user interface for model specification. The Operations Model component is
a 'finite state machine' for use with ArcView. The Data Model component
is a high-level data manager for the application. Using ArcView Table documents,
the developer makes record entries for various 'high-level' interface entities,
constructs which are not built-in to ArcView/Avenue. The fields of the record
entry constitute a set of properties for the entity. Such entities are discussed
in detail in this paper.
The development activity for this project consisted of two phases, the first
concerned with developing the necessary tools and functionality, and the
second concerned with constructing a generic Application Model for the clients.
Subsequent phases will involve model customization for individual agencies.
The remainder of this paper examines various aspects of the solution which
is organized into four sections.
(1) GIS Application Modeling Approach
(2) Operations Model Component
(3) Data Model Component
(4) Model Specification and Viewing Interface
(5) Appendix: Tax Parcel Interface Screens
GIS Application Modeling Approach
The approach used to develop the Tax Parcel Interface is based upon the
idea of a 'model'. Models are simply abstractions or generalizations of
real-world phenomena, in this case a software system, its users, their agency
and related mandates. The Tax Parcel Application is based upon such a model.
The approach is rooted in an Object-Oriented (OO) system analysis methodology
which is part of this author's interest in issues surrounding GIS/model
integration.
Object-Oriented Approach: There are numerous approaches to the analysis
of real-world systems, most of which use abstractions of various sorts to
organize concepts and manage real-world complexity. These approaches have
been developed over past decades for a number of different purposes. Recent
years have witnessed the development of Object-Oriented Programming (OOP)
and related techniques for system analysis. With roots in the discrete modeling
methods of the 1960's, the various OOP approaches are enjoying growing success
in software engineering and database design. In contrast to some other methods,
they tend to focus upon systems of technology rather than the social-institutional
contexts which use such technology. However, some applications are starting
to appear that are concerned with the development of enterprise-wide object
standards, as driven by efforts related to corporate or agency re-engineering.
The advantage of the OOP approach, relative to other approaches, is that
it provides an explicit methodology for conceptualizing a system at different
levels of abstraction. Whether one is developing a software application
or a simulation model, a basic distinction is made between the real-world
system and its modeled surrogate. In particular, a model of the DOMAIN is
distinguished from a model of the APPLICATION (Rumbaugh 1994b). The Domain
Model is bound by issues related to problem definition and associated perceptions.
The Application Model is a high-level translation of the domain into constructs
that are meaningful for software development.
The model building process begins with the perception of a real-world phenomena
relative to the problem at hand. These are mapped into pictorial diagrams
which capture entities, relationships, and system boundary, possibly at
several levels of abstraction. Gradually, initial perceptions are refined
into definitions that are called 'classes'. Objects are created in a computer
from such definitions. They may be related to a real-world domain, or they
may have no meaning outside of the computer application.
GIS/Model Integration: Building upon the framework of Rumbaugh (1993,1994b),
the approach can be refined to accommodate particular concerns that are
increasingly relevant to GIS applications, that of (1) GIS/model integration,
and (2) an explicit recognition of the social and/or policy context of model
development and use. Relative to GIS/model integration, most of the work
to date has focused upon environmental modeling (see Nyerges 1993), which
encompasses a limited number of real-world domains. GIS technology will
continue to disseminate to new applications and become increasingly relevant
to new domains. The models employed by these disciplinary specializations
are explicit representations of the Domain Model. The second area of concern
is necessarily related to the first, since the social (scientific or policy)
context of model development and use determines, to a large extent, the
frames of reference and epistemologies in which problems are defined and
negotiated (King and Kraemer 1993). These considerations have certain procedural
ramifications for a modeling effort, which are beyond the scope of this
paper (see Checkland 1981, Dutton and Kraemer 1985, King and Kraemer 1993).
GIS Application Model Framework: By incorporating such refinements,
one may define four general components of a GIS Application Model according
to data abstraction principles. These components are classes of general
functionality that are required for building spatial models. Depending upon
the nature of the application and technology employed, certain components
might be omitted or otherwise combined. Note that the functionality commonly
associated with a commercial GIS is embedded across the component models.
The framework is compatible with emerging notions of a distributed, object-oriented
GIS.
(1) Domain Model -- A representation of a real-world system
of entities and relationships. Practically any model that is linked-to or
embedded-in a GIS may qualify as such. Possible domains include Environmental
modeling, Demography, Econometrics, Decision modeling, and so forth. It
may include non-mathematical algorithms and control of a heuristic nature.
The disciplinary specialization of more established domain models requires
that GIS applications will increasingly need to reference such models as
stand-alone components, possibly in a distributed object environment (see
Maxwell and Costanza 1995).
(2) Data Model -- A representation of a real-world system
entities and relationships whose attributes may assume values for model
instantiation. This is a type of Domain Model which is treated separately
here because of the specialized role it may play in GIS applications. It
may systematically structure the data -- provide for high-level schema and
logical views of data, among other things. It may also provide access to
spatial metadata or other data standards.
(3) Operations Model -- A representation of
software structure and behavior. The model conceptualizes the underlying
application technology relative to algorithm, control, and human behaviors
involved in use of the application. It does not represent elements of any
real-world domain, unless it is somehow combined with a domain model. It
may include algorithms and control that generalize across many domains and
hence are not specific to any, such as spatial analysis, dynamic simulation,
location/allocation, optimization, machine learning, etc.
(4) Model Specification and Viewing
Interface -- A representation
of software structure for model specification, viewing, and communications.
This is a type of Operations Model that provides a user interface for modeling
purposes, and includes alternative representations for any of the model
components listed above. Such functionality enables user control over model
parameters and structure.
This framework also borrows ideas from more traditional simulation modeling
methods, particularly System Dynamics (see Roberts et al. 1983). Applications
which are designed to respond to a policy or social decision-making context
require alternative means for representing the model and its output. Such
provisions 'open-up' the model and allow participants to view model organization.
This facilitates storage and retrieval of model abstractions for public
scrutiny in a manner that clarifies underlying assumptions and promotes
negotiation of alternative problem definitions. This is vital to determining
(external) model validity. Such provisions might also be combined with those
used for model specification. Iconic representations have become popular
for such purposes, as implemented in some commercial modeling packages such
as STELLA for System Dynamics (Richmond et al. 1996).
Concept for a Tax Parcel Interface: Under the framework discussed
above, the Tax Parcel Interface requires an Operations Model, Data Model,
and Model Specification components to fully implement an Application Model.
For this application the Domain Model discussed above is essentially the
SAME as the Data Model. Furthermore, the Data Model was embedded as a component
to the Operations Model, for reasons that will be discussed later (figure
1).
Figure 1: Application Structure
The functionality of the Operations model
was developed as modular code or 'tools' to allow easy customization of
the application (figure 1). These include a Query tool, an Report generation
tool, a Layout tool, a Location map tool, among others. They may be loaded
into and unloaded from the ArcView project. Use of particular tools are
dependent upon Operations model, and ultimately upon problem context. The
remainder of this paper discusses each model component in turn.
Operations Model:
Organization of Application Objects
The first component of the Application Model is the Operations Model, which
is a direct incarnation of the OOP methodology employed. The interface design
phase commenced with preliminary 'design sketch' stages, and proceeded through
development and review of prototype software. The resulting model describes
a general-purpose 'finite-state machine' designed for use in ArcView. The
developer specifies application states using an table documents associated
with the Operations Model, and implements transitions as actions defined
in application controls. The latter task involves some 'top-level' custom
scripting using Avenue.
General Operations: A generic set of interface operations were identified
in preliminary design phases of the project. This represents the kinds control
the user will have over the behavior of the interface. While the ultimate
needs of each client differed, basic agreement was reached over what constitutes
a core functionality for the interface. A fundamental breakdown of interface
operations is listed below with more description to follow.
* Data
Layer Selection
* Geographic
Navigation -- feature-based location of geographic extents
* Parcel
Query -- spatial and attribute query over a range of geographic scales
* Output--
make maps and reports
Interface Organization: At the design concept level, the interface
was conceived as a set of 'screens' in storyboard fashion. Each SCREEN corresponds
with an analysis and breakdown of particular user behaviors, or set of behaviors
involved in using the interface. Through the course of client review and
subsequent development the organizational scheme changed only in the details
of implementation. The basic organization of the interface includes the
SCREENS listed below.
Introductory
Orientation Screen -- opens
with a county-scale view of default data layers including Minor Civil Divisions,
Major Roads, and Major Hydrological features displayed in a Primary View
document. An adjoining menu document contains custom GUI controls which
allow transition to the screens listed below (Appendix - figure 8).
Choose
Data Layers/Attributes Screen
-- presents the user with 'check-mark' style of GUI control for selecting
particular data layers, including thematic attributes. Another controller
allows return to the Introductory Screen at which time the display of the
Primary View is updated (Appendix
- figure 9).
Navigate
Screen -- offers different
geographic navigation modes to locate a feature or geographic extent. The
user may navigate by Parcel ID Number, Owner Name, Owner Address, Street
Intersection, Zoom Rectangle, and Lake Name. Located features or extents
are displayed in the Primary View document. Locating a feature does not
change the parcel selection set, rather a located feature is indicated using
a colored outline. An adjoining menu document contains custom GUI controls
which allow the user to proceed to an Output Screen, or return to the Introductory
Screen (Appendix - figure
10).
Parcel
Query Screen -- offers different
modes of query on the parcel database, including Attribute Match, Attribute
Range Query, and Parcel Buffering. Executing a query changes the selection
set, which is displayed in the Primary View document. Once a query is executed,
the user may SCAN the selected set of parcel features and corresponding
tabular attributes. This is accomplished using a split-screen composed of
the Table and View documents (not shown). An adjoining menu document contains
custom GUI controls which allow the user to proceed to an Output Screen,
or return to the Introductory Screen (Appendix
- figure 11).
Map
Output Screen -- displays a
Layout document of the current extent in the Primary View document. An adjoining
menu document contains custom GUI controls which allow the user to print
the Layout document, or return to the Introductory Screen (Appendix - figure 12).
Report Output Screen -- displays selected Parcel attributes in text
format using a Layout document. The user may scan through possibly multiple
pages of such data. An adjoining menu document contains custom GUI controls
which allow the user to print the Layout document, or return to the Introductory
Screen (not shown).
Model Development: In this project the Operations Model deals exclusively
with Application Objects (Rumbaugh 1993). These are computer representations
of entities which have no meaning in the real-world, and whose sole purpose
is presentation of domain objects or to otherwise implement a computer interface.
ArcView is essentially a collection of Application Objects. Domain entities
are represented in the Data Model discussed in the next section.
The interface itself is organized into a set of STATES and TRANSITIONS between
the states. Only the interface states are represented in the model. Transitions
between states are defined by the actions of interface controllers and tracked
through the use of a system-based stack. The conceptual SCREEN object generally
corresponds to an interface STATE, which is implemented as a collection
of ArcView documents that are appropriately placed on the computer monitor's
screen.
Additional functionality was developed to augment ArcView's concept of a
GUI Control. Early in the process it was recognized that a proliferation
of ArcView Buttons and Menu Choices would not serve the needs of novices
(and ultimately the general public). An alternative controller concept was
designed which uses ArcView Graphic objects with an object tag that store
the names of a Click and an Update script. These are executed by a controlling
process which the developer specifies as part of the interface structure.
Such custom controls may be used in View or Layout documents and allow the
use of 'instructional text' and other graphics in conjunction with the control
box (appendix 1, figure 9). This functionality is packaged as a separate
script module.
Simulation of High-Level Objects: The Object Model (OM) diagraming
method (Rumbaugh et al. 1991) was used to structure thinking on interface
design. The method is useful for organizing programming concepts used in
the Application Model. As such, the storyboard of SCREENS identified at
the conceptual level is roughly translated into the diagrams shown in appendix
1, figures 8-12.
Figure 2: Simulation of High-Level Objects
Such treatment integrates component Operations and Data model into a hierarchy
based upon relationships of Aggregation or Association (figures 2, 3). Note
that the OM diagrams are used differ slightly from the usual intent, for
reasons that stem from the use of ArcView/Avenue as a development environment.
Typically such diagrams are used to portray Generalization schemes -- the
inheritance of attributes and functions across a class hierarchy. However,
an inheritance mechanism was not implemented in this project. The OM diagrams
could be reworked in terms of generalization given the use of a true OOP
language.
Because Avenue is not in itself an Object-Oriented Programming language,
any new class defined by the Application Model cannot be realized using
Avenue. Consequently any new 'pseudo-classes' portrayed by the OM diagrams
can be thought of as 'data types'. These were implemented as tuples in the
form of Avenue Lists (figure) and are stored in an internal Dictionary .
This may be considered analogous to the definition of a table relation.
The technique employed in this project constrains the creation of new data
types to the association of at least one existing Avenue class with additional
(new) attributes.
Likewise, 'pseudo-objects' instantiated from such definitions are technically
not objects at all, but rather an association of at least one pre-existing
Avenue object with a set of VALUES (figure 2). Such associations are also
implemented as tuples stored in Avenue property lists. Typical attribute
values include the identifier(s) of associated Avenue objects, default settings
for the attributes of associated Avenue objects, and values for new attributes
of the 'pseudo-object'. Examples of new attributes include the names of
scripts which handle new kinds of 'pseudo-events', such as opening and closing
an interface state or changing the extent of a view. There are a number
of such attributes in the Operations Model. Together they provide a framework
within which the behavior of the application is defined. The developer writes
custom scripts and assigns them as handlers for these properties, some of
which are listed below.
The development of Avenue scripts was modularized relative to the new data
types defined in the OM diagrams. Here again, since Avenue is not extensible
these are not member functions which belong to a class. A script naming
convention is imposed in order to logically group the scripts by a name
substring. The resulting module also includes scripts which provide definitions
for the data types which are encapsulated with the script module.
Pseudo-classes for the Operation Model are shown in figure 3 as an hierarchy
defined by Association and Aggregation, rather than the usual Generalization
relation implemented in inheritance. Where exceptions occur (indicated by
the 'isa' label), the tuple of the corresponding pseudo-class employs a
Boolean item to flag the data sub-type. The remainder of this section describes
the 'objects' which were defined using this method.
Figure 3: OM Diagram for the Operations Model
Application Document: Beginning at the bottom of the OM diagram in
figure 3, the standard ArcView document classes (View, Table, Layout, etc.)
are augmented with additional properties, resulting in data types with names
such as "App_View" and so forth. Properties common to all these
data types are associated with the abstract type "App_Doc". Some
of the new properties introduced at this level include defaults for the
event handling properties of ArcView's Doc class. These are listed below.
* Open
script, Close script, Update script -- for instances of ArcView Doc class
* Screen
Tiling script, Screen Tile rectangle (if cached)
* App_GUI
alias -- link to Application DocGUI and associated properties
An App_Doc data type is also associated with an App_GUI data type, by primary-foreign
key relationships. The App_GUI data type is an aggregation of an ArcView
DocGUI and properties which allow for sorting and toggling of ArcView Control
visibility, as well as substitution of a Control's event handling scripts.
Alternatively, the developer may also clone a default GUI, customize it,
and simply associate it with an App_Doc, without incurring the overhead
of sorting and visibility toggling.
Application State: Moving up the hierarchy of the OM diagram in figure
3, the "App_State" data type is encountered next. It models the
STATE of the ArcView application, which was referred to as a SCREEN at the
conceptual level of development. An App_State is composed of a set of App_Docs
with coordinated attribute values. For instance, a state may consist of
two views and a table whose associated windows are open and positioned such
that they tile the monitor screen (appendix 1, figure 11). Some additional
properties introduced at this level are listed below.
* Open
State script
* Close
State script
* Activate
State script -- invoked when document focus changes
There are two kinds of App_State -- non-operational, and operational --
which are not shown in the diagram. These are essentially modes. Non-operational
states are used for development and configuring the interface to specific
data sets. Operational states are used for in a functioning interface, and
includes a single pre-defined state -- the "Intro State". All
other operational states are defined by the user/developer.
Application Model: The top-level of the OM diagram in figure 3 is
the "App_Model" object. This is a the top-level data type in the
Operations Model. Its properties are global to the interface application.
Some new properties introduced at this level are listed below.
* Application
Startup Script -- non-op/op mode transition
* Application
Shutdown Script -- op/non-op mode transition
* Enforce
Script -- enforces (operational) state properties
* Project
window visibility flag
A set of App_States comprise the App_Model, along with an association with
ArcView's Application object. Associated scripts provide control for application
state transitions, and enforcement of current state properties. The script
module which packages this functionality is the heart of the system, upon
which all other script modules are dependent.
Data Model:
High-Level Views and Data Independence
The second component of the Application Model is the Data Model. It is an
incarnation of the Domain Model defined by Rumbaugh (1994b), but is treated
separately because of the specialized role it may assume in GIS applications.
Here the term is used in a more general sense than is usually connoted in
the database community. Its use is closer to the notion of a 'high-level'
view or database schema (which may accommodate alternative data structuring
methods). The schema employed by the organization or agency is used to organize
and reinforce an understanding of its role, purpose and related mandates.
Hence for an agency that supports a parcel-based Land Records system, data
that is used for spatial referencing and Parcel Ownership is central to
a schema which organizes a view of the database. Other data themes tend
to play a supportive role relative to primary functions and operations,
and may even be represented as attributes to the parcel. As the agency begins
support additional roles such as 911 emergency response or update of Census
Bureau TIGER data, the schema may serve to support an integrated data type,
such as parcels with street centerlines, addresses, and hydrography.
In implementation the Data Model can be thought of as a specialized spatial
data manager for GIS applications. Whether it is the top-level of a DBMS
or explicitly embedded in a separate application, it comprises an interface
-- another layer of distinct software -- between the GIS application and
its database. It may also provide access to metadata documents, which in
turn might be used to constrain the use of spatial data. With increased
use of spatial data in a distributed computing environment, the Data Model
component has many other potential uses.
Other functions of the Data Model are more pragmatic. By introducing a data
manager, an ArcView application can achieve a certain degree of independence
from its database. The data manager can defer data object instantiation
to a time when it is needed, which in ArcView has certain performance advantages.
Since the Data Model may provide for 'higher-level' views of spatial data,
relative to those available in ArcView, the definition of high-level data
types is required. Such data types can be used for implementing a data content
standard (within certain constraints). They may also be used to overcome
deficiencies in ArcView performance by transforming data into forms that
are more efficient to process.
Thematic Data Types: In this project, the Data Model may be thought
to encompass the 'common' data elements across situations likely to be encountered,
or it may also be based upon some agreed-upon content standard. It specifies
the thematic data types required by the application. Participating counties
will use local coordinate systems for spatial reference, and each county
will be responsible for accompanying annotation and ArcView legend symbology.
* Tax
Parcel Database (tabular)
* Parcel
Coverages
* Local
Roads, Street CL, Addresses
* Landuse,
Zoning
* Minor
Civil Divisions
* Soils,
Hydrology, Wetlands, Watersheds
* PLSS
Towns and Sections
* Base
Mapping
* Data
Layer Symbology and Annotation for the above
Model Development: The remainder of this section examines the abstract
data types managed by the Data Model. A review of the client data sets revealed
a range of strategies and feature types used to represent a particular data
theme. It was determined that certain transformations would be required
as part of the processing of the interface database. ArcView/Avenue is capable
of handling other types of transformations on-the-fly, or as part of interface
initialization procedures.
Figure 4: OM Diagram for the Data Model
Aggregation of Themes into Layers (App_Layer): As in the Operations
Model discussed above, the Data Model was conceptualized in terms of OM
diagrams. The Data Model component is embedded under the data type "App_View",
at the top of the OM diagram in figure 4. The App_View data type was discussed
above, but in more detail we can see an association of an ArcView View document,
and one or more instances of an "App_Layer" type (not to be confused
with Library Layers).
The App_Layer type specifies an aggregation of one or more App_Themes (see
below). Such aggregations are modeled in ArcView List objects. This type
of aggregation is a simple and useful technique for transforming fundamentally
different data representations into a single 'standard' recognized by an
application.
For instance, a single interface-based request for display of a hydrologic
data layer may add themes of several feature types, including several classes
of annotation, lines for streams, and polygons for lakes. In another example,
one county may employ ortho-photography for purposes of base mapping, while
another county might use planimetric data supplemented with various annotation
layers. By using this technique and with nominal revision to the application,
both local databases can be accommodated by the same interface.
Data Dictionary (App_Theme): Moving down the hierarchy of the OM
diagram in figure 4, the "App_Theme" data type is encountered
next. An App_Theme is an abstract type which defines the properties common
among several sub-types, some of which are discussed below. The sub-types
ultimately reference at least one of the standard ArcView Theme classes.
The common properties define a Data Dictionary for a theme. Properties include
defaults for data source path, scale thresholds for visibility, standard
legend symbology, classification field, geocoding parameters, metadata source,
and so forth. The various App-Theme sub-types are flagged as well. Only
one branch of this hierarchy is examined here.
Figure 5: OM Diagram for the TILE_Theme and MAT_Theme
Tiled Spatial Data (TILE_Theme): Some spatial data is so dense in
feature representation that to create a single shape file would be inconvenient
for handling and result in poor ArcView performance. One relatively 'low-tech'
response to the problem is to partition the overall extent into manageable
units called TILES. It was necessary to handle tiled data types for themes
derived from parcel coverages, as well as other data such as soils coverages.
All the county participants tiled such data on the basis of PLSS Townships.
The data type "TILE_Theme" was designed to handle such cases (figure
5). TILE_Theme is associated with an Ftab index and functionality that dynamically
tiles a View extent. Any image or feature-based theme may be tiled. The
auto-tiling function is also coordinated with pan/zoom tools and general
query functionality. TILE_Theme will accommodate either shape files or coverages,
and may point to an ArcInfo Librarian directory structure. Non-Librarian
files require a directory structure which emulates that of Librarian.
Figure 6: Master Attribute Theme
Master Attribute Theme (MAT_Theme): One of the primary goals of this
project was to integrate the Tax Parcel Tables with the spatial representations
of Land Ownership Parcels. Such integration is recent in the local Land
Records business. The Tax Tables are typically maintained by a tax assessment
or other revenue function of the state, while the Ownership Parcels are
usually maintained by a Land Information office. Moreover, such data sets
are large by most standards, and the financial/technical resources available
to participating county governments precluded implementation of an integrated
ArcView/SDE/Oracle solution.
The data type "MAT_Theme" was designed for such data integration.
It consists of two data sets -- a tiled spatial coverage comprised of polygon
features, and a point coverage derived from a tabular database. The MAT_Theme
type is a sub-type of TILE_Theme and provides an alternative way of organizing
the attributes of tiled spatial data (figure 5). It was found that certain
conveniences and query efficiencies were gained by keeping the attribute
data separate from the spatial coverages. The attribute tables may be converted
to point coverages and related to the spatial database using geometric methods
and/or spatial joins (figure 6).
The method responds to inefficiencies of querying large tiled data sets
in ArcView. A single table can be sorted or indexed, then searched using
binary methods. This leads to search times that are much more efficient,
when compared to similar operations based upon sequential processing of
tiled PATs. It relies on the use of Avenue theme-on-theme query to implement
point-in-polygon and other spatial relations. This is required in order
to coordinate record selections between the two data sets. Any use of such
Avenue 'batch' requests will be much more efficient than replicating the
same operation in Avenue code. Despite the additional coordination and code
overhead, the method displays greatly enhanced query times when used over
large-scale extents.
The MAT_Theme data type supports table attribute query and spatial query
across tiled extents (figure 6). For spatial query, the selection operation
is performed on the tiled-MAT component (ie, parcel coverages), and the
selection transferred to the point-MAT component (ie, parcel attributes)
using a polygon-contains-point relation. For attribute query, the selection
operation is performed on the point-MAT, with the selection transferred
to the tiled-MAT using a point-in-polygon relation.
The MAT_Theme type requires its data to be structured in a particular form.
In the ArcView application environment this means that the data must be
pre-processed. Processing requires a key field (with unique keys) common
to the spatial and attribute data sets. For this application the Parcel
ID (PIN) was used. The steps for such processing are listed below and may
be performed in ArcInfo or ArcView.
(1) Generate parcel centroids, and store in tax parcel table, or component
thereof
(2) Regionalize the parcel features into complex polygons (if needed)
(3) Combine multiple Tax Parcel Table components into a single table (if
needed)
(4) Convert the resulting table attributes into a point coverage
To summarize, the MAT_Theme data type became the heart of the application
due to its data integration role. Its design responds largely to contemporary
'low-tech' practices in spatial data handling -- partly to the computational
complexity inherent to query operations on large tiled data sets, and partly
due to limitations in ArcView performance. The advantages of the data type
in this application are listed below.
(1) Integration of traditional IT database with Land Records spatial database
(2) Accommodates data set tiling
(3) Enhanced query performance, especially at county-wide (large) scales
(4) Enables use of custom indexes and search methods
(5) Allows for convenient report generation
(6) A generic method which may be applied to any thematic type
Application Model Specification
and Viewing Interface
The third component of the GIS Application
Model is a means of model specification and viewing of model structure and
organization. Recall that the pseudo-objects instantiated by the model are
aggregations of object references plus additional attribute values. The
aggregation is represented internally as a tuple (figure 7). Such organization
lends itself to use of ArcView Table documents as devices for model specification.
They are also useful, but not ideal, for viewing the organization of a model.
While iconic representations are generally superior for such purposes, the
table metaphor has become fairly ingrained in the computer-using public
mind. Such Property Tables are easy to implement in Avenue, though they
are unable to represent explicit relationships between model entities.
Figure 7: Model Specification
Property Table Creation: The new data types defined in the Operations
and Data model are represented using ArcView Lists. Such definitions are
stored in an internal Dictionary. Generally, any 'pseudo-object' created
from such definitions corresponds to a single tuple, also in list form.
Creation of a Property Table input device is straightforward, involving
the simple projection of List items to a field structure. Item types which
are not compatible with the resulting field structure are not projected,
or if they are projected then the corresponding field may be simply hidden
from the user. Any spurious input in such fields is ignored when the table
is converted back into its internal representation.
Input Checking and Compilation: The user/developer uses standard
ArcView functionality to edit these property tables. Once all entries are
complete, the table values are read back into the internal list format.
The model must be 'compiled' before the interface becomes operational, which
proceeds in two passes. The first pass checks the internal consistency of
the model representation. The second pass checks all references to external
data sources, such as legal file names and other entities such as field
names.
Having two phases of checking enables the developer to construct a basic
model without worrying about explicit references to external data sources.
The model can then be transferred to a different database environment and
configured to a local data set. If an error is found, the compiler opens
the appropriate input table, selects the record which contains the offending
input, and displays an error message.
Upon successful compilation an internal representation of the model is constructed
and the interface application becomes operational. One payoff of the Application
Modeling approach is some degree of independence of the application from
its database. This is because the model mediates the creation of ArcView
objects. Several options are incorporated which control just how and when
an ArcView Theme or Table is instantiated. In general it is useful to defer
instantiation until a data object is needed. If instantiated objects are
never 'saved' with the ArcView project (due to high-level control), then
one can avoid the inevitable 'training' phase invoked during ArcView's project
startup (if ArcView cannot find a previously created data object). However,
this strategy involves certain tradeoffs in performance of the interface
application.
Viewing and Specifying Model Organization: Because the Application
Model aggregates pre-defined ArcView classes and new attributes, the Table
representations are necessarily inter-related according to primary-foreign
key relationships. Such relationships are implied by the various aggregations.
For example, appendix
- figure 13 shows the Property
Tables for the pseudo-classes App_State, App_View, and App_Layer. Each record
in the table nominally represents a pseudo-object. Certain key item values
in one table 'point' to record entries in another table.
Specifically, the field named "Visible Doc Aliai" in the "State
Properties" table contains entries for the Object IDs of all ArcView
documents which are visible at each application state. In this case the
OIDs are document alias names. Tracing such references to the "View
Properties" table, one can find a key field named "Alias"
which contains these values. Such relationships provide access to other
properties. For instance, each entry in the "View Properties"
table contains the name of the script which calculates the screen rectangle
used to tile the document, and so forth.
To carry the example even further, there is another field in the "View
Properties" table named "Layer Aliai" which lists the alias
names of App_Layer data objects that are to present in a view at a particular
interface state. The "Layer Properties" Table has record entries
for each of these alias names, which are in turn mapped to various theme
alias names and associated data sources.
Conclusions
OOP methodologies are powerful tool for conceptualizing software organization.
They may be extended to incorporate emerging concerns in GIS application
development. This project takes a stab at integrating basic modeling functionality
into desktop GIS. It incorporates an Operations Model that can be used to
coordinate the behavior of Application Objects (Rumbaugh 1993). It uses
a Data Model to represent new data types and logical views of data that
are 'higher-level' than those available in ArcView. It includes provisions
for model specification and viewing, which allows the model to be opened-up
for public scrutiny and review. In the case of this project, such provisions
also have a number of pragmatic benefits related to data independence, model
revision, application portability and re-use.
The approach undoubtedly has general application to domain-specific GIS
modeling efforts, but still requires further development. Despite the promotional
efforts of the software industry, the question remains as to the effectiveness
of OOP methods in responding to the social context of application development,
including that of modeling for policy debate (see Dutton and Kraemer 1985,
King and Kraemer 1993). In particular, appropriate procedures and representations
are needed for communicating model concepts. As graphic languages, the OM
diagrams of Rumbaugh et al. (1991) and Entity-Relationship (ER) diagrams
of Chen (1976) are precise enough to enable constructive software and database
development. Because they are designed for this, they are too complicated
for use in a public setting. Simpler representations are more appropriate
for addressing issues surrounding a policy debate. Perhaps a multi-level
approach which employs different languages for different purposes is a more
appropriate approach.
Other implementation problems can be traced to ArcView/Avenue performance
and limitations as a development environment. In particular, Avenue lacks
the extensibility required to do such work efficiently. A fair amount of
programming discipline and a significant code infrastructure is required
to implement the ideas discussed in this paper. Certain strategies may be
employed to minimize the additional code overhead required by the technique.
Moreover, to handle a large project in the ArcView/Avenue, the developer
must implement a suitable development environment. Finally, the performance
of ArcView suggests that this approach is best implemented on a high-end
Pentium, though this also depends upon the particulars of system configuration
and the complexity of the Application Model. Such concerns place limitations
on the scope of application development that is possible using ArcView.
On the other hand, technology marches onward. Emerging industry standards
such as OLE2/COM and CORBA suggest that a distributed object framework for
integrating the required functionality is close-at-hand.
Acknowledgments
John Amundson, Dane County GIS Manager, WI
Andy Erdman, Jefferson County LIO, WI
Chuck Kell, Portage County LIO, WI
Mike Romportl, Oneida County LIO, WI
Chris Lucas, Shawano County LIO, WI
Kevin Struck, Ed Harvey, Sheboygan County LIO, WI
John McLaughlin, DuPage County LIO, IL
Don Ferber, University of Wisconsin - Madison, WI
Pete Thum, Bill Holland, GeoAnalytics Inc - Madison, WI
Appendix
Tax Parcel Interface Screens
Figure 8: Introductory Orientation Screen (text reference)
Figure 9: Choose Data Layer/Attribute Screen (text reference)
Figure 10: Navigate Screen (text reference)
Figure 11: Parcel Query Screen (text reference)
Figure 12: Map Output Screen (text reference)
Figure 13: Tables for Model Specification and Viewing (text reference)
References
Checkland, P. 1981. Systems Thinking, Systems Practice. Chicester:
John Wiley and Sons.
Chen, P. 1976. The Entity-Relationship Model - Towards a Unified View of
Data. ACM Transactions on Database Systems, 1(1): 9-36.
King, J.L. and Kraemer, K.L. 1993. Models, Facts, and the Policy Process:
The Political Ecology of Estimated Truth. Environmental Modeling with
GIS. Michael F. Goodchild, Bradley O. Parks, Louis T. Steyaert eds,
pp. 353-362.
Dutton, W.H. and Kraemer, K.L. 1985. Modeling as Negotiating: The Political
Dynamics of Computer Models in the Policy Process. Ablex, N.J.
Nyerges, T.L. 1993. Understanding the Scope of GIS: Its Relationship To
Environmental Modeling. Environmental Modeling with GIS. Michael
F. Goodchild, Bradley O. Parks, Louis T. Steyaert eds, pp. 75-93.
Maxwell, T. and Costanza, R. 1995. Distributed Modular Spatial Ecosystem
Modeling. International Journal of Computer Simulation: Special Issue
on Advanced Simulation Methodologies, 5(3).
Richmond, B. et al. 1996. STELLA Research Technical Documentation. High
Performance Systems, Inc., Hanover, NH.
Roberts, N. et al. 1983. Introduction to Computer Simulation: A System
Dynamics Approach, Addison-Wesley, Reading.
Rumbaugh, J. et al. 1991. Object-Oriented Modeling and Design, Prentice
Hall, Englewood Cliffs, N.J.
Rumbaugh, J. 1993. How to Find and Use Application Objects. Journal of
Object-Oriented Programming, 6(6).
Rumbaugh, J. 1994a. How the Object Model Changes During Development. Journal
of Object-Oriented Programming, 7(3).
Rumbaugh, J. 1994b. Using Use Cases to Capture Requirements. Journal
of Object-Oriented Programming, 7(9).
Author Information
Steve Allenstein
GIS Consultant
Land Information and Computer Graphics Facility (LICGF)
University of Wisconsin - Madison
B102 Steenbock Library, 550 Babcock Drive
Madison, WI 53706
phone: (608) 263-5534
fax: (608) 262-2500
email: slallens@facstaff.wisc.edu