DETAILED ACTION
In response to communication filed on 05 May 2025, this is first Office Action of the merits.
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Interpretation
Claim 3 recite “using the first processor” and “using both the first processor with the first processor type and the second processor with the second processor type”. These claim limitations appear to be citing intended use in terms of what the first processor and the second processors are used for. Examiner suggests amending the claim to recite the functionality performed by the claimed method, instead of reciting what the claim elements are used for.
Claims 10 and 19 recite “using the respective tolerance value”. These claim limitations appear to be citing intended use in terms of what the respective tolerance value is used for. Examiner suggests amending the claim to recite the functionality performed by the claimed method, instead of reciting what the claim elements are used for.
Claim Objections
Claims 3, 6-7, 11 and 16 are objected to because of the following informalities:
Claim 3 recite “dataset comprises data that arrives in steams” should read as -- dataset comprises data that arrives in streams -- as it appears to be a typographical error.
Claim 6 recites “in the respective node” should read as -- in the respective child node -- as it appears to be a typographical error and may cause antecedent basis issue.
Claims 7 and 16 recite “CPU” and “GPU” have been introduced in the abbreviated forms without clarifying the unabbreviated forms of these claim terms.
Claim 11 recites “performing data cleaning on the dataset of raw data” should read as -- performing data cleaning on the dataset of the raw data -- as it appears to be a typographical error and may cause antecedent basis issue.
Appropriate corrections are required.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-2, 5, 9-15 and 18-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Step 1:
Claims 1-14 are recited as being directed to a “method”. Claims 15-19 are recited as being directed to a “method” and claim 20 is being directed to a “computer-readable medium”.
Regarding claim 1,
Step 2A: Prong One:
Claim 1 recites limitations:
dynamically generating a data structure, including:
recursively subdividing a bounding region of the data visualization into a plurality of nodes until each node satisfies a set of one or more criteria; and
allocating a respective initial subset of data points, of the plurality of data points, to each node of the plurality of nodes according to a spatial location of a respective data point in the data visualization;
for each node of the plurality of nodes, recursively applying a linearization algorithm to the respective initial subset of data points corresponding to the respective node to obtain a respective reduced subset of data points, wherein the respective reduced subset of data points has a fewer number of data points than the respective initial subset of data points;
obtaining a reduced dataset comprising a plurality of reduced subsets of data points from the plurality of nodes;
generating the data visualization according to data in the reduced dataset; and
These claim limitations appear to be reciting a “Mental Process” including evaluation.
A human mind can mentally evaluate to generate data structure using a pen and paper. A human being can apply evaluation to subdivide a region in plurality of nodes satisfying a set of one or more criteria. A human mind can evaluate to allocate data points to nodes and for each node applying a specific algorithm to determine reduced subset of data points. A human mind can also generate the data visualization based on the reduced dataset.
Step 2A - Prong Two:
The abstract idea does not appear to be integrated into a practical application with the recitation of the following claim language.
Claim 1 further recites limitations:
A method of visualizing large-scale datasets, comprising: at a computer system that includes one or more processors and memory:
These claim limitations appear to be to merely add the use of generic computer components which are merely executing the abstract idea within a computer device (see MPEP 2106.05(b)) and do not appear to integrate the abstract idea into a particular practical application.
Claim 1 further recites limitations:
obtaining an initial dataset for rendering a data visualization, the initial dataset including a plurality of data points that is spatially distributed in the data visualization and each data point has a respective spatial location in the data visualization;
These claim limitations as a whole have been identified as insignificant extra-solution activity. Per MPEP 2106.05(g) “An example of pre-solution activity is a step of gathering data for use in a claimed process, e.g., a step of obtaining information about credit card transactions, which is recited as part of a claimed process of analyzing and manipulating the gathered information by a series of steps in order to detect whether the transactions were fraudulent”. Similarly the claim limitations as a whole above appear to be gathering data being received and do not appear to integrate the abstract idea into a practical application.
Claim 1 further recites limitations:
causing display of the data visualization on a browser application.
These claim limitations as a whole have been identified as insignificant extra-solution activity. Per MPEP 2106.05(g) “An example of post-solution activity is an element that is not integrated into the claim as a whole, e.g., a printer that is used to output a report of fraudulent transactions, which is recited in a claim to a computer programmed to analyze and manipulate information about credit card transactions in order to detect whether the transactions were fraudulent” and “Whether the limitation amounts to necessary data gathering and outputting, (i.e., all uses of the recited judicial exception require such data gathering or data output)”. Similarly the claim limitations as a whole above appear to be reciting an output of presenting the generated data and in the other limitations and do not appear to integrate the abstract idea into a practical application.
Step 2B:
The abstract idea does not appear to be significantly more with the recitation of the following claim language.
Claim 1 further recites limitations:
A method of visualizing large-scale datasets, comprising: at a computer system that includes one or more processors and memory:
These claim limitations appear to be to merely add the use of generic computer components which are merely executing the abstract idea within a computer device (see MPEP 2106.05(b)) and do not appear to amount to significantly more.
Claim 1 further recites limitations:
obtaining an initial dataset for rendering a data visualization, the initial dataset including a plurality of data points that is spatially distributed in the data visualization and each data point has a respective spatial location in the data visualization;
These claim limitations as a whole have been identified as insignificant extra-solution activity. Per MPEP 2106.05(g) “An example of pre-solution activity is a step of gathering data for use in a claimed process, e.g., a step of obtaining information about credit card transactions, which is recited as part of a claimed process of analyzing and manipulating the gathered information by a series of steps in order to detect whether the transactions were fraudulent”. Similarly the claim limitations as a whole above appear to be gathering data in terms of requests, data and content being received and appear to be conventional computer functionality. Also, MPEP 2106.05(d)(II) has identified “Receiving or transmitting data over a network, e.g., using the Internet to gather data” as conventional computer technology. Similarly, the claim limitations identified above appear to be receiving data. As a result, these claim limitations as a whole do not appear to amount to significantly more than the abstract idea itself.
Claim 1 further recites limitations:
causing display of the data visualization on a browser application.
These claim limitations as a whole have been identified as insignificant extra-solution activity. Per MPEP 2106.05(g) “An example of post-solution activity is an element that is not integrated into the claim as a whole, e.g., a printer that is used to output a report of fraudulent transactions, which is recited in a claim to a computer programmed to analyze and manipulate information about credit card transactions in order to detect whether the transactions were fraudulent” and “Whether the limitation amounts to necessary data gathering and outputting, (i.e., all uses of the recited judicial exception require such data gathering or data output)”. Similarly the claim limitations as a whole above appear to be reciting an output of presenting the generated data and appear to be conventional computer functionality. Also, MPEP 2106.05(d)(II) has identified “Presenting offers and gathering statistics, OIP Techs., 788 F.3d at 1362-63, 115 USPQ2d at 1092-93” as conventional computer technology. Similarly, the claim limitations identified above appear to be reciting an output of presenting the generated data. As a result, these claim limitations as a whole do not appear to amount to significantly more than the abstract idea itself.
Claims 15 and 20 incorporate substantively all the limitations of claim 1 in a system form (wherein claim limitations - A computer system, comprising: one or more processors; and memory coupled to the one or more processors, the memory storing one or more programs configured for execution by the one or more processors, the one or more programs including instructions for: in Step 2A: Prong Two as these claim limitations appear to be to merely add the use of generic computer components which are merely executing the abstract idea within a computer device (see MPEP 2106.05(b)) and do not appear to integrate the abstract idea into a particular practical application. These claim limitations in Step 2B appear to be to merely add the use of generic computer components which are merely executing the abstract idea within a computer device (see MPEP 2106.05(b)) and computer readable form (wherein claim limitations - A non-transitory computer-readable medium storing one or more programs configured for execution by one or more processors of a computer system, the one or more programs comprising instructions for:) and are rejected under the same rationale.
Regarding claim 2,
Step 2A: Prong One:
Claim 2 recites limitations:
determining a plurality of data segments for the initial dataset according to a plurality of spatial regions of the data visualization such that each data segment corresponds to a respective spatial region; and for each data segment:
… to determine an optimum number of nodes for the respective data segment so as to balance geometric fidelity of the respective spatial region of the data visualization with real-time performance.
These claim limitations appear to be reciting a “Mental Process” including evaluation.
A human mind can mentally evaluate to determine plurality of data segments based on spatial regions and to determine an optimum number of nodes to balance geometric fidelity based on real-time performance.
Step 2A - Prong Two:
The abstract idea does not appear to be integrated into a practical application with the recitation of the following claim language.
Claim 2 further recites limitations:
applying a machine learning model…
These claim limitations are recited at a high level of generality and amounts to adding the words “apply it” (or an equivalent) with the judicial exception, or mere instructions to implement an abstract idea on a computer, or merely uses a computer as a tool to perform an abstract idea. See MPEP 2106.05(f). Thus, limitations that amount to nothing more than an instruction to apply the abstract idea using a generic computer and do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea.
Step 2B:
The abstract idea does not appear to be significantly more with the recitation of the following claim language.
Claim 2 further recites limitations:
applying a machine learning model…
These claim limitations are recited at a high level of generality and amounts to adding the words “apply it” (or an equivalent) with the judicial exception, or mere instructions to implement an abstract idea on a computer, or merely uses a computer as a tool to perform an abstract idea. See MPEP 2106.05(f). Thus, limitations that amount to nothing more than an instruction to apply the abstract idea using a generic computer and these claim limitations as a whole do not appear to amount to significantly more than the abstract idea itself.
Regarding claim 5,
Step 2A: Prong One:
Claim 5 recites limitations:
assigning the bounding region of the data visualization to a root node of the data structure;
subdividing the initial dataset into a predefined number of initial nodes according to boundaries of the bounding region, wherein each initial node comprises a respective subset of data points and the predefined number is greater than one;
… including determining a respective number of data points for a respective initial node:
in accordance with a determination that (a) the respective number of data points for the respective initial node does not exceed a first threshold number or (b) a maximum depth of the data structure has been reached:
ceasing to subdivide the respective subset of data points for the respective initial node; and
in accordance with a determination that (c) the respective number of data points for the respective initial node exceeds a first threshold value or (d) a maximum depth of the data structure has not been reached:
subdividing the respective number of data points into the predefined number of child nodes according to respective boundaries of the respective initial node; and
repeating the steps of processing and determining until (e) the respective number of data points for a respective child node does not exceed the first threshold number or (f) the maximum depth of the data structure has been reached.
These claim limitations appear to be reciting a “Mental Process” including evaluation.
A human mind can mentally evaluate to assign a bounding region and subdividing the initial dataset into a predefined number of initial nodes. A human being can apply evaluation to determine a respective number of data points for a respective initial node. A human mind can evaluate to determine that data points do not exceed a first threshold or maximum depth of data structure has been reached. A human mind can cease the subdivide the respective subset of data points for the respective initial node. A human can evaluate to determine if the respective number of data points for the respective initial node exceeds a first threshold value or a maximum depth of the data structure has not been reached. A human being can mentally subdivide the respective number of points into the predefined number of child nodes and repeating steps until the respective number of data points for a respective child node does not exceed the first threshold number or the maximum depth of the data structure has been reached.
Step 2A - Prong Two:
The abstract idea does not appear to be integrated into a practical application with the recitation of the following claim language.
Claim 5 further recites limitations:
processing the initial nodes in parallel …
These claim limitations appear to be to merely add the use of generic computer components which are merely executing the abstract idea within a computer device (see MPEP 2106.05(b)) and do not appear to integrate the abstract idea into a particular practical application.
Claim 5 further recites limitations:
storing the respective subset of data points on the computer system; and
These claim limitations as a whole have been identified as insignificant extra-solution activity specifically a post solution activity. Per MPEP 2106.05(g) “when determining whether a claim integrates the judicial exception into a practical application in Step 2A Prong Two or recites significantly more in Step 2B is whether the additional elements add more than insignificant extra-solution activity to the judicial exception. The term "extra-solution activity" can be understood as activities incidental to the primary process or product that are merely a nominal or tangential addition to the claim”. MPEP in 2016.05(g) also provides examples of activities that the courts have found to be insignificant extra-solution activity of which one of them is “Consulting and updating an activity log”. Similarly the above recited claim limitations as a whole above appear to be reciting the process of storing information and does not appear to integrate the abstract idea into a practical application.
Step 2B:
The abstract idea does not appear to be significantly more with the recitation of the following claim language.
Claim 5 further recites limitations:
processing the initial nodes in parallel…
These claim limitations appear to be to merely add the use of generic computer components which are merely executing the abstract idea within a computer device (see MPEP 2106.05(b)) and do not appear to amount to significantly more.
Claim 5 further recites limitations:
storing the respective subset of data points on the computer system; and
These claim limitations as a whole have been identified as insignificant extra-solution activity specifically a post solution activity. Per MPEP 2106.05(g) “when determining whether a claim integrates the judicial exception into a practical application in Step 2A Prong Two or recites significantly more in Step 2B is whether the additional elements add more than insignificant extra-solution activity to the judicial exception. The term "extra-solution activity" can be understood as activities incidental to the primary process or product that are merely a nominal or tangential addition to the claim”. MPEP in 2106.05(g) also provides examples of activities that the courts have found to be insignificant extra-solution activity of which one of them is “Consulting and updating an activity log”. Similarly the claim limitations as a whole above appear to be reciting the process of storing information. Also, MPEP 2106.05(d)(II) has identified “Storing and retrieving information in memory” as conventional computer technology. Similarly, the claim limitations identified above appear to be storing information. As a result, these claim limitations as a whole do not appear to amount to significantly more than the abstract idea itself.
Regarding claims 9, 11, 12 and 14,
Step 2A: Prong One:
Claim 9 further recites limitations:
wherein recursively applying the linearization algorithm includes dynamically adjusting a tolerance level of the linearization algorithm according to data characteristics of the initial subset of data points.
Claim 11 further recites limitations:
the initial dataset comprises a dataset of raw data; and
the method includes performing data cleaning on the dataset of raw data prior to generating the data structure.
Claim 12 further recites limitations:
wherein the set of one or more criteria includes at least two of:
a first criterion that specifies a minimum number of data points in a node (Min Nodes);
a second criterion that specifies a maximum number of data points in a node (Max Nodes);
a third criterion that specifies a minimum and/or maximum size of a region of the respective subset of data points corresponding to the respective node; and
a fourth criterion that specifies a maximum local variance of the respective subset of data points corresponding to the respective node.
Claim 14 further recites limitations:
wherein the data structure comprises a quadtree data structure.
These claim limitations appear to be reciting a “Mental Process” including evaluation and observation.
A human mind can mentally evaluate to recursively applying the linearization algorithm to adjust tolerance level according to data characteristics of the initial subset of data points. A human being can apply evaluation to observe that the dataset is raw data and performing data cleansing of the dataset of the raw data prior to generating the data structure. A human mind can mentally evaluate to determine plurality of criteria such as minimum number of data points in a node, maximum number of data points in a node, minimum and/or maximum size of a region of the respective subset of data points corresponding to the respective node and a maximum local variance of the respective subset of data points corresponding to the respective node. A human being can mentally apply evaluation to determine a quadtree data structure.
There are no other claim limitations that can be integrated into a practical application or amount to significantly more.
Claim 18 incorporate substantively all the limitations of claim 9 in a system form and is rejected under the same rationale.
Regarding claim 10,
Step 2A: Prong One:
Claim 10 recites limitations:
retrieving or identifying a first subset of data points falling within the first portion of the data visualization;
grouping the first subset of data points into a first set of one or more segments;
extracting features for each segment of the first set of one or more segments;
applying the linearization algorithm to each segment, of the first set of one or more segments, using the respective tolerance value for each segment, thereby obtaining a reduced subset of data points, wherein the reduced subset of data points has fewer data points than the first subset of data points;
generating an updated data visualization according to data in the reduced subset of data points; and
These claim limitations appear to be reciting a “Mental Process” including evaluation.
A human mind can mentally evaluate to identify first subset of data points within a first portion of the data visualization. A human being can apply evaluation to group the first subset of data points into a first set of segments. A human mind can evaluate to extract features and apply linearization algorithm to each segment, using tolerance value to obtain reduced subset of data points. A human mind can also generate the data visualization based on the reduced subset of data points.
Step 2A - Prong Two:
The abstract idea does not appear to be integrated into a practical application with the recitation of the following claim language.
Claim 10 further recites limitations:
receiving a user interaction with a first portion of the data visualization;
in response to receiving the user interaction:
inputting the extracted features into a machine learning model and receiving from the machine learning model a respective tolerance value for each segment of the first set of one or more segments; and
These claim limitations as a whole have been identified as insignificant extra-solution activity. Per MPEP 2106.05(g) “An example of pre-solution activity is a step of gathering data for use in a claimed process, e.g., a step of obtaining information about credit card transactions, which is recited as part of a claimed process of analyzing and manipulating the gathered information by a series of steps in order to detect whether the transactions were fraudulent”. Similarly the claim limitations as a whole above appear to be gathering data being received and do not appear to integrate the abstract idea into a practical application.
Claim 10 further recites limitations:
after displaying the data visualization on the browser application,…
causing display of an updated data visualization on a browser application.
These claim limitations as a whole have been identified as insignificant extra-solution activity. Per MPEP 2106.05(g) “An example of post-solution activity is an element that is not integrated into the claim as a whole, e.g., a printer that is used to output a report of fraudulent transactions, which is recited in a claim to a computer programmed to analyze and manipulate information about credit card transactions in order to detect whether the transactions were fraudulent” and “Whether the limitation amounts to necessary data gathering and outputting, (i.e., all uses of the recited judicial exception require such data gathering or data output)”. Similarly the claim limitations as a whole above appear to be reciting an output of presenting the generated data and in the other limitations and do not appear to integrate the abstract idea into a practical application.
Step 2B:
The abstract idea does not appear to be significantly more with the recitation of the following claim language.
Claim 10 further recites limitations:
receiving a user interaction with a first portion of the data visualization;
in response to receiving the user interaction:
inputting the extracted features into a machine learning model and receiving from the machine learning model a respective tolerance value for each segment of the first set of one or more segments; and
These claim limitations as a whole have been identified as insignificant extra-solution activity. Per MPEP 2106.05(g) “An example of pre-solution activity is a step of gathering data for use in a claimed process, e.g., a step of obtaining information about credit card transactions, which is recited as part of a claimed process of analyzing and manipulating the gathered information by a series of steps in order to detect whether the transactions were fraudulent”. Similarly the claim limitations as a whole above appear to be gathering data in terms of requests, data and content being received and appear to be conventional computer functionality. Also, MPEP 2106.05(d)(II) has identified “Receiving or transmitting data over a network, e.g., using the Internet to gather data” as conventional computer technology. Similarly, the claim limitations identified above appear to be receiving data. As a result, these claim limitations as a whole do not appear to amount to significantly more than the abstract idea itself.
Claim 10 further recites limitations:
after displaying the data visualization on the browser application,…
causing display of an updated data visualization on a browser application.
These claim limitations as a whole have been identified as insignificant extra-solution activity. Per MPEP 2106.05(g) “An example of post-solution activity is an element that is not integrated into the claim as a whole, e.g., a printer that is used to output a report of fraudulent transactions, which is recited in a claim to a computer programmed to analyze and manipulate information about credit card transactions in order to detect whether the transactions were fraudulent” and “Whether the limitation amounts to necessary data gathering and outputting, (i.e., all uses of the recited judicial exception require such data gathering or data output)”. Similarly the claim limitations as a whole above appear to be reciting an output of presenting the generated data and appear to be conventional computer functionality. Also, MPEP 2106.05(d)(II) has identified “Presenting offers and gathering statistics, OIP Techs., 788 F.3d at 1362-63, 115 USPQ2d at 1092-93” as conventional computer technology. Similarly, the claim limitations identified above appear to be reciting an output of presenting the generated data. As a result, these claim limitations as a whole do not appear to amount to significantly more than the abstract idea itself.
Claim 19 incorporates substantively all the limitations of claim 10 in a system form and is rejected under the same rationale
Regarding claim 13,
Step 2A - Prong Two:
The abstract idea does not appear to be integrated into a practical application with the recitation of the following claim language.
Claim 13 further recites limitations:
storing each data point of the initial dataset in a binary data format in the data structure.
These claim limitations as a whole have been identified as insignificant extra-solution activity specifically a post solution activity. Per MPEP 2106.05(g) “when determining whether a claim integrates the judicial exception into a practical application in Step 2A Prong Two or recites significantly more in Step 2B is whether the additional elements add more than insignificant extra-solution activity to the judicial exception. The term "extra-solution activity" can be understood as activities incidental to the primary process or product that are merely a nominal or tangential addition to the claim”. MPEP in 2016.05(g) also provides examples of activities that the courts have found to be insignificant extra-solution activity of which one of them is “Consulting and updating an activity log”. Similarly the above recited claim limitations as a whole above appear to be reciting the process of storing information and does not appear to integrate the abstract idea into a practical application.
Step 2B:
The abstract idea does not appear to be significantly more with the recitation of the following claim language.
Claim 13 further recites limitations:
storing each data point of the initial dataset in a binary data format in the data structure.
These claim limitations as a whole have been identified as insignificant extra-solution activity specifically a post solution activity. Per MPEP 2106.05(g) “when determining whether a claim integrates the judicial exception into a practical application in Step 2A Prong Two or recites significantly more in Step 2B is whether the additional elements add more than insignificant extra-solution activity to the judicial exception. The term "extra-solution activity" can be understood as activities incidental to the primary process or product that are merely a nominal or tangential addition to the claim”. MPEP in 2106.05(g) also provides examples of activities that the courts have found to be insignificant extra-solution activity of which one of them is “Consulting and updating an activity log”. Similarly the claim limitations as a whole above appear to be reciting the process of storing information. Also, MPEP 2106.05(d)(II) has identified “Storing and retrieving information in memory” as conventional computer technology. Similarly, the claim limitations identified above appear to be storing information. As a result, these claim limitations as a whole do not appear to amount to significantly more than the abstract idea itself.
Claim Rejections - 35 USC § 103
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, 5, 13, 15 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Jain et al. (US 2023/0267175 A1, hereinafter “Jain”) in view of Blaas (US 2021/0026862 A1, hereinafter “Blaas”).
Regarding claim 1, Jain teaches
A method of visualizing large-scale datasets, comprising: (see Jain, [0052] “maps labeled training data and unlabeled training data to a reduced-dimension data space that can be used for visualization of the dataset”; [0004] “the large datasets collected”; [0038] “The present disclosure provides systems and methods for”).
at a computer system that includes one or more processors and memory: (see Jain, [0177] “system 1700 includes a computer system 1702 having a computer processor 1710 and associated memory 1714”).
obtaining an initial dataset for rendering a data visualization, the initial dataset including a plurality of data points (see Jain, [0089] “The dataset corresponding to an area of interest selected in the visualization interface 114 is then evaluated by the automated selection model 116 to identify high value data points”; [0048] “an input dataset (referred to a labeled data points) and data points representing the unlabeled examples from the input dataset (referred to as unlabeled data points herein)”; [0096] “starting with an input dataset that comprises an initial set of labeled examples and an initial set of unlabeled examples”) that is spatially distributed in the data visualization and each data point has a respective spatial location in the data visualization; (see Jain, [0108] “an example of a 2D representation 500 of a dataset is provided. In this embodiment, each labeled example and unlabeled example from an input dataset is represented by a data point in 2D space”).
… generating a data structure, including: (see Jain, [0097] “the labeled and unlabeled examples in the input dataset may be embedded as feature vectors or other data structures that have a large number of dimensions”).
… subdividing a bounding region of the data visualization… satisfies a set of one or more criteria; and (see Jain, [0108] “Positive examples (examples that are labeled as positive for the category) are represented by dots of one color, negative examples represented by dots of a second color, and unlabeled examples are represented by dots of a third color… area 502 includes mostly positive examples with few unlabeled and negative examples, area 504 includes mostly negative examples with few unlabeled and positive examples, and area 506 includes mostly unlabeled examples”).
… a respective initial subset of data points, of the plurality of data points,… (see Jain, [0057] “mapping an input dataset that contains a set of labeled training data 52 (potentially as augmented by prior iterations) and a subset of unlabeled training data 54… to identify data points to label”) a spatial location of a respective data point in the data visualization; (see Jain, [0108] “an example of a 2D representation 500 of a dataset is provided. In this embodiment, each labeled example and unlabeled example from an input dataset is represented by a data point in 2D space”).
… to the respective initial subset of data points… (see Jain, [0057] “mapping an input dataset that contains a set of labeled training data 52 (potentially as augmented by prior iterations) and a subset of unlabeled training data 54… to identify data points to label”) to obtain a respective reduced subset of data points, wherein the respective reduced subset of data points has a fewer number of data points than the respective initial subset of data points; (see Jain, [0057] “can involve multiple iterations of mapping an input dataset that contains a set of labeled training data 52 (potentially as augmented by prior iterations) and a subset of unlabeled training data 54 to a reduced-dimension data space, using the reduced-dimension data space to identify data points to label, labeling the identified data points through manual labeling, automated labeling, or a combination thereof”; [0122] “identifies examples of interest for labeling and verification by using a reduced-dimension space to identify unlabeled data points that are in areas with no, or few, labeled data points”).
obtaining a reduced dataset comprising a plurality of reduced subsets of data points… (see Jain, [0057] “can involve multiple iterations of mapping an input dataset that contains a set of labeled training data 52 (potentially as augmented by prior iterations) and a subset of unlabeled training data 54 to a reduced-dimension data space, using the reduced-dimension data space to identify data points to label, labeling the identified data points through manual labeling, automated labeling, or a combination thereof”; [0122] “identifies examples of interest for labeling and verification by using a reduced-dimension space to identify unlabeled data points that are in areas with no, or few, labeled data points”).
generating the data visualization according to data in the reduced dataset; and (see Jain, [0052] “maps labeled training data and unlabeled training data to a reduced-dimension data space that can be used for visualization of the dataset, such as a 2D or 3D representation of a dataset. ML model training system 50 may include a visualization interface 72 that provides a graphical user interface for viewing the reduced-dimension dataset”).
causing display of the data visualization on a graphical user interface… (see Jain, [0052] “maps labeled training data and unlabeled training data to a reduced-dimension data space that can be used for visualization of the dataset, such as a 2D or 3D representation of a dataset. ML model training system 50 may include a visualization interface 72 that provides a graphical user interface for viewing the reduced-dimension dataset”).
Jain does not explicitly teach dynamically generating a data structure, recursively subdividing bounding region into a plurality of nodes until each node; allocating a respective initial subset of data points to each node of the plurality of nodes according to a spatial location of a respective data point; for each node of the plurality of nodes, recursively applying a linearization algorithm to the respective initial subset of data points corresponding to the respective node; reduced subsets of data points from the plurality of nodes; a browser application.
However, Blaas discloses binary tree structure and teaches
dynamically updating routines (see Blaas, [0305] “routines to be updated dynamically by other processes”).
recursively dividing the space into a plurality of nodes until each node (see Blaas, [0151]-[0152] “the root node can be thought of as representing the entire data space. The individual leaf nodes correspond to the individual co-ordinate points identified by the co-ordinate records. Every branch node (i.e. internal node) can be thought of as representing a splitting plane that divides the space into two-parts, referred to as subspaces. Each branch node therefore has a left and a right sub-tree (that corresponds to a subspace), with points to the left of the splitting plane being located on the left sub-tree of that node and points to the right of the splitting plane being located on the right sub-tree… this tree structure is constructed using a canonical method in which the splitting planes are axis-oriented, with their orientation cycling with each level of recursion”).
allocating points in the set to each node of the plurality of nodes according to points within a subspace (see Blaas, [0169] “the root node of the tree corresponds to all of the points in the set, each branch node then corresponds a subset of the points (i.e. the points contained within a subspace defined by one or more splitting planes), and each leaf node contains a single point”).
for each node of the plurality of nodes, recursively applying a linearization algorithm to the points within a subspace corresponding to the respective node (see Blaas, [0172] “A recursive splitting process is then implemented in which the co-ordinate records are recursively sorted into further sub-groups that each correspond to node of the tree (i.e. the points within a subspace that is defined by a split value)”; [0155] “the binary tree used to structure the co-ordinate data is stored in a linearized form”).
data points from the plurality of nodes; (see Blaas, [0169] “the root node of the tree corresponds to all of the points in the set, each branch node then corresponds a subset of the points (i.e. the points contained within a subspace defined by one or more splitting planes), and each leaf node contains a single point”) – there are plurality of nodes).
a browser application (see Blaas, [0286] “computer system 1502 may implement a web browser 1536”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of dynamic update, recursively dividing into plurality of nodes, allocating data points to each node, linearization algorithm, browser application, balance geometric fidelity, root node, subdivide subset of data points, parallel processing, processing the nodes to determine number of data points, cease to subdivide, storing data points, threshold values, grouping the data points, updating data visualization and binary data structure as being disclosed and taught by Blaas, in the system taught by Jain to yield the predictable results of splitting the data effectively (see Blaas, [0161]-[0162] “the space representation of the eight points/co-ordinate records in which the space has been split into two subspaces… The data within the array is therefore sorted so that the points/co-ordinate records in each section of the array are effectively split again into further sections that correspond to the four subspaces defined by the two split values”).
Claims 15 and 20 incorporate substantively all the limitations of claim 1 in a system (see Jain, [0177] “system 1700 includes a computer system 1702 having a computer processor 1710 and associated memory 1714. Computer processor 1710 may be an integrated circuit for processing instructions”) and computer-readable medium form (see Jain, [0177] “a computer-readable medium (e.g., one or more computer systems with central processing units executing instructions embodied on one or more computer-readable media) where the instructions are configured to perform at least some of the functionality associated with embodiments of the present invention… system 1700 includes a computer system 1702 having a computer processor 1710 and associated memory 1714. Computer processor 1710 may be an integrated circuit for processing instructions”) and are rejected under the same rationale.
Regarding claim 5, the proposed combination of Jain and Blaas teaches
wherein dynamically (see Blaas, [0305] “routines to be updated dynamically by other processes”) generating the data structure includes: (see Jain, [0097] “the labeled and unlabeled examples in the input dataset may be embedded as feature vectors or other data structures that have a large number of dimensions”).
assigning the bounding region of (see Blaas, [0182] “The bounding box associated with the root node is defined as being a bounding box which encompasses all of the items of co-ordinate data”) the data visualization (see Jain, [0086] “that can be used for visualization of the dataset”) to a root node of the data structure; (see Blaas, [0182] “The bounding box associated with the root node is defined as being a bounding box which encompasses all of the items of co-ordinate data”).
subdividing (see Blaas, [0193] “In the case of the initial root node, this bounding box will correspond to the entire area where incidents might be recorded. For nodes at subsequent level, these bounding boxes are defined recursively by the split values associated with their parent node… the bounding box associated with the root node would correspond to the entire area with corners at points (0,0), (0,9), (9,9) and (9,0)”) the initial dataset (see Jain, [0096] “starting with an input dataset that comprises an initial set of labeled examples and an initial set of unlabeled examples”) into a predefined number of initial nodes according to boundaries of the bounding region, wherein each initial node comprises a respective subset of data points and the predefined number is greater than one; (see Blaas, [0193] “In the case of the initial root node, this bounding box will correspond to the entire area where incidents might be recorded. For nodes at subsequent level, these bounding boxes are defined recursively by the split values associated with their parent node… the bounding box associated with the root node would correspond to the entire area with corners at points (0,0), (0,9), (9,9) and (9,0)”).
processing the initial nodes in parallel, including determining a respective number of data points for a respective initial node: (see Blaas, [0197] “this provides a straightforward means for determining the exact number of points that are contained within a bounding box associated with any node in the tree”; [0169] “the root node of the tree corresponds to all of the points in the set, each branch node then corresponds a subset of the points (i.e. the points contained within a subspace defined by one or more splitting planes), and each leaf node contains a single point”; [0280] “Processor 1504 may be implemented using mainframe, distributed processor, multi-core, parallel… architecture”).
in accordance with a determination that (a) the respective number of data points for the respective initial node (see Blaas, [0197] “this provides a straightforward means for determining the exact number of points that are contained within a bounding box associated with any node in the tree”) does not exceed a first threshold number: (see Jain, [0154] “below a threshold level”)
ceasing to subdivide the respective subset of data points for the respective initial node; and (see Blaas, [0154] “Each subdivision therefore splits the space into two sub-spaces which contain approximately an equal number of points (i.e. with approximately half the points in one sub space and approximately half in the other), and the recursive splitting of the space stops when the number of points in each sub-space is equal to one”).
storing the respective subset of data points on the computer system; and (see Blaas, [0197] “Where a tree structure is stored as in an array as a linearized tree, this provides a straightforward means for determining the exact number of points that are contained within a bounding box associated with any node in the tree”).
in accordance with a determination that (c) the respective number of data points for the respective initial node (see Blaas, [0197] “this provides a straightforward means for determining the exact number of points that are contained within a bounding box associated with any node in the tree”) exceeds a first threshold value: (see Jain, [0077] “is above a threshold or another criterion”).
subdividing the respective number of data points into the predefined number of child nodes according to respective boundaries of the respective initial node; and (see Blaas, [0194] “the bounding box associated with the root node would correspond to the entire area with corners at points (0,0), (0,9), (9,9) and (9,0)… bounding boxes associated with the child nodes for which the root node is a parent. That is to say the original bounding box associated with the parent node is divided into two halves based on the split value which in this case is the line at x=4.5. Hence for one of the child node the bounding box will be the box between the points: (0,0), (4.5,0), (4.5, 9) and (0,9) whereas for the other child node the bounding box would be the box between the points (4.5,0), (9,0), (9,9) and (4.5, 9)”).
repeating the steps of processing and determining until (see Jain, [0105] “Various steps may be repeated”; [0060] “The iterative process… can continue until a stopping condition is met”) (e) the respective number of data points for a respective child node (see Blaas, [0194] “the bounding box associated with the root node would correspond to the entire area with corners at points (0,0), (0,9), (9,9) and (9,0)… bounding boxes associated with the child nodes for which the root node is a parent. That is to say the original bounding box associated with the parent node is divided into two halves based on the split value which in this case is the line at x=4.5. Hence for one of the child node the bounding box will be the box between the points: (0,0), (4.5,0), (4.5, 9) and (0,9) whereas for the other child node the bounding box would be the box between the points (4.5,0), (9,0), (9,9) and (4.5, 9)”) does not exceed the first threshold number (see Jain, [0154] “below a threshold level”). The motivation for the proposed combination is maintained.
Regarding claim 13, the proposed combination of Jain and Blaas teaches
further comprising storing each data point (see Blaas, [0157] “generating a tree for an exemplary set of points”) of the initial dataset (see Jain, [0089] “The dataset corresponding to an area of interest selected in the visualization interface 114 is then evaluated by the automated selection model 116 to identify high value data points”; [0048] “an input dataset (referred to a labeled data points) and data points representing the unlabeled examples from the input dataset (referred to as unlabeled data points herein)”; [0096] “starting with an input dataset that comprises an initial set of labeled examples and an initial set of unlabeled examples”) in a binary data format in the data structure (see Blaas, [0150] “This data represents the co-ordinate records as a linearized binary tree space-partitioning data structure”). The motivation for the proposed combination is maintained.
Claim 2 is rejected under 35 U.S.C. 103 as being unpatentable over Jain in view of Blaas further in view of Myers et al. (US 2003/0079005 A1, hereinafter “Myers”).
Regarding claim 2, the proposed combination of Jain and Blaas teaches
wherein dynamically (see Blaas, [0305] “routines to be updated dynamically by other processes”) generating the data structure includes: (see Jain, [0097] “the labeled and unlabeled examples in the input dataset may be embedded as feature vectors or other data structures that have a large number of dimensions”).
determining a plurality of data segments for the initial dataset (see Jain, [0070] “implements an iterative process that uses labeled training data 122 to identify potentially high-value unlabeled text segments to label and, in some cases, to identify potentially mislabeled data items for correction”; [0084] “the labeled training data 122 is used to identify potentially high-value unlabeled text segments to label and, in some cases, to identify potentially mislabeled text segments”) according to a plurality of spatial regions of the data visualization such that each data segment corresponds to a respective spatial region; and for each data segment: (see Jain, [0152] “Turning briefly to FIG. 13A, this figure depicts a portion of a reduced-dimension data space 1300 that includes a set of data points, each data point representing a labeled example (e.g., a labeled text segment) or an unlabeled example (e.g., an unlabeled text segment)”).
applying a machine learning model… (see Jain, [0063] “a machine learning (ML) model training system 102 for training ML models”) for the respective data segment (see Jain, [0152] “Turning briefly to FIG. 13A, this figure depicts a portion of a reduced-dimension data space 1300 that includes a set of data points, each data point representing a labeled example (e.g., a labeled text segment) or an unlabeled example (e.g., an unlabeled text segment)”) so as to balance geometric fidelity (see Blaas, [0153] “in order to produce a generally balanced tree structure, in which each subspace contains approximately the same number of points”) of the respective spatial region of the data visualization… (see Jain, [0152] “Turning briefly to FIG. 13A, this figure depicts a portion of a reduced-dimension data space 1300 that includes a set of data points, each data point representing a labeled example (e.g., a labeled text segment) or an unlabeled example (e.g., an unlabeled text segment)”).
The proposed combination of Jain and Blaas does not explicitly teach to determine an optimum number of nodes with real-time performance.
However, Myers discloses optimize real time performance and teaches
to determine an optimum number of nodes (see Myers, [0090] “on optimizing the number of nodes”) with real-time performance (see Myers, [0016] “to optimize real time performance”; [claim 1] “to optimize real time performance”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of optimum number of nodes and real-time performance as being disclosed and taught by Myers, in the system taught by the proposed combination of Jain and Blaas to yield the predictable results of optimizing performance (see Myers, [0040] “the improved network of the present invention may take into account the characteristics of the application from which the data originates to improve effectiveness in improving performance. It should also be noted that, while the embodiments discussed herein optimize network routing performance metrics including latency and throughput, other routing metrics may also be optimized using the present invention”).
Claims 3, 7-8 and 16-17 are rejected under 35 U.S.C. 103 as being unpatentable over Jain in view of Blaas further in view of Gavvala et al. (US 2024/0103848 A1, hereinafter “Gavvala”).
Regarding claim 3, the proposed combination of Jain and Blaas teaches
wherein: the one or more processors comprise a plurality of processors, the plurality of processors including a first processor… (see Jain, [0186]-[0187] “may comprise a non-transitory computer readable medium storing computer instructions executable by one or more processors in a computing environment… can execute on a single processor or multiple processor” – there are plurality of processors) and a second processor… (see Jain, [0186]-[0187] “may comprise a non-transitory computer readable medium storing computer instructions executable by one or more processors in a computing environment… can execute on a single processor or multiple processor” – there are plurality of processors).
dynamically (see Blaas, [0305] “routines to be updated dynamically by other processes”) generating the data structure includes: (see Jain, [0097] “the labeled and unlabeled examples in the input dataset may be embedded as feature vectors or other data structures that have a large number of dimensions”).
using the first processor… (see Jain, [0186]-[0187] “may comprise a non-transitory computer readable medium storing computer instructions executable by one or more processors in a computing environment… can execute on a single processor or multiple processor” – there are plurality of processors) to dynamically (see Blaas, [0305] “routines to be updated dynamically by other processes”) generate the data structure (see Jain, [0097] “the labeled and unlabeled examples in the input dataset may be embedded as feature vectors or other data structures that have a large number of dimensions”) when the initial dataset comprises data… (see Jain, [0096] “starting with an input dataset that comprises an initial set of labeled examples and an initial set of unlabeled examples”).
using both the first processor… (see Jain, [0186]-[0187] “may comprise a non-transitory computer readable medium storing computer instructions executable by one or more processors in a computing environment… can execute on a single processor or multiple processor” – there are plurality of processors) and the second processor… (see Jain, [0186]-[0187] “may comprise a non-transitory computer readable medium storing computer instructions executable by one or more processors in a computing environment… can execute on a single processor or multiple processor” – there are plurality of processors) when the initial dataset… (see Jain, [0096] “starting with an input dataset that comprises an initial set of labeled examples and an initial set of unlabeled examples”) of data points (see Jain, [0048] “an input dataset (referred to a labeled data points) and data points representing the unlabeled examples from the input dataset (referred to as unlabeled data points herein)”).
The proposed combination of Jain and Blaas does not explicitly teach a first processor having a first processor type and a second processor having a second processor type; and using the first processor having a first processor type; that arrives in steams or partial batches; and using both first processor with the first processor type and the second processor with the second processor type when the initial dataset exceeds a threshold number.
However, Gavvala discloses plurality of processor types and teaches
a first processor having a first processor type (see Gavvala, [0037] “one or more processing resources such as a Central Processing Unit (CPU)”) and a second processor having a second processor type; and (see Gavvala, [0021] “computational tasks may be delegated to a specific processing component of an IHS, such as… that may include one or more programmable processors that operate separate from the main CPUs… such hardware accelerators 185a-n may include… GPUs (Graphics Processing Units)”).
the first processor with the first processor type (see Gavvala, [0037] “one or more processing resources such as a Central Processing Unit (CPU)”) that arrives in steams (see Gavvala, [0050] “for performing streaming”).
the first processor with the first processor type (see Gavvala, [0037] “one or more processing resources such as a Central Processing Unit (CPU)”) and the second processor with the second processor type; (see Gavvala, [0021] “computational tasks may be delegated to a specific processing component of an IHS, such as… that may include one or more programmable processors that operate separate from the main CPUs… such hardware accelerators 185a-n may include… GPUs (Graphics Processing Units)”) exceeds a threshold number (see Gavvala, [0068] “exceeds a specified threshold”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of plurality of processor types, streams, threshold number, CPU, GPU, transfers between CPU and GPU and processing core as being disclosed and taught by Gavvala, in the system taught by the proposed combination of Jain and Blaas to yield the predictable results of effectively delegating computational tasks (see Gavvala, [0021] “Implementing computing systems that span multiple processing components… computational tasks may be delegated to a specific processing component of an IHS, such as to a hardware accelerator l8Sa-n that may include one or more programmable processors that operate separate from the main CPUs”).
Regarding claim 7, the proposed combination of Jain and Blaas teaches
wherein: the one or more processors include… (see Jain, [0186] “computer instructions executable by one or more processors in a computing environment”) having multiple processing cores; and (see Jain, [0177] “computer processor 1710 may comprise one or more cores or micro-cores of a processor”).
recursively applying a linearization algorithm includes: (see Blaas, [0172] “A recursive splitting process is then implemented in which the co-ordinate records are recursively sorted into further sub-groups that each correspond to node of the tree (i.e. the points within a subspace that is defined by a split value)”; [0155] “the binary tree used to structure the co-ordinate data is stored in a linearized form”).
… the plurality of nodes, including the respective subset of data points in each node,… (see Blaas, [0169] “the leaf nodes include the co-ordinate data of the points, whilst each branch/internal node defines the splitting axis of the chosen splitting plane and split value/location along that axis. In practice, the root node of the tree corresponds to all of the points in the set, each branch node then corresponds a subset of the points (i.e. the points contained within a subspace defined by one or more splitting planes), and each leaf node contains a single point”).
parallel (see Blaas, [0280] “Processor 1504 may be implemented using mainframe, distributed processor, multi-core, parallel… architecture”) processing each node of the plurality of nodes… (see Blaas, [0224] “processing of each of the nodes associated with the following bounding boxes”) to obtain the reduced dataset; and (see Jain, [0107] “the reduced-dimension representation of a dataset”).
… the reduced dataset… (see Jain, [0107] “the reduced-dimension representation of a dataset”) wherein the generating and the causing display are performed (see Jain, [0052] “maps labeled training data and unlabeled training data to a reduced-dimension data space that can be used for visualization of the dataset, such as a 2D or 3D representation of a dataset. ML model training system 50 may include a visualization interface 72 that provides a graphical user interface for viewing the reduced-dimension dataset”)
The proposed combination of Jain and Blaas does not explicitly teach processors include a CPU processor and a GPU processor; transferring the plurality of nodes from the CPU processor to the GPU processor; via a respective processing core of the multiple processing cores of the GPU processor; transferring the reduced dataset from the GPU processor to the CPU processor, via the CPU processor.
However, Gavvala discloses plurality of processor types and teaches
a CPU processor and (see Gavvala, [0037] “one or more processing resources such as a Central Processing Unit (CPU)”) a GPU processor (see Gavvala, [0021] “computational tasks may be delegated to a specific processing component of an IHS, such as… that may include one or more programmable processors that operate separate from the main CPUs… such hardware accelerators 185a-n may include… GPUs (Graphics Processing Units)”)
transferring instructions and data from the CPU processor to the GPU processor; (see Gavvala, [0050] “may transfer instructions and data… by the GPUs 260… from CPUs 205”).
… via a respective processing core of the multiple processing cores of the GPU processor (see Gavvala, [0021] “computational tasks may be delegated to a specific processing component of an IHS, such as… that may include one or more programmable processors that operate separate from the main CPUs… such hardware accelerators 185a-n may include… GPUs (Graphics Processing Units)”; [0050] “, GPUs 260 may include one or more hardware-accelerated processing cores”).
transferring instructions and data from the GPU processor to the CPU processor, (see Gavvala, [0050] “may transfer instructions and data… by the GPUs 260 to… CPUs 205”) via the CPU processor (see Gavvala, [0037] “one or more processing resources such as a Central Processing Unit (CPU)”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of plurality of processor types, streams, threshold number, CPU, GPU, transfers between CPU and GPU and processing core as being disclosed and taught by Gavvala, in the system taught by the proposed combination of Jain and Blaas to yield the predictable results of effectively delegating tasks (see Gavvala, [0021] “Implementing computing systems that span multiple processing components… computational tasks may be delegated to a specific processing component of an IHS, such as to a hardware accelerator l8Sa-n that may include one or more programmable processors that operate separate from the main CPUs”).
Claim 16 incorporates substantively all the limitations of claim 7 in a system form and is rejected under the same rationale.
Regarding claim 8, the proposed combination of Jain, Blaas and Gavvala teaches
wherein the parallel processing includes executing, in parallel (see Blaas, [0280] “Processor 1504 may be implemented using mainframe, distributed processor, multi-core, parallel… architecture”) by the respective processing core of the GPU processor, (see Gavvala, [0021] “computational tasks may be delegated to a specific processing component of an IHS, such as… that may include one or more programmable processors that operate separate from the main CPUs… such hardware accelerators 185a-n may include… GPUs (Graphics Processing Units)”; [0050] “, GPUs 260 may include one or more hardware-accelerated processing cores”) a kernel (see Jain, [0187] “The sequence of operations described herein can be interrupted, suspended, or otherwise controlled by another process, such as an operating system, kernel”) for labeling each data point according to reduced-dimension data space (see Jain, [0053] “the reduced-dimension data space may be used to select data points for automated labeling, human labeling”) its node (see Blaas, [0172] “that each correspond to node of the tree (i.e. the points within a subspace that is defined by a split value)”). The motivation for the proposed combination is maintained.
Claim 17 incorporates substantively all the limitations of claim 8 in a system form and is rejected under the same rationale.
Claim 4 is rejected under 35 U.S.C. 103 as being unpatentable over Jain, Blaas and Gavvala in view of Yahyavi Firouz Abadi et al. (US 2020/0104324 A1, hereinafter “Yahyavi”).
Regarding claim 4, the proposed combination of Jain, Blaas and Gavvala
of data points (see Jain, [0048] “an input dataset (referred to a labeled data points) and data points representing the unlabeled examples from the input dataset (referred to as unlabeled data points herein)”).
The proposed combination of Jain, Blaas and Gavvala does not explicitly teach wherein the threshold number of data points is one million data points.
However, Yahyavi discloses a tree corresponding to the dataset and teaches
wherein the threshold number of data points is one million data points (see Yahyavi, [0013] “Each level includes a portion of the number of data points organized into at least one tile, or node”; [0040] “the total number of points loaded in all those tiles remains below the 1 million data point threshold”; [0035] “the maximum number of data points is one million data points”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of threshold of one million data points, minimum data points and maximum data points as being disclosed and taught by Yahyavi, in the system taught by the proposed combination of Jain, Blaas and Gavvala to yield the predictable results of effectively processing large datasets (see Yahyavi, [0013] “A method and system for processing large datasets having large numbers of rows of data (also referred to as data points) are described. A tree corresponding to the dataset is generated. The tree has a plurality of levels. Each level includes a portion of the number of data points organized into at least one tile, or node”).
Claim 6 is rejected under 35 U.S.C. 103 as being unpatentable over Jain in view of Blaas further in view of Xing et al. (US 2014/0282562 A1, hereinafter “Xing”).
Regarding claim 6, the proposed combination of Jain and Blaas teaches
wherein dynamically (see Blaas, [0305] “routines to be updated dynamically by other processes”) generating the data structure includes: (see Jain, [0097] “the labeled and unlabeled examples in the input dataset may be embedded as feature vectors or other data structures that have a large number of dimensions”).
assigning the bounding region to a root node of the data structure; (see Blaas, [0182] “The bounding box associated with the root node is defined as being a bounding box which encompasses all of the items of co-ordinate data”).
subdividing (see Blaas, [0193] “In the case of the initial root node, this bounding box will correspond to the entire area where incidents might be recorded. For nodes at subsequent level, these bounding boxes are defined recursively by the split values associated with their parent node… the bounding box associated with the root node would correspond to the entire area with corners at points (0,0), (0,9), (9,9) and (9,0)”) the initial dataset (see Jain, [0096] “starting with an input dataset that comprises an initial set of labeled examples and an initial set of unlabeled examples”) into a predefined number of initial nodes according to boundaries of the bounding region, wherein each initial node corresponds to a respective subset of data points and the predefined number is greater than one; (see Blaas, [0193] “In the case of the initial root node, this bounding box will correspond to the entire area where incidents might be recorded. For nodes at subsequent level, these bounding boxes are defined recursively by the split values associated with their parent node… the bounding box associated with the root node would correspond to the entire area with corners at points (0,0), (0,9), (9,9) and (9,0)”).
… the initial nodes… (see Blaas, [0193] “In the case of the initial root node, this bounding box will correspond to the entire area where incidents might be recorded. For nodes at subsequent level, these bounding boxes are defined recursively by the split values associated with their parent node… the bounding box associated with the root node would correspond to the entire area with corners at points (0,0), (0,9), (9,9) and (9,0)”) the initial nodes (see Blaas, [0193] “In the case of the initial root node, this bounding box will correspond to the entire area where incidents might be recorded. For nodes at subsequent level, these bounding boxes are defined recursively by the split values associated with their parent node… the bounding box associated with the root node would correspond to the entire area with corners at points (0,0), (0,9), (9,9) and (9,0)”).
for a respective initial node: determining a respective number of data points for the respective initial node; (see Blaas, [0197] “this provides a straightforward means for determining the exact number of points that are contained within a bounding box associated with any node in the tree”; [0169] “the root node of the tree corresponds to all of the points in the set, each branch node then corresponds a subset of the points (i.e. the points contained within a subspace defined by one or more splitting planes), and each leaf node contains a single point”).
in accordance with a determination that the respective number of data points in the respective initial node (see Blaas, [0197] “this provides a straightforward means for determining the exact number of points that are contained within a bounding box associated with any node in the tree”) does not exceed a first threshold number: (see Jain, [0154] “below a threshold level”).
labeling respective data points (see Jain, [0053] “the reduced-dimension data space may be used to select data points for automated labeling, human labeling”) of the respective initial node; and (see Blaas, [0193] “In the case of the initial root node, this bounding box will correspond to the entire area where incidents might be recorded. For nodes at subsequent level, these bounding boxes are defined recursively by the split values associated with their parent node… the bounding box associated with the root node would correspond to the entire area with corners at points (0,0), (0,9), (9,9) and (9,0)”).
storing data corresponding to the respective subset of data points on the computer system; and (see Blaas, [0197] “Where a tree structure is stored as in an array as a linearized tree, this provides a straightforward means for determining the exact number of points that are contained within a bounding box associated with any node in the tree”).
in accordance with a determination that the respective number of data points in the respective initial node (see Blaas, [0197] “this provides a straightforward means for determining the exact number of points that are contained within a bounding box associated with any node in the tree”) exceeds a first threshold number: (see Jain, [0077] “is above a threshold or another criterion”).
subdividing the respective initial node into child nodes; determining a respective number of data points for a respective child node; and (see Blaas, [0194] “the bounding box associated with the root node would correspond to the entire area with corners at points (0,0), (0,9), (9,9) and (9,0)… bounding boxes associated with the child nodes for which the root node is a parent. That is to say the original bounding box associated with the parent node is divided into two halves based on the split value which in this case is the line at x=4.5. Hence for one of the child node the bounding box will be the box between the points: (0,0), (4.5,0), (4.5, 9) and (0,9) whereas for the other child node the bounding box would be the box between the points (4.5,0), (9,0), (9,9) and (4.5, 9)”).
… the respective child node in accordance with a determination that the respective number of data points in the respective node (see Blaas, [0194] “the bounding box associated with the root node would correspond to the entire area with corners at points (0,0), (0,9), (9,9) and (9,0)… bounding boxes associated with the child nodes for which the root node is a parent. That is to say the original bounding box associated with the parent node is divided into two halves based on the split value which in this case is the line at x=4.5. Hence for one of the child node the bounding box will be the box between the points: (0,0), (4.5,0), (4.5, 9) and (0,9) whereas for the other child node the bounding box would be the box between the points (4.5,0), (9,0), (9,9) and (4.5, 9)”) exceeds the first threshold number (see Jain, [0154] “below a threshold level”).
The proposed combination of Jain and Blaas does not explicitly teach adding the initial node in a queue that is configured to process in sequence; and en-queuing the respective child node.
However, Xing discloses node queues and teaches
adding the node in a queue that is configured to process (see Xing, [0017] “When a thread desires to add a node to the queue, two observations may be made with respect to the state of a predecessor node of the newly-added node”) in sequence; and (see Xing, [0045] “determine if the predecessor node has changed based on comparing the first state to the second state, and set ordering in the queue based on the determination”).
en-queuing the node (see Xing, [0047] “enqueuing the at least one new node to the queue”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of adding nodes to the queues as being disclosed and taught by Xing, in the system taught by the proposed combination of Jain and Blaas to yield the predictable results of efficiently managing nodes and their ordering in the queue (see Gavvala, [0018] “The processing module may be to execute at least one thread desiring to enqueue at least one new node to the queue, enqueue the at least one new node to the queue, a first state being observed based on information in the tail identifying a predecessor node when the at least one new node is enqueued… and set ordering in the queue based on the determination”).
Claims 9-11, 14 and 18-19 are rejected under 35 U.S.C. 103 as being unpatentable over Jain in view of Blaas further in view of Crabtree et al. (US 2025/0378537 A1, hereinafter “Crabtree”).
Regarding claim 9, the proposed combination of Jain and Blass teaches
wherein recursively applying the linearization algorithm includes (see Blaas, [0172] “A recursive splitting process is then implemented in which the co-ordinate records are recursively sorted into further sub-groups that each correspond to node of the tree (i.e. the points within a subspace that is defined by a split value)”; [0155] “the binary tree used to structure the co-ordinate data is stored in a linearized form”) dynamically… (see Blaas, [0305] “routines to be updated dynamically by other processes”) of the linearization algorithm (see Blaas, [0172] “A recursive splitting process is then implemented in which the co-ordinate records are recursively sorted into further sub-groups that each correspond to node of the tree (i.e. the points within a subspace that is defined by a split value)”; [0155] “the binary tree used to structure the co-ordinate data is stored in a linearized form”) according to data characteristics (see Jain, [0065] “each training example (e.g., each item of text, each image, each audio segment) is embedded as a feature vector that represents the features of the example. Various embeddings known or developed in the art may be used based, for example, on the type of training data, the characteristics of the embedding and other factors”; [0048] “the 512 dimension feature vectors representing the text segments in a dataset may be reduced to a 2D representation, a 3D representation, or another reduced-dimension representation of the dataset, with the reduced-dimension representation including labeled data points representing the labeled text segments and unlabeled data points representing the unlabeled text segments”) of the initial subset of data points (see Jain, [0057] “mapping an input dataset that contains a set of labeled training data 52 (potentially as augmented by prior iterations) and a subset of unlabeled training data 54… to identify data points to label”)
The proposed combination of Jain and Blass does not explicitly teach dynamically adjusting a tolerance level.
However, Crabtree discloses data processing and teaches
adjusting a tolerance level (see Crabtree, [0131] “the system can dynamically adjust the segmentation parameters”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of tolerance level, tolerance value, cleaning raw data and quadtree as being disclosed and taught by Xing, in the system taught by the proposed combination of Jain and Blaas to yield the predictable results of (see Gavvala, [0018] “The processing module may be to execute at least one thread desiring to enqueue at least one new node to the queue, enqueue the at least one new node to the queue, a first state being observed based on information in the tail identifying a predecessor node when the at least one new node is enqueued… and set ordering in the queue based on the determination”).
Claim 18 incorporate substantively all the limitations of claim 9 in a system form and is rejected under the same rationale.
Regarding claim 10, the proposed combination of Jain and Blass teaches
further comprising: after displaying the data visualization on the browser application, receiving a user interaction with a first portion of the data visualization; in response to receiving the user interaction: (see Jain, [0110] “A visualization interface (e.g., visualization interface 72, visualization interface 114, or other visualization interface) can include tools to allow a user to select a data point from the graphical representation of the reduced-dimension dataset. Thus, a selection of a target data point can be received (step 404). Based on the selection of a data point”).
retrieving or identifying a first subset of data points falling within the first portion of the data visualization; (see Jain, [0110] “Based on the selection of a data point, the user is presented with the text segment (or other data item) represented by the data point (step 406) and provided with the option to label the data point”).
grouping the first subset of data points (see Blaas, [0159] “the points/co-ordinate records that lie to the left of the splitting plane are grouped in the left-hand side of the array (i.e. the left-hand sub-tree), whilst the points/co-ordinate records that lie to the right of the splitting plane are grouped in the right-hand side of the array”) into a first set of one or more segments; (see Jain, [0084] “The reduced-dimension data space includes data points representing the labeled text segments from the input dataset (labeled data points) and data points representing the unlabeled examples from the input dataset (unlabeled data points)”)
extracting features for each segment of the first set of one or more segments; (see Jain, [0084] “The reduced-dimension data space includes data points representing the labeled text segments from the input dataset (labeled data points) and data points representing the unlabeled examples from the input dataset (unlabeled data points)”; [0048] “each text segment is represented by a feature vector having 512 dimensions, then the 512 dimension feature vectors representing the text segment”).
inputting the extracted features into a machine learning model and (see Jain, [0097] “the input dataset may be embedded as feature vectors or other data structures that have a large number of dimensions”; [0056] “ML model training system 50 may perform dimension reduction on a dataset and input the entire reduced-dimension dataset or algorithmically selected portions of the dataset for evaluation by a selection model”) receiving from the machine learning model a final set of labeled data… (see Jain, [0104] “the model training system can output a final set of labeled data”) for each segment of the first set of one or more segments; and (see Jain, [0048] “each text segment is represented by a feature vector having 512 dimensions, then the 512 dimension feature vectors representing the text segments in a dataset”).
applying the linearization algorithm to (see Blaas, [0155] “the binary tree used to structure the co-ordinate data is stored in a linearized form”) each segment, of the first set of one or more segments,… (see Jain, [0084] “The reduced-dimension data space includes data points representing the labeled text segments from the input dataset (labeled data points) and data points representing the unlabeled examples from the input dataset (unlabeled data points)”) for each segment, thereby obtaining a reduced subset of data points, wherein the reduced subset of data points has fewer data points than the first subset of data points; (see Jain, [0084] “a subset of unlabeled text segments 107 (e.g., unlabeled text segments 132 selected for each iteration at random or according to another selection scheme) to create an input dataset that is input into a dimension reduction component 112. According to some embodiments, ML model training system 102 inputs the labeled training data 122 and unlabeled text segments 132 as embedded into numerical representations into a UMAP algorithm or other algorithm for dimension reduction to generate a reduced-dimension data space that comprises reduced-dimension representations of the labeled and unlabeled text segments. The reduced-dimension data space includes data points representing the labeled text segments from the input dataset (labeled data points) and data points representing the unlabeled examples from the input dataset (unlabeled data points)”; [0117] “a user interacting with a visualization interface selects area 504 (FIG. 5) for evaluation, then the examples represented by the data points in area 504 (e.g., the labeled and unlabeled text segments represented by the data points in area 504) are mapped to the reduced-dimension representation of the selected area for evaluation by the selection model”).
generating an updated data visualization according to (see Blaas, [0121] “providing real-time updating of the first view A in response to a user selection”) data in the reduced subset of data points; and (see Jain, [0084] “a subset of unlabeled text segments 107 (e.g., unlabeled text segments 132 selected for each iteration at random or according to another selection scheme) to create an input dataset that is input into a dimension reduction component 112. According to some embodiments, ML model training system 102 inputs the labeled training data 122 and unlabeled text segments 132 as embedded into numerical representations into a UMAP algorithm or other algorithm for dimension reduction to generate a reduced-dimension data space that comprises reduced-dimension representations of the labeled and unlabeled text segments. The reduced-dimension data space includes data points representing the labeled text segments from the input dataset (labeled data points) and data points representing the unlabeled examples from the input dataset (unlabeled data points)”; [0117] “a user interacting with a visualization interface selects area 504 (FIG. 5) for evaluation, then the examples represented by the data points in area 504 (e.g., the labeled and unlabeled text segments represented by the data points in area 504) are mapped to the reduced-dimension representation of the selected area for evaluation by the selection model”).
causing display of (see Jain, [0110] “displayed in visualization interface 72”) an updated data visualization on (see Blaas, [0121] “providing real-time updating of the first view A in response to a user selection”) a browser application (see Blaas, [0286] “computer system 1502 may implement a web browser 1536”).
The proposed combination of Jain and Blass does not explicitly teach a respective tolerance value; using the respective tolerance value.
However, Crabtree discloses data processing and teaches
a respective tolerance value (see Crabtree, [0129] “With the hash values assigned to each segment”).
using the respective tolerance value (see Crabtree, [0129] “With the hash values assigned to each segment”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of tolerance level, tolerance value, cleaning raw data and quadtree as being disclosed and taught by Xing, in the system taught by the proposed combination of Jain and Blaas to yield the predictable results of (see Gavvala, [0018] “The processing module may be to execute at least one thread desiring to enqueue at least one new node to the queue, enqueue the at least one new node to the queue, a first state being observed based on information in the tail identifying a predecessor node when the at least one new node is enqueued… and set ordering in the queue based on the determination”).
Claim 19 incorporate substantively all the limitations of claim 10 in a system form and is rejected under the same rationale.
Regarding claim 11, the proposed combination of Jain and Blass teaches
wherein: the initial dataset comprises a dataset of examples… (see Jain, [0089] “The dataset corresponding to an area of interest selected in the visualization interface 114 is then evaluated by the automated selection model 116 to identify high value data points”; [0048] “an input dataset (referred to a labeled data points) and data points representing the unlabeled examples from the input dataset (referred to as unlabeled data points herein)”; [0096] “starting with an input dataset that comprises an initial set of labeled examples and an initial set of unlabeled examples”).
the method includes… (see Jain, [0038] “The present disclosure provides systems and methods for”) generating the data structure (see Jain, [0097] “the labeled and unlabeled examples in the input dataset may be embedded as feature vectors or other data structures that have a large number of dimensions”).
The proposed combination of Jain and Blass does not explicitly teach raw data; and performing data cleaning on the dataset of raw data prior to generating the data structure.
However, Crabtree discloses data processing and teaches
raw data; and (see Crabtree, [0221] “Once the raw data is obtained, the method applies a series of cleaning techniques”).
performing data cleaning on the dataset of raw data prior to data transformation for training (see Crabtree, [02221] “Once the raw data is obtained, the method applies a series of cleaning techniques… After cleaning, the method proceeds to step 1003 with data transformation to convert the data into a suitable format for training the scene generation models”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of tolerance level, tolerance value, cleaning raw data and quadtree as being disclosed and taught by Xing, in the system taught by the proposed combination of Jain and Blaas to yield the predictable results of (see Gavvala, [0018] “The processing module may be to execute at least one thread desiring to enqueue at least one new node to the queue, enqueue the at least one new node to the queue, a first state being observed based on information in the tail identifying a predecessor node when the at least one new node is enqueued… and set ordering in the queue based on the determination”).
Regarding claim 14, the proposed combination of Jain and Blass teaches
wherein the data structure comprises… (see Jain, [0097] “the labeled and unlabeled examples in the input dataset may be embedded as feature vectors or other data structures that have a large number of dimensions”).
The proposed combination of Jain and Blass does not explicitly teach a quadtree data structure.
However, Crabtree discloses data processing and teaches
a quadtree data structure (see Crabtree, [0128] “Methods such as… quadtree decomposition… can be used”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of tolerance level, tolerance value, cleaning raw data and quadtree as being disclosed and taught by Xing, in the system taught by the proposed combination of Jain and Blaas to yield the predictable results of (see Gavvala, [0018] “The processing module may be to execute at least one thread desiring to enqueue at least one new node to the queue, enqueue the at least one new node to the queue, a first state being observed based on information in the tail identifying a predecessor node when the at least one new node is enqueued… and set ordering in the queue based on the determination”).
Claim 12 is rejected under 35 U.S.C. 103 as being unpatentable over Jain in view of Blaas further in view of Yahyavi.
Regarding claim 12, the proposed combination of Jain and Blass teaches
wherein the set of one or more criteria includes at least two of: (see Jain, [0108] “Positive examples (examples that are labeled as positive for the category) are represented by dots of one color, negative examples represented by dots of a second color, and unlabeled examples are represented by dots of a third color… area 502 includes mostly positive examples with few unlabeled and negative examples, area 504 includes mostly negative examples with few unlabeled and positive examples, and area 506 includes mostly unlabeled examples”).
a first criterion that specifies… (see Jain, [0108] “Positive examples (examples that are labeled as positive for the category) are represented by dots of one color, negative examples represented by dots of a second color, and unlabeled examples are represented by dots of a third color… area 502 includes mostly positive examples with few unlabeled and negative examples, area 504 includes mostly negative examples with few unlabeled and positive examples, and area 506 includes mostly unlabeled examples” – there are plurality of criteria).
a second criterion that specifies… (see Jain, [0108] “Positive examples (examples that are labeled as positive for the category) are represented by dots of one color, negative examples represented by dots of a second color, and unlabeled examples are represented by dots of a third color… area 502 includes mostly positive examples with few unlabeled and negative examples, area 504 includes mostly negative examples with few unlabeled and positive examples, and area 506 includes mostly unlabeled examples” – there are plurality of criteria).
The proposed combination of Jain and Blass does not explicitly teach a minimum number of data points in a node (Min Nodes); a maximum number of data points in a node (Max Nodes).
However, Yahyavi discloses a tree corresponding to the dataset and teaches
a minimum number of data points in a node (Min Nodes); (see Yahyavi, [0034] “has a single tile and may hold the fewest number of data points”).
a maximum number of data points in a node (Max Nodes); (see Yahyavi, [0013] “Each level includes a portion of the number of data points organized into at least one tile, or node… The portion of the tile(s) requested includes not more than the maximum number of data points determined”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to include the functionality of threshold of one million data points, minimum data points and maximum data points as being disclosed and taught by Yahyavi, in the system taught by the proposed combination of Jain and Blaas to yield the predictable results of effectively processing large datasets (see Yahyavi, [0013] “A method and system for processing large datasets having large numbers of rows of data (also referred to as data points) are described. A tree corresponding to the dataset is generated. The tree has a plurality of levels. Each level includes a portion of the number of data points organized into at least one tile, or node”).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to VAISHALI SHAH whose telephone number is (571)272-8532. The examiner can normally be reached Monday - Friday (7:30 AM to 4:00 PM).
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, AJAY BHATIA can be reached at (571)272-3906. 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.
/VAISHALI SHAH/Primary Examiner, Art Unit 2156