A type may have multiple supertypes. In this case, if operation foo is invoked, it must be explicitly requested which supertype's foo operation is meant. The effect of attempting to invoke an operation defined in two supertypes without specifying which operation is meant is undefined . Must think more about this. In order to deal with type names reasonably, type names include a schema designation, and then an identifier within that schema.
Different schemas specify different controls over the namespace.
Some schemas are managed by a central authority or standards body. It also includes a further string generated by that oracle. It is up to the oracle to ascertain that it does not generate the same string twice in its lifetime. This identifies a type initially registered on the type oracle at GS1. A type name may identify at most one type.