The index is as flexible as we could think to make it while retaining a simple model. An index file contains one paragraph per regular file or directory, with paragraphs separated by empty lines. Each line of the paragraph starts with an attribute name, white space, and a corresponding value. If no value is known or applicable, that line is omitted. If all the files in a directory share a value, that line is moved up in the hierarchy to the directory entry in the parent index. Long values (e.g. past column 80) should be continued by starting the next line with a comma.
The entry for a regular file starts with the attribute name "file" and a full path name relative to netlib. Directories use the attribute name "lib". (There is exactly one file or library described per paragraph.)
The attributes and allowed values or intended meaning are as follows:
The lang field is omitted if the filename suffix matches one of the implicit rules:
See netlib/crc/net/compressed for more suffixes.
In general, we do NOT put information in the index that can be derived automatically. For example, we do not put the revision date, because that can be obtained from Netlib's checksum file or by an ftp list command. One exception is size; for files larger than 200kB, a remark is justified to warn people that might inadvertently download something much larger than they expected.
For several of the keywords (such as gams, see, lang) the attributes may be a comma-separated list.
Besides the index file, each chapter also has (in principle) the files
The latter two are generated automatically and are not listed in the index.
Finally, here are some attributes that are not yet in use in Netlib, but may be in the future. See the RIG Proposed Standard RPS-0002 (1994), A Uniform Data Model for Reuse Libraries (UDM), available from the Reuse Library Interoperability Group via AdaNET at 800-444-1458. Their concept of ``Asset'' corresponds very roughly to Netlib's concept of ``lib''; their ``Element'' is our ``file''. Some possible future attributes include the following: