Things to observe before continuing:
In this text I make a distinction between a (Web-) resource and an entity,
and I assume that the URI-space is the Web.
The URI-specification defines an infinite number of strings that are the possible set of valid URIs. This creates an abstract space (actually called a namespace, but don't let this confuse you), wherein each unique point in the space is a unique URI. Using URIs, we can navigate in this space. A resource is a "port" to other possible disjoint spaces (e.g. the real world, the network called Internet - the IP-space, etc.). The definition of a resource could be: a (Web-) resource is a pair (URI, mapping-to-point-in-another-or-the-same-space). The mapping can be both abstract and definite (an abstract mapping is, for example, when a resource is mapped outside the "computer world" to a person, and a definite mapping is e.g. to a file accessible thru the Internet). An entity is the name for the thing that a (Web-) resource could map onto (e.g. a person, a file, or an abstract thing). The picture below illustrates this.

Thus, a (Web-) resource is a pair consisting of the URI and a mapping function (abstract or definite).
What is a URL then? A URL is a URI that has a special syntax making the mapping to the entity (a point in another space) explicitly stated in the string. Thus, a URL is a (Web-) resource representing the entity that the URL maps to. Since we can't move things into the abstract space, we need to represent them by using (Web-) resources.
This gives rise to a lot of questions:
Answers:
What is a URN then? The problem with this question is the intersection of the set of URNs and URLs (i.e. that a URI could be a URN, URL, or both [RFC2396]). A URN without a resolution service is a (Web-) resource that has an abstract mapping to an entity. A URN with a resolution service is a (Web-) resource where the mapping is to another (Web-) resource - a URL. (The previous is only valid if a URL could be an entity, i.e. could a mapping inside the same space justify it being called a resource. Does this lead to a contradiction?)
This gives also rise to one question: (at least for now ;))
Answer:
Using a URL to identify an abstract thing (e.g. a feeling) is similar to using a VOID pointer in a programming language and uses it as an identifier (not as a pointer). Does this mean that a URN without a resolutions service should be used to represent abstract entities on the Web? Yes, I think so now, but at this point I am not sure.
To summarize: URIs and URNs identifies (Web-) resources. The differences between them are the mapping.
This is far from complete. This is only what I think at the moment.
(This makes a lot of my previous work a bit "weak" in terms of how I use the word resource. E.g. the picture should be not use the text "A resource e.g. a Web page" but instead "A Web-resource representing a Web page".