DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
Examiner Notes
(1) In the case of amending the Claimed invention, Applicant is respectfully requested to indicate the portion(s) of the specification which dictate(s) the structure relied on for proper interpretation and also to verify and ascertain the metes and bounds of the claimed invention. This will assist in expediting compact prosecution. MPEP 714.02 recites: “Applicant should also specifically point out the support for any amendments made to the disclosure. See MPEP § 2163.06. An amendment which does not comply with the provisions of 37 CFR 1.121 (b), (c), (d), and (h) may be held not fully responsive. See MPEP § 714.” Amendments not pointing to specific support in the disclosure may be deemed as not complying with provisions of 37 C.F.R. 1.131 (b), (c), (d), and (h) and therefore held not fully responsive. Generic statements such as "Applicants believe no new matter has been introduced" may be deemed insufficient.
(2) Examiner cites particular columns, paragraphs, figures and line numbers in the references as applied to the claims below for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant fully consider the references in their entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the Examiner.
Drawings
The applicant’s drawings submitted are acceptable for examination purposes.
Specification
The applicant’s specification submitted is acceptable for examination purposes.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP §§ 706.02(l)(1) - 706.02(l)(3) for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/process/file/efs/guidance/eTD-info-I.jsp.
Claims 1-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1-20 of U.S. Patent No. 12353385. The subject matter claimed in the instant application is fully disclosed in the U.S. Patent No. 12353385 and is covered by the U.S. Patent No. 12353385 and the application are claiming common subject matter, as follows:
U.S. Patent No. 12353385
Instant Application
1. A computer-implemented method comprises: building an input tree, wherein the input tree includes nodes; implementing a first top-down pass to determine a universal number for each node in the input tree; implementing a second top-down pass to determine form factors for each node of the input tree, wherein a form factor includes a depth and a width of the input tree at a corresponding node of the nodes, wherein the depth corresponds to a number of edges in a longest path between the corresponding node and a last leaf node; storing the form factors as part of node metadata or in a separate table; receiving a search query with a sample tree structure; determining a corresponding form factor for a sample root node of the sample tree structure; filtering a database of trees by identifying matching nodes that match the corresponding form factor of the sample root node; and searching a subset of trees in the database of trees that correspond to the matching nodes for subtrees that match the sample tree structure.
1. A computer-implemented method comprises: receiving an input tree of a collection of trees, the input tree having a plurality of paths from a root node to respective leaf nodes; determining form factors for individual nodes of the input tree, wherein the form factors include a depth corresponding to a number of edges in a longest path between a corresponding node to a last respective leaf node, and a width with a root in a corresponding node; storing the form factors associated with the individual nodes; receiving a search query with node information of a sample tree structure including at least one form factor of interest; filtering the collection of trees by identifying a subset of trees having the at least one form factor of interest, associated with one or more matching nodes; and searching the subset of trees to identify the trees that match the sample tree structure.
5. The method of claim 2, wherein the second top-down pass comprises: generating a bitmap matrix of strings from each leaf node of the input tree; determining the form factor for the root node; and determining the form factors for corresponding nodes at each subsequent level of the input tree based on the bitmap matrix.
5. The method of claim 1, further comprising: generating a bitmap matrix of strings from each leaf node of the input tree, wherein determining the form factors is for corresponding nodes at each subsequent level of the input tree based on the bitmap matrix.
6. The method of claim 2, wherein the second top-down pass comprises: generating a bitmap matrix of strings from each leaf node of the input tree; determining the form factor for the root node; and determining the form factors for corresponding nodes at each subsequent level of the input tree based on the bitmap matrix, wherein the depth corresponds to a number of zeros to a right of a pointer in one or more corresponding strings in the bitmap matrix.
6. The method of claim 5, wherein a zero or a one digit in the bitmap matrix of strings indicates descending one level down a path and the depth corresponds to a number of the zeros or the ones to a right of a pointer in one or more corresponding strings in the bitmap matrix.
7. The method of claim 6, further comprising: applying a split at level method to determine whether a string in the bitmap matrix is spent; and responsive to determining that the string in the bitmap matrix is spent, discarding the string for further processing.
7. The method of claim 5, further comprising: splitting a string at a level of the input tree into two strings to determine whether the string in the bitmap matrix is spent; and responsive to determining that the string in the bitmap matrix is spent, discarding the string.
9. A device comprising: a processor; and a memory coupled to the processor, with instructions stored thereon that, when executed by the processor, cause the processor to perform operations comprising: building an input tree, wherein the input tree includes nodes; implementing a first top-down pass to determine a universal number for each node in the input tree; implementing a second top-down pass to determine form factors for each node of the input tree, wherein a form factor includes a depth and a width of the input tree at a corresponding node of the nodes, wherein the depth corresponds to a number of edges in a longest path between the corresponding node and a last leaf node; storing the form factors as part of node metadata or in a separate table; receiving a search query with a sample tree structure; determining a corresponding form factor for a sample root node of the sample tree structure; filtering a database of trees by identifying matching nodes that match the corresponding form factor of the sample root node; and searching a subset of trees in the database of trees that correspond to the matching nodes for subtrees that match the sample tree structure.
8. A device comprising: a processor; and a memory coupled to the processor, with instructions stored thereon that, when executed by the processor, cause the processor to perform operations comprising: receiving an input tree of a collection of trees, the input tree having a plurality of paths from a root node to respective leaf nodes; determining form factors for each node of the input tree, where each form factor includes a depth corresponding to a number of edges in a longest path between a corresponding node to a last respective leaf node, and a width of the input tree with a root in a corresponding node; storing the form factors; receiving a search query with node information of a sample tree structure including at least one form factor of interest; filtering the collection of trees by identifying a subset of trees having the at least one form factor of interest, associated with one or more matching nodes; and searching the subset of trees to identify the trees that match the sample tree structure.
13. The device of claim 10, wherein the second top-down pass comprises: generating a bitmap matrix of strings from each leaf node of the input tree; determining the form factor for the root node; and determining the form factors for corresponding nodes at each subsequent level of the input tree based on the bitmap matrix.
12. The device of claim 8, wherein the operations further comprise: generating a bitmap matrix of strings from each leaf node of the input tree, wherein determining the form factors is for corresponding nodes at each subsequent level of the input tree based on the bitmap matrix.
14. The device of claim 10, wherein the second top-down pass comprises: generating a bitmap matrix of strings from each leaf node of the input tree; determining the form factor for the root node; and determining the form factors for corresponding nodes at each subsequent level of the input tree based on the bitmap matrix, wherein the depth corresponds to a number of zeros to a right of a pointer in one or more corresponding strings in the bitmap matrix.
13. The device of claim 12, wherein a zero or a one digit in the bitmap matrix of strings indicates descending one level down a path and the depth corresponds to a number of the zeros or the ones to a right of a pointer in one or more corresponding strings in the bitmap matrix.
16. A non-transitory computer-readable medium with instructions stored thereon that, when executed by one or more computers, cause the one or more computers to perform operations, the operations comprising: building an input tree, wherein the input tree includes nodes; implementing a first top-down pass to determine a universal number for each node in the input tree; implementing a second top-down pass to determine form factors for each node of the input tree, wherein a form factor includes a depth and a width of the input tree at a corresponding node of the nodes, wherein the depth corresponds to a number of edges in a longest path between the corresponding node and a last leaf node; storing the form factors as part of node metadata or in a separate table; receiving a search query with a sample tree structure; determining a corresponding form factor for a sample root node of the sample tree structure; filtering a database of trees by identifying matching nodes that match the corresponding form factor of the sample root node; and searching a subset of trees in the database of trees that correspond to the matching nodes for subtrees that match the sample tree structure.
14. A non-transitory computer-readable medium with instructions stored thereon that, when executed by one or more computers, cause the one or more computers to perform operations, the operations comprising: receiving an input tree of a collection of trees, the input tree having a plurality of paths from a root node to respective leaf nodes; determining form factors for each node of the input tree, where each form factor includes a depth corresponding to a number of edges in a longest path between a corresponding node to a last respective leaf node, and a width of the input tree with a root in a corresponding node; storing the form factors; receiving a search query with node information of a sample tree structure including at least one form factor of interest; filtering the collection of trees by identifying a subset of trees having the at least one form factor of interest, associated with one or more matching nodes; and searching the subset of trees to identify the trees that match the sample tree structure.
20. The computer-readable medium of claim 17, wherein the second top-down pass comprises: generating a bitmap matrix of strings from each leaf node of the input tree; determining the form factor for the root node; and determining the form factors for corresponding nodes at each subsequent level of the input tree based on the bitmap matrix.
18. The computer-readable medium of claim 14, wherein the operations further comprise: generating a bitmap matrix of strings from each leaf node of the input tree, wherein determining the form factors is for corresponding nodes at each subsequent level of the input tree based on the bitmap matrix.
Further, Claims 2-3, 9-10, and 15-16 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1-20 of U.S. Patent No. 12353385 in view of Sammis (U.S. Pub. No. 2017/0277687 A1)
Regarding claim 2, U.S. Patent No. 12353385 teaches all claimed limitations as set forth in rejection of claim 1, but do not explicitly disclose wherein storing the form factors includes serializing the form factors into flat data stored in at least one table, and wherein the filtering and searching is performed on the flat data.
Sammi teaches: wherein storing the form factors includes serializing the form factors into flat data stored in at least one table, and wherein the filtering and searching is performed on the flat data (Sammis, paragraph [0037], teaches processing a tree structure or hierarchical model may include generating an ancestry or hierarchical table corresponding to the tree structure; also [0038]-[0040], the hierarchical may include multiple column such as Node_ID, and Ancestor_ID column, and Depth column; the Dept column contain values indicating the dept or distance between the container node and parent node of the same row).
Regarding claim 3, U.S. Patent No. 12353385 teaches all claimed limitations as set forth in rejection of claim 1, but do not explicitly disclose wherein searching for the subset of trees includes refining the search query using additional parameters including at least one of: checking for types of nodes, and computing distances between sets representing the subtrees and sample subtree structures.
Sammis teaches: wherein searching for the subset of trees includes refining the search query using additional parameters including at least one of: checking for types of nodes, and computing distances between sets representing the subtrees and sample subtree structures (Sammis, paragraph [0058]-[0060], teaches using ancestry table, all row entries having container node X as ANCESTOR_ID are identified as matching the received search query; each matching row entry is examined to determine whether its DEPTH is greater than 0, then NODE_ID corresponding to such entry is identified; only row entries 330, 360 and 395 with corresponding NODE_ID value of W, Y and Z, respectively are identified; NODE_ID values from row entries 330, 360 and 395 are returned; also see [0038]-[0040], the hierarchical may include multiple column such as Node_ID, and Ancestor_ID column, and Depth column; the Dept column contain values indicating the dept or distance between the container node and parent node of the same row).
It would have been obvious to a person of ordinary skill in the art at the time the invention was made to modify or to omit the additional elements of claims 1-20 of U.S. Patent No. 12353385 to arrive at the claims 2 and 3 of the instant application because the person would have realized that the remaining element would perform the same functions as before. "Omission of element and its function in combination is obvious expedient if the remaining elements perform same functions as before." See In re Karlson (CCPA) 136 USPQ 184, decide Jan 16, 1963, Appl. No. 6857, U.S. Court of Customs and Patent Appeals.
Claims 9-10 and 16-17 are rejected under double patenting for similar reasons.
Claims 4, 11, and 17 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1-20 of U.S. Patent No. 12353385 in view of Sammis (U.S. Pub. No. 2017/0277687 A1).
Regarding claim 4, U.S. Patent No. 12353385 teaches all claimed limitations as set forth in rejection of claim 1, but do not explicitly disclose: wherein the sample tree structure represents code or pseudocode that presents a potential performance problem, and based on identifying the trees, the method further comprises identifying the potentially problematic code or pseudocode represented in the collection of trees, to address the potential performance problem.
Vasilyeva teaches wherein the sample tree structure represents code or pseudocode that presents a potential performance problem (paragraph [0013], database clients may use database languages, to manipulate data associated with business application; example database languages include structure query language (SQL), SQL script, a MultiDimensional eXpressions, and WIPE; also see paragraph [0018], to enable efficient graph access and processing, graph engine provides a set of base operation that act upon a graph; these operations may be invoked using WIPE, a graph query manipulation language; also see paragraph [0027],receives, database management system transform query into graph query; noted, “graph query” is interpreted as “the sample tree structure”), and based on identifying the trees, the method further comprises identifying the potentially problematic code or pseudocode represented in the collection of trees, to address the potential performance problem (paragraph [0028], diff-query analyzer processes diff-query of query 202, diff-query show components of query 202 that graph query analyzer discovered in property graph 206 and component of query 202 that are missing from property graph; also see paragraph [0029]-[0030], to determine discovered query component 216 and missing query component 218, diff-query analyzer determine maximum common subgraphs between property graph and graph query; maximum common sub-graph represents discovered query component 216; difference graph 217 represents a difference between maximum common sub-graph and query graph; difference graph 217 represents missing query component 218).
It would have been obvious to a person of ordinary skill in the art at the time the invention was made to modify or to omit the additional elements of claims 1-20 of U.S. Patent No. 12353385 to arrive at the claims 4, 11 and 17 of the instant application because the person would have realized that the remaining element would perform the same functions as before. "Omission of element and its function in combination is obvious expedient if the remaining elements perform same functions as before." See In re Karlson (CCPA) 136 USPQ 184, decide Jan 16, 1963, Appl. No. 6857, U.S. Court of Customs and Patent Appeals.
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-20 are directed to non-statutory subject matter because it does not fall within four category of patentable subject matter recited in 35 U.S.C 101 (Process, machine manufacture or composition of matter).
When considering subject matter eligibility under 35 USC 101, it must be determined whether the claim is directed to one of the four statutory categories of invention, i.e., process, machine, manufacture, or composition of matter (Step 1). If the claim does fall within one of the statutory categories, it must then be determined whether the claim is directed to a judicial exception (i.e., law of nature, natural phenomenon, and abstract idea) (Step 2A), and if so, it must additionally be determined whether the claim is a patent-eligible application of the exception. If an abstract idea is present in the claim, any element or combination of elements in the claim must be sufficient to ensure that the claim amounts to significantly more than the abstract idea itself (Step 2B). Examples of abstract ideas include fundamental economic practices; certain methods of organizing human activities; an idea itself; and mathematical relationships/formulas.
Analysis
STEP 1:
Claims 1, 10 and 16 subject matter falls within the four statutory categories of patentable subject matter identified by 35 U.S.C. § 101: process, machine, manufacture, or composition of matter.
STEP 2A, PRONG l (Claim 1):
Under step 2A, prong 1, of the 2019 Guidance, we first look to whether the claim recites any judicial exceptions, including certain groupings of abstract ideas (i.e., mathematical concepts, certain methods of organizing human activities such as a fundamental economic practice, or mental processes). MPEP § 2106.04(a).
Limitation recites:
receiving an input tree of a collection of trees, the input tree having a plurality of paths from a root node to respective leaf nodes;
determining form factors for individual nodes of the input tree, wherein the form factors include a depth corresponding to a number of edges in a longest path between a corresponding node to a last respective leaf node, and a width with a root in a corresponding node;
storing the form factors associated with the individual nodes
receiving a search query with node information of a sample tree structure including at least one form factor of interest
filtering the collection of trees by identifying a subset of trees having the at least one form factor of interest, associated with one or more matching nodes
searching the subset of trees to identify the trees that match the sample tree structure
For limitation (b), under its broadest reasonable interpretation, the limitation covers performance of the limitation in mind that “can be performed in the human mind, or by a human using a pen and paper” and/or organizing human activity. Graph theory is a branch of mathematics, where a graph is made up of vertices (or nodes); identifying the width [number of nodes in each level] and the depth [number of edges] mentally through observation or demonstrates the human activities.
Accordingly, limitation (b) recites a patent-ineligible abstract idea.
STEP 2A, PRONG 2 (Claim 1):
Limitations (a), (c), (d), (e) and (f) recite “receiving”, “storing”, “receiving”, “filtering”, “searching”, which merely constitute extra-insignificant solution activity (see MPEP 2106.05(d), II.; receive/transmit over network; store/retrieve from memory/storage).
STEP 2B (Claim 1):
Under step 2B, the limitation (a), (c), (d), (e) and (f) merely constitute extra-insignificant solution activity (see MPEP 2106.05(d), IL; receive/transmit over network; store/retrieve from memory/storage) and is well-known, conventional, and routine in the art (see MPEP 2106.05(d), IL; receive/transmit over network; store/retrieve from memory/storage; The courts have recognized the following computer functions as well‐understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity: Storing and retrieving information in memory, Versata Dev. Group, Inc. v. SAP Am., Inc., 793 F.3d 1306, 1334, 115 USPQ2d 1681, 1701 (Fed. Cir. 2015); OIP Techs., 788 F.3d at 1363, 115 USPQ2d at 1092-93).
Viewed as a whole, the additional claim elements do not provide meaningful limitations sufficient to transform the abstract idea into a patent eligible application of the abstract idea such that the claims amount to “significantly more” than the abstract idea itself. Therefore, claim 1 is rejected under 35 U.S.C. §101 as being directed to non-statutory subject matter.
Similarly, additional limitations “a processor”; “a memory” in claim 8 and “a non-transitory computer-readable medium” in claim 14 describe generic computer components, akin to adding the word "apply it" in connection with the abstract idea.
Claims 8 and 14 are being rejected under U.S.C. 101 for similar reason.
Claims 2-7, 9-13 and 15-20 are dependent on their respective parent claims 1, 8 and 14 respectively, do not include additional elements that are sufficient to amount to significantly more than the judicial exception, thus the claims are direct to abstract idea.
Claims 1-20 are therefore not drawn to eligible subject matter as they are directed to an abstract idea without significantly more.
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 of this title, 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-3, 5-10, 12-16 and 18-20 are rejected under 35 U.S.C. 103 as being unpatentable over Perkov (U.S. Pub. No. 2021/0191919 A1) in view of Sammis (U.S. Pub. No. 2017/0277687 A1).
Regarding claim 1, Perkov teaches a computer-implemented method comprises: receiving an input tree of a collection of trees, the input tree having a plurality of paths from a root node to respective leaf nodes (paragraph [0116], note that during building of a given tree or the re-labeling of a tree with metadata for binary path branches and binary path terminator nodes; also see paragraph [0048]) every node will have a label (e.g., binary path metadata) enabling recreation of the binary path or branches associated with that node; noted, re-labeling of a tree with metadata, which is an indication of receiving the input tree, the input tree having plurality of paths from a root node to respective leaf nodes for relabeling the tree with metadata for binary path branches); Perkov determining form factors for individual nodes of the input tree, wherein the form factors include a depth […], and a width with a root in a corresponding node (paragraph [0085]-[0087], if the starting node label is 101 then a sibling node will be 1011 and a child node label will be 1010, noted, the BEGIN…END function in paragraph [0086] illustrates the traversing to labeling the node with metadata; also see paragraph [0116], note that during building of a given tree or the re-labeling of a tree with metadata for binary path branches and binary path terminator nodes; also see paragraph [0048]) every node will have a label (e.g., binary path metadata) enabling recreation of the binary path or branches associated with that node; noted, labeling sibling node with “1011” [Width] and a child node label will be “1010” [depth]).
Perkov does not explicitly disclose: said depth corresponding to a number of edges in a longest path between a corresponding node to a last respective leaf node.
Sammis teaches: said depth corresponding to a number of edges in a longest path between a corresponding node to a last respective leaf node (Fig. 3C illustrates the depth corresponding to ancestor X node and a last leaf node C corresponding to a number of edges in longest path, which is ‘3’; also see paragraph [0037], processing a tree structure or hierarchical model may include generating an ancestry or hierarchical table corresponding to the tree structure; also [0038]-[0040], the hierarchical may include multiple column such as Node_ID, and Ancestor_ID column, and Depth column; the Dept column contain values indicating the dept or distance between the container node and parent node of the same row).
It would have been obvious to one of ordinary skill in art before the effective filing date of the claim invention to include said depth corresponding to a number of edges in a longest path between a corresponding node to a last respective leaf node into search and comparison of hierarchical structure of Perkov.
Motivation to do so would be to include said depth corresponding to a number of edges in a longest path between a corresponding node to a last respective leaf node to perform for more efficient and fast queries on the tree without undergoing recursion or tree traversal every time a query is executed (Sammis, paragraph [0009], line 3-5).
Perkov as modified by Sammis further teach: storing the form factors associated with the individual nodes (Perkov, paragraph [0090], node numbers can be stored in physical table using a native RDBMS; they can be index using regular B-tree index; content of tree nodes can be stored in the same or a separate table; also see paragraph [0081]-[0082] while Sammis, paragraph [0037], teaches processing a tree structure or hierarchical model may include generating an ancestry or hierarchical table corresponding to the tree structure; also [0038]-[0040], the hierarchical may include multiple column such as Node_ID, and Ancestor_ID column, and Depth column; the Dept column contain values indicating the dept or distance between the container node and parent node of the same row);
receiving a search query with node information of a sample tree structure including at least one form factor of interest (Sammis, paragraph [0058], receives a query to search for descendants of a given container node X); filtering the collection of trees by identifying a subset of trees having the at least one form factor of interest, associated with one or more matching nodes (Perkov, paragraph [0083], a task of comparing two tree can now be reduced by applying relational operation DIFFERENCE to two set of nodes, i.e.., the leaf nodes of a first tree and the leaf nodes of a second tree; also see paragraph [0090], usage can be optimized for search of specified sub-tree (ordered or unordered); also see paragraph [0018], structure of different trees can be readily compared simply by analyzing the metadata of the binary path terminator nodes of each tree subject to comparison; also see paragraph [0047] while Sammis, paragraph [0058]-[0060], teaches using ancestry table, all row entries having container node X as ANCESTOR_ID are identified as matching the received search query; each matching row entry is examined to determine whether its DEPTH is greater than 0, then NODE_ID corresponding to such entry is identified; only row entries 330, 360 and 395 with corresponding NODE_ID value of W, Y and Z, respectively are identified); and searching the subset of trees to identify the trees that match the sample tree structure (Perkov, paragraph [0083], a task of comparing two tree can now be reduced by applying relational operation DIFFERENCE to two set of nodes, i.e.., the leaf nodes of a first tree and the leaf nodes of a second tree; also see paragraph [0090], usage can be optimized for search of specified sub-tree (ordered or unordered); also see paragraph [0018], structure of different trees can be readily compared simply by analyzing the metadata of the binary path terminator nodes of each tree subject to comparison; also see paragraph [0047] while Sammis, paragraph [0058]-[0060], teaches using ancestry table, all row entries having container node X as ANCESTOR_ID are identified as matching the received search query; each matching row entry is examined to determine whether its DEPTH is greater than 0, then NODE_ID corresponding to such entry is identified; only row entries 330, 360 and 395 with corresponding NODE_ID value of W, Y and Z, respectively are identified; NODE_ID values from row entries 330, 360 and 395 are returned; also see paragraph [0061]-[0062], the SELECT clause returns nodes from NODE_ID; the JOIN clause joins together hierarchical table and node table on matching table column to form a temporary table from which results of the query may be determined)
Regarding claim 2, Perkov as modified by Sammis teach all claimed limitations as set forth in rejection of claim 1, further teach wherein storing the form factors includes serializing the form factors into flat data stored in at least one table, and wherein the filtering and searching is performed on the flat data (Sammis, paragraph [0037], teaches processing a tree structure or hierarchical model may include generating an ancestry or hierarchical table corresponding to the tree structure; also [0038]-[0040], the hierarchical may include multiple column such as Node_ID, and Ancestor_ID column, and Depth column; the Dept column contain values indicating the dept or distance between the container node and parent node of the same row).
Regarding claim 3, Perkov as modified by Sammis teach all claimed limitations as set forth in rejection of claim 1, further teach wherein searching for the subset of trees includes refining the search query using additional parameters including at least one of: checking for types of nodes, and computing distances between sets representing the subtrees and sample subtree structures (Sammis, paragraph [0058]-[0060], teaches using ancestry table, all row entries having container node X as ANCESTOR_ID are identified as matching the received search query; each matching row entry is examined to determine whether its DEPTH is greater than 0, then NODE_ID corresponding to such entry is identified; only row entries 330, 360 and 395 with corresponding NODE_ID value of W, Y and Z, respectively are identified; NODE_ID values from row entries 330, 360 and 395 are returned; also see [0038]-[0040], the hierarchical may include multiple column such as Node_ID, and Ancestor_ID column, and Depth column; the Dept column contain values indicating the dept or distance between the container node and parent node of the same row).
Regarding claim 5, Perkov as modified by Sammis teach all claimed limitations as set forth in rejection of claim 1, further teach generating a bitmap matrix of strings from each leaf node of the input tree (Perkov, paragraph [0073]-[0074], second metadata of a first sibling node 64 represents a bit-wise representation of metadata describing its familial relationship with the current node 62; in this case the metadata ‘01’ indicates, via the ‘0’ that it was added to the second example tree structure 60 after the current node), wherein determining the form factors is for corresponding nodes at each subsequent level of the input tree based on the bitmap matrix (Perkov, paragraph [0075], a first descendant node 66 includes or is associated with third example metadata 72; the third example metadata 72 includes a bit-wise description (i.e., binary presentation) of familial relationships of the first descendant node 66 with any immediate nodes, e.g., the current node 62; for instance, the third example metadata 72 includes a first ‘0’ indicating that it is a descendant of the current node 62; accordingly, the first ‘0’ may indicate that the node 66 is immediately related to the current node 62; a second ‘0’ may indicate that the node 66 is indeed a first descendant of the parent node 62; also see paragraph [0073]-[0074], second metadata of a first sibling node 64 represents a bit-wise representation of metadata describing its familial relationship with the current node 62; in this case the metadata ‘01’ indicates, via the ‘0’ that it was added to the second example tree structure 60 after the current node).
Regarding claim 6, Perkov as modified by Sammis teach all claimed limitations as set forth in rejection of claim 5, further teach wherein a zero or a one digit in the bitmap matrix of strings indicates descending one level down a path and the depth corresponds to a number of the zeros or the ones to a right of a pointer in one or more corresponding strings in the bitmap matrix (Perkov, paragraph [0075], a first descendant node 66 includes or is associated with third example metadata 72; the third example metadata 72 includes a bit-wise description (i.e., binary presentation) of familial relationships of the first descendant node 66 with any immediate nodes, e.g., the current node 62; for instance, the third example metadata 72 includes a first ‘0’ indicating that it is a descendant of the current node 62; accordingly, the first ‘0’ may indicate that the node 66 is immediately related to the current node 62; a second ‘0’ may indicate that the node 66 is indeed a first descendant of the parent node 62).
Regarding claim 7, Perkov as modified by Sammis teach all claimed limitations as set forth in rejection of claim 5, further teach splitting a string at a level of the input tree into two strings to determine whether the string in the bitmap matrix is spent; and responsive to determining that the string in the bitmap matrix is spent, discarding the string (Perkov, paragraph [0110] and [0113], a subsequent metadata-incorporating includes incorporating metadata into a binary tree path terminator node for each of the one or more binary tree path; the metadata may further includes a binary representation descriptive of each branch at each terminator node; each terminator node may represent a youngest leaf node that has no children; noted, since the terminator node has no children of its own, no further processing for depth first; therefore, it reads on the claims).
As per claims 8 and 14, these claims are rejected on grounds corresponding to the same rationales given above for rejected claim 1 and are similarly rejected.
As per claims 9-10, these claims are rejected on grounds corresponding to the same rationales given above for rejected claims 2-3 respectively and are similarly rejected.
As per claims 12-13, these claims are rejected on grounds corresponding to the same rationales given above for rejected claims 5-6 respectively and are similarly rejected.
As per claims 15-16, these claims are rejected on grounds corresponding to the same rationales given above for rejected claims 2-3 respectively and are similarly rejected.
As per claims 18-20, these claims are rejected on grounds corresponding to the same rationales given above for rejected claims 5-7 respectively and are similarly rejected.
Claims 4, 11, and 17 are rejected under 35 U.S.C. 103 as being unpatentable over Perkov (U.S. Pub. No. 2021/0191919 A1) in view of Sammis (U.S. Pub. No. 2017/0277687 A1), further in view of Vasilyeva et al. (U.S. Pub. No. 2015/0278396 A1).
Regarding claim 4, Perkov as modified by Sammis teach all claimed limitations as set forth in rejection of claim 1, but do not explicitly disclose wherein the sample tree structure represents code or pseudocode that presents a potential performance problem, and based on identifying the trees, the method further comprises identifying the potentially problematic code or pseudocode represented in the collection of trees, to address the potential performance problem.
Vasilyeva teaches wherein the sample tree structure represents code or pseudocode that presents a potential performance problem (paragraph [0013], database clients may use database languages, to manipulate data associated with business application; example database languages include structure query language (SQL), SQL script, a MultiDimensional eXpressions, and WIPE; also see paragraph [0018], to enable efficient graph access and processing, graph engine provides a set of base operation that act upon a graph; these operations may be invoked using WIPE, a graph query manipulation language; also see paragraph [0027],receives, database management system transform query into graph query; noted, “graph query” is interpreted as “the sample tree structure”), and based on identifying the trees, the method further comprises identifying the potentially problematic code or pseudocode represented in the collection of trees, to address the potential performance problem (paragraph [0028], diff-query analyzer processes diff-query of query 202, diff-query show components of query 202 that graph query analyzer discovered in property graph 206 and component of query 202 that are missing from property graph; also see paragraph [0029]-[0030], to determine discovered query component 216 and missing query component 218, diff-query analyzer determine maximum common subgraphs between property graph and graph query; maximum common sub-graph represents discovered query component 216; difference graph 217 represents a difference between maximum common sub-graph and query graph; difference graph 217 represents missing query component 218).
It would have been obvious to one of ordinary skill in art before the effective filing date of the claim invention to include wherein the sample tree structure represents code or pseudocode that presents a potential performance problem, and based on identifying the trees, the method further comprises identifying the potentially problematic code or pseudocode represented in the collection of trees, to address the potential performance problem into search and comparison of hierarchical structure of Perkov.
Motivation to do so would be to include wherein the sample tree structure represents code or pseudocode that presents a potential performance problem, and based on identifying the trees, the method further comprises identifying the potentially problematic code or pseudocode represented in the collection of trees, to address the potential performance problem to address issue with understand the reason for an empty answer,, query issuers create and resubmit alternative queries, which may be a cumbersome and time consuming task (Vasilyeva, paragraph [0002], line 11-13).
As per claims 11 and 17, these claims are rejected on grounds corresponding to the same rationales given above for rejected claim 4 and are similarly rejected.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to KEN HOANG whose telephone number is (571)272-8401. The examiner can normally be reached M-F 7:30am-5:00pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Charles Rones can be reached at (571)272-4085. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/KEN HOANG/Examiner, Art Unit 2168
/CHARLES RONES/Supervisory Patent Examiner, Art Unit 2168