I agree wholeheartedly that URIs should be pure identifiers, with no
embedded semantics or assumptions of readability. And I agree with Kingsley
that there's an elephant in the room. I might even agree with Kingsley about
what the elephant is.
But to say it from my point of view: machines need to think in ids, people
need to think in names. The RDF/SPARQL "stack", such as it is, has not
internalized the implications of this duality, and thus isn't really
prepared to support both audiences properly. Almost all the canonical
examples of RDF and SPARQL avoid this issue by using toy use-cases with
semi-human-readable URIs, and/or with literals where there ought to be
nodes. If you try to do a non-trivial dataset the right way, you'll
immediately find that writing the RDF or the SPARQL by hand is basically
intractable. If you try to produce an human-intelligible user-interface to
such data, you'll find yourself clinging to rdfs:label for dear life, and
then falling, falling, falling...
In fact, there's almost nothing more telling than the fact that rdfs:label
is rdfS! This is in some ways the most fundamental aspect of human/computer
data-interaction, and RDF itself has essentially nothing to say about it.