Section 1.2 High Level Structure


SAIF follows a multiple inheritance, object oriented paradigm. It makes a very strong distinction between the way information is described and the way it is encoded. Three levels of description are recognized. At the most abstract level all information is defined as mathematical constructs, including tuples, lists, sets, enumerations, and primitives. Using these as building blocks SAIF introduces a number of spatial and temporal constructs. It then becomes possible to say that a real world phenomenon can be represented as a type of geographic object, existing in space and time and with various kinds of relationships to other geographic objects. SAIF standardizes such notions.

SAIF also provides the means of representing real world constructs, such as forest stands, environmental monitoring sites, ore bodies, a fleet of ambulances, etc. A user might state that a legal parcel is a type of geographic object with certain attributes, such as parcel identification number and owner, and with the restriction that the geometry must be represented as a polygon. A water usage license may include the name of the licensee, the quantity of water, the date, etc. Such definitions may be based directly on the mathematical constructs, on SAIF's generic spatial and temporal constructs, or on a combination of the two (Figure 1-1).

The generic spatial and temporal (including geographic) constructs in the middle layer constitute the bulk of the SAIF standard schema. Also in this schema are the structures needed to define additional types or classes. There is only one SAIF standard schema, consisting of more than 300 generic constructs.

Consider an agency involved in the production of topographic maps. It may wish to define notions of roads, streams, coastlines, place names, etc. pertinent to the data it has compiled. These constructs can be formally defined and considered as part of a topographic schema. An organization responsible for demographic data may establish a census schema consisting of the definition of census areas, provinces or states, etc. A researcher studying grizzly bear habitat may have another schema with the definitions of objects or features of importance to the study. The topographic schema, the census schema and the habitat schema are all defined through SAIF, but are not part of the SAIF standard. They may be considered as independent standards maintained by the responsible agencies or projects.

Using commercial object oriented CASE (computer aided systems engineering) tools, it is possible to describe constructs in both the SAIF standard schema and user schemas, using a graphics syntax. The graphical models shown in this book are based on the OMT approach (Rumbaugh, et al, 1991). It is summarized in Chapter 2. This graphical modelling technique may be considered as an extension to traditional entity - relationship diagrams.

In order to define constructs using a text based syntax, it was necessary to develop the Class Syntax Notation (CSN). The current version of SQL, ASN.1, and other mainstream languages could not be used since they lack the ability to represent complex structures (i.e., abstract data types). Object oriented languages such as Smalltalk were considered, but as programming languages, they were overly complex yet incomplete in the area of data management. CSN is written in ASCII and may be parsed by a computer program. (Ongoing efforts with the emerging ISO SQL/MM Spatial standard and the Open Geodata Interoperability Specification demonstrate the expression of SAIF constructs in other languages).

Specific instances of constructs, i.e. the actual data describing the objects of interest, may be encoded in either an ASCII or binary form. The ASCII form, known as Object Syntax Notation (OSN) is intended to be read directly by people (e.g. developers), as well as software. The grammar and syntax of CSN and OSN are compatible with one another, such that they may both be used in the same data stream or file. Together they may be considered a data definition language, termed SAIFtalk.


Links to the SAIF 3.1 Specification document and the complete SAIF class list