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 .
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 21-40 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more. The claim(s) recite(s) “calculating…a horizontal relationship score,” “calculating…a first axis pair alignment score,” “calculating…a horizontal alignment score,” and “determining… that the first design element group and the second design element should be combined.” These limitations fall within the “mathematical concepts” grouping of abstract ideas as they explicitly recite calculations and derivations of numerical values/scores. Additionally such steps fall within the “Mental Processes” grouping as such steps are capable of being performed in the human mind as a design element could be any element displayed or drawn and a human could assign judgment as scores to the arrangement of such objects as any human designer would do when attempting a well presented layout of elements. The claim also recites “combining” such groups but the combining is not specifically tied to such calculating nor is the manner of combining limited such that this could be a logical combination or a transformation that specifically combines data types into a single data type or format. Taken together as an ordered combination, the limitations still do not amount to more than the abstract ideas themselves. This judicial exception is not integrated into a practical application because the additional elements of “one or more computer processing devices” amount to no more than instruction to “apply it” in relation to a computer processing device. Furthermore the limitations when considered as a whole do not integrate the judicial exception into any practical application given that as explained above the “combining” step is not even tied to the calculating steps, and thus as only calculations are required but which are not required to be applied, the calculations cannot be said to be integrated into any application even. Furthermore the claims cannot be interpreted to provide any improvement to the functioning the computer or to any technological field, even when considering the teachings of the Specification such as at paragraph 0006 disclosing “the manner in which elements are grouped may impact how certain operations are performed. Two examples of such operations are page resizing (where a user changes the size and/or aspect ratio of a page) and re-layouting (where the one or more new element layouts are automatically generated and displayed). In these operations, the design tool may automatically adjust the sizes and/or positions of design elements to fit with the resized page or to change their layout on a page. The manner in which elements are grouped can change the way elements are adjusted and, ultimately, impact on how successful or otherwise the automatic adjustment is.” Ostensibly this could link the broadly claimed spatial re-arrangement of the claims to a supposed technical improvement, however, the claims simply fail to actually recite that the calculations are used to combine the groups or that the combining is based on the calculations of whether the combining should be done. Thus the claims constitute mere data manipulation and generic computer implementation without meaningfully limiting the idea and do not capture any specific technical improvements to layout technology or to the computer itself. The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception because as explained above there are no additional elements beyond those explained above. Furthermore as already explained above the combination of elements considered as a whole cannot be interpreted to provide any improvement to the functioning the computer or to any technological field, even when considering the teachings of the Specification as explained above.
Regarding independent claims 34 and 38, the instant claims require the same limitations as claim 21 above, where the differing elements are simply alternative recitations of “computer” and “processors” and where none are claimed as anything more than generic computer implementation. Thus the same analysis applied to claim 21 can be applied to claims 34 and 38 such that claims 34 and 38 also are rejected on the same grounds as directed to ineligible subject matter.
Note that the dependent claim limitations 22-33, 35-37 and 39-40 all contain additional abstract ideas relating to additional calculating steps. Like the parent claims, none of such calculations is actually integrated into a practical application and the additional elements do not amount to any more than the abstract ideas themselves. Note that no dependent claim further requires that the combining occur based on any calculation nor contain any other limitation that amounts to more than the abstract ideas themselves.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claim 30 is rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Claim 30 recites, in lines 5-6, “calculating the horizontal alignment score to be between less than a maximum horizontal alignment score.” Thus use of “be between less than a maximum” establishes a range which the score could be between, however the range is not specified as there is no element for it to “be between.” Thus the metes and bounds of the claims are rendered indefinite as the claims fail to define the extent of the range. In the interest of compact prosecution, the Examiner will interpret the claim as if it recited “be less than a maximum…” which would render the claims definite for prior art purposes.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claim(s) 21-40 is/are rejected under 35 U.S.C. 102(a)(2) as being anticipated by Gehlaut et al1 (“Gehlaut”).
Regarding claim 21, Gehlaut teaches a computer implemented method comprising (see Gehlaut, column 5 and figure 1 teaching “Graphics editing apparatus 102 includes one or more processing devices for executing a graphics editing tool 104. Graphics editing tool 104 includes one or more modules that perform intelligent multi-dimensional alignment of a visual medium” where this apparatus is a computer with computer processing devices that carries out the functions as explained below):
calculating, by one or more computer processing devices, a horizontal relationship score in respect of a first design element group and a second design element group, wherein the first design element group is associated with a first horizontal axis, the second design element group is associated with a second horizontal axis (note that the broadest reasonable interpretation of “design element group” first of all does not require multiple design elements in order to be considered a group as a group may consist of one member for example, and some member of the group could have multiple characteristics relating to a design such that data describing multiple aspects of a design element could also be considered a design element group, and where a design element must be at least some digital object configured to be rendered on a display which possesses spatial attributes capable of being associated with at least a horizontal axis and visual attributes corresponding to the spatial attributes where such digital object can be a collection of data describing the spatial and visual attributes or an element which can be described as having spatial and visual attributes; thus see Gehlaut, column 2, lines 49-67 through column 3, lines 1-54 teaching computer implementation of arranging graphical design element groups where “graphics editing tool performs the clustering algorithm on position coordinates in one or more dimensions. For instance, when used to edit a two-dimensional graphical presentation, the graphics editing tool could identify a horizontal position coordinate of a graphical element, such as the i value in a pair of coordinates (i,j), or a vertical position coordinate of the graphical element, such as the j value in the pair of coordinates (i,j). The graphics editing tool executes the clustering algorithm on a set of position coordinate values, such the i values for the set of graphical elements or the j values for the set of graphical elements. The clustering algorithm assigns the graphical elements into groups. In a simplified example, the clustering algorithm assigns a first subset of the graphical elements having a first subset of the i values to a first group and assigns a second subset of the graphical elements having a second subset of the i values to a second group” where for example a “j component” corresponds to a vertical coordinate but is used to define a horizontal reference line along which design element groups are arranged where as explained further this may correspond to a “centroid” for the group corresponding to a j-value that controls the horizontal axis alignment (note that however an i value for each group may be considered an association with a horizontal axis as well as although using the i value to align by rows aligns them vertically, this also uses their i value which is associated with a horizontal axis), and “graphics editing tool aligns the graphical elements in each element group based on a cluster of position coordinates for the graphical elements. For instance, in the example above involving two groups, the clustering algorithm determines a first cluster with the first subset of the i values and determines a second cluster with the second subset of the i values. The graphics editing tool identifies a centroid value of each cluster, and aligns the group of graphical elements based on the cluster. For instance, the graphics editing tool sets each i coordinate for the first group of graphical elements to the centroid value of the first cluster and sets each i coordinate for the second group of graphical elements to the centroid value of the second cluster. Setting each i coordinate for the first group of graphical elements to the centroid value aligns the first group of graphical elements into a first column, and setting each i coordinate for the second group of graphical elements to the centroid value aligns the second group of graphical elements into a second column” such that here each group is associated with a horizontal axis corresponding to “aligning graphical elements into a column by modifying horizontal coordinate values, the graphics editing tool can perform a similar process in each dimension of a graphical presentation” such that here graphical elements such which are first and second design groups are associated with a horizontal axis that allows to calculate a horizontal relationship score between the groups based on the axis such as in column 4, lines 1-44 teaching “graphics editing tool computes one or more validity scores that allow the graphics editing tool to select a number of clusters for the clustering and alignment process described above. A validity score is a metric that indicates whether a number of clusters used by the clustering algorithm is too large or too small” and “Each iteration of the clustering algorithm groups a set of coordinate values into a different number of clusters (e.g., a first iteration groups ten i values into two clusters, a second iteration groups ten i values into three clusters, etc.). The graphics editing tool computes a validity score for each iteration and selects the iteration of the clustering algorithm having the highest validity score for aligning a set of graphical elements” where for example “the validity score is a Silhouette score, which is a measure of proximity between a point in a given group (e.g., a centroid of a cluster) and points in nearby groups (e.g., centroids of neighboring clusters). For instance, a higher Silhouette score for a particular point in a cluster could indicate that the particular point is further away from points in a neighboring cluster, and a lower Silhouette score for a particular point in a cluster could indicate that the particular point is closer to points in a neighboring cluster. In some embodiments, the graphics editing tool computes a validity score for a particular number of clusters of the clustering algorithm by averaging the Silhouette scores for a set of points (e.g., centroids) from respective clusters determined by the clustering algorithm. For instance, if the graphics editing tool determines that an iteration of the clustering algorithm that outputs three clusters has the highest average Silhouette score, the graphics editing tool aligns three groups of graphical elements based on their respective clusters (e.g., by setting a coordinate value for a group of graphical elements to the centroid value for the group's cluster of coordinate values)” such that here this validity score which takes into account the first and second horizontal axes of the groups and outputs a score corresponding to a horizontal relationship, is a horizontal relationship score), and calculating the horizontal relationship score comprises:
calculating, by the one or more computer processing devices, a first axis pair alignment score based on an alignment of the first horizontal axis and the second horizontal axis (see Gehlaut, column 4, lines 1-44 teaching calculating the validity scores that score the manner in which the axis pairs are aligned where this measures the proximity and alignment of points in one cluster relating to a first axis to points in neighboring clusters with a second horizontal axis assigned as the centroid where “the validity score is a Silhouette score, which is a measure of proximity between a point in a given group (e.g., a centroid of a cluster) and points in nearby groups (e.g., centroids of neighboring clusters)” and “if the graphics editing tool determines that an iteration of the clustering algorithm that outputs three clusters has the highest average Silhouette score, the graphics editing tool aligns three groups of graphical elements based on their respective clusters (e.g., by setting a coordinate value for a group of graphical elements to the centroid value for the group's cluster of coordinate values)” such that for example a first axis pair alignment score that groups three groups of graphical elements corresponding to the axis on which they were aligned can be calculated);
calculating, by the one or more computer processing devices, a horizontal alignment score based on the first axis pair alignment score (see Gehlaut, column 4, lines 1-44, again teaching calculating the validity scores that score the manner in which the axis pairs are aligned where this measures the proximity and alignment of points in one cluster relating to a first axis to points in neighboring clusters with a second horizontal axis assigned as the centroid where “the validity score is a Silhouette score, which is a measure of proximity between a point in a given group (e.g., a centroid of a cluster) and points in nearby groups (e.g., centroids of neighboring clusters)” and “if the graphics editing tool determines that an iteration of the clustering algorithm that outputs three clusters has the highest average Silhouette score, the graphics editing tool aligns three groups of graphical elements based on their respective clusters (e.g., by setting a coordinate value for a group of graphical elements to the centroid value for the group's cluster of coordinate values)” and as this validity score takes into account the horizontal alignment then the calculating of the validity score comprises calculating a horizontal alignment score based on how well the first axis pair alignment went); and
calculating, by the one or more computer processing devices, the horizontal relationship score based on the horizontal alignment score (see Gehlaut, column 4, lines 1-44, teaching calculating the validity scores that score the manner in which the axis pairs are aligned where this measures the proximity and alignment of points in one cluster relating to a first axis to points in neighboring clusters with a second horizontal axis assigned as the centroid where “the validity score is a Silhouette score, which is a measure of proximity between a point in a given group (e.g., a centroid of a cluster) and points in nearby groups (e.g., centroids of neighboring clusters)” and “if the graphics editing tool determines that an iteration of the clustering algorithm that outputs three clusters has the highest average Silhouette score, the graphics editing tool aligns three groups of graphical elements based on their respective clusters (e.g., by setting a coordinate value for a group of graphical elements to the centroid value for the group's cluster of coordinate values)” such that calculating the validity score is calculating the horizontal relationship score which is also based on how well the horizontal alignment scores influence the validity score and see also column 6, lines 47-67 through column 7, lines 1-67 teaching that both horizontal and vertical alignments are scored using the validity calculations and a “clustering algorithm” that determines an optimal grouping where “to ensure that at least some of the clusters include multiple coordinate values, graphics editing tool 104 also computes a set of validity scores. Graphics editing tool 104 uses these validity scores to identify a number of clusters K to be used when aligning graphical elements in a given dimension” and “cluster validation algorithm generates a validity array having validity scores. For instance, if the clustering algorithm is performed on the i coordinate values and separately performed on the j coordinate values, the cluster validation algorithm outputs two validity arrays, one for the i coordinate values and one for the j coordinate values. Graphics editing tool 104 determines, from a validity array, how many clusters are to be used in each dimension (e.g., how many rows of graphical elements are to be used for the vertical dimension and how many columns of graphical elements are to be used for the horizontal dimension). For instance, graphics editing tool 104 selects a maximum value (i.e., a maximum validity score) from a validity array and uses the number of clusters that resulted in that maximum value as the number of element groups for alignment in a given dimension. In one example, if the validity array for a set of i coordinate values includes [0, 0.5, 0.75, 0.6, 0.5, 0.4, 0.3, 0], then graphics editing tool 104 determines that K=3 (i.e., the number of cluster resulting in the 0.75 value) should be used for the clustering of i coordinate values (i.e., that three groups of graphical elements should be grouped into three columns). Similarly, if the validity array for a set of j coordinate values includes [0, 0.1, 0.2, 0.3, 0.4, 0.2, 0.1, 0], then graphics editing tool 104 determines that K=5 (i.e., the number of clusters resulting in the 0.4 value) should be used for the clustering of j coordinate values (i.e., that graphical elements should be grouped into five rows)” such that here a horizontal relationship score corresponds to the cluster validation algorithm utilizing the validity scores where the max value can be used to determine the best alignments in either or both horizontal and vertical directions);
determining, by the one or more computer processing devices and based on the horizontal relationship score, that the first design element group and the second design element group should be combined (see Gehlaut, 4, lines 1-44 teaching “graphics editing tool computes a validity score for each iteration and selects the iteration of the clustering algorithm having the highest validity score for aligning a set of graphical elements” where for example “if the graphics editing tool determines that an iteration of the clustering algorithm that outputs three clusters has the highest average Silhouette score, the graphics editing tool aligns three groups of graphical elements based on their respective clusters (e.g., by setting a coordinate value for a group of graphical elements to the centroid value for the group's cluster of coordinate values)”); and
combining the first design element group and the second design element group into a combined design element group (note that the instant limitation does not actually require using any of the calculating steps above for the combining and such combining could be based on the calculations above, or if the first and second design element group are combined for any purpose in any manner than the limitation is met; see Gehlaut, column 2, lines 49-67 through column 3, lines 1-54 teaching combining the first and second design element groups into a combined design element group such as when iterating through each combination of design element groups to test their arrangements and where a final combination or selected combination may correspond to the combination that resulted in the highest validity score as in the example “if the graphics editing tool determines that an iteration of the clustering algorithm that outputs three clusters has the highest average Silhouette score, the graphics editing tool aligns three groups of graphical elements based on their respective clusters (e.g., by setting a coordinate value for a group of graphical elements to the centroid value for the group's cluster of coordinate values)” such that this setting of the coordinate values based on the horizontal (and/or vertical) centroid for the centroid of the best grouping outputs such design groups as a combination aligned along such axis corresponding to the centroid).
Regarding claim 22, Gehlaut teaches all that is required as applied to claim 21 above and further teaches the first design element group is associated with a third horizontal axis; the second design element group is associated with a fourth horizontal axis (see Gehlaut, column 4, lines 1-44 where each of the first and second design element groups may be associated with a third and fourth horizontal axis, respectively, during the iterations of the clustering algorithm which associates the first design group with a third horizontal axis (new centroid value to use as a horizontal/vertical axis) and the second group with a fourth horizontal axis in order to test their alignments in such an arrangement as in “Each iteration of the clustering algorithm groups a set of coordinate values into a different number of clusters (e.g., a first iteration groups ten i values into two clusters, a second iteration groups ten i values into three clusters, etc.). The graphics editing tool computes a validity score for each iteration and selects the iteration of the clustering algorithm having the highest validity score for aligning a set of graphical elements” and as further explained in column 7, “example of the clustering algorithm is a K-means clustering algorithm, which iteratively assigns each coordinate value for a set of graphical elements into one of K groups” and “For instance, graphics editing tool 104 selects a maximum value (i.e., a maximum validity score) from a validity array and uses the number of clusters that resulted in that maximum value as the number of element groups for alignment in a given dimension. In one example, if the validity array for a set of i coordinate values includes [0, 0.5, 0.75, 0.6, 0.5, 0.4, 0.3, 0], then graphics editing tool 104 determines that K=3 (i.e., the number of cluster resulting in the 0.75 value) should be used for the clustering of i coordinate values (i.e., that three groups of graphical elements should be grouped into three columns). Similarly, if the validity array for a set of j coordinate values includes [0, 0.1, 0.2, 0.3, 0.4, 0.2, 0.1, 0], then graphics editing tool 104 determines that K=5 (i.e., the number of clusters resulting in the 0.4 value) should be used for the clustering of j coordinate values (i.e., that graphical elements should be grouped into five rows)” such that here each validity score corresponds to new horizontal axes for the design groups which is determined and associated with the design groups);
the method further comprises calculating, by the one or more computer processing devices, a second axis pair alignment score based on an alignment of the third horizontal axis and the fourth horizontal axis (see Gehlaut, column 7 as explained above where “For instance, graphics editing tool 104 selects a maximum value (i.e., a maximum validity score) from a validity array and uses the number of clusters that resulted in that maximum value as the number of element groups for alignment in a given dimension. In one example, if the validity array for a set of i coordinate values includes [0, 0.5, 0.75, 0.6, 0.5, 0.4, 0.3, 0], then graphics editing tool 104 determines that K=3 (i.e., the number of cluster resulting in the 0.75 value) should be used for the clustering of i coordinate values (i.e., that three groups of graphical elements should be grouped into three columns). Similarly, if the validity array for a set of j coordinate values includes [0, 0.1, 0.2, 0.3, 0.4, 0.2, 0.1, 0], then graphics editing tool 104 determines that K=5 (i.e., the number of clusters resulting in the 0.4 value) should be used for the clustering of j coordinate values (i.e., that graphical elements should be grouped into five rows)” such that in the iteration through the clustering using the horizontal axes as references this calculates a validity score corresponding to the new alignments and outputs it to determine its validity score against another arrangement considering other axes); and
the horizontal alignment score is calculated based on the first axis pair alignment score and the second axis pair alignment score (see Gehlaut, column 7, again as explained above “For instance, graphics editing tool 104 selects a maximum value (i.e., a maximum validity score) from a validity array and uses the number of clusters that resulted in that maximum value as the number of element groups for alignment in a given dimension. In one example, if the validity array for a set of i coordinate values includes [0, 0.5, 0.75, 0.6, 0.5, 0.4, 0.3, 0], then graphics editing tool 104 determines that K=3 (i.e., the number of cluster resulting in the 0.75 value) should be used for the clustering of i coordinate values (i.e., that three groups of graphical elements should be grouped into three columns). Similarly, if the validity array for a set of j coordinate values includes [0, 0.1, 0.2, 0.3, 0.4, 0.2, 0.1, 0], then graphics editing tool 104 determines that K=5 (i.e., the number of clusters resulting in the 0.4 value) should be used for the clustering of j coordinate values (i.e., that graphical elements should be grouped into five rows)” where the highest value between the first and second alignments can be chosen such that this is used as the horizontal alignment score that can determine the best alignment and arrangement).
Regarding claim 23, Gehlaut teaches all that is required as applied to claim 22 above and further teaches wherein the horizontal alignment score is calculated as an average of the first axis pair alignment score and the second axis pair alignment score (see Gehlaut, column 4, lines 24-44 teaching “In some embodiments, the graphics editing tool computes a validity score for a particular number of clusters of the clustering algorithm by averaging the Silhouette scores for a set of points (e.g., centroids) from respective clusters determined by the clustering algorithm. For instance, if the graphics editing tool determines that an iteration of the clustering algorithm that outputs three clusters has the highest average Silhouette score, the graphics editing tool aligns three groups of graphical elements based on their respective clusters (e.g., by setting a coordinate value for a group of graphical elements to the centroid value for the group's cluster of coordinate values)” such that here the alignment score is taken as an average of the first axis pair alignment score and second axis pair alignment score as the average of each is taken and compared with the highest average being selected as the horizontal alignment score for example).
Regarding claim 24, Gehlaut teaches all that is required as applied to claim 22 above and further teaches wherein calculating the horizontal alignment score comprises:
determining that at least one of the first axis pair alignment score and the second axis pair alignment score is a maximum axis alignment score; and calculating the horizontal alignment score to be a maximum horizontal alignment score (see Gehlaut, column 7 as explained above where “For example, graphics editing tool 104 provides outputs of the clustering algorithm, such as data identifying a number of clusters, as inputs to the cluster validation algorithm. The cluster validation algorithm generates a validity array having validity scores. For instance, if the clustering algorithm is performed on the i coordinate values and separately performed on the j coordinate values, the cluster validation algorithm outputs two validity arrays, one for the i coordinate values and one for the j coordinate values. Graphics editing tool 104 determines, from a validity array, how many clusters are to be used in each dimension (e.g., how many rows of graphical elements are to be used for the vertical dimension and how many columns of graphical elements are to be used for the horizontal dimension). For instance, graphics editing tool 104 selects a maximum value (i.e., a maximum validity score) from a validity array and uses the number of clusters that resulted in that maximum value as the number of element groups for alignment in a given dimension. In one example, if the validity array for a set of i coordinate values includes [0, 0.5, 0.75, 0.6, 0.5, 0.4, 0.3, 0], then graphics editing tool 104 determines that K=3 (i.e., the number of cluster resulting in the 0.75 value) should be used for the clustering of i coordinate values (i.e., that three groups of graphical elements should be grouped into three columns). Similarly, if the validity array for a set of j coordinate values includes [0, 0.1, 0.2, 0.3, 0.4, 0.2, 0.1, 0], then graphics editing tool 104 determines that K=5 (i.e., the number of clusters resulting in the 0.4 value) should be used for the clustering of j coordinate values (i.e., that graphical elements should be grouped into five rows)” such that here each value in the array could be a horizontal alignment score related to the first and second axis pairs that they are being iterated through and the maximum score is chosen such that the maximum horizontal alignment score is calculated).
Regarding claim 25, Gehlaut teaches all that is required as applied to claim 22 above and further teaches wherein: the first design element group is associated with a fifth horizontal axis; the second design element group is associated with a sixth horizontal axis; the method further comprises calculating, by the one or more computer processing devices, a third axis pair alignment score based on an alignment of the fifth horizontal axis and the sixth horizontal axis; and the horizontal alignment score is calculated based on the first axis pair alignment score, the second axis pair alignment score, and the third axis pair alignment score (see Gehlaut, column 7 as explained above where “For example, graphics editing tool 104 provides outputs of the clustering algorithm, such as data identifying a number of clusters, as inputs to the cluster validation algorithm. The cluster validation algorithm generates a validity array having validity scores. For instance, if the clustering algorithm is performed on the i coordinate values and separately performed on the j coordinate values, the cluster validation algorithm outputs two validity arrays, one for the i coordinate values and one for the j coordinate values. Graphics editing tool 104 determines, from a validity array, how many clusters are to be used in each dimension (e.g., how many rows of graphical elements are to be used for the vertical dimension and how many columns of graphical elements are to be used for the horizontal dimension). For instance, graphics editing tool 104 selects a maximum value (i.e., a maximum validity score) from a validity array and uses the number of clusters that resulted in that maximum value as the number of element groups for alignment in a given dimension. In one example, if the validity array for a set of i coordinate values includes [0, 0.5, 0.75, 0.6, 0.5, 0.4, 0.3, 0], then graphics editing tool 104 determines that K=3 (i.e., the number of cluster resulting in the 0.75 value) should be used for the clustering of i coordinate values (i.e., that three groups of graphical elements should be grouped into three columns). Similarly, if the validity array for a set of j coordinate values includes [0, 0.1, 0.2, 0.3, 0.4, 0.2, 0.1, 0], then graphics editing tool 104 determines that K=5 (i.e., the number of clusters resulting in the 0.4 value) should be used for the clustering of j coordinate values (i.e., that graphical elements should be grouped into five rows)” such that here a third iteration would assign fifth and sixth horizontal axis positions for alignment which would give new scores to these axis pairs and give a third axis pair alignment score based on these alignments and the horizontal alignment score in the validity array would be based on all of such axis pair alignment scores).
Regarding claim 27, Gehlaut teaches all that is required as applied to claim 21 and further teaches calculating, by the one or more computer processing devices, a vertical distance score based on a vertical separation distance between the first design element group and the second design element group (see Gehlaut, column 4, lines 1-44 teaching calculating a vertical distance score such as when determining the proximity, including vertical proximity, between groups as part of giving a validity or silhouette score where “a Silhouette score, which is a measure of proximity between a point in a given group (e.g., a centroid of a cluster) and points in nearby groups (e.g., centroids of neighboring clusters). For instance, a higher Silhouette score for a particular point in a cluster could indicate that the particular point is further away from points in a neighboring cluster, and a lower Silhouette score for a particular point in a cluster could indicate that the particular point is closer to points in a neighboring cluster” such that point further away can be considered to have a higher or lower vertical distance away from another group ),
and wherein the horizontal relationship score is calculated based on the horizontal alignment score and the vertical distance score (see Gehlaut, column 4, lines 1-44 teaching as above the vertical distance score as part of the silhouette scoring where the silhouette scores are used to determine if the horizontal alignment is also proper such that the horizontal alignment score being high depends on the vertical separation or proximity to other groups where “if the graphics editing tool determines that an iteration of the clustering algorithm that outputs three clusters has the highest average Silhouette score, the graphics editing tool aligns three groups of graphical elements based on their respective clusters (e.g., by setting a coordinate value for a group of graphical elements to the centroid value for the group's cluster of coordinate values)” such that the chosen horizontal grouping alignment resulting in the highest average validity score is calculated based on the vertical distance scores representing the proximity between groups).
Regarding claim 28, Gehlaut teaches all that is required as applied to claim 27 above and further teaches the first design element group and the second design element group are associated with a design page (note that a “page” is simply considered an area where content may appear and is not limited to any format so long as it is one that can be associated with the design element groups; see Gehlaut, column 11, lines 9-48 teaching a design page such as the “GUI” where “the graphics editing apparatus identifies a set of graphical elements within a GUI. For example, the graphics editing apparatus may identify a set of graphical elements that has been selected for display in the GUI via one or more user inputs” and for example see figure 7 and column 15, lines 33-57 teaching “a GUI 700 that displays the set of graphical elements from FIG. 2 that have been aligned in a grid. GUI 700 may be displayed by any means. As compared to GUI 200 of FIG. 2, GUI 700 depicts the set of box-shaped graphical elements in a grid with uniform spacing between grid-cells” and where the areas where the design element groups appear are portions of a design page consisting of the design elements or places for design elements to be placed); and
the vertical distance score is calculated based on a maximum height of the design page (note that the claim does not specify in what manner the vertical distance score is “based” on a “maximum height of the design page” and does not require any actual determination or calculation of the maximum height of the design page and thus if the vertical distance score is in any way based on a maximum height of the design page then the limitation is met; see Gehlaut, column 4, lines 1-44 teaching calculating a vertical distance score such as when determining the proximity, including vertical proximity, between groups as part of giving a validity or silhouette score where “a Silhouette score, which is a measure of proximity between a point in a given group (e.g., a centroid of a cluster) and points in nearby groups (e.g., centroids of neighboring clusters). For instance, a higher Silhouette score for a particular point in a cluster could indicate that the particular point is further away from points in a neighboring cluster, and a lower Silhouette score for a particular point in a cluster could indicate that the particular point is closer to points in a neighboring cluster” where as the proximity between elements can only be calculated for elements that appear within the maximum height of the design page then when the vertical distance score is calculated it is in this way based on the maximum height of the design page as the scores can only be assigned if elements are within such maximum).
Regarding claim 29, Gehlaut teaches all that is required as applied to claim 21 above and further teaches wherein calculating the horizontal alignment score comprises:
determining that the first horizontal axis and the second horizontal axis are within a threshold distance of one another (see Gehlaut, column 4, lines 1-44 teaching “example of the validity score is a Silhouette score, which is a measure of proximity between a point in a given group (e.g., a centroid of a cluster) and points in nearby groups (e.g., centroids of neighboring clusters). For instance, a higher Silhouette score for a particular point in a cluster could indicate that the particular point is further away from points in a neighboring cluster, and a lower Silhouette score for a particular point in a cluster could indicate that the particular point is closer to points in a neighboring cluster. In some embodiments, the graphics editing tool computes a validity score for a particular number of clusters of the clustering algorithm by averaging the Silhouette scores for a set of points (e.g., centroids) from respective clusters determined by the clustering algorithm. For instance, if the graphics editing tool determines that an iteration of the clustering algorithm that outputs three clusters has the highest average Silhouette score, the graphics editing tool aligns three groups of graphical elements based on their respective clusters (e.g., by setting a coordinate value for a group of graphical elements to the centroid value for the group's cluster of coordinate values)” such that this determines a distance or proximity between groups resulting in a score such that those within a certain distance threshold result in higher or lower scores where for example groups located outside of a certain distance threshold would give poor validity scores for the horizontal alignment); and
calculating the horizontal alignment score to be a maximum horizontal alignment score (see Gehlaut, column 4, lines 1-44 teaching as above “example of the validity score is a Silhouette score, which is a measure of proximity between a point in a given group (e.g., a centroid of a cluster) and points in nearby groups (e.g., centroids of neighboring clusters). For instance, a higher Silhouette score for a particular point in a cluster could indicate that the particular point is further away from points in a neighboring cluster, and a lower Silhouette score for a particular point in a cluster could indicate that the particular point is closer to points in a neighboring cluster. In some embodiments, the graphics editing tool computes a validity score for a particular number of clusters of the clustering algorithm by averaging the Silhouette scores for a set of points (e.g., centroids) from respective clusters determined by the clustering algorithm. For instance, if the graphics editing tool determines that an iteration of the clustering algorithm that outputs three clusters has the highest average Silhouette score, the graphics editing tool aligns three groups of graphical elements based on their respective clusters (e.g., by setting a coordinate value for a group of graphical elements to the centroid value for the group's cluster of coordinate values)” such that this calculates the maximum horizontal score to be the horizontal alignment score as for example the silhouette score indicated that the groups at the first and second horizontal axis are within some threshold to give the highest score).
Regarding claim 30. Gehlaut teaches all that is required as applied to claim 21 above and further teaches wherein calculating the horizontal alignment score comprises:
determining that the first horizontal axis and the second horizontal axis are not within a threshold distance of one another (Gehlaut, similarly to explained above in claim 29, column 4, lines 1-44 teaching “example of the validity score is a Silhouette score, which is a measure of proximity between a point in a given group (e.g., a centroid of a cluster) and points in nearby groups (e.g., centroids of neighboring clusters). For instance, a higher Silhouette score for a particular point in a cluster could indicate that the particular point is further away from points in a neighboring cluster, and a lower Silhouette score for a particular point in a cluster could indicate that the particular point is closer to points in a neighboring cluster. In some embodiments, the graphics editing tool computes a validity score for a particular number of clusters of the clustering algorithm by averaging the Silhouette scores for a set of points (e.g., centroids) from respective clusters determined by the clustering algorithm. For instance, if the graphics editing tool determines that an iteration of the clustering algorithm that outputs three clusters has the highest average Silhouette score, the graphics editing tool aligns three groups of graphical elements based on their respective clusters (e.g., by setting a coordinate value for a group of graphical elements to the centroid value for the group's cluster of coordinate values)” such that this determines a distance or proximity between groups resulting in a score such that those within a certain distance threshold result in higher or lower scores where for example groups located outside of a certain distance threshold would give poor validity scores for the horizontal alignment where such would be not within a threshold distance of one another and give a poor corresponding alignment score); and
calculating the horizontal alignment score to be see Gehlaut, column 4, lines 1-44 teaching “Gehlaut, column 4, lines 1-44 teaching “example of the validity score is a Silhouette score, which is a measure of proximity between a point in a given group (e.g., a centroid of a cluster) and points in nearby groups (e.g., centroids of neighboring clusters). For instance, a higher Silhouette score for a particular point in a cluster could indicate that the particular point is further away from points in a neighboring cluster, and a lower Silhouette score for a particular point in a cluster could indicate that the particular point is closer to points in a neighboring cluster. In some embodiments, the graphics editing tool computes a validity score for a particular number of clusters of the clustering algorithm by averaging the Silhouette scores for a set of points (e.g., centroids) from respective clusters determined by the clustering algorithm. For instance, if the graphics editing tool determines that an iteration of the clustering algorithm that outputs three clusters has the highest average Silhouette score, the graphics editing tool aligns three groups of graphical elements based on their respective clusters (e.g., by setting a coordinate value for a group of graphical elements to the centroid value for the group's cluster of coordinate values)” such that this determines a distance or proximity between groups resulting in a score such that those within a certain distance threshold result in higher or lower scores where for example groups located outside of a certain distance threshold would give poor validity scores for the horizontal alignment” such that each iteration determines horizontal alignment scores which are based on distances between groups as explained above and the groups which are located a different distance and arranged in a different horizontal arrangement which result in low silhouette and validity scores are those where there is calculating a horizontal alignment score to be less than a maximum horizontal alignment score).
Regarding claim 31, Gehlaut teaches all that is required as applied to claim 21 above and further teaches wherein: the first design element group includes a single design element (note that the claim does not recite that the group includes exclusively a “single design element” and no other and furthermore does not further define design element such that a design element itself could be made up of multiple single design elements and a group could be made up of such a single element comprising multiple elements or of the multiple single elements; see Gehlaut, column 5, lines 64-67 through column 6, lines 1-67 and figure 2 teaching “example of such a set of graphical elements is depicted in FIG. 2. In this simplified example, GUI 200 includes a set of box-shaped graphical elements to be aligned, though other types of graphical elements (e.g., digital drawings, GIFs, videos, artwork, etc.) may be used” where for example a group can be one design element or can be multiple design element considered together for grouping purposes where as in figure 2 for example a single design element could be the box graphical element in the top left); the single design element is associated with a horizontal element axis (see Gehlaut, column 5, lines 64-67 through column 6, lines 1-67 and figure 2 teaching such elements associated with a horizontal element axis where for example the box element is naturally associated with any horizontal axis that passes through it or may be associated with a horizontal element axes to which the element should be aligned through the clustering discussed above and in order to perform such associating in the vertical or horizontal direction, the design element’s own coordinates such as where “tool 104 can also store a set of coordinate values for a given dimension in a coordinate array. For example, graphics editing tool 104 can generate a first coordinate array for a horizontal dimension and a second coordinate array for a vertical dimension. Graphics editing tool 104 can store i coordinate values in the first coordinate array and can store j coordinate values in the second coordinate array” and “causes graphics editing apparatus 102 to perform a clustering algorithm on coordinate values in the first array and to separately perform the clustering algorithm on coordinate values in the second array. Graphics editing tool 104 can determine centroids for a group of coordinate values that are generated using the clustering algorithm. Graphics editing tool 104 can use the centroids to align groups of graphical elements. For example, graphics editing tool 104 could set values of an i or j coordinate to a centroid value” such that when aligning horizontally to get the horizontal alignment score this uses a “j” based value to set the new iterated horizontal positions that score the horizontal arrangement); and the first horizontal axis is the horizontal element axis (see Gehlaut, column 5, lines 64-67 through column 6, lines 1-67 and figure 2 teaching in line with the explanation above, such elements associated with a horizontal element axis where for example the box element is naturally associated with any horizontal axis that passes through it or may be associated with a horizontal element axes to which the element should be aligned through the clustering discussed above and in order to perform such associating in the vertical or horizontal direction, the design element’s own coordinates such as where “tool 104 can also store a set of coordinate values for a given dimension in a coordinate array. For example, graphics editing tool 104 can generate a first coordinate array for a horizontal dimension and a second coordinate array for a vertical dimension. Graphics editing tool 104 can store i coordinate values in the first coordinate array and can store j coordinate values in the second coordinate array” and “causes graphics editing apparatus 102 to perform a clustering algorithm on coordinate values in the first array and to separately perform the clustering algorithm on coordinate values in the second array. Graphics editing tool 104 can determine centroids for a group of coordinate values that are generated using the clustering algorithm. Graphics editing tool 104 can use the centroids to align groups of graphical elements. For example, graphics editing tool 104 could set values of an i or j coordinate to a centroid value” such that this horizontal axis chosen for alignment, corresponding to a j value setting the horizontal axis alignment positions, is the first horizontal axis and used to calculate a validity score based on such axis).
Regarding claim 32, Gehlaut teaches all that is required as applied to claim 21 above and further teaches wherein: the first design element group includes a plurality of design elements (see Gehlaut, column 5, lines 64-67 through column 6, lines 1-67 and figure 2 teaching “example of such a set of graphical elements is depicted in FIG. 2. In this simplified example, GUI 200 includes a set of box-shaped graphical elements to be aligned, though other types of graphical elements (e.g., digital drawings, GIFs, videos, artwork, etc.) may be used” where for example the box design element in the top left can be considered a design element group including a plurality of design elements as for example this box includes 4 lines delineating its border which are design elements, and has a certain appearance which are other design elements, furthermore note that as in the clustering algorithm and validity scoring a first design element group can also be considered to include multiple groups such as relating to multiple boxes when such elements are treated together and assigned to the same horizontal axis for alignment scoring as where “causes graphics editing apparatus 102 to perform a clustering algorithm on coordinate values in the first array and to separately perform the clustering algorithm on coordinate values in the second array. Graphics editing tool 104 can determine centroids for a group of coordinate values that are generated using the clustering algorithm. Graphics editing tool 104 can use the centroids to align groups of graphical elements. For example, graphics editing tool 104 could set values of an i or j coordinate to a centroid value” where this can set the centroid value for multiple design elements);
each design element in the plurality of design elements is associated with a horizontal element axis (see Gehlaut, column 5, lines 64-67 through column 6, lines 1-67 and figure 2 teaching such elements associated with a horizontal element axis where for example the box element is naturally associated with any horizontal axis that passes through it or may be associated with a horizontal element axes to which the element should be aligned through the clustering discussed above and in order to perform such associating in the vertical or horizontal direction, the design element’s own coordinates such as where “tool 104 can also store a set of coordinate values for a given dimension in a coordinate array. For example, graphics editing tool 104 can generate a first coordinate array for a horizontal dimension and a second coordinate array for a vertical dimension. Graphics editing tool 104 can store i coordinate values in the first coordinate array and can store j coordinate values in the second coordinate array” and “causes graphics editing apparatus 102 to perform a clustering algorithm on coordinate values in the first array and to separately perform the clustering algorithm on coordinate values in the second array. Graphics editing tool 104 can determine centroids for a group of coordinate values that are generated using the clustering algorithm. Graphics editing tool 104 can use the centroids to align groups of graphical elements. For example, graphics editing tool 104 could set values of an i or j coordinate to a centroid value” such that during the alignment scoring process as explained above each design element can be associated with the same first horizontal axis in order to be scored in such alignment),
the first horizontal axis is calculated based on the horizontal element axes of the plurality of design elements (see Gehlaut, column 5, lines 64-67 through column 6, lines 1-67 and figure 2 teaching in line with the explanation above, such elements associated with a horizontal element axis where for example the box element is naturally associated with any horizontal axis that passes through it or may be associated with a horizontal element axes to which the element should be aligned through the clustering discussed above and in order to perform such associating in the vertical or horizontal direction, the design element’s own coordinates such as where “tool 104 can also store a set of coordinate values for a given dimension in a coordinate array. For example, graphics editing tool 104 can generate a first coordinate array for a horizontal dimension and a second coordinate array for a vertical dimension. Graphics editing tool 104 can store i coordinate values in the first coordinate array and can store j coordinate values in the second coordinate array” and “causes graphics editing apparatus 102 to perform a clustering algorithm on coordinate values in the first array and to separately perform the clustering algorithm on coordinate values in the second array. Graphics editing tool 104 can determine centroids for a group of coordinate values that are generated using the clustering algorithm. Graphics editing tool 104 can use the centroids to align groups of graphical elements. For example, graphics editing tool 104 could set values of an i or j coordinate to a centroid value” such that as explained above as in column 7, where “example of the clustering algorithm is a K-means clustering algorithm, which iteratively assigns each coordinate value for a set of graphical elements into one of K groups” and “cluster validation algorithm generates a validity array having validity scores. For instance, if the clustering algorithm is performed on the i coordinate values and separately performed on the j coordinate values, the cluster validation algorithm outputs two validity arrays, one for the i coordinate values and one for the j coordinate values. Graphics editing tool 104 determines, from a validity array, how many clusters are to be used in each dimension (e.g., how many rows of graphical elements are to be used for the vertical dimension and how many columns of graphical elements are to be used for the horizontal dimension). For instance, graphics editing tool 104 selects a maximum value (i.e., a maximum validity score) from a validity array and uses the number of clusters that resulted in that maximum value as the number of element groups for alignment in a given dimension. In one example, if the validity array for a set of i coordinate values includes [0, 0.5, 0.75, 0.6, 0.5, 0.4, 0.3, 0], then graphics editing tool 104 determines that K=3 (i.e., the number of cluster resulting in the 0.75 value) should be used for the clustering of i coordinate values (i.e., that three groups of graphical elements should be grouped into three columns). Similarly, if the validity array for a set of j coordinate values includes [0, 0.1, 0.2, 0.3, 0.4, 0.2, 0.1, 0], then graphics editing tool 104 determines that K=5 (i.e., the number of clusters resulting in the 0.4 value) should be used for the clustering of j coordinate values (i.e., that graphical elements should be grouped into five rows)” such that here for each instance of horizontal alignment the first horizontal axes is calculated based on the horizontal axes of the plurality of design elements as the centroid value corresponding to a first object horizontal axis may be chosen from the centroid values of that group ).
Regarding claim 33, Gehlaut teaches all that is required as applied to claim 21 above and further teaches wherein: the first design element group is associated with a first vertical axis; the second design element group is associated with a second vertical axis (see Gehlaut, column 6, lines 21-67 through column 7, lines 1-67 teaching that the design element groups may also be considered with respect to a vertical axis that they are associate with in a similar manner that they are associated with a horizontal axis where “coordinate arrays include coordinate values from positions of graphical elements displayed on a GUI. In particular, graphics editing tool 104 can identify a position of each graphical element as a set of coordinates (i,j). The (i,j) coordinates specify a position within a grid spanning the GUI. For example, the i coordinate may indicate a horizontal position within the grid, and the j coordinate may indicate a vertical position within the grid” and “tool 104 can also store a set of coordinate values for a given dimension in a coordinate array. For example, graphics editing tool 104 can generate a first coordinate array for a horizontal dimension and a second coordinate array for a vertical dimension. Graphics editing tool 104 can store i coordinate values in the first coordinate array and can store j coordinate values in the second coordinate array” and based on this the system can perform alignments along a vertical axis using the “i” coordinate as the basis for the vertical axis that is associated with the design element groups where “to perform a clustering algorithm on coordinate values in the first array and to separately perform the clustering algorithm on coordinate values in the second array. Graphics editing tool 104 can determine centroids for a group of coordinate values that are generated using the clustering algorithm. Graphics editing tool 104 can use the centroids to align groups of graphical elements. For example, graphics editing tool 104 could set values of an i or j coordinate to a centroid value”);
the method further comprises calculating, by the one or more computer processing devices, a vertical relationship score in respect of the first design element group and the second design element group, wherein calculating the vertical relationship score (such limitation is addressed through addressing the limitations below which constitute such calculating a vertical relationship score) comprises:
calculating, by the one or more computer processing devices, a fourth axis pair alignment score based on an alignment of the first vertical axis and the second vertical axis (see Gehlaut, column 6, lines 21-67 through column 7, lines 1-67 teaching as explained above that centroids corresponding to the axes corresponding to the design elements may be used to calculate an alignment score for what can be considered a fourth axis pair such as the considering of the vertical axis pairs during the vertical alignment process where “cluster validation algorithm computes validity scores for clusters determined by a clustering algorithm executed by graphics editing tool 104. An example of the cluster validation algorithm is a Silhouette score algorithm, which computes a Silhouette score that can be used as the validity score. The Silhouette score is a measure of proximity between a point in a given group (e.g., a centroid of a cluster) and points in nearby groups (e.g., centroids of neighboring clusters). Graphics editing tool 104 can use this measure of proximity as a metric for comparing different numbers of clusters identified by a K-means clustering algorithm or other suitable clustering algorithm” and “cluster validation algorithm generates a validity array having validity scores. For instance, if the clustering algorithm is performed on the i coordinate values and separately performed on the j coordinate values, the cluster validation algorithm outputs two validity arrays, one for the i coordinate values and one for the j coordinate values. Graphics editing tool 104 determines, from a validity array, how many clusters are to be used in each dimension (e.g., how many rows of graphical elements are to be used for the vertical dimension and how many columns of graphical elements are to be used for the horizontal dimension). For instance, graphics editing tool 104 selects a maximum value (i.e., a maximum validity score) from a validity array and uses the number of clusters that resulted in that maximum value as the number of element groups for alignment in a given dimension. In one example, if the validity array for a set of i coordinate values includes [0, 0.5, 0.75, 0.6, 0.5, 0.4, 0.3, 0], then graphics editing tool 104 determines that K=3 (i.e., the number of cluster resulting in the 0.75 value) should be used for the clustering of i coordinate values (i.e., that three groups of graphical elements should be grouped into three columns). Similarly, if the validity array for a set of j coordinate values includes [0, 0.1, 0.2, 0.3, 0.4, 0.2, 0.1, 0], then graphics editing tool 104 determines that K=5 (i.e., the number of clusters resulting in the 0.4 value) should be used for the clustering of j coordinate values (i.e., that graphical elements should be grouped into five rows)” such that here in an iteration of the validity of the vertical arrangement along the “i” based centroid values, each score assigned, such as in an arrangement assigning the design groups to the vertical positions along the “i” component, outputs an alignment score for the alignment based on these axes);
calculating, by the one or more computer processing devices, a vertical alignment score based on the fourth axis pair alignment score (see Gehlaut, column 6, lines 21-67 through column 7, lines 1-67 teaching as explained above that centroids corresponding to the axes corresponding to the design elements may be used to calculate an alignment score for what can be considered a fourth axis pair such as the considering of the vertical axis pairs during the vertical alignment process where “cluster validation algorithm computes validity scores for clusters determined by a clustering algorithm executed by graphics editing tool 104. An example of the cluster validation algorithm is a Silhouette score algorithm, which computes a Silhouette score that can be used as the validity score. The Silhouette score is a measure of proximity between a point in a given group (e.g., a centroid of a cluster) and points in nearby groups (e.g., centroids of neighboring clusters). Graphics editing tool 104 can use this measure of proximity as a metric for comparing different numbers of clusters identified by a K-means clustering algorithm or other suitable clustering algorithm” and “cluster validation algorithm generates a validity array having validity scores. For instance, if the clustering algorithm is performed on the i coordinate values and separately performed on the j coordinate values, the cluster validation algorithm outputs two validity arrays, one for the i coordinate values and one for the j coordinate values. Graphics editing tool 104 determines, from a validity array, how many clusters are to be used in each dimension (e.g., how many rows of graphical elements are to be used for the vertical dimension and how many columns of graphical elements are to be used for the horizontal dimension). For instance, graphics editing tool 104 selects a maximum value (i.e., a maximum validity score) from a validity array and uses the number of clusters that resulted in that maximum value as the number of element groups for alignment in a given dimension. In one example, if the validity array for a set of i coordinate values includes [0, 0.5, 0.75, 0.6, 0.5, 0.4, 0.3, 0], then graphics editing tool 104 determines that K=3 (i.e., the number of cluster resulting in the 0.75 value) should be used for the clustering of i coordinate values (i.e., that three groups of graphical elements should be grouped into three columns). Similarly, if the validity array for a set of j coordinate values includes [0, 0.1, 0.2, 0.3, 0.4, 0.2, 0.1, 0], then graphics editing tool 104 determines that K=5 (i.e., the number of clusters resulting in the 0.4 value) should be used for the clustering of j coordinate values (i.e., that graphical elements should be grouped into five rows)” where the vertical alignment score is based on the fourth axis pair alignment score as this alignment score is available to be the calculated vertical alignment score used to compare against the horizontal alignment score for example); and
calculating, by the one or more computer processing devices, the vertical relationship score based on the vertical alignment score (see Gehlaut, column 6, lines 21-67 through column 7, lines 1-67 teaching as explained above that centroids corresponding to the axes corresponding to the design elements may be used to calculate an alignment score for what can be considered a fourth axis pair such as the considering of the vertical axis pairs during the vertical alignment process where “cluster validation algorithm computes validity scores for clusters determined by a clustering algorithm executed by graphics editing tool 104. An example of the cluster validation algorithm is a Silhouette score algorithm, which computes a Silhouette score that can be used as the validity score. The Silhouette score is a measure of proximity between a point in a given group (e.g., a centroid of a cluster) and points in nearby groups (e.g., centroids of neighboring clusters). Graphics editing tool 104 can use this measure of proximity as a metric for comparing different numbers of clusters identified by a K-means clustering algorithm or other suitable clustering algorithm” and “cluster validation algorithm generates a validity array having validity scores. For instance, if the clustering algorithm is performed on the i coordinate values and separately performed on the j coordinate values, the cluster validation algorithm outputs two validity arrays, one for the i coordinate values and one for the j coordinate values. Graphics editing tool 104 determines, from a validity array, how many clusters are to be used in each dimension (e.g., how many rows of graphical elements are to be used for the vertical dimension and how many columns of graphical elements are to be used for the horizontal dimension). For instance, graphics editing tool 104 selects a maximum value (i.e., a maximum validity score) from a validity array and uses the number of clusters that resulted in that maximum value as the number of element groups for alignment in a given dimension. In one example, if the validity array for a set of i coordinate values includes [0, 0.5, 0.75, 0.6, 0.5, 0.4, 0.3, 0], then graphics editing tool 104 determines that K=3 (i.e., the number of cluster resulting in the 0.75 value) should be used for the clustering of i coordinate values (i.e., that three groups of graphical elements should be grouped into three columns). Similarly, if the validity array for a set of j coordinate values includes [0, 0.1, 0.2, 0.3, 0.4, 0.2, 0.1, 0], then graphics editing tool 104 determines that K=5 (i.e., the number of clusters resulting in the 0.4 value) should be used for the clustering of j coordinate values (i.e., that graphical elements should be grouped into five rows)” where the vertical alignment score is based on the fourth axis pair alignment score as this alignment score is available to be the calculated vertical alignment score used to compare against the horizontal alignment score for example and for example would be the vertical alignment score calculated if it is selected as the optimal alignment); and
determining that the first design element group and the second design element group should be combined further includes determining that the horizontal relationship score is more optimal than the vertical relationship score (see Gehlaut, column 6, lines 21-67 through column 7, lines 1-67 teaching as explained above that centroids corresponding to the axes corresponding to the design elements may be used to calculate an alignment score for what can be considered a fourth axis pair such as the considering of the vertical axis pairs during the vertical alignment process where “cluster validation algorithm computes validity scores for clusters determined by a clustering algorithm executed by graphics editing tool 104. An example of the cluster validation algorithm is a Silhouette score algorithm, which computes a Silhouette score that can be used as the validity score. The Silhouette score is a measure of proximity between a point in a given group (e.g., a centroid of a cluster) and points in nearby groups (e.g., centroids of neighboring clusters). Graphics editing tool 104 can use this measure of proximity as a metric for comparing different numbers of clusters identified by a K-means clustering algorithm or other suitable clustering algorithm” and “cluster validation algorithm generates a validity array having validity scores. For instance, if the clustering algorithm is performed on the i coordinate values and separately performed on the j coordinate values, the cluster validation algorithm outputs two validity arrays, one for the i coordinate values and one for the j coordinate values. Graphics editing tool 104 determines, from a validity array, how many clusters are to be used in each dimension (e.g., how many rows of graphical elements are to be used for the vertical dimension and how many columns of graphical elements are to be used for the horizontal dimension). For instance, graphics editing tool 104 selects a maximum value (i.e., a maximum validity score) from a validity array and uses the number of clusters that resulted in that maximum value as the number of element groups for alignment in a given dimension. In one example, if the validity array for a set of i coordinate values includes [0, 0.5, 0.75, 0.6, 0.5, 0.4, 0.3, 0], then graphics editing tool 104 determines that K=3 (i.e., the number of cluster resulting in the 0.75 value) should be used for the clustering of i coordinate values (i.e., that three groups of graphical elements should be grouped into three columns). Similarly, if the validity array for a set of j coordinate values includes [0, 0.1, 0.2, 0.3, 0.4, 0.2, 0.1, 0], then graphics editing tool 104 determines that K=5 (i.e., the number of clusters resulting in the 0.4 value) should be used for the clustering of j coordinate values (i.e., that graphical elements should be grouped into five rows)” and as in column 16, the validity arrays and scores for each vertical and horizontal grouping may be compared and “first validity array contains validity scores for vertical coordinates and the second validity array contains validity scores for horizontal components” and “Because the maximum value of the second validity array (i.e., 0.89040219) is higher than the maximum value of the first validity array (i.e., 0.88523232), graphics editing tool 104 considers the clustering along the i axis to have a higher quality than the clustering along the j axis. Thus, graphics editing tool 104 determines the number of columns first. The maximum value within the second validity array corresponds to a K value of 3. As a result, graphics editing tool 104 determines that a grid for aligning the graphical elements will have three columns. Furthermore, since there are nine graphical elements displayed in GUI 800, the minimum number of rows is three (i.e., 9/3). A first validity score slice is produced including [0.88523232, 0.81248898, 0.67041805, 0.47108653, 0.27704085, 0.16163808, 0] for K values of 3, 4, 5, 6, 7, 8, and 9. The first validity score slice includes only validity scores with a K value at least equal to 3 (e.g., 3 rows or more). The maximum value of the first validity score sliced is 0.88523232, which corresponds to a K value of 3. Thus, the grid will consist of three columns and three rows” such that this means one of the arrangements may be more optimal then another which is then used in the further combination determinations).
Regarding claims 34-37, the instant claims correspond to a “computer processing system comprising: one or more computer processing devices; and one or more non-transitory computer-readable storage media storing instructions which, when executed by the one or more computer processing devices, cause the one or more computer processing devices to perform a method comprising” the steps performed by the computer processing device as in claims 21-23 and 27, respectively. Gehlaut teaches such a computer processing system comprising such a device and media (see Gehlaut, columns 17-19 and figure 11 teaching such a system) which performs the method where the functions of the method correspond to those as addressed in the rejections of claims 21-23 and 27, respectively. In light of this, the limitations of claims 34-37 correspond to the limitations of claims 21-23 and 27, respectively; thus they are rejected on the same grounds as claims 21-23 and 27, respectively.
Regarding claims 38-40, the instant claims recite an apparatus in the form of a “non-transitory computer-readable storage media storing instructions which, when executed by one or more computer processing devices, cause the one or more computer processing devices to perform a method comprising” which corresponds to the method as performed by the computer processing device of claims 21-22 and 27, respectively. Gehlaut teaches such an apparatus (see Gehlaut, columns 17-19 and figure 11) which performs the method where the functions of the method correspond to those as addressed in the rejections of claims 21-22 and 27, respectively. In light of this, the limitations of claims 38-40 correspond to the limitations of claims 21-22 and 27, respectively; thus they are rejected on the same grounds as claims 21-22 and 27, respectively.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. See Dhanuka et al (US Patent No. 970458), columns 6-15 describing techniques which combine design element groups such as text according to alignments along horizontal and vertical axis.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SCOTT E SONNERS whose telephone number is (571)270-7504. The examiner can normally be reached Mon-Friday 9-5.
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, Xiao Wu can be reached at (571) 272-7761. 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.
/SCOTT E SONNERS/Examiner, Art Unit 2613
/XIAO M WU/Supervisory Patent Examiner, Art Unit 2613
1 US Patent No. 10916067