ISO/IEC 8211 - Frequently asked questions

Version 0.2 of 1997-08-26

Author: Tony J Ibbs (tony@lsl.co.uk)

This document still needs a lot of work. Any comments are very welcome.


Contents


What is ISO 8211?

ISO 8211 is more precisely referred to as:

ISO/IEC 8211:1994, Information technology - Specification for a data descriptive file for information interchange.

It comes under the ISO/IEC committee ISO/IEC JTC1 SC21 (and ISO have a brief reference for the standard at ISO/IEC 8211:1994).

There was a previous version dated 1985 (ISO 8211:1985), which this new version cancels and replaces.

Although it is technically incorrect to refer to the standard as "ISO 8211" instead of "ISO/IEC 8211", this document mostly does so (this is because the previous document, which I helped revise, was correctly so called, and I got used to it).

ISO have given permission to quote the Introduction and Scope to the standard, which serve as good formal introductions to it.

A quick intro to ISO 8211

This description was produced for a colleague, and will hopefully be tidied up and improved at some time in the future. Another colleague recommends the introduction to ISO 8211:1985 in the SDTS documentation.

ISO 8211 is a standard designed for the transfer of files of data, which might consist of just about anything. One initial usage (long ago) for such a thing was to move around big array of physics or physical chemistry data.

An ISO 8211 file (called a "DDF" - data definition file) consists of [logical] records (more modern standards would call these blocks).

These records then contain data fields, made up (normally) of subfields (again, a more modern standard would call these records and fields respectively - that is, we would have:

	ISO 8211		modern standard
	--------		---------------
	record			block
	field			record
	subfield		field
- the ISO 8211 usages are consistent with its origins, but are perhaps surprising to programmers used to modern conventions).

Anyway. Each record is made up of three parts:

  1. a leader, which has things like the record length, and other housekeeping data - the first leader in the file also contains the version of 8211 being used, various lengths, etc.
  2. a directory
  3. a data area

The directory in each record contains entries of the form:

So if we had fields called "COORD" and "ATTR", we might have a directory that (in some sense) looked like:

