Does the rule "Don't use the same name/word to refer to two different things" have a name, and, if so, what is that name?
I don't recall a common name for the rule, but I found two definitions of the situation that you're trying to prevent:
In software, when words have several meanings, this is called overloading. Your rule would be 'avoid overloading names/words'.
Ambiguity is a more general term for the same thing. So the rule could be 'use unambiguous names /words/terms' or 'define your terminology unambiguously'.
There's a precept in About Face summarized as "Make things that are different look different." This seems like a special case of that.
Maybe Terminology standardisation?
In the book Language, culture and communication in contemporary Europe, by Charlotte Hoffmann, she writes:
FWIT, I’ve published a taxonomy of inconsistencies to aid in user performance analysis, but I suspect it isn’t widely known.
Inconsistency within different parts of the same product are internal, while inconsistency between a product and some other reference (e.g., a standard, a legacy product, or a metaphor) are external.
A contradiction is when the same thing has two different usages. An irregularity is when two different things have the same usage.
The “things” above can be symbols, codes, unit use, formats, terms (like your case), abbreviations, and layout (That makes the mnemonic acronym SCUFTAL).
So what you have is an internal terminology contradiction… which, as you probably know, is really bad.
One form of this two-meanings-for-same-term is known as a synecdoche, and is particularly confusing.
- Part of something is used to refer to the whole thing (pars pro toto), or
- A thing (a "whole") is used to refer to part of it (totum pro parte), or
- A specific class of thing is used to refer to a larger, more general class, or
- A general class of thing is used to refer to a smaller, more specific class, or
- A material is used to refer to an object composed of that material, or
- A container is used to refer to its contents.
I was once in a meeting with 6 others discussing a website for a radio station, and only after an hour of confused back and forth did someone stop to ask "when you say 'programme', do you mean the instance of broadcast, or the conceptual ongoing series of broadcasts under that name?".
I would reverse that and say "Do use namespaces". Rather than just telling people what not to do, this provides a solution right away.