Abstract:
The invention relates to a distributed directory service that is constructed based on a predicate, i.e., a query from a client. The predicate is formed by the query (request) issued by the client. The predicate is used as an index for retrieving data from a plurality of directory servers. Retrieving the data has the following steps. Each directory server is designated by a designation predicate giving a range of data values stored in the directory server. A client predicate indicates desired information. The client predicate is compared with the designation predicates to determine which directory servers may contain information requested by the client predicate. In the event that a particular designation predicate indicates that a portion of the desired information may be stored on a particular directory server, an inquiry is sent to the particular directory server for the desired information. The retrieved information is transferred to the client computer. The predicate is used to form an index by sorting the predicate into a normal form. Steps in sorting the predicate into the normal form include the following. Each symbol of the predicate is represented by a numerical representation, for example the ASCII value used to represent the symbol in ordinary text files. The logical connectors and the predicates are sorted in numerical order of the numerical representation to form the normal form of the predicate. The directory may be chosen to be a database.