James Tauber, who graces this list sometimes, devised an extension to the
(OASIS) SOCAT catalogs called "delegation". This is one of the main things
markup people often have in mind when they use the term "delegation", as far
as concrete technologies, though of course, it is a ubiquitous idea. A
delegation is a link (i.e. to another catalog) and a policy (i.e. "use these
catalog entries by preferene").
SOCAT catalogs is a (non-XML) format which basically allows you to remap or
override identifiers in a document. This helps resolve public identifiers
and notation identifiers, or correct system identifiers.
The online version is at http://www.sgmlopen.org/html/a401.htm. The SOCAT
delegation system has a nice wrinkle--delegates are declared using a kind of
simple pattern-matching, to exploit the regularities in FPIs:
"The DELEGATE keyword indicates that external identifiers with a public
identifier that has partial public identifier as a prefix should be resolved
using a catalog is specified by the associated storage object identifier."
There was another question "what is a GI". Generic Identifier was the term
used in the SGML standard for the name of an element type; you can see that
the concept of "generic markup" came first, and SGML was developed to
support it. One reason it was also chosen was that, strictly, it was felt
that the "name" of an element was its ID; people find even the basic
distinction between an element and an element type difficult, so it there
was a feeling that it might be better to keep the term GI, which avoided
mention of elements let alone types. As things progressed it became clearer
that the "GI" was really a special attribute, and that it mainly functioned
as a content model and attribute selector, rather than identifying the genus
which processing might be interested in per se (other attributes might have
more useful information, hence the architecture movement). Furthermore that
element type was much more than could be usefully expressed in just one DTD
(hence the architecture movement again, where you can have multiple parallel
DTDs or schemas, but which take other attributes as the "Element Type
Name").
Rick Jelliffe