LIB-NAME ::= LIB-ID | LIB-VERSION
LIB-VERSION ::= lib-version LIB-ID VERSION-NUMBER
VERSION-NUMBER ::= version-number NUMBER+
A library name LIB-NAME without a VERSION-NUMBER is written simply as a library identifier LI. A library name LIB-NAME with version numbers N1, ..., Nn is written:
LI version N1. ... .NnThe lists of version numbers are ordered lexicographically on the basis of the usual ordering between natural numbers.
The library name of a library definition determines how the library is to be referenced from other libraries; its interpretation as a URL determines the primary location of the library (any copies of a library are to retain the original name).
When the name of a defined library is simply a library identifier LIB-ID, it must be changed to an explicit library version LIB-VERSION before defining further versions of that library. A library identifier without an explicit version in a downloading construct always refers to the current version of the identified library: the one with the largest list of version numbers (which is not necessarily the last-created version, due to the lexicographic ordering on such lists).
LIB-ID ::= DIRECT-LINK | INDIRECT-LINK
DIRECT-LINK ::= direct-link URL
INDIRECT-LINK ::= indirect-link PATH
A direct link to a library is simply written as the URL of the library. The location of a library is always a directory, giving access not only to the individual specifications defined by the current version of the library but also to previously-defined versions, various indexes, and perhaps other documentation.
An indirect link is written:
FI1/.../FInwhere each file identifier FIi is a valid file name, as for use in a path in a URL. An indirect link is interpreted as a URL by the current global library directory.