The IFF terminology is managed in terms of namespace prefixes — each namespace is given a unique prefix (with perhaps a few synonyms) in order to avoid clash of terminology. For example, the term ‘morphism’ is introduced in the contexts of the models and theories of first order logic to represent two distinct, but analogous, concepts. When these concepts need to be used in other contexts, the namespace prefixes ‘fol.mod.mor’ and ‘fol.th.mor’ can be used to distinguish them, thus resulting in the distinct representations ‘fol.mod.mor:morphism’ and ‘fol.th.mor:morphism’. Namespaces can be nested. This nesting does not refer to either the vertical or horizontal dimensions of the metalevel structure in Figure 1, but instead to an implicit third dimension of the architecture. This means that the axiomatization of one namespace may be included within the axiomatization of another namespace, when these are closely connected. By definition, an outermost namespace is not included in any other, but an inner namespace is so included, it is not outermost. By definition, an atomic namespace is innermost, no other namespace is included in it. In contrast, a molecular namespace has others included; that is, it is not atomic.

Each namespace incorporates a nexus of satellite concepts centered on a single idea. The granularity of the namespace corresponds to the degree of focus of the idea, with outermost namespaces being the least focused ideas (called basic concepts) covering a broad scope, and the atomic namespaces being the most focused ideas covering a narrow scope. The architecture of the IFF namespace mechanism is flat — namespace prefixes are like tags: by using namespace prefixes the complete IFF terminology is the disjoint union of the terminology in the atomic IFF namespaces. To recapitulate, the IFF architecture can be thought of as a two dimensional structure (Figure 1) consisting of metalevels, which are partitioned into outermost namespaces representing basic concepts such as diagram (‘dgm’), graph (‘gph’), category (‘cat’) or institution (‘ins’). The various levels are indexed by the natural numbers {0, 2, 3, … n, …} plus (for the metashell levels) three additional symbols ‘meta’, ‘type’ and ‘iff’. Natural language correlates can also be used for the first four levels: ‘obj’ for 0, ‘sml’ for 1, ‘lrg’ for 2 and ‘vlrg’ for 3.

To locate any namespace one can use its (level, concept) pair, a concatenation called the full prefix of the name of the namespace. The full namespace prefix acts as a unique identifier of that namespace. For example, the namespace axiomatizing very large categories would be denoted by ‘vlrg.cat’ or ‘3.cat’. Inner namespaces need further qualification. For example, the inner namespace of small graph morphisms would be denoted by ‘sml.gph.mor’. It is assumed that each basic concept has a particular metalevel that is in common use. These are indicated by the filled squares for the particular concepts in Figure 2. For such commonly used namespaces, the level notation may be omitted. For example, the namespace that axiomatizes large categories could be denoted by ‘lrg.cat’ or ‘2.cat’, but a simpler notation is ‘cat’.

The namespace mechanism has been made backward compatible, by allowing a special namespace prefix notation that is synonymous with the general format just described. For example, the namespace axiomatizing large categories would be denoted by the general prefixes ‘cat’, ‘lrg.cat’ or ‘2.cat’ or by the special prefix ‘CAT’ that was used in earlier versions of the IFF-CAT axiomatization. Hence, for any basic concept (outermost namespace), both the general prefix and the common level need to be declared, and for any namespace axiomatization, the special prefixes also need to be declared. The prefixes denoting inner namespaces should be compatible with outermost prefixes; for example, at level 2 the general prefix for the outermost namespace for limits would be ‘lrg.lim’ or ‘2.lim’ with the special prefix ‘LIM’, whereas the general prefix for the inner (non-atomic) namespace of pullbacks would be ‘lrg.lim.pbk’ with the special prefix ‘LIM.PBK’. As these examples illustrate, only the lower case is needed for the general namespace prefix notation.