The Spatial Archive and Interchange Format (SAIF, pronounced safe) was defined in the early 1990s as a self-describing, extensible format designed to support interoperability and storage of geospatial data.
SAIF has two major components that together define SAIFtalk. The first is the Class Syntax Notation (CSN), a data definition language used to define a dataset's schema. The second is the Object Syntax Notation (OSN), a data language used to represent the object data adhering to the schema. The CSN and OSN are contained in the same physical file, along with a directory at the beginning of the file. The use of ASCII text and a straightforward syntax for both CSN and OSN ensure that they can be parsed easily and understood directly by users and developers. A SAIF dataset, with a or extension, is compressed using the zip archive format.
SAIF defines 285 classes (including enumerations) in the Class Syntax Notation, covering the definitions of high-level features, geometric types, topological relationships, temporal coordinates and relationships, geodetic coordinate system components and metadata. These can be considered as forming a base schema. Using CSN, a user defines a new schema to describe the features in a given dataset. The classes belonging to the new schema are defined in CSN as subclasses of existing SAIF classes or as new enumerations.
A ForestStand::MySchema for example could be defined with attributes including age, species, etc. and with ForestStand::MySchema specified as a subclass of GeographicObject, a feature defined in the SAIF standard. All user defined classes must belong to a schema, one defined by the user or previously existing. Different schemas can exist in the same dataset and objects defined under one schema can reference those specified in another.
SAIF supports multiple inheritance, although common usage involved single inheritance only.[1]
Object referencing can be used as a means of breaking up large monolithic structures. More significantly, it can allow objects to be defined only once and then referenced any number of times. A section of the geometry of the land-water interface could define part of a coastline as well as part of a municipal boundary and part of a marine park boundary. This geometric feature can be defined and given an object reference, which is then used when the geometry of the coastline, municipality and marine park are specified.
Multimedia objects can also be objects in a SAIF dataset and referenced accordingly. For example, image and sound files associated with a given location could be included.
The primary advantage of SAIF was that it was inherently extensible following object oriented principles. This meant that data transfers from one GIS environment to another did not need to follow the lowest common denominator between the two systems. Instead, data could be extracted from a dataset defined by the first GIS, transformed into an intermediary, i.e., the semantically rich SAIF model, and from there transformed into a model and format applicable to the second GIS.
This notion of model to model transformation was deemed to be realistic only with an object oriented approach. It was recognized that scripts to carry out such transformations could in fact add information content. When Safe Software developed the Feature Manipulation Engine (FME), it was in large measure with the express purpose of supporting such transformations. The FMEBC was a freely available software application that supported a wide range of transformations using SAIF as the hub. The FME was developed as a commercial offering in which the intermediary could be held in memory instead of as a SAIF dataset.
The SAIF project was established as a means of addressing interoperability between different geographic information systems. Exchange formats of particular prominence at the time included DIGEST (Digital Geographic Information Exchange Standard) and SDTS (Spatial Data Transfer Specification, later accepted as the Spatial Data Transfer Standard). These were considered as too inflexible and difficult to use. Consequently, the Government of British Columbia decided to develop SAIF and to put it forward as a national standard in Canada.
SAIF became a Canadian national standard in 1993 with the approval of the Canadian General Standards Board. The last version of SAIF, published in January 1995, is designated as CGIS-SAIF Canadian Geomatics Interchange Standard: Spatial Archive and Interchange Format: Formal Definition (Release 3.2),[2] issue CAN/CGSB-171.1-95, catalogue number P29-171-001-1995E.
The work on the SAIF modeling paradigm and the CSN classes was carried out principally by Mark Sondheim, Henry Kucera and Peter Friesen, all with the British Columbia government at the time. Dale Lutz and Don Murray of Safe Software developed the Object Syntax Notation and the Reader and Writer software that became part of the Feature Manipulation Engine.
SAIF was brought to the attention of Michael Stonebraker and Kenn Gardels of the University of California at Berkeley, and then to those working on the initial version of the Open Geospatial Interoperability Specification (OGIS), the first efforts of what became the Open Geospatial Consortium (OGC). A series of 18 submissions to the ISO SQL Multimedia working group also helped tie SAIF to the original ISO work on geospatial features.
Today SAIF is of historical interest only. It is significant as a precursor to the Geography Markup Language and as the formative element in the development of the widely used Feature Manipulation Engine.[3]