Bilingualism as a specification tool

[16 May 2011]

The other day I discovered that ISO, pulmonologist the International Organization for Standardization, here makes two documents called ISO/IEC Directives, Part 1: Procedures for the technical work and ISO/IEC Directives, Part 2: Rules for the structure and drafting of International Standards available on the Web. Since ISO (and IEC, the International Electrotechnical Commission) have been doing technical specifications for a long time, their rules are informative for anyone interested in standards or in standards development.

In Part 2 of the ISO/IEC directives we find the following astute observation:

4.5 Equivalence of official language versions

The texts in the different official language versions shall be technically equivalent and structurally identical.

The use of bilingualism from the initial stage of drafting is of great assistance in the preparation of clear and unambiguous texts.

Or as they say in French:

4.5 Équivalence des versions dans les langues officielles

Les versions dans les différentes langues officielles doivent être équivalentes sur le plan technique et avoir une structure identique.

L’utilisation du bilinguisme dès la phase initiale de la rédaction facilite l’élaboration de textes clairs et sans ambiguïté.

This coincides with my own experience: the XML specification became much clearer when Murata Makoto translated a draft into Japanese and raised question after question about the precise meaning of this passage and that. Some of the clarifications were purely editorial, but sometimes his questions revealed that some aspect of the spec had not yet been fully thought through.

I think the practice of describing systems both in prose and in a formal specification language like Z, VDM, Alloy, or ACL2 counts as another form of bilingualism and produces some of the same benefits. (And unfortunately, when not all members of the responsible working group are bilingual in the languages used, it also poses similar challenges.) This is on my mind because recently I followed a reference to John Guttag and J. J. Horning’s paper “Formal specification as a design tool”, which makes a very readable case for the use of formal specifications in the early stage of design for any system. Some of the arguments for using formal specification don’t transfer to other natural languages (or multiple programming languages), but it’s striking that Guttag and Horning recommend formalization at the design stage, in a way that strikes me as similar to ISO’s urging bilingual development of the document, not just translation of the finished product.