1. A method of locating a resource that is stored in a location in a network that is identified by a location identifier, comprising the steps of: storing, in a metadata registry in a first storage device, metadata that describes the resource in association with the location identifier of the resource; receiving a request to locate the resource, the request containing an element of the metadata; retrieving the location identifier associated with the resource from the metadata registry based on the element; retrieving the resource over the network using the location identifier; storing a natural language name for the resource in the metadata; receiving a request to locate the resource based on the natural language name; retrieving the location identifier associated with the natural language name from the metadata registry using the natural language name; storing the natural language name in association with the location identifier in a name file in a second storage device associated with the resource; retrieving the name file; parsing the name file; building an index entry based on the values parsed from the name file and storing the index entry in an index of the metadata registry by: establishing, in a memory, a first index, a second index, a first queue associated with the first index, and a second queue associated with the second index; receiving a request to build an index entry based on the values parsed from the name file; selecting the first queue and storing the request in the first queue; when the first queue is sufficiently full, storing the contents of the first queue in the first index, and concurrently selecting the second queue and storing a subsequent request to build an index entry in the second queue.