A method and apparatus disclosed may be implemented in a digital computer to query a set of arbitrarily structured records. Arbitrarily structured records are structured differently from each other. A query engine, query structure, operators of conventional and non-conventional types may be used in formulating a query. The apparatus may evaluate records having missing fields, repeating fields, or an UNKNOWN value arising from a missing field, division by zero, modulo by zero, or the like. New aggregator (e.g. universal quantifier and existential quantifier) and selector operators (e.g., first, last, nth) may distill multiple values to return a single value. To evaluate a query, the search engine may implement filtered indices, alternate-key indices, compound alternate-key indices, hybrid queries having both full-text and non-full text operands, and joinder of records. Certain of these features may be implemented for evaluating records from both prior art databases and heterogeneous databases of arbitrarily structured records.
A method and apparatus for navigating a concept hierarchy that interrelates a hierarchical presentation of the concepts of the hierarchy with a presentation of the declarations and constraints of those concepts is provided. The method includes the use of an additional computer screen presentation in which the presentation of the concepts and their declarations and restraints are interrelated. The user uses the screen to generate either a dictionary of the terms of all the concepts in the hierarchy, or a dictionary of descriptive terms of all the properties associated with those concepts. Means are provided on the screen for a user to then interrogate the generated dictionary for a desired property or concept. In a search of a dictionary of concept terms, once a desired property concept or property has been located and selected, the screen server provides, for use in continuing the search, a list of the properties that define the selected concept. If the search is of a dictionary of property terms, selection of a property produces a list of related concept terms. Irrespective of whether the list is of concept or property terms, the user can then select a term from the created list as an entry point into a tree view of the hierarchy or property presentation of a concept.
Network routing apparatus employs multi-level tree data structures in a centralized routing table and in distributed forwarding tables. Each level of each structure is associated with a different field of a network address appearing in received packets. Pointers in each structure are used to identify either an address of a next hop network, or a next-level tree to be examined for a next-hop address. An uncompressed tree routing table uses directly addressed trees in order to simplify the storage and retrieval of pointers, and the next-tree pointers directly identify next trees. Compressed tree forwarding tables are generated from the uncompressed routing table by reducing the number of pointers stored at one or more levels to substantially the number of unique next hop addresses associated with network addresses at that level. A single mapping table maps pointer values at one level to the locations of trees at the next level in the compressed trees. Next hop address lookup logic performs lookups in accordance with the structure of the compressed trees. Also, the lookup logic stores and selectively operates on multiple forwarding tables in order to provide support for virtual router operation.
A query in which a sibling relationship among document parts, which are elements of a structured document, can be designated as a search condition is input, and a query tree which represents the query in a tree structure is created. A query converting unit refers to a hierarchical index in which a hierarchical relationship among document parts of each structured document to be searched is expressed in a tree structure, and converts the query tree to a Boolean expression. A text-index referring unit refers to a text index in which is registered information representing a relationship between each set including a character string in text data and a part-ID of a meta part and a document-ID of a document, thereby searching a document corresponding to the Boolean expression converted from the query tree.
Systems and methods for scoping a search. When a content index for electronic data is built, one or more scope restrictions are included in the content index. The scope restriction may be, for example, a root folder identifier, a mailbox identifier, or a URL. Because the scope restriction is included in the content index random access of the property store to determine the scope is avoided. Rather, the scope restriction is implicitly added to a search that uses the content index. By including a scope restriction in the search query, the search results identified from the content index are limited to results that match the scope restriction. Advantageously, the effect of including the scope restriction in the search is ignored if the search results are relatively small or when including the scope restriction provides little benefit.
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.