You may have heard about the URL homonym problem.
The term “URL” is spelled and pronounced the same way but can mean:
URL as defined by Uniform Resource Identifier (URI): Generic Syntax, RFC 3986, or
URL as defined by HTML5 (Draft, December 17, 2012)
To refresh your memory:
URL in RFC 3986 is defined as:
The term “Uniform Resource Locator” (URL) refers to the subset of URIs that, in addition to identifying a resource, provide a means of locating the resource by describing its primary access mechanism (e.g., its network “location”).
A URL in RFC 3986 is a subtype of URI.
URL in HTML5 is defined as:
A URL is a string used to identify a resource.
A URL in HTML5 is a supertype of URI and IRI.
I would say that going from being a subtype of URI to being a supertype of URI + IRI is a “…willful violation of RFC 3986….”
In LTM syntax, I would solve the URL homonym problem as follows:
/* association types */
[supertype-subtype = "Supertype-subtype";
[supertype = "Supertype";
[subtype = "Subtype";
/* topics */
[uri = "URI";
[url-rfc3986 = "URL";;"URL-RFC 3986"
supertype-subtype(uri : supertype,url-rfc3986 : subtype)
[url-html5 = "URL";;"URL-HTML5"
supertype-subtype(url-html5 : supertype,uri : subtype)
A solution to the URL homonym problem only in the sense of distinguishing which definition is in use.