So one can use the directory to get at the data for each field. (In some ways, ISO 8211 can be regarded as a `tagged' format like TIFF, if that means anything to you.)

The first record in the file is special. It is called the DDR (data definition record - the other records are DRs, data records). The best way to think of it is as a dictionary, defining what data can be held in each field. There's a special language defined in Annex B of ISO 8211 which can be used to represent this dictionary in a human readable form.

Anyway, the definition for a tag (field name) is kept in the data area for that tag in record 1 (the DDR). The definition of a field is in (more or less) four parts:

The subfield labels allow one to define the structure of the field - it can be a single subfield, a vector of subfields, a multi-dimensional array, and so on. It can also be a `table' - that is, an array where the number of rows is not defined - this is obviously useful for things like coordinate arrays.

The format definitions are very like Fortran format statements (but with more parentheses - this is acknowledged as being a mistake in the first version of the standard, but we can't change it now). They work pretty much like Fortran format statements, except that one can also produce binary data (S-57 uses this in its binary form to store binary values - INTEGER*4, essentially, if you remember that far back! - as a bid for compactness).

Back to FAQ Contents


What is the difference between ISO 8211:1985 and ISO/IEC 8211:1994?

This description was produced for a colleague, and may be tidied up and improved at some time in the future.
Basically, ISO/IEC 8211:1994 adds:
  1. Binary forms for numeric values
    This is used by S-57, for instance. The most important thing it allows is to transmit integers and floats as binary integers and floats - so one can send a 32 bit signed integer as the relevent bit pattern. Obviously this can save space for large numbers (which is why IHO requested this change).
  2. Binary leaders and directories
    This allows the "size" information for record size and field size to be in a binary form, which allows for very big records and fields. I don't know who wanted this.
  3. Support for ISO/IEC 10646
    Since ISO/IEC 10646 UCS-2 is (essentially) UNICODE (although I think of it the other way round!), I guess you can see why this was wanted by various people. It explicitly allows the use of UCS-2 and UCS-4 in various places (instead of having to do it via ISO 2022 escapes), including A-type subfields (i.e., character data).
  4. Definition of FTAM unstructured and structured document types
    FTAM is an OSI standard, allowing remote access to files (it's kind of the OSI equivalent of the lower levels of FTP). It allows an FTAM client to access the records and fields of an ISO 8211 file over a network, without necessarily transmitting the whole file.
  5. Concatenated regular structures
    This allows a field to be (for instance)
    	array THEN vector THEN array THEN table
        

    whereas before this would have had to be four separate fields. It allows better field definitions in some of the places ISO 8211 is now used.

  6. Recursive tree description.
    I don't know who wanted this, and don't propose to describe it here.
  7. A human-readable, alternate form of data field description
    This was requested by me (oh - sorry - by the UK). It is the "DFD", the little language that allows one to describe the data dictionary in an ISO 8211 file in something that makes sense.

    So instead of the horrible little diagrams one tends to get in SDTS, DIGEST and S-57 (at least the older versions), like

            [m,*2] *FRED!JIM!BOB
                    ((A(2),I(4))
        

    (which may or may not be a valid example), one can instead say:

            FIELD 'NICE'  'A nice little example field'
            FOR BY                  -- i.e., a table
               'FRED'       A(2)    -- the FRED measure of this field
               'JIM'        I(4)    -- the JIMness of this field
               'BOB'        A(2)    -- our BOB value
            END FIELD
        

    (which is correct, and does what the first example was probably meant to).

    DFD text is both suitable for humans to read and create (it is particularly intended for use in the design-phase of creating an ISO 8211 file), and machine-readable to produced a DDR.

The second edition is backwards compatible with the first edition.

This is very slightly untrue, but not in any way that would affect 99.999% of ISO 8211 users (well, actually, probably all users, I suspect).

Back to FAQ Contents


Why should my standard upgrade to the new ISO 8211?

Because you want some of the facilities available in the new standard.

Because referring to an old version of a standard is awkward (does ISO even sell out of date standards?). Users may not be able to get the old standard. Users will assume the new version, and be surprised by being wrong.

Because it doesn't cause huge problems to upgrade:

When you do want to upgrade, it will be easier if the users are already familiar with the new standard.

The new standard has been rewritten, and should be a lot easier to use.

There have already been defect reports made on the new standard, to clarify use of extended character sets (and some minor typos). This work will not be retrofitted to the old standard, but many of the same ambiguities probably (I can't be bothered to check too hard, but it looks so) apply there as well.

Technically, the new standard does say that it cancels and replaces the old.

Back to FAQ Contents


Who uses ISO/IEC 8211?

I am aware of the following standards that use ISO 8211:

BS 7567 (NTF)
Part 3 of the UK national geographic data transfer standard defines an ISO 8211:1985 binding, but so far as I know noone has used this.
GDF
CEN standard for the transfer of transport related information.
DIGEST
DGIWG (the Digital Geographic Information Working Group) defines the DIGEST (Digital Geographic Information Exchange Standard).

I believe DIGEST still uses the previous version of ISO 8211.

S-57
The IHO (International Hydrographic Organisation) defines this standard. Version 3 is now out, and uses the current version of ISO/IEC 8211.
SDTS
SDTS (Spatial Data Transfer Standard) is the USA federal transfer format for geographic data. It still uses only the previous version of ISO 8211. I do not believe that they have plans to upgrade at this time.

The following list, from 1991, comes from Dr A. A. Brooks:

The following is a list of standards applications using ISO 8211 as a vehicle:

US/FIPS 123 - Federal Information Processing Standard.
SDTS - Spatial Data Transfer Specification
US Federal Information Processing Std - 15 Agencies.
DX90 - International Hydrographics Organization Transfer Format
Multinational (80 countries), multi-use standard.
DIGEST - Digital Geographic Information Exchange Standard
Multinational (approx 8 countries), multi-use standard.
NTF - UK National Transfer Format
SAIF - Spatial Archive and Interchange Format
Canadian/British Columbia Ministry of Crown Lands.
JICST - Japanese Information Center for Science and Technology
Developing a Physical Properties Data Base; will be a prototype for other JICST standards.
SSS - Multi-national Side-scan Sonar Distribution

Organizational Applications:

UK
Ordnance Survey, Military Survey, Hydrographics Office: NTF, DIGEST, IHO/DX90.
US Bureau of the CENSUS
Moved 90,000 files throughout a nationally, distributed system will be used for public distribution next year, for ten years.
US USGS/DMA/Census SDTS Product Profiles
US NOAA National Charting Division
Nautical Chart Archives.
US Defense Mapping Agency
ADRG - ARC Digitized Raster Graphics - 40,000 CD-ROM files.
World Vector Shoreline - CD-ROM.
Digital Chart of the World - Random access.
US Dept of the Navy NAVFAC DataBase Management Project.
INTERGRAPH Corp.
MARINER System & allied products; OEM Product Listing.
CONTEL Corp.
Large CD-ROM based (ADRG) Direct Access System.
Excerpta Medica
Medical Abstracts - Netherlands.

In addition, software in Several Countries: Belgium, Canada, Denmark, France, Finland, Greece, Italy, Japan, Netherlands, Norway, South Africa, Spain, Sweden, United Kingdom, United States, West Germany.

Any more information (and corrections) would be welcomed!

Back to FAQ Contents


What other names exist for ISO 8211?

Some countries `repackage' ISO standards under their own standard schemes. I know of the following:

BS 6690
British Standards Institute.
FIPS 123
USA Federal Information Processing Standard - but see the latest information on the withdrawal of this FIPS.

Any more information would be welcomed!

Back to FAQ Contents


What software is available to read/write ISO 8211?

I am aware of the following:

Dr A. A. Brooks' software
Whilst this is not free, it is guaranteed to be correct, as Dr Brooks is one of the main architects of the standard. The software supports the new standard, including reading/writing DFD.

Details of availability?

Contact: I believe that Dr Brooks has now delegated support for this software to someone else. However, until I have details, his email address is brooks@icx.net.

SDTS support library.
This only supports the old version of the standard.

It is free, written in C, and has a very strange idea of what good commenting practice is. I have no opinion of whether it is any use or not (I have no personal interest in it as it does not support the current version of the standard).

The software is available via the SDTS Home Page

(I have since learned that this was originally only intended as software for use internally to USGS, and that a new version of the software may be released at some time in the future, although I don't have confirmation of that.)

Python iso8211 package
This is a package I have been writing in Python, which provides methods for reading an ISO 8211 file. It is mainly intended for debugging ISO 8211 data, although its aims have grown somewhat from that. It is still in development, and does not support the whole of the current standard (in particular, it has no support for clause 7).

I would be very interested to be told of any other ISO 8211 libraries.

Back to FAQ Contents


Which vendors provide ISO 8211 software?

Note that whilst any vendor selling software to read or write a standard using ISO 8211 must have addressed the business of reading/writing at least some aspects of ISO 8211 (see below), this need not mean that they have anything that can be sold as a separate `ISO 8211' library or module. I am, however, aware of the following:

ESRI (Arc/Info)
I have no specific details on what ESRI support, but believe that they provide at least some support for at least SDTS.
GRASS
I have no specific details on what GRASS support, but believe that they provide at least some support for at least SDTS.
Intergraph
I have no specific details on what Intergraph support, but believe that they provide at least some support for at least SDTS.
Laser-Scan (Gothic)
Laser-Scan support several transfer formats based upon ISO 8211 (including IHO S-57 and DIGEST), and thus have appropriate libraries. These are part of the Translate functionality of Gothic, and would thus (presumably) be available to anyone doing software development using the Gothic ADE (Application Development Environment).

Although I have not been directly involved in writing this software (due to scheduling considerations, and the need to ensure other people within Laser-Scan have some knowledge of ISO 8211!), I believe the software to be of good quality.

Necessary disclaimer: I am employed by Laser-Scan, and have worked on Gothic and its Translate module for some years.

Hugh Phillips emailed me with the following information. This is not intended to indicate any endorsement by himself or the UK Hydrographic Office, nor is it a guarantee that any of the companies named have actually implemented relevent software.

From: "HPI, UK Hydrographic Office" <hpi.hydro.gov.uk@post.interalpha.net>
To: "'Tony Ibbs'" <tibbs>
Subject: ISO/IEC 8211 support
Date: Thu, 7 Nov 1996 15:33:24 -0000

There are a number of other companies who will be dealing with S57 data and
therefore, with ISO 8211. These include all the major marine electronics
companies who are building ECDIS. Below are some names and addresses of
companies we know of:

Hugh Astle
Universal Systems Ltd
270 Rookwood Avenue 
PO box 3391 
Station B
Fredericton
New Brunswick
E3A 5H2
CANADA  
Fax: 506 459 3849
email: astle@universal.ca

Gert Buttgenbach
7Cs
Ruhrstrasse 90
D22761 Hamburg
Germany
Fax: 49 40 851 54 40

Simon Wild
Hydrographic Sciences Australia
PO box 6185 North Sydney
NSW
Australia
Fax: 612 959 3594
email: simon@hsa.com.au

Andrey Sabajdash
Morintech Ltd
6 Prospect Kima 
199155 St Petersburg
Russia
Fax: 7 812 350 4055

David Croft
Transas Marine (UK)
Commodore House
Mountbatten Business Centre
16/18 Millbrook Road East
Southampton SO15 1HY
Fax: 01703 233439

Hannu Peiponen
Aspo Systems Oy
Marine Electronics
Olarinluoma 19
PO box 11
FIN 02201 Espoo
Finland
Fax: 358 (9)0422908

I would be very interested in more information on any of the vendors mentioned above, as well as information on other vendors supporting the use of ISO 8211 within their products.

Back to FAQ Contents


How do I handle extended character sets in ISO 8211?

Step 1: You will need to understand ISO/IEC 2022, and possibly other ISO standards. If you need to use ISO/IEC 10646, then you will need to understand that, as well.

Yes, I know that gets in the way of just doing it, but unfortunately experience proves it to be the case. Clause 7 (which is the relevant part of ISO 8211) just doesn't make sense unless one has read the relevant supporting documents. Worse, it can appear to make sense, but lead to wrong conclusions (for instance, if one doesn't understand ISO/IEC 2022 terminology properly).

I will write more on this later - for the moment, try also reading the proposed new clause 7, which may help.

Back to FAQ Contents


Interactive interrogation

Technically, with the new version of 8211, one can do interactive interrogation over FTAM. Unfortunately, I have the impression that FTAM is not too widespread.

Regardless, it is possible to "interrogate" an ISO 8211 file interactively - that's the whole point of the directory at the start of each record, to allow one to find things in the record quickly. And it doesn't take much effort to produce an index for a file, which can be used to do this.

In practice, of course, one would oftem be better off reading the thing in to one's own system, because (a) that's optimised to do one's own sort of work, and (b) disk access is slow (especially if it's CD-ROM or tape!), and one can assume one's own system does caching into memory, etc., to speed things up.

Back to FAQ Contents


What defects are known in the current standard?

Current defect reports

Currently, a set of Defect Reports is going through the appropriate procedure in ISO. The main highlights are:

Other identified defects

Two other possible changes have been identified, too late for this set of DRs. Both are fairly minor. The proposed solutions to both are acceptable to both myself and Dr A. A. Brooks (i.e., the members of the current Defects Committee).

Annex B - concatenation of strings in a DFD

Problem: B.2.1.4 states that two strings separated only by whitespace and a newline, or whitespace and a comment, will be concatenated.

A FOR construct, B.2.5 3), may involve a series of strings (labels), which by B.2.1.1 may span several lines.

The intent of a statement like:

    FOR 'aaa' 'bbb'
        'ccc'

is not to mean:

    FOR 'aaa' 'bbbccc'

but that is what these rules appear to say.

Proposed solution: Change B.2.1.4 so that strings are concatenated by the use of a `+' between them. Thus the example within that clause would become:

   'This is a string which is' + - this comment does not affect anything
   'continued on another line'

Although this is an incompatible change, it should not affect many DFDs, since the need for such continuation should be rare.

ISO 2022 multi-byte user delimiters

Problem:

Briefly put, ISO 2022 multi-byte user delimiters are:

  1. not used by anyone (and thus make the standard more complex for no sensible reason), and
  2. a pain.

Proposed solution:

Deprecate the use of ISO 2022 multi-byte user delimiters.

Back to FAQ Contents


Last modified: Tue Aug 26 17:03:11 BST 1997