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 .
Continued Examination Under 37 CFR 1.114
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 1/6/26 has been entered.
Notice to Applicant
The following is a Non-Final Office Action. In response to Examiner’s Final Rejection of 7/15/25, Applicant, on 1/6/26, made amendments. Claims 1-6, 8-15, and 17-20 are pending in the instant application and have been rejected below.
Response to Amendment
The amendments are acknowledged.
The double patenting is withdrawn light of the amendments.
The 101 is withdrawn, as best understood in light of the 112b rejections, as now “not being directed to an abstract idea,” and under MPEP 2106.05a (improving computing technology) and MPEP 2106.05e (meaningful imitations) as the claim is automatically executing some sequences of segmented actions based on an input query. It is possible based on future amendments that the 101 rejection returns, but Examiner has provided a 112b suggestion below that would result in the 101 still being withdrawn.
Claim Rejections - 35 USC § 112
The following is a quotation of the first paragraph of 35 U.S.C. 112(a):
(a) IN GENERAL.—The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor or joint inventor of carrying out the invention.
The following is a quotation of the first paragraph of pre-AIA 35 U.S.C. 112:
The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor of carrying out his invention.
Claims 1-6, 8-15, and 17-20 are rejected under 35 U.S.C. 112(a) or 35 U.S.C. 112 (pre-AIA ), first paragraph, as failing to comply with the written description requirement. The claim(s) contains subject matter which was not described in the specification in such a way as to reasonably convey to one skilled in the relevant art that the inventor or a joint inventor, or for applications subject to pre-AIA 35 U.S.C. 112, the inventor(s), at the time the application was filed, had possession of the claimed invention. Claim 1 recites “(1) segmenting, by one or more of the processors, a plurality of action sequences from one or more of the data items based on the query, wherein one or more of the plurality of segmented action sequences match the query, wherein the one or more segmented action sequences matching the query include events found between the start event and the end event comprised in the query; (2) producing, by one or more of the processors, one or more automation candidates based on the one or more sequences not matching the query; (3) transmitting an instruction to one or more remote computers based on one or more of the automation candidates, the instruction to automatically execute at least one computer operation on one or more of the remote computers.” Claim 9 still states that the query comprises an intermediate event. It is unclear what is happening here at the end with the “execute” an operation from an automation candidate since (1) states we do want action sequences matching a query; but (2) states the opposite that what is produced is “based on” a “not matching” the query. Examiner cannot find support for candidates that are absolutely “not matching” as claimed. There is support for a different terminology such as in [0040] as published of “Approximate match segmentation module 314 may subsequently, e.g., input both exact matches and non-exact match sequences or sentences into the model to calculate or generate a plurality vector representations or embeddings of the sequences or sentences” and [0079-0080] as published stating “including exact matches and non-exact matches to a given input query.” Applicant is invited to explain the support and amend or remove the new matter issues.
Examiner’s suggestion, as best understood, is: “(2) producing, by one or more of the processors, one or more automation candidates based on the one or more sequences non-exact matching the query; (3) transmitting an instruction to one or more remote computers based on one or more of the automation candidates matching or non-exact matching the query, the instruction to automatically execute at least one computer operation on one or more of the remote computers.”
Independent claims 10 and 19 recite similar limitations and are rejected for the same reasons.
Claims 2-6, 8-9, 11-15, 17-18, and 20 depend from claims 1, 10, and 19 and are rejected for the same reasons.
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.
Claims 1-6, 8-15, and 17-20 are 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.
Claims 1-6, 8-15, and 17-20 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being incomplete for omitting essential steps, such omission amounting to a gap between the steps. See MPEP § 2172.01. The omitted steps are: Claim 1 recites “(1) segmenting, by one or more of the processors, a plurality of action sequences from one or more of the data items based on the query, wherein one or more of the plurality of segmented action sequences match the query, wherein the one or more segmented action sequences matching the query include events found between the start event and the end event comprised in the query; (2) producing, by one or more of the processors, one or more automation candidates based on the one or more sequences not matching the query; (3) transmitting an instruction to one or more remote computers based on one or more of the automation candidates, the instruction to automatically execute at least one computer operation on one or more of the remote computers.” Claim 9 still states that the query comprises an intermediate event. It is unclear what is happening here at the end with the “execute” an operation from an automation candidate since (1) states we do want action sequences matching a query; but (2) states the opposite that what is produced is “based on” a “not matching” the query. [0040] as published states “Approximate match segmentation module 314 may subsequently, e.g., input both exact matches and non-exact match sequences or sentences into the model to calculate or generate a plurality vector representations or embeddings of the sequences or sentences” and [0079-0080] as published stating “including exact matches and non-exact matches to a given input query.” It is unclear if the executed computer operation is based on just the “matching query”, as limitation (2) is possibly excluding the “not matching” ones, or if the executed computer operation is based on just the (2) “not matching” query, or perhaps some mix of the two somehow. For purposes of applying prior art only, based on [0040,0079-0080 as published], Examiner interprets claim 1 as reciting: “(2) producing, by one or more of the processors, one or more automation candidates based on the one or more sequences non-exact matching the query; (3) transmitting an instruction to one or more remote computers based on one or more of the automation candidates matching or non-exact matching the query, the instruction to automatically execute at least one computer operation on one or more of the remote computers.” Applicant is invited to explain, amend, and/or pursue other language.
Independent claims 10 and 19 recite similar limitations and are rejected for the same reasons.
Claims 2-6, 8-9, 11-15, 17-18, and 20 depend from claims 1, 10, and 19 and are rejected for the same reasons.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1-4, 8-13, and 17-20 are rejected under 35 U.S.C. 103 as being unpatentable over Ma ‘920 (US 2020/0206920) and Prasad (US 2020/0073639).
Concerning independent claim 1, Ma ‘920 discloses:
A method for automation discovery using action sequence segmentation (Ma –see par 223 - Regardless of whether segmentation and clustering are performed separately or in a combined fashion, in operation 310 of method 300, one or more processes for robotic automation (RPA) are identified from among the clustered traces. Identifying processes for RPA includes identifying segments/traces wherein a human-performed task is subject to automation (e.g. capable of being understood and performed by a computer without human direction), the method comprising:
in a computerized system comprising one or more processors (Ma –See par 66 -67 - In another generalized implementation, a computer program product for discovering processes for robotic process automation (RPA) includes a computer readable storage medium having program instructions embodied therewith. The program instructions are executable by a processor to cause the processor to: record a plurality of event streams, each event stream corresponding to a human user interacting with a computing device to perform one or more tasks), and a data store of a plurality of data items describing one or more actions input to a computer (Ma – see par 72 - A plurality of event streams, each event stream corresponding to a human user interacting with a computing device to perform one or more tasks, are recorded in operation 302. In operation 304, event streams are concatenated. At least some, possibly all, of the concatenated event streams are segmented, in operation 306, to generate individual traces each corresponding to a particular task performed by a user interacting with a computing device; see par 81 - Regardless of the particular type and sequence of events performed during a given user session (e.g. a given work day), the entire recording collected in operation 302 of method 300 is stored in a database on a per-event basis, such that each database entry comprises an event stream. In preferred approaches, each event stream is represented as a table, although various implementations may include multiple rows for any given event, e.g. where the event includes a combination of inputs such as a keystroke, a mouse click, and one or more associated API calls performed by the device; see par 87, 88, 93 – descriptive value for event, event type, element class; see par 98, Table 1 – five rows dedicated to describing an event; see par 293 - users may be required/requested to indicate the particular task they wish to accomplish and streams filtered based on the users' responses).
Ma ‘920 discloses having event streams for user interacts with computing devices corresponding to a task and candidate processes for robotic automation (See par 66). Ma ‘920 discloses assisting a user interacts with an automated agent, a user may choose among suitable options help perform a “desired goal/perform the desired task” (See par 289), users can optionally be requested to indicate a particular task they wish to accomplish (See par 293), and that a user may wish to submit a request for help/support with an existing service or product with which the user is having difficulty, and a service provider (using server 114) may host an online help system (See par 308). Ma ‘920 does not explicitly disclose the next limitation.
Prasad discloses:
receiving an input query describing a process, the process comprising one or more actions input to a computer, wherein the input query comprises a start event, and an end event (Prasad – see par 20 - process automation platform 110 may receive process data associated with a particular format. In this case, process automation platform 110 may receive process data including natural language descriptions of processes, tasks associated therewith, workflows for completing tasks, and/or the like; see par 21 - a tool may include a plurality of sub-tools that may be configured to complete a process, such as a first tool to complete a first task of a process, a second tool to complete a second task of the process, and/or the like, that may be arranged to interact to complete the process. Additionally, or alternatively, the tool may include a workflow or procedure for completing a process, such as a set of procedures that process automation platform 110 and/or one or more resources allocated therewith may complete to complete the process. As an example, a procedure may include configuring process automation platform 110 to automatically change a resource allocation to a software program in a particular manner based on detecting a particular status of a project to enable the software program to execute, thereby; see par 34 - In some implementations, when performing a natural language processing (e.g., to determine a meaning of a tool description, a questionnaire response, etc.) or natural language generation technique (e.g., for a virtual assistant as described herein), process automation platform 110 may perform a content determination procedure (e.g., determining content to be represented in a sentence), a document restructuring procedure (e.g., structuring a conveyed context of a sentence), an aggregation procedure (e.g., to combine multiple sentences having sequential meanings).
Ma ‘920 and Prasad disclose:
segmenting, by one or more of the processors, a plurality of action sequences from one or more of the data items (Ma see par 139 - segmenting of operation 306 comprises splitting the concatenated event streams into a plurality of application traces, each application trace comprising a sequence of one or more events performed within a same application; see par 223 - Regardless of whether segmentation and clustering are performed separately or in a combined fashion, in operation 310 of method 300, one or more processes for robotic automation (RPA) are identified from among the clustered traces. Identifying processes for RPA includes identifying segments/traces wherein a human-performed task is subject to automation (e.g. capable of being understood and performed by a computer without human direction) based on the query (Ma - See par 268 - For instance, if two variants share a middle operation but have different start and end sequences, it is preferred to present the DAG as a single graph with four unique paths where the middle portion of nodes belongs to all four paths instead of a graph with exactly two paths where none of the nodes are shared among paths; see par 289 - upon receiving various responses from the user, the automated agent may provide appropriate replies, preferably including suitable options from among which the user may choose to ultimately obtain the desired goal/perform the desired task; see par 292 – event streams corresponding to users seeking to purchase or return a particular product are preferably grouped and separated from event streams corresponding to other task types;
See also Prasad for entire limitation – see par 24 - process automation platform 110 may process the process data to generate the process analysis model, which may be a deep neural network based model to classify processes and tools associated with automatically completing processes, to determine an assessment score of a suitability of a tool for automatically completing a process, to determine a predicted benefit (e.g., a resource utilization reduction) from implementing a tool for automatically completing a process, and/or the like; see par 32 - . For example, process automation platform 110 may use the process analysis model to identify a subset of a set of assessment parameters of processes that correlate to whether the process is automatable using a particular tool. In this case, process automation platform 110 may generate a set of values for the subset of the set of assessment parameters that can be determined for a new process to classify the new process and provide a recommendation regarding whether to automate the new process with a particular tool.),
wherein one or more of the plurality of segmented action sequences match…, wherein the one or more segmented action sequences matching ... include events found between the start event and the end event comprised … (Ma ‘920 – see par 151 - segmentation in accordance with operation 306 involve a more complex classification or labeling process than described above. In essence, the classification portion includes marking different events according to the task to which the events belong. In one approach, this may be accomplished by identifying the events that delineate different tasks, and labeling events as “external” (i.e. identifying a task boundary, whether start or end) or “internal” (i.e. belonging to a task delimited by sequentially-labeled boundary events). Various exemplary approaches to such classification include known techniques such as binary classifiers, sequence classification; see par 161 - concatenated event streams are parsed into subsequences using the sliding window length N and feature vectors are calculated for each subsequence starting at each position within the event stream. In an exemplary embodiment, each subsequence includes categorical and/or numerical features, where categorical features include a process or application ID; an event type (e.g. mouse click, keypress, gesture, button press, etc.; a series of UI widgets invoked during the subsequence; and/or a value (such as a particular character or mouse button press) for various events in the subsequence; see par 210 - intermediate structures of sequences may be identified within event traces using a fuzzy measure. Adjacent or nearly-adjacent sequences may be built and extended in a manner substantially similar to that described above for application traces, but using fuzzy labels and seeking similar sequences using a similarity measure.
As above, Ma ‘920 is not considered to have a query “describing a process,” Prasad discloses:
wherein one or more of the plurality of segmented action sequences “match the query,” wherein the one or more segmented action sequences “matching the query” include events found between the start event and the end event comprised “in the query” (Prasad – see par 22 - process automation platform 110 may use natural language processing to process application descriptions and/or user comments regarding applications in an application store, workflows in a workflow repository, and/or the like to identify applications to use for completing processes, workflows to automatically follow to complete processes; see par 26 - identify similar processes or tools from which to form an association (e.g., a class of processes, a tool that may automate processes of the class of processes; see par 34 - In some implementations, when performing a natural language processing (e.g., to determine a meaning of a tool description, a questionnaire response, etc.) or natural language generation technique (e.g., for a virtual assistant as described herein), process automation platform 110 may perform a content determination procedure (e.g., determining content to be represented in a sentence), a document restructuring procedure (e.g., structuring a conveyed context of a sentence), an aggregation procedure (e.g., to combine multiple sentences having sequential meanings)).
Ma ‘920 and Prasad disclose:
producing, by one or more of the processors, one or more automation candidates based on the one or more sequences not matching the query (Ma ‘920 – see par 3 - Robotic Process Automation (RPA) is an emerging field of intelligent automation that seeks to improve the efficiency of performing repetitive tasks; See par 156-157 – segmentation and clustering of concatenated event streams in 306, 308; According to the preferred, “combined” or “hybrid” segmentation and clustering approach, recorded event streams are concatenated (optionally following cleaning/normalization), and substantially similar subsequences (i.e. having a content similarity greater than a predetermined similarity threshold) that appear within an event stream more often than a predetermined frequency threshold … are identified.; see par 212 - in FIG. 3, operation 308 of method 300 includes clustering the traces according to a task type. Preferably, the traces clustered according to task type are characterized by: … exhibiting a content similarity greater than or equal to a predetermined similarity threshold;
Prasad - see par 26 - process automation platform 110 may perform a set of semantic searches (e.g., identifying context, intent, variation, and/or the like in words of a description of a process or tool) to identify similar processes or tools from which to form an association (e.g., a class of processes, a tool that may automate processes of the class of processes);
transmitting an instruction to one or more remote computers based on one or more of the automation candidates, the instruction to automatically execute at least one computer operation on one or more of the remote computers (Ma ‘920 - See par 242, 300 - From among the resulting clusters, one or more candidate processes for robotic automation of service provision, modification, and/or cancellation are identified, e.g. per operation 310 of method 300, and prioritized (e.g. according to overall cost/weight of performance, frequency of performance, etc. as described in greater detail elsewhere herein), e.g. per operation 312; See par 291 – improvement in enterprise efficiency… by automating a previously human-driven process, and using automated RPA agents instead of human agent; see par 308 - The manufacturer/service provider may host, e.g. using one or more servers such as servers 114 of architecture 100, an online help system application/interface for customers. Substantially as described above regarding obtaining/modifying/canceling a service, one or more processes for robotically automating user support (e.g. a “helpdesk” model) are identified, e.g. per FIG. 3 and corresponding descriptions, while an RPA model for supporting users with offered products/services is generated in accordance with FIG. 4 and corresponding descriptions;
see also Prasad – see par 21 - A tool may be used to automatically complete a process or a task thereof. For example, a tool may include a software program or an application that is configured to automatically complete one or more tasks, such as generating code, altering code, copying code, and/or the like based on one or more code repositories to automatically complete a process. see par 68 - Furthermore, using the process analysis model to automatically select tools for automatically completing processes improves automation of process completion as a quantity of tools increases and/or a quantity of processes increases beyond what can be manually classified and manually completed.).
Both Ma ‘920 and Prasad are analogous art as they are directed to identifying solutions that can be automated (see Ma Abstract, par 36, 308; Prasad Abstract, par 19, 64). 1) Ma ‘920 discloses having event streams for user interacts with computing devices corresponding to a task and candidate processes for robotic automation (See par 66, 77). Ma ‘920 discloses assisting a user interacts with an automated agent, a user may choose among suitable options help perform a “desired goal/perform the desired task” (See par 289), users can optionally be requested to indicate a particular task they wish to accomplish (See par 293), and that a user may wish to submit a request for help/support with an existing service or product with which the user is having difficulty, and a service provider (using server 114) may host an online help system (See par 308). Prasad improves upon Ma by disclosing that it can conduct reception of descriptions of processes where content includes set of tasks/procedures and sequential aspects (See par 20-21, 34) where similarity is used relative to description of a process for finding that tools that automate classes of processes (See par 26). One of ordinary skill in the art would be motivated to further include descriptions of processes where series of tasks occur and similarity for tools that may automate processes to efficiently improve upon the requests for performing desired tasks in Ma (See par 289).
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the identifying of candidate processes for robotic automation based on segmenting event streams in Ma to further include descriptions of processes where series of tasks occur and similarity for tools that may automate processes as disclosed in Prasad, since the claimed invention is merely a combination of old elements, and in combination each element merely would have performed the same function as it did separately, and one of ordinary skill in the art would have recognized that the results of the combination were predictable and there is a reasonable expectation of success.
Concerning independent claim 10, Ma and Prasad disclose:
A computerized system for automation discovery using action sequence segmentation (Ma –See par 66 -67 - In another generalized implementation, a computer program product for discovering processes for robotic process automation (RPA) includes a computer readable storage medium having program instructions embodied therewith. The program instructions are executable by a processor to cause the processor to: record a plurality of event streams, each event stream corresponding to a human user interacting with a computing device to perform one or more tasks; see par 223 - Regardless of whether segmentation and clustering are performed separately or in a combined fashion, in operation 310 of method 300, one or more processes for robotic automation (RPA) are identified from among the clustered traces. Identifying processes for RPA includes identifying segments/traces wherein a human-performed task is subject to automation (e.g. capable of being understood and performed by a computer without human direction), the system comprising:
one or more processors (Ma –See par 66 -67 - In another generalized implementation, a computer program product for discovering processes for robotic process automation (RPA) includes a computer readable storage medium having program instructions embodied therewith. The program instructions are executable by a processor to cause the processor to…), and
a memory including a data store of a plurality of data items describing one or more actions input to a computer (Ma –See par 66 -67, 72 - In another generalized implementation, a computer program product for discovering processes for robotic process automation (RPA) includes a computer readable storage medium having program instructions embodied therewith. The program instructions are executable by a processor to cause the processor to: record a plurality of event streams, each event stream corresponding to a human user interacting with a computing device to perform one or more tasks; see par 81 - Regardless of the particular type and sequence of events performed during a given user session (e.g. a given work day), the entire recording collected in operation 302 of method 300 is stored in a database on a per-event basis, such that each database entry comprises an event stream. In preferred approaches, each event stream is represented as a table, although various implementations may include multiple rows for any given event, e.g. where the event includes a combination of inputs such as a keystroke, a mouse click, and one or more associated API calls performed by the device).
The remaining limitations are similar to claim 1 and are rejected for the same reasons.
Obvious to combine Ma and Prasad for the same reasons as claim 1.
Concerning claims 2 and 11, Ma and Prasad disclose:
The method of claim 1, comprising:
labeling, by one or more of the processors, one or more of the sequences (Ma ‘920 – see par 151 - several implementations of segmentation in accordance with operation 306 involve a more complex classification or labeling process than described above. In essence, the classification portion includes marking different events according to the task to which the events belong) matching the query (See Prasad par 26 - process automation platform 110 may perform a set of semantic searches (e.g., identifying context, intent, variation, and/or the like in words of a description of a process or tool) to identify similar processes or tools from which to form an association (e.g., a class of processes, a tool that may automate processes of the class of processes; see par 33 - process automation platform 110 may parse a natural language description of the new process to assign scores to the subset of the set of assessment parameters based on a semantic meaning of the natural language description determined using the process analysis model, and resulting in process automation platform 110 classifying the new process autonomously);
for one or more pairs of sequences, each pair including one of the labeled sequences and one unlabeled sequence, calculating, by one or more of the processors, a similarity score (Ma ‘920 – see par 157-158 - “combined” or “hybrid” segmentation and clustering approach, recorded event streams are concatenated (optionally following cleaning/normalization), and substantially similar subsequences (i.e. having a content similarity greater than a predetermined similarity threshold); see par 210 - Adjacent or nearly-adjacent sequences may be built and extended in a manner substantially similar to that described above for application traces, but using fuzzy labels and seeking similar sequences using a similarity measure); and
for each pair, if the similarity score exceeds a predetermined threshold, adding, by one or more of the processors, the unlabeled sequence to a set of similar sequences ([0040] as published - Approximate match segmentation module 314 may subsequently, e.g., input both exact matches and non-exact match sequences or sentences into the model to calculate or generate a plurality vector representations or embeddings of the sequences or sentences; calculate or measure the similarity between pairs of sequences, each including, for example, one labeled or tagged sequences and one unlabeled or untagged sequence, based on the representations or embeddings (e.g., using similarity score calculations as further described herein); and add unlabeled sequences found similar to labeled ones (may also be referred to as “approximate matches”) to a group, set, or pool of all matches of the query, or all sequences similar to the query)
Ma ‘920 – see par 157 - “combined” or “hybrid” segmentation and clustering approach, recorded event streams are concatenated (optionally following cleaning/normalization), and substantially similar subsequences (i.e. having a content similarity greater than a predetermined similarity threshold) that appear within an event stream more often than a predetermined frequency threshold and cannot be extended in length without creating larger overall changes in the clustering (e.g. greater than a predetermined weight or distance threshold) are identified; see par 212 - the traces clustered according to task type are characterized by: appearing within the recorded event streams at least as frequently as a predetermined frequency threshold; and exhibiting a content similarity greater than or equal to a predetermined similarity threshold.
See also Prasad – see par 26 - example, process automation platform 110 may perform a set of semantic searches (e.g., identifying context, intent, variation, and/or the like in words of a description of a process or tool) to identify similar processes or tools from which to form an association (e.g., a class of processes, a tool that may automate processes of the class of processes, and/or the like); par 31 - perform pattern recognition with regard to patterns of whether processes including different semantic descriptions are members of a particular class, whether the particular class is automatable using a tool that is configured to resolve another class of processes, and/or the like. see par 33 - process automation platform 110 may parse a natural language description of the new process to assign scores to the subset of the set of assessment parameters based on a semantic meaning of the natural language description determined using the process analysis model, and resulting in process automation platform 110 classifying the new process autonomously. ); and
wherein the producing of one or more of the automation candidates is performed based on one or more of the similar sequences (Ma ‘920 – See par 166, 171, 172 - clustering may further include: updating the initial clustering by iteratively adding one or more additional subsequences to the initial clusters, wherein each additional subsequence added to a given initial cluster is characterized by a distance between the additional subsequence and at least one member of the given cluster having a magnitude less than a maximum clustering distance threshold; See par 273 - using optimality criteria to build RPA models, in preferred implementations the graph building process includes merging variants by starting with a linear graph defining a path from start to end, preferably the shortest path (simplest variant) or the variant that covers most of the value of the DAG 400. Additional variants are added sequentially, which may occur in several different manners. First, variants may be added according to overall coverage/value, such that the graph represents the maximum value density of all variants within the cluster).
Obvious to combine Ma and Prasad for the same reasons as claim 1. In addition, Ma ‘920 discloses analyzing content similarity when determining what to add to a cluster (See par 157-158, 171-172, 210). Prasad improves upon Ma by further disclosing autonomously classifying a new process (i.e. unlabeled) based on a score for a semantic meaning (See par 26, 33, 35).
Concerning claims 3 and 12, Ma and Prasad disclose:
The method of claim 2, comprising:
encoding, by one or more of the processors, the sequences into one or more sentences (Ma ‘920 – see par 162 - Preferably, the feature vectors are calculated using a known auto-encoder and yield dense feature vectors for each window, e.g. vectors having a dimensionality in a range from about 50 to about 100 for a window length of about 30 events per subsequence. Exemplary auto-encoders suitable for calculating features for the various subsequences may include conventional auto-encoder networks, language-oriented networks (e.g. skip-grams), fastText, etc; see par 215 - According to this implementation, each event may be considered analogous to a “word” in the language, and thus each trace forms a sentence. Continuing with the language analogy, there may be multiple ways to express the same idea, or accomplish the same task. see par 217 - In more approaches, events may be encoded using techniques from language modeling.);
training a machine learning (ML) model based on the sentences (Ma – See par 130-131 – normalization to focus content for identification of processes for robotic automation; normalization may be substituted with machine learning algorithms; see par 300 - the RPA model was generated based on training data collected from mock interactions between users and the online marketplace, and/or real-world data collected during previous user interactions and processed to identify processes for robotic automation such as described hereinabove regarding method 300. Accordingly, the existing RPA model was generated using event traces (see Ma par 215 above where “traces” form sentences) recorded substantially in accordance with operation 302, optionally cleaned and/or normalized, then concatenated in accordance with operation 304 of method 300. Concatenated event streams are segmented and/or clustered substantially as described above regarding operations 306 and 308, most preferably according to a combined/hybrid segmenting and clustering approach; see par 327 - user feedback over time may be utilized to bootstrap confidence in treating future sequences of events in a similar manner. For instance, over time various series of operations may be proposed in response to traces including particular sequences of events.); and
generate, by the model, one or more vector representations for the sentences (Ma ‘920 – see par 161 - The concatenated event streams are parsed into subsequences using the sliding window length N and feature vectors are calculated for each subsequence starting at each position within the event stream. In an exemplary embodiment, each subsequence includes categorical and/or numerical features, where categorical features include a process or application ID; an event type (e.g. mouse click, keypress, gesture, button press, etc.; a series of UI widgets invoked during the subsequence; and/or a value (such as a particular character or mouse button press) for various events in the subsequence.); and
wherein the calculating of a similarity score comprises measuring a distance between a pair of vector representations (Ma ‘920 – see par 163 - Regardless of the particular manner in which feature vectors are generated, a distance matrix is computed for all pairs of subsequences. The preferred metric for the distance given the calculation of the feature vectors as described above is the Euclidean distance; however, other distance metrics can also be of value, for instance the cosine similarity, or the Levenshtein distance if the feature vectors are understood to be directly word sequences in the event language. Clusters of non-overlapping subsequences may then be identified according to similarity, using various techniques and without departing from the scope of the inventive concepts described herein. For example, in one embodiment a predetermined set k of pairs of subsequences characterized by the smallest distances between the elements of the pairs among the overall distance matrix may be selected as initial clusters representing k task types.)
Concerning claims 4 and 13, Ma and Prasad disclose:
The method of claim 2, wherein the producing of one or more of the automation candidates comprises
mining, by one or more of the processors, one or more action subsequences based on the set of similar sequences (Ma – See par 141 - The simplest implementation of segmentation per method 300 and operation 306 involves analyzing the text of concatenated event streams to extract common subsequences of a predetermined length. See par 163 – distance matrix computed for subsequences; can use Levenshtein distance if the feature vectors are understood to be directly word sequences in the vent language; see par 263 - Continuing now with the notion of building DAGs from RPA mining data obtained and analyzed in accordance with method 300, as described hereinabove this process involves identifying and assigning a weight to each trace in each cluster generated during the RPA mining phase.); and
wherein the method comprises calculating, by one or more of the processors, one or more automation scores for one or more of the automation candidates (Ma – see par 224, 237, 300 - From among the resulting clusters, one or more candidate processes for robotic automation of service provision, modification, and/or cancellation are identified, e.g. per operation 310 of method 300, and prioritized (e.g. according to overall cost/weight of performance, frequency of performance, etc. as described in greater detail elsewhere herein), e.g. per operation 312. From among the prioritized candidate processes, at least one is selected for automation in accordance with operation 314 of method 300).
Concerning claims 8 and 16, Ma and Prasad disclose:
The method of claim 1, comprising
documenting, by one or more of the processors, one or more of the automation candidates in a report (Ma par 72 - traces are clustered according to task type, and candidate processes for robotic automation are identified from among these clusters in operation 310. To ensure optimal efficiency benefits for the overall task performance, the identified candidate processes are prioritized for purposes of robotic automation in operation 312, and in operation 314 at least one of the prioritized candidate processes is selected for robotic automation. The selected process(es) may or may not be those having the highest priority, in various approaches.); and
displaying the report on a graphical user interface (GUI) of a remote computer (Ma – see par 247 - Coverage should be understood as representative of a DAG's value or contribution relative to the value or contribution of all the traces that could be included into the DAG. For example, a DAG 400 with a coverage of 80% contains the information from the variants representing 80% of the available traces, in one implementation. see par 251 - for a filter value of 80%, the DAG 400 would only contain nodes that contribute to at least 80% of the paths through the graph. This allows a curator to focus on sub-paths with a DAG 400 that represent the most value by setting the coverage filter to a high value. Conversely, by setting the coverage filter to a low value, e.g. 15%, the curator can find efficient ways to implement a task that have not been followed in a majority of the cases; see par 262 - curator observing DAG 400, or an automated process of generating RPA models, may further improve upon the efficiency of the corresponding save task by collapsing the DAG to exclude one or more of the first, second, and third variants. Whether or not to pursue this change in the DAG depends on factors such as weight, etc. as may be defined in an enterprise policy).
Concerning claims 9 and 18, Ma ‘920 and Prasad disclose:
The method of claim 1, … comprises an intermediate event (Ma ‘920 – see par 151 - segmentation in accordance with operation 306 involve a more complex classification or labeling process than described above. In essence, the classification portion includes marking different events according to the task to which the events belong. In one approach, this may be accomplished by identifying the events that delineate different tasks, and labeling events as “external” (i.e. identifying a task boundary, whether start or end) or “internal” (i.e. belonging to a task delimited by sequentially-labeled boundary events). Various exemplary approaches to such classification include known techniques such as binary classifiers, sequence classification;
The method of claim 1, wherein “the input query” comprises an intermediate event (Prasad disclosing entire limitation– see par 20 - process automation platform 110 may receive process data associated with a particular format. In this case, process automation platform 110 may receive process data including natural language descriptions of processes, tasks associated therewith, workflows for completing tasks, and/or the like; see par 21 - a tool may include a plurality of sub-tools that may be configured to complete a process, such as a first tool to complete a first task of a process, a second tool to complete a second task of the process, and/or the like, that may be arranged to interact to complete the process. Additionally, or alternatively, the tool may include a workflow or procedure for completing a process, such as a set of procedures that process automation platform 110 and/or one or more resources allocated therewith may complete to complete the process. As an example, a procedure may include configuring process automation platform 110 to automatically change a resource allocation to a software program in a particular manner based on detecting a particular status of a project to enable the software program to execute, thereby; see par 34 - In some implementations, when performing a natural language processing (e.g., to determine a meaning of a tool description, a questionnaire response, etc.)…process automation platform 110 may perform a content determination procedure (e.g., determining content to be represented in a sentence), a document restructuring procedure (e.g., structuring a conveyed context of a sentence), an aggregation procedure (e.g., to combine multiple sentences having sequential meanings).
Obvious to combine Ma and Prasad for the same reasons as claim 1.
Concerning claim 19, Ma and Prasad disclose:
A method for automation discovery using a vector embedding model (Ma ‘920 – see par 235 - method 300 includes generating a multi-dimensional feature vector for each of the individual traces, where each event is represented by a multi-dimensional feature describing one or more features of the corresponding event. par 236-237 - for identifying traces at various levels of granularity, and clustering such traces according to task type, application, UI element, or other boundaries that would be appreciated as suitable by a skilled artisan, e.g. using fuzzy matching techniques. It will be appreciated that identification of the traces involves identifying processes for RPA, although the resulting clusters of traces may not all be suitable for automation), the method comprising:
in a computerized system comprising one or more processors [same as cl. 1 above - Ma –See par 66 -67 - In another generalized implementation, a computer program product for discovering processes for robotic process automation (RPA) includes a computer readable storage medium having program instructions embodied therewith. The program instructions are executable by a processor to cause the processor), and a data store of a plurality of data items describing one or more actions input to a computer (same as claim 1 above – Ma par 72, 81):
Ma ‘920 discloses assisting a user interacts with an automated agent, a user may choose among suitable options help perform a “desired goal/perform the desired task” (See par 289) and that a user may wish to submit a request for help/support with an existing service or product with which the user is having difficulty, and a service provider (using server 114) may host an online help system (See par 308). Ma ‘920 does not explicitly disclose the next limitation.
Prasad discloses:
receiving an input query describing a process, the process comprising one or more actions input to a computer, wherein the input query comprises a start event, and an end event (Prasad [same as cl. 1]– see par 20-21, 34)
indexing, by one or more of the processors, a plurality of action sequences from one or more of the data items (Ma see par 223 - Regardless of whether segmentation and clustering are performed separately or in a combined fashion, in operation 310 of method 300, one or more processes for robotic automation (RPA) are identified from among the clustered traces. Identifying processes for RPA includes identifying segments/traces wherein a human-performed task is subject to automation (e.g. capable of being understood and performed by a computer without human direction) based on the query (same as cl. 1 above - Ma - See par 268, 289, 292
See also Prasad par 22, 26, 34);
tagging, by one or more of the processors, one or more of the sequences (Ma ‘920 – see par 151 - several implementations of segmentation in accordance with operation 306 involve a more complex classification or labeling process than described above. In essence, the classification portion includes marking different events according to the task to which the events belong) matching the query (See also Prasad par 22, 26, 34);
translating, by one or more of the processors, the sequences into one or more sentences (Applicant’s specification [0040] as published states “encode or translate” into sentences
Ma ‘920 – see par 162 - Preferably, the feature vectors are calculated using a known auto-encoder and yield dense feature vectors for each window, e.g. vectors having a dimensionality in a range from about 50 to about 100 for a window length of about 30 events per subsequence. Exemplary auto-encoders suitable for calculating features for the various subsequences may include conventional auto-encoder networks, language-oriented networks (e.g. skip-grams), fastText, etc; see par 215 - According to this implementation, each event may be considered analogous to a “word” in the language, and thus each trace forms a sentence. Continuing with the language analogy, there may be multiple ways to express the same idea, or accomplish the same task. see par 217 - In more approaches, events may be encoded using techniques from language modeling;
see also Prasad – see par 27 - process automation platform 110 may perform a deep learning technique and natural language processing technique to train the process analysis model. For example, process automation platform 110 may use artificial intelligence to perform sentence-level, word-level, character-level, and/or the like based learning regarding natural language descriptions of processes and/or tools associated therewith; see par 34 - when performing a natural language processing (e.g., to determine a meaning of a tool description, a questionnaire response, etc.) or natural language generation technique (e.g., for a virtual assistant as described herein), process automation platform 110 may perform a content determination procedure (e.g., determining content to be represented in a sentence),);
training at least one … based on the sentences (Ma – See par 219 – traces created using auto-encoding techniques according to deep learning frameworks; see par 300 - the RPA model was generated based on training data collected from mock interactions between users and the online marketplace, and/or real-world data collected during previous user interactions and processed to identify processes for robotic automation such as described hereinabove regarding method 300. Accordingly, the existing RPA model was generated using event traces (see Ma par 215 above where “traces” form sentences) recorded substantially in accordance with operation 302, optionally cleaned and/or normalized, then concatenated in accordance with operation 304 of method 300. Concatenated event streams are segmented and/or clustered substantially as described above regarding operations 306 and 308, most preferably according to a combined/hybrid segmenting and clustering approach; see par 327 - user feedback over time may be utilized to bootstrap confidence in treating future sequences of events in a similar manner. For instance, over time various series of operations may be proposed in response to traces including particular sequences of events).
Ma discloses “machine learning,” “training,” and “deep learning” (par 130-131, 219, 300). Prasad improves upon Ma by disclosing using of “neural networks” (Prasad – see par 24, 31 – neural network; see par 99 - the process automation platform may select the particular tool for completing the particular process based on a deep neural network model of process automation).
Ma and Prasad disclose:
calculating, by the NN, one or more embeddings for the sentences (Ma – See par 215 - each event may be considered analogous to a “word” in the language, and thus each trace forms a sentence. see par 217 - events may be encoded using techniques from language modeling. Because noisy words (or impulsive events) may be embedded in any sequence, in order to increase the robustness and accuracy to model each word, the adjacent events and the event itself are used to determine the “sematic meaning” of the event; see par 219 - Descriptions of traces may be created using known document representation techniques, and/or auto-encoding techniques that create embeddings within the traces according to deep learning frameworks, e.g. DOC2VEC in one implementation. The traces may be represented as feature vectors, and clustering may be performed according to known techniques such as K-means clustering;
see also Prasad – see par 27 – process automation platform 110 may identify word embedding values identifying a semantic relationship between different words, thereby enabling the process analysis model to represent the semantic relationships between different words to enable a prediction regarding a subsequent process (e.g., a classification into a class, a determination of whether the process is automatable using a tool, and/or the like). Based on using deep learning techniques, process automation platform 110 may improve accuracy of the process analysis model relative to other techniques based on being more capable of performing an accurate prediction from a limited data set );
for one or more pairs of sequences, each pair including one of the tagged sequences and one untagged sequence, calculating, by one or more of the processors, a similarity score based on the embeddings (Ma ‘920 – see par 157-158 - “combined” or “hybrid” segmentation and clustering approach, recorded event streams are concatenated (optionally following cleaning/normalization), and substantially similar subsequences (i.e. having a content similarity greater than a predetermined similarity threshold); see par 210 - Adjacent or nearly-adjacent sequences may be built and extended in a manner substantially similar to that described above for application traces, but using fuzzy labels and seeking similar sequences using a similarity measure.
See also Prasad – see par 26 - , process automation platform 110 may perform a semantic search technique to train the process analysis model. For example, process automation platform 110 may perform a set of semantic searches (e.g., identifying context, intent, variation, and/or the like in words of a description of a process or tool) to identify similar processes or tools from which to form an association (e.g., a class of processes, a tool that may automate processes of the class of processes);
for each pair, if the similarity score exceeds a predetermined threshold, adding, by one or more of the processors, the unlabeled sequence to a set of similar sequences (Ma – same citations as in claim 2 above – par 157, 212;
See also Prasad par 26, 33 [as in claim 2 above]); and
producing, by one or more of the processors, one or more automation candidates based on one or more of the similar sequences (Ma – same citations as in claim 2 above – par 166, 171, 172, 273).
Obvious to combine Ma and Prasad for the same reasons as claim 2. In addition, Ma discloses “machine learning,” “training,” and “deep learning” (par 130-131, 219, 300). Prasad improves upon Ma by disclosing using of “neural networks.”
Concerning claim 20, Ma and Prasad disclose:
The method of claim 19, wherein the producing of one or more of the automation candidates comprises:
grouping, by one or more of the processors, one or more of the similar sequences into one or more processes (Ma – see par 134 - , identifying processes for RPA involves segmenting individual traces/tasks within the event streams, as well as identifying different task types and grouping (clustering) traces corresponding to the same task type. See par 141 - The simplest implementation of segmentation per method 300 and operation 306 involves analyzing the text of concatenated event streams to extract common subsequences of a predetermined length. See par 163 – distance matrix computed for subsequences; can use Levenshtein distance if the feature vectors are understood to be directly word sequences in the vent language; Clusters of non-overlapping subsequences may then be identified according to similarity; see par 263 - Continuing now with the notion of building DAGs from RPA mining data obtained and analyzed in accordance with method 300, as described hereinabove this process involves identifying and assigning a weight to each trace in each cluster generated during the RPA mining phase);
extracting, by one or more of the processors, one or more subprocesses based on one or more of the processes ([0038] as published states “sequences of actions or which may not explicitly satisfy the constraints and/or conditions included in the query but are found similar to exact matches as described herein, and may be referred to as “approximate matches”; and action sequences, subsequences or subprocesses extracted and/or mined from or based on exact and approximate matches, otherwise known as “variations””
Ma discloses the limitations based on broadest reasonable interpretation in light of the specification – See par 145 - segmentation in operation 306 of method 300 by analyzing many traces to identify event sequences that are frequent (e.g. occurring at least as frequently as a minimum frequency threshold). If a number of identified event subsequences meets or exceeds the minimum frequency threshold, the subsequence is extended and the search performed again. In this way, segmentation iteratively grows the seed event sequences and searches for the new set of sequences until it is no longer plausible that the sequences still contain events pertaining to one task; See par 190-191 - The sequence of labels is searched for recurring subsequences of labels, where long and frequent subsequences of labels are preferred. If there are no subsequences that occur with “sufficient” frequency, another search is performed with the next smaller length (L=L−1).); and
calculating, by one or more of the processors, one or more automation scores for one or more of the subprocesses (Ma – See par 191 - Here “sufficient” frequency is preferably defined in terms of a number of tasks per person per unit of time, and may be defined according to enterprise policy, e.g. a policy of automating tasks performed greater than or equal to a predetermined number of times per day per person; see par 224, 237, 300 - From among the resulting clusters, one or more candidate processes for robotic automation of service provision, modification, and/or cancellation are identified, e.g. per operation 310 of method 300, and prioritized (e.g. according to overall cost/weight of performance, frequency of performance, etc. as described in greater detail elsewhere herein), e.g. per operation 312. From among the prioritized candidate processes, at least one is selected for automation in accordance with operation 314 of method 300).
Claims 5, 9, 14, and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Ma ‘920 (US 2020/0206920) and Prasad (US 2020/0073639) as applied to claims 1-4, 8-13, and 17-20 above, and further in view of Han (US 2022/0092352).
Concerning claims 5 and 14, Ma discloses identifying sequences and then generating word embeddings and representations using a word embedding model (See par 54) and segmenting and splitting user actions into sentences using a word2vec process for describing a particular business functionality (See par 57). Prasad discloses , process automation platform 110 may use artificial intelligence to perform sentence-level, word-level, character-level, and/or the like based learning regarding natural language descriptions of processes (See par 27).
Han discloses:
The method of claim 3, wherein the labeling of one or more of the sequences comprises assigning, by the model, one or more paragraph vectors to one or more of the representations (Han – see par 62 – text segment may contain one or more semantic components (such as one or more sentences, or one or more paragraphs) in a textual process description; see par 107 – 108 – candidate labels groups into cluster; clusters based on similarity of semantic contents).
Obvious to combine Ma and Prasad for the same reasons as claim 1. Ma and Prasad, and Han are analogous art as they are directed to analyzing/segmenting actions in a sequence/process from collected data (see Ma Abstract, par 49; Prasad Abstract, par 57; Han Abstract, FIG. 6, par 70-71). Ma discloses identifying sequences and then generating word embeddings and representations using a word embedding model (See par 54) and segmenting and splitting user actions into sentences using a word2vec process for describing a particular business functionality (See par 57). Prasad discloses , process automation platform 110 may use artificial intelligence to perform sentence-level, word-level, character-level, and/or the like based learning regarding natural language descriptions of processes (See par 27). Han improves upon Ma and Prasad by disclosing that it looks at semantics within paragraphs. One of ordinary skill in the art would be motivated to further include analyzing paragraphs to efficiently improve upon sentence analysis in Ma and sentence and semantic analysis in Prasad.
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the identifying of candidate processes for robotic automation based on segmenting event streams in Ma to further use descriptions of processes where series of tasks occur and similarity for tools that may automate processes as disclosed in Prasad, and to further analyze paragraphs (groups of sentences) as disclosed in Han, since the claimed invention is merely a combination of old elements, and in combination each element merely would have performed the same function as it did separately, and one of ordinary skill in the art would have recognized that the results of the combination were predictable and there is a reasonable expectation of success.
Claims 6 and 15 are rejected under 35 U.S.C. 103 as being unpatentable over Ma ‘920 (US 2020/0206920) and Prasad (US 2020/0073639) as applied to claims 1-4, 1-4, 8-13, and 17-20 above, and further in view of Schwartz (US 2021/0240750).
Concerning claims 6 and 15, Ma and Prasad disclose:
The method of claim 3, wherein one or more of the sentences include one or more attributes of one or more of the actions, the attributes concatenated… (Ma ‘920 – see par 72 – event streams are concatenated; See par 132 - Accordingly, the result of concatenation may be a more organized structure than simply a single string of all events in a recorded stream, but may also be parsed to some extent to facilitate human review of the event stream;
See also Prasad - hen performing a natural language processing (e.g., to determine a meaning of a tool description, a questionnaire response, etc.) or natural language generation technique … an aggregation procedure (e.g., to combine multiple sentences having sequential meanings),).
Schwartz discloses:
by one or more underscore fields (Schwartz – see par 103 - known query languages require multiple query objects to be concatenated together, but separated by a slash, a dash, a period, or an underscore. In such an embodiment, the system for translating a software query into natural language may identify the portion “Contact/addressee” of query 630 as meeting these syntax requirements, and thus identify the phrase “Contact/addressee” as a concatenated query object 672.)
Obvious to combine Ma and Prasad for the same reasons as claim 1. Ma and Prasad, and Schwartz are analogous art as they are directed to analyzing/segmenting actions in a sequence/process from collected data (see Ma Abstract, par 49; Prasad Abstract; Schwartz par 26, 60 – model business processes). Ma discloses concatenating event streams to form more organized structure (See par 72, 132). Schwartz improves upon Ma and Prasad by disclosing that use of known technique of concatenating query objects, even if separated by underscore. One of ordinary skill in the art would be motivated to further include a technique of concatenating together query objects to efficiently improve upon the sentence analysis and concatenating of events in Ma and sentence analysis in Prasad.
Accordingly, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the identifying of candidate processes for robotic automation based on segmenting event streams in Ma to further descriptions of processes where series of tasks occur and similarity for tools that may automate processes as disclosed in Prasad, and to further concatenate objects together, even if separated by an underscore, as disclosed in Schwartz, since the claimed invention is merely a combination of old elements, and in combination each element merely would have performed the same function as it did separately, and one of ordinary skill in the art would have recognized that the results of the combination were predictable and there is a reasonable expectation of success.
Response to Arguments
Applicant’s arguments filed 1/6/26 have been fully considered but they are not persuasive.
With regards to 103, Applicant’s arguments are moot in view of the new rejections necessitated by the amendments.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to IVAN R GOLDBERG whose telephone number is (571)270-7949. The examiner can normally be reached 830AM - 430PM.
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, Anita Coupe can be reached at 571-270-3614. 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.
/IVAN R GOLDBERG/Primary Examiner, Art Unit 3619