DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This communication is responsive to the application filed on Sept\ 10, 2025. Claims 1-20 are pending at the time of examination.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on September 10, 2025 was considered by the examiner. See attached PTO-form 1449.
Priority
Acknowledgment is made of applicant’s claim for foreign priority under 35 U.S.C. 119 (a)-(d). The certified copy has been filed in the instant Application No. 19/324,876 filed on January 8, 2026.
Claim Objections
Claim 16 is objected to because of the following informalities:
The Office has made an assumption that claim 16 would be a typo. It would depend on independent claim 11 instead of it depends on claim 1.
Appropriate correction is required.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-2, 9-12, 19-20 are rejected under 35 U.S.C. 103 as being unpatentable over Lahiri et al. (WO 2025/059679) and in view of Zhang et al. (US Patent No. 11,216,459).
As per claim 1, Lahiri discloses an approximate nearest neighbor search method for a vector database configured to store a plurality of vectors each including a plurality of feature values respectively corresponding to a plurality of dimensions (para. 0044, as vector database 120 stores a table that includes a column for storing vectors and one or more column for storing user data, such as a column for storing a user identifier, a column for storing a user profile, a column for storing user search history, a column for storing user access history, a column for storing user-generated content, etc. In this example, each row in the table corresponds to a user, such as a customer, a subscriber to a service, etc. [0045] Vector database 120 may also store one or more indexes that index content in vector database 120, such as content stored in one or more base tables. Some of the indexed content may be vector-related data (e.g., actual vector embeddings and metadata thereof) and some of the indexed content may be non-vector-related data, such as content in columns that do not store vectors. Thus, at least one index that vector database 120 may store is a vector index. Para. 0047, as A VECTOR column may be defined with two values: a number of elements/dimensions and a dimension format (or “element type”). A generic example of VECTOR datatype syntax is the following: VECTOR(<Num Elements>, <Element Type>). Docket No.50277-6435 (ORC24137844-US-PCT) The following is an example is using this VECTOR datatype syntax to create a new table for storing vectors: create table vector_tab (id NUMBER, attributes JSON, data VECTOR(768, ‘FLOAT32’)) where “id”, “attributes”, and “data” are names of columns of the table named “vector_tab.” The first column in vector_tab is a NUMBER datatype, the second column in vector_tab is a JSON datatype, and the third column in vector_tab is a VECTOR datatype),
managing graph-based index information for defining an inter-cluster graph including a plurality of nodes respectively corresponding to the plurality of clusters and a plurality of edges each connecting nodes that respectively correspond to clusters having reference positions close to each other (para. 0248, as a variation of the first type of vector index is selected. An example of the variation is a distributed, shared-nothing HNSW index. A distributed, shared- nothing HNSW index is one where multiple (e.g., all) compute instances in a cluster host the HNSW index for a different portion of the dataset of vectors. For example, one tenth of the vector dataset is stored on compute instance A of a cluster and a first HNSW index built thereon, another tenth of the vector dataset is stored on compute instance B of the cluster and a second HNSW index built thereon, and so forth);
receiving a query vector including a feature value for each of the plurality of dimensions; executing a first process of determining, as a search start cluster, a cluster having a reference position closest to the query vector among the plurality of clusters; searching for a vector closest to the query vector from vectors belonging to the search start cluster, a nearest neighbor vector in the search start cluster (para. 0253, as in response to a vector query, the centroid partitions table may be scanned through a full partition scan, where only those partitions that correspond to an identified centroid (as a result of the centroids table scan) are scanned. Such a scan can be done in parallel across different compute instances of a cluster of compute instances; para. 0251, as because centroids are static, an HNSW index may be built on the centroids table. Values for parameters of such a HNSW index (e.g., neighbor count, efConstruction, and efSearch) may be higher than values for the same parameters for a “regular” HNSW index that is built upon the underlying vectors to ensure that the best centroids are selected in the first phase of the search of the IVF index.).
Lahiri does not explicitly teach, but Zhang teaches the approximate nearest neighbor search method comprising: managing cluster-based index information for defining a plurality of clusters each having a reference position, and each to which a group of vectors close to the reference position belongs (col. 2, lines 63-67, as geometrically close semantic vectors in the semantic space may represent similar images, e.g., images of dogs may be clustered close together in the semantic space, while images of cats may be in a separate cluster, and images of lizards in a separate cluster even further away in the semantic space; col. 4, lines 6-16, as semantic search may include finding true nearest neighbors, e.g., by exhaustively searching each possible neighbor of the query vector. However, although exhaustive search has perfect accuracy, exhaustive search may be prohibitive in terms of latency and/or memory consumption. Accordingly, semantic search may be done as an approximate search, e.g., in which true nearest neighbors are returned with high likelihood, and/or the vectors that are found are close to the true nearest neighbors with high likelihood);
selecting one or more search target clusters close to the search start cluster while traversing the inter- cluster graph, and searching for a vector closest to the query vector from vectors belonging to each of the one or more search target clusters, as a nearest neighbor vector in each search target cluster; and outputting a vector closest to the query vector among the nearest neighbor vector searched for from the search start cluster and the nearest neighbor vectors searched for from the one or more search target clusters, as an approximate nearest neighbor vector of the query vector (col. 5, lines 9-45, as Routing layer 152 searches for one or more candidate clusters with regard to a query vector 160. Each candidate cluster has a geometric cluster centroid (e.g., cluster centroid 166), Accordingly, finding candidate clusters that are likely to contain true nearest neighbors to the query vector 160 may be based on finding one or more candidate cluster centroid(s) 170, for example based on a geometric relationship (e.g., distance) from the candidate cluster centroid(s) 170 to the query vector 160. In some examples, searching for the candidate cluster centroid(s) 170 includes searching a graph of cluster centroids 164, e.g., by following edges in the graph based on geometric distance to the query vector. In some examples, as shown in FIG. 1B, the graph of cluster centroids 164 may have multiple layers, e.g., layer 164A, layer 164B, and further layers through ground layer 164G. The layers may be arranged in order, from bottom to top including a ground layer 164G through other higher layers (e.g., layer 164B and layer 164A). The ground layer 164G includes all of the candidate cluster centroids, and each higher layer includes a subset of cluster centroids from an immediately lower layer (e.g., the layers form a chain of subsets of cluster centroids). Cluster centroids at each layer may be linked to the identical cluster centroid in lower/higher layers. In some examples, the graph is constructed as a hierarchical navigable small world (HNSW) graph.).
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the invention was made to modify the teachings of Lahira to implement the above steps as taught by Zhang because it would achieve sufficiently and accuracy in response to vector query, as suggested by Zhang disclosed that “Accordingly, by starting at a highest layer, the graph 164 may be navigated to find a cluster centroid close to a query vector 160, without navigating through every candidate cluster (col. 5, lines 33-36; col. 4, lines 29-32).
As per claim 2, Zhang further teaches for each of the plurality of clusters, the cluster-based index information includes a belonging vector list indicating an identifier of each of vectors belonging to the cluster,for each of the plurality of clusters, the graph- based index information includes a neighbor list indicating an identifier of each neighbor cluster connected to the cluster by an edge, and the method further comprises: in adding a new vector to the vector database, specifying a first cluster having a reference position closest to the new vector among the plurality of clusters; and registering the new vector in a first belonging vector list of the first cluster without rewriting the neighbor list corresponding to each of neighbor clusters of the first cluster (col. 5, ljnes 51-58, as the ground layer 164G is built incrementally by iteratively inserting each cluster centroid and generating, for each node, a fixed number of outgoing edges. Of these out-going edges, some are “short-range” edges connecting the new centroid to closest centroids according to pair-wise Euclidean distance. Other edges are “long-range” edges connecting a centroid being added to the graph to a randomly-picked centroid. Further layers may be constructed by sampling a subset of centroids from the ground layer or any other lower layer (e.g., via randomly sampling each node from a lower layer with uniform probability). In some examples, routing graphs constructed in this fashion may have one or more isolated components in higher layers (e.g., centroids with zero in-degree). Accordingly, connectivity of routing graphs may be augmented. In an example, Kosaraju's algorithm is applied on one or more layers of the routing graph, in order to adjust the layer(s) to add a minimal number of edges to make the graph for that layer strongly-connected (in the graph-theoretic sense, e.g., so that there are no zero in-degree nodes).
As per claim 9, Zhang further teaches wherein the graph-based index information includes: for each of the plurality of clusters, a neighbor list indicating an identifier of each neighbor cluster connected to the cluster by an edge; and for each neighbor cluster of each of the plurality of clusters, first direction information indicating a direction from a reference position of the cluster to a reference position of the neighbor cluster, and the method further comprises: in executing the search for the one or more search target clusters close to the search start cluster, calculating a first direction from the reference position of the search start cluster to the query vector; and selecting a neighbor cluster having a direction most similar to the first direction, as one of the one or more search target clusters, with priority over other neighbor clusters of the search start cluster, by using the first direction information corresponding to each of the neighbor clusters of the search start cluster (col. 7, lines 12-22; col. 9, lines 22-40).
As per claim 10, Zhang further teaches wherein for each of the plurality of clusters, the graph- based index information includes a neighbor list indicating an identifier of each neighbor cluster connected to the cluster by an edge, the plurality of vectors, the cluster-based index information, and the graph-based index information are stored in a secondary storage device, and the neighbor list is stored in a second storage area in the secondary storage device different from a first storage area in the secondary storage device, the plurality of vectors being stored in the first storage area (col. 8, lines 41-67, col. 9, lines 1-4).
As per claim 11, the independent claim recites several elements that are similar to the elements recited in claim 1, except in the context of a system, respectively. Therefore, it is rejected at least for the same reasons as claim 1.
As per claims 12, 19-20 have similar limitations as recited in claims 2, 9-10; therefore, they are rejected under the same subject matter.
Allowable Subject Matter
Claim 3-8 and 13-18 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
The prior art of record fails to teach or fairly suggest that “In the adding the new vector to the vector database, detecting that a total value obtained by adding 1 to the number of vectors already belonging to the first cluster exceeds an upper limit value; in response to detecting that the total value exceeds the upper limit value, generating a new cluster having a reference position close to the reference position of the first cluster; and executing a second process of adding the new cluster to the inter-cluster graph as a second cluster, wherein the second process includes: a process of registering an identifier of the first cluster and an identifier of a third cluster that is a neighbor cluster of the first cluster in a second neighbor list corresponding to the second cluster; a process of registering an identifier of the second cluster in a first neighbor list corresponding to the first cluster; a process of specifying one or more vectors of which a distance to the reference position of the second cluster is shorter than a distance to the reference position of the first cluster, from all of the vectors already belonging to the first cluster and the new vector; a process of registering an identifier of each of the specified one or more vectors in a second belonging vector list corresponding to the second cluster; and a process of deleting an identifier of each vector registered in the first belonging vector list corresponding to the first cluster among the specified one or more vectors, from the first belonging vector list.”, as recited in dependent claims 3 and 13.
The prior art of record fails to teach or fairly suggest that wherein the plurality of clusters are managed by using a hierarchized cluster structure including a lowest layer and a plurality of higher layers, the lowest layer includes a plurality of lowest layer clusters each having a reference position, and each to which a group of vectors close to the reference position belongs, the plurality of clusters respectively correspond to the plurality of lowest layer clusters, a highest layer among the higher layers includes, as a highest layer cluster, a higher layer cluster having a reference position, and to which a plurality of lower layer clusters each having a reference position close to the reference position of the higher layer cluster belongs, each of the higher layers excluding the highest layer includes a plurality of higher layer clusters each having a reference position, and each to which a plurality of lower layer clusters each having a reference position close to the reference position of the higher layer cluster belong, for each of the higher layer clusters in the higher layers, the cluster-based index information includes (1) a lower layer cluster list indicating an identifier of each of the lower layer clusters belonging to the higher layer cluster, (2) first relative position information between the reference position of the higher layer cluster and the reference position of each of the lower layer clusters belonging to the higher layer cluster, and (3) second relative position information between the reference position of the higher layer cluster and the reference position of each of same layer clusters, each of the same layer clusters being another higher layer cluster other than the higher layer cluster, which is included in the same layer as a layer including the higher layer cluster, and the executing of the first process includes setting the highest layer cluster as a target cluster, and searching for a lower layer cluster having a reference position closest to the query vector from lower layer clusters belonging to the target cluster by using the first relative position information of the target cluster and the second relative position information corresponding to each of the lower layer clusters belonging to the target cluster, executing a search process including a process of setting the searched lower layer cluster as a new target cluster, and a process of searching for the lower layer cluster having the reference position closest to the query vector from lower layer clusters belonging to the new target cluster, by using the first relative position information corresponding to the new target cluster and the second relative position information corresponding to each of the lower layer clusters belonging to the new target cluster, and repeatedly executing the search process until one of the lowest layer clusters is searched for as the lower layer cluster having the reference position closest to the query vector”, as recited in dependent claims 6 and 16.
Conclusion
The prior art made of record, listed on form PTO-892, and not relied upon, if any, is considered pertinent to applicant's disclosure.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to DEBBIE M LE whose telephone number is (571)272-4111. The examiner can normally be reached 9:00-5:00.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Charles Rones can be reached at 571-272-4085. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/DEBBIE M LE/Primary Examiner, Art Unit 2168 August 28, 2026