Names are fun to think about. Coming up with a theory about what, if anything, a name means was a good inroad to the philosophy of language for me.
In the land of frameworks for describing resources, there’s some confusion about how to go about constructing names for those resources. The actual morphology of names comes up because the names are processed by computers, which abhor ambiguity almost as much as nature abhors a vacuum. There is, thus, a temptation to sneak some kind of significant structure into names, where the structure is supposed to help reduce the ambiguity. “Charlotte” is a perfectly good set of characters, but does it refer to a fictional spider, a city in North Carolina, the actress who played Mrs. Garrett on Diff’rent Strokes, or something else? Humans have the conversational context to help figure out which of these is the case, and you can always add more characters when appropriate (” … the spider,” “… North Carolina,” “Rae”). Computers, however, need a little more help, as things currently stand. They’re not great at context, and they’re able to handle much longer names than humans without breaking a sweat, so disambiguation is largely solved by throwing more characters into the name.
What should those characters be, and what should their structure be? Accepting the constraint that a name must be a URI, there’s still lots to argue about. There’s my setup for linking to Names and addresses.