If you use numbers...
Still not sure what's for the best, but the idea that opaque URIs are better because they're language independent doesn't ring true for me. A word is just as opaque as a GUID if you don't speak the language, but for those who can read it may be far clearer and easier to work with.
Karen, you're bang on that words are not ideal in many ways. Looking at LCSH, it seems to make sense to use a hierarchy of terms to provide contextual disambiguation /apparel/headware/bonnet versus /vehicles/parts/bonnet The opacity of numeric identifiers also appeals to me, though the more I learn about how users use URLs in the real world the more I think we have to have words. Where we have synonyms there is the possibility of supporting multiple equivalent URLs, though that also presents some difficulties. I don't know the "right" answer.
Rob, it's true that an identifier is just a string, a string can be anything (even "string") but... 1) There are a lot fewer words in the world than numbers. And there are a lot of words that are used for more than one thing. So you end up with identifiers like "Pluto1" "Pluto2" or "title", "other title", "alternative title" etc. because you have to extend them. This just leads to confusion. 2) People read meaning into words. Sometimes the wrong meaning. This is in part because words alone aren't very clear without a large amount of context. And my context and your context ("bonnet") may be different. Perhaps what we need to accept is that identifiers, real identifiers, should not be seen by humans. That we need a layer in between the identifier and the human. We don't show people fe80::218:8bff:fe6a:1i65%4 as a web address, we show them something like "http://talis.com". So we need to de-couple identifying and displaying. But we shouldn't let display dictate the range of our identifiers.