Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
DETAILED ACTION
This Final Office Action is in response Applicant communication filled on 08/25/2026.
Status of Claims
Claims 1, 10, 16 have been amended.
Claims 1-20 are currently pending and have been rejected as follows.
Response to Applicant’s rebuttal Arguments
Applicant’s 08/25/2026 amendment necessitated the new grounds of rejection in this office action.
I. Response to Applicant’s rebuttal Arguments on 101 rejection
- independent Claims 1,10,16 -
Remarks 08/25/2026 p.8 ¶4 argues operations such as “matching”, an “AND operation” and a “condition” are ordinary logical and data-structure operations, not mathematical relationships expressed in words" in the sense addressed by MPEP 2106.04(a)(2)(1)(A).
-> Examiner considered the argument but respectfully disagrees. Here, the “matching”, and the [Boolean] “AND operation” and “condition” set forth mathematical relationships expressed in words as broadly defined by MPEP 2106.04(a)(2)(1)(A). For example, by means of exmaple only, the Examiner finds that the “matching”, and the [Boolean] "AND operation" and “condition” as argued by Applicant above, are not meaningfully different than organizing and manipulating information through mathematical correlations, by generating first and second data by taking existing information, manipulating the data using mathematical functions, and organizing this information into a new form, as cited at MPEP 2106.04(a)(2)(1)(A) iv. and identified and mapped by the Non-Final Act 06/26/2026 p.3 ¶2-p.5 ¶1 to the current claims.
Accordingly, the argument that the claims do not recite, describe or set forth mathematical concepts, such as mathematical relationships expressed in words is found unpersuasive.
Remarks 08/25/2026 p.8 ¶5-p.9 ¶1 argues “the one or more first conditions are atomic conditions and the one or more second conditions are stateful function conditions, and that the one or more second conditions indicate duration or repeatability of the one or more first conditions” as particular manner or of evaluating the second condition, require invoking a function that itself maintains and updates persistent state across multiple events to determine whether the first condition's occurrence satisfies a duration or repeatability requirement. This is alleged technical improvement similar to Enfish, LLC v. Microsoft Corp., 822 F.3d 1327 (Fed. Cir. 2016), and Core Wireless Licensing S.A.R.L. v. LG Elecs., Inc., 880 F.3d 1356 (Fed. Cir. 2018), and unlike Electric Power Group, LLC v. Alstom S.A., 830 F.3d 1350 (Fed. Cir. 2016), and FairWarning IP, LLC v. Iatric Systems, Inc., 839 F.3d 1089 (Fed. Cir. 2016). Remarks 08/25/2026 p.9 ¶2 -p.10 further cites several paragraphs of the Specification to argue in favor of the technical improvement. Finally, Remarks 08/25/2026 p.11 ¶1 argues that the prior act made no showing required by Berkheimer v. HP Inc.,881 F.3d 1360 (Fed. Cir. 2018), and MPEP 2106.05(d) to treat any additional element as well-understood, routine, or conventional, because it did not say anything about evaluating a second condition by invoking a function that maintains persistent state across events to determine duration or repeatability, rather than by static value comparison, was, at the time of filing, well-understood, routine, or conventional in the event-processing art.
-> Examiner considered the argument but respectfully disagrees finding it unpersuasive.
First, as an issue of claim construction and claim interpretation, it is noted that many of the features argued by the Applicant above, do not appear recited in the Specification, let alone in the claims. For example, at no point do the claims recite maintaining a persistent state as alleged by Remarks 08/25/2026 p.9 ¶1, and p.11 ¶1. Additionally, many other features cited by Remarks 08/25/2026 p.9 ¶2-p.10 ¶2, while present in the Specification, are not reflected in the claims. For example, at no point do the claims recite a rule that an air conditioner should be turned on only when a temperature-exceeded event occurs twice and a person has been detected at home for one second cannot be expressed or evaluated by an event bus, event grid, or Knative-type system limited to atomic conditions, as raised by Remarks 08/25/2026 p.9 ¶3-p.10 ¶1. This is important since the “101 inquiry must focus on language of Asserted Claims themselves” as in “Synopsys, Inc. v Mentor Graphics Corp, U.S. Court of Appeals Federal Circuit, No 2015-1599, October 17 2016 2016 BL 344522 839 F3d 1138” citing “Accenture Global Servs., GmbH
PNG
media_image1.png
1
1
media_image1.png
Greyscale
v
PNG
media_image1.png
1
1
media_image1.png
Greyscale
. Guidewire Software, Inc. 728
PNG
media_image1.png
1
1
media_image1.png
Greyscale
F.3d
PNG
media_image1.png
1
1
media_image1.png
Greyscale
1336, 1345 108 USPQ2d 1173 Fed Cir. 2013: admonishing that the important inquiry for a 101 analysis is to look to the claim”, citing “Content Extraction & Transmission LLC
PNG
media_image1.png
1
1
media_image1.png
Greyscale
v.
PNG
media_image1.png
1
1
media_image1.png
Greyscale
Wells Fargo Bank Nat’l Ass’n 776
PNG
media_image1.png
1
1
media_image1.png
Greyscale
F3d
PNG
media_image1.png
1
1
media_image1.png
Greyscale
1343, 1346 113 USPQ2d 1354 (Fed. Cir. 2014): We focus here on whether the claims of the asserted patents fall within the excluded category of abstract ideas”, cert. denied, 136 S Ct 119, 193 L. Ed. 2d 208 2015). This is consistent with MPEP 2103 I.C stating that “claims define the property rights provided by patent, thus require careful scrutiny. The goal of claim analysis is to identify boundaries of protection sought by applicant and to understand how claims relate to and define what applicant indicated is the invention. USPTO personnel must first determine the scope of a claim by thoroughly analyzing the language of claim before determining if claim complies with each statutory requirement for patentability”. Simply said “[T]he name of the game is the claim”.
As per the alleged improvement, Examiner points to MPEP 2106.05(a) ¶7 which instructs: “examiner should analyze the "improvements" consideration by evaluating the specification and the claims to ensure that a technical explanation of the asserted improvement is present in the specification, and that the claim reflects the asserted improvement”. Here, the narrowing of the “one or more first conditions” to be “atomic conditions”, and the narrowing of “the one or more second conditions” to be “stateful function conditions”, where “the one or more second conditions indicates duration or repeatability of the one or more first conditions” as argued by Remarks 08/25/2026 p.8 ¶5-p.9 ¶1, represent mere claim drafting attempts to limit the abstract idea to equally abstract mathematical relationships, such as “atomic conditions” and “stateful function conditions” [bolded emphasis added] with considerations for equally mathematical iterations or “repeatability” of “the one or more second conditions” vis-à-vis “the one or more first conditions” in a manner not meaningfully different to the repeatability of the algorithm found ineligible in Flook. This finding is further corroborated by MPEP 2106.04 I ¶2, stating that narrow laws that may have limited applications were still held ineligible, citing, Mayo, 566 U.S. at 79-80, 86-87, 101 USPQ2d at 1968-69, 1971 and Flook, 437 U.S. at 589-90, 198 USPQ at 197 (claims that did not "wholly preempt the mathematical formula" held ineligible). Here, given the claims’ breath, as tested on broadest reasonable interpretation of MPEP 2111, the narrowing the of the first and second conditions to respective “atomic conditions” and “stateful function conditions”, to be further used in the limited application of “matching a to-be-filtered event” would similarly represent ineligible subject matter, consistent with the MPEP 2106.04 I ¶2 test. This is bolstered by MPEP 2106.05(a) II stating that: improvement in the abstract idea is not improvement in technology. In fact, MPEP 2106.04 I goes so far, to state that even a “groundbreaking, innovative, or even brilliant discovery does not by itself satisfy the 101 inquiry” citing Myriad, 569 U.S. at 591, 106 USPQ2d at 1979. It follows that here, any purported groundbreaking, innovative, or even brilliant improvement in the abstract manipulation of first and second conditions, the latter indicating duration or repeatability of the one or more first conditions, would also not satisfy the 101 inquiry, no matter whether or not the manipulation of such abstract conditions would be ordinary, as first admitted by Applicant at Remarks 08/25/2026 p.8 ¶4, or require a showing of conventionality, as later contended by the same Applicant at Remarks 08/25/2026 p.11 ¶1. Simply put here, the features contested by Applicant above appear to be integral to the abstract idea itself, rather than additional elements to the abstract idea. Accordingly, an argument can be made that the features contested by Applicant above remain ineligible right from the onset (Step 2A prong one) without arriving at any inquiry into whether or not they are additional elements to be treated under the well-understood, routine, or conventional test. Such ineligibility scenario of the current claim right from the onset,
would closely follow the Myriad’s ruling above. Equally important, the Myriad rationale was corroborated by “SAP Am, Inc v InvestPic” and cited by both MPEP 2106.04(a)(2) I ¶4 and MPEP 2106.04(a)(2) I.C(i), stressing that claims reciting a series of mathematical calculations based on selected information, such as, by performing a resampled statistical analysis to generate a resampled distribution, remain directed to the abstract grouping of mathematical concepts. Indeed, digging deeper into SAP supra, the Examiner finds that the Court adopted a similar ruling as in Myriad, restating that “even if one assumes that the techniques claimed are groundbreaking, innovative, or even brilliant those features are not enough for eligibility because their innovation is innovation in ineligible subject matter. An advance of that nature is ineligible for patenting”. Specifically, SAP argued in favor of improvement in a mathematical algorithm which estimated the distribution of data in a pool (a sample space) by repeated sampling of the data in the pool, where a sample space in a boot strap method was defined by selecting a particular period of time with data samples drawn from the sample space with replacement: samples were drawn from the sample space and then returned to the pool before the next sample is drawn. Here, even if the claims would actually invoke a function that would purportedly itself maintains and updates persistent state across multiple events to determine whether the first condition's occurrence satisfies a duration or repeatability requirement, as alleged by Remarks 08/25/2026 p.9 ¶1, such features would still be not meaningfully different than the bootstrap manipulation with repeated sampling of the data in the pool as disclosed in SAP, and ineligible based on similar rationales.
Next, with respect to Enfish and Core Wireless as raised by Remarks 08/25/2026 p.9 ¶1, the Examiner submits that here, the current claims remain irreconcilably different than the subject matter found patent eligible in either Enfish or Core Wireless. This is because here, the claims do not recite anything remotely similar to the self-referential improvement in the computer databases of Enfish, cited by MPEP 2106.04 II ¶3, or the technological details of an improved user interface to launch an application, as in Core Wireless, cited by MPEP 2106.05(a)(I). Rather the claims, still recite, or at a minimum describe or set forth set forth, abstract, albeit narrower, yet still forms of mathematical relationships, intended for “matching a to-be-filtered event” in a manner not meaningfully different than the filtering or parsing and comparing of data found equally abstract in Berkheimer v. HP, Inc 881 F.3d 1360, 125 USPQ2d 1649,1652-1653 (Fed Cir 2018) as cited by MPEP 2106.04(a)(2) III C #3. Thus, such mathematical algorithms and the intended to-be-filtered event1, do not rise above the realm of the abstract exception, as identified above. Further, even considered as executed on a computer, as tested per MPEP 2106.05(f)(2)(i) they provide nothing that would integrate the abstract exception into a practical application or provide significantly more. In a similar manner MPEP 2106.05(h) shows that narrowing to a technological environment or field of use the combination of collecting information, analyzing it and displaying certain results of the collection and analysis also does not integrate the abstract exception into a practical application or provide significantly more.
As per the well-understood, routine, or conventional test, raised by Remarks 08/25/2026 p.11 ¶1, the Examiner already demonstrated that the algorithmic features alleged by Applicant as
unconventional remain abstract and ineligible and hence, should not be treated as additional elements pertinent. Since as demonstrated by Examiner above, a groundbreaking, innovative, or even brilliant discovery does not by itself satisfy the 101 inquiry, it follows that here, any purported groundbreaking, innovative, or even brilliant improvement in the abstract manipulation of first and second conditions, the latter indicating duration or repeatability of the one or more first conditions, would similarly not satisfy the 101 inquiry under similar rationales as in Myriad, Mayo and SAP as cited by MPEP 2106.04, no matter whether or not its manipulation of the abstract conditions would be well-understood, routine, or conventional, as raised by Remarks 08/25/2026 at p. 11 ¶1.
Yet, assuming in the arguendo, without conceding, that the first and second conditions, as argued by Remarks 08/25/2026 p.11 ¶1, would represent additional elements to be tested at Step 2B of the analysis, the Examiner would follow MPEP 2106.05 (d) II guidelines and carry over the findings tested per MPEP 2106.05 (f)(2)(i) to submit that computerization of the mathematical algorithms also do not provide significantly more, without having to rely on the well-understood, routine or conventional test of MPEP 2106.05(d) I. Simply put the Examiner reminds the Applicant that under, Berkheimer v. HP, Inc., 881 F.3d 1360, 1368, 125 USPQ2d 1649, 1654 (Fed. Cir. 2018), the well-understood, routine or conventional test, as cited by MPEP 2106.05(d) I .2. is one of the many other considerations MPEP 2106.05 (a),(b),(c),(e),(f),(h) into whether the additional elements provide significantly more. In this instant case, even assuming in the arguendo, that the first and second conditions, as argued by Applicant above, would be additional elements, they would merely apply the abstract exception, as tested per MPEP 2106.05(f)(2)(i), and hence not providing anything significantly more than the abstract exception itself, without having to rely on the well-understood, routine or conventional test of MPEP 2106.05(d) I.2. Further still, even in the most restrictive scenario where the argued conditions and associated relations would be required to be tested under the well-understood, routine or conventional test, of MPEP 2106.05(d) I 2, the Examiner would rely, in addition to the Original Specification, on the Applicant’s own admission at Remarks 08/25/2026 p. 8 ¶4 that “matching”, an “AND operation”, and “condition” are ordinary logical and data-structure operations.
Hence, the Examiner provided a preponderance of both legal and factual evidence, to show that the features contested by Applicant above remain preponderantly abstract and ineligible, with no additional elements capable to, either alone or in combination, integrate the abstract exception into a practical application or provide significantly more than what was already identified as the abstract exception. Accordingly, the claims remain ineligible and the argument unpersuasive.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
II. Response to Applicant’s rebuttal Arguments on 102 / 103 rejections
- independent Claims 1,10,16 -
Remarks 08/25/2026 p.11 ¶4-p.12 ¶3 argues Vega US 20130205008 A1 does not teach: - “the one or more first conditions are atomic conditions and the one or more second conditions are stateful function conditions” as amended at each of independent Claims 1,10,16.
The argument is moot in view of new grounds of rejection as necessitated by amendment.
Weber et al, US 20090327199 A1 is now relied upon to teach or at east suggest
- “the one or more first conditions are atomic conditions” (Weber ¶ [0018], ¶ [0044] 3rd- 4th sentence a type of operator node may represent atomic predicate. Types of atomic predicates and their operator nodes…include constant selection, which may be represented by a filter operator node and may be used to determine whether an attribute of an instance matches certain criteria; inner join, which may be represented by a join operator node and may be used to generate pairs of instances with the assistance of an internal table having columns to represent pairs to match according to a key; projection, which may be represented by a swizzle operator node and may be used to map a sequence of instances to another sequence; and negated existence quantifier, which may be represented by an inhibitor operator node) “and the one or more second conditions are stateful function conditions, and the one or more second conditions indicates duration or repeatability of the one or more first conditions” (Weber ¶ [0021] 1st sentence: A state correlation engine may store a state of execution of rules…represented by … a state of operator nodes (e.g. described below joins and Cartesian product operator nodes may store a state of execution), and instances of state variables, to provide for statefulness across evaluation of rules such that events (e.g., in the sense of event objects or more broadly in the sense of occurrences [interpreted as repeatability] that may result in event objects that characterize the occurrences) from different points in time may be correlated. ¶ [0071] 2nd - 4th sentences noting an example where Send transaction is to be enabled when a 100th message has arrived. When counter variable is 100, send out message, remove counter. The “Collect” and “Send” may be triggered successively if “Send” was enabled by “Collect” (by increasing the counter to 100) while “Init” would always be succeeded by “Collect” which is enabled by the creation of a new counter.¶ [0073] 2nd sentence: the “Send” transaction is to be triggered whenever the counter has reached its threshold of 100 and a message instance exists, as expressed by the chaining of the filter operator node 438 with the subsequent join operator node 442 where each operator represents a “base predicate” of an overall condition)
- dependent Claims 5,13,20 -
Remarks 08/25/2026 p.12 ¶6 - p.13 ¶2 argues the prior rejection cites entirely different Vega elements that have no time, count, or repeatability character whatsoever.
The argument is moot in view of new grounds of rejection as necessitated by amendment.
Weber ¶ [0063] still teaches subflows along branches,
Weber ¶ [0045], ¶ [0055] 6th sentence, ¶ [0057] also teaches an AND operation rule
Weber ¶ [0021] 1st sentence, ¶ [0071] 2nd-4th sentences, ¶ [0073] 2nd sentence, also teaches “the one or more second conditions” as statefulness conditions indicative of occurrences or repeatability. This addresses the count or repeatability contested by Applicant at Remarks 08/25/2026 p.12 ¶5, second sentence
* However *
Weber still falls short to explicitly recite to clearly anticipate:
- “wherein the event matching rule is expressed / stored in a form of a tree, the tree comprises one or more parent nodes and a plurality of child nodes, the one or more first conditions and the one or more second conditions that match each other are used as different child nodes of a same parent node, and a parent node of the one or more first conditions and the one or more second conditions that match each other corresponds to an AND operation rule”.
Vega in analogous art of event rule processing teaches or suggests:
- “wherein the event matching rule is expressed / stored in a form of a tree, the tree comprises one or more parent nodes and a plurality of child nodes, the one or more first conditions and the one or more second conditions that match each other are used as different child nodes of a same parent node, and a parent node of the one or more first conditions and the one or more second conditions that match each other corresponds to an AND operation rule”.
(Vega Annotated Fig. 5 below and ¶ [0071]-¶ [0072] noting under parent labeled “AND” 520, the first condition 524 and second condition 526 are equal thus match each other – 522. Similarly under parent labeled “AND” 528, the first condition 534 and second condition 536 equal - 532 and thus match each other. Additionally, time constraint 538 is associated with expression 528 in that the action by the user to change the drop ship checkbox control value must have been performed today in order for expression 528 to evaluate to true. In this manner, multiple time constraints can be placed on differing rule criteria, and the time constraints can be applied to nested expressions (e.g. 528 and 510). ¶ [0072] Additionally, time constraint 538 is associated with expression 528 in that the action by the user to change the drop ship checkbox control value must have been performed today in order for expression 528 to evaluate to true. In this manner, multiple time constraints can be placed on differing rule criteria, and the time constraints can be applied to nested expressions (e.g. 528 and 510) )
PNG
media_image2.png
544
894
media_image2.png
Greyscale
Vega Fig.5 in support of rejection arguments
Accordingly, the prior art teaches the contested features.
- dependent Claims 8,12 -
Remarks 08/25/2026 p.13 ¶3- p.14 ¶2 argues Petit US 20190384613 A1 is a different field of endeavor from event-bus and event-rule processing, and improper to be combined with Vega.
The argument is moot in view of new grounds of rejection as necessitated by amendment.
Borthakur et al, US 11030242 B1 hereinafter Borthakur who teaches right from the onset at its Title, Indexing and querying semi-structured documents using a key-value store.
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-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 pre-AIA the applicant regards as the invention.
Claims 1,10,16 are independent and have each been amended to recite, among others:
- “wherein the one or more first conditions are atomic conditions and the one or more second conditions are stateful function conditions” [bolded emphasis added].
Claims 1,10,16 are rendered vague and indefinite because there is insufficient antecedent basis for plural “atomic conditions” and for plural “stateful function conditions“, when said claims would only cover one, single condition as introduced by expression “the one or more first conditions” and “the one or more second conditions”.
Claims 1,10,16 are recommended to be further amended to each recite, among others:
- wherein the one or more first conditions are respective one or more atomic conditions and the one or more second conditions are respective one or more stateful function conditions.
Claims 2-9, 11-15, and 17-20 are dependent and rejected based on rejected parent independent claims 1,10,16 respectively.
Clarification and/or correction is/are required.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to a judicial exception (i.e., a law of nature, a natural phenomenon, or an abstract idea, here abstract idea) without significantly more. The claim(s) recite(s) describe or set forth the abstract “rule processing” as summarized at the preamble of independent Claim 10 and similarly recite the abstract “event processing applied to filtering of events” as summarized at the preamble of independent Claims 1,16. At most such concepts set forth the abstract execution of cognitive or mental matching or corelative processes for pre-filtering executed in a computer environment as tested per MPEP 2106.04(a)(2) III C #2 and/or the use of a computer as a tool to perform a mental process, as tested per MPEP 2106.04(a)(2) III C #3, each falling within the broad grouping off mental processes, even if computerized as per MPEP 2106.04(a)(2) III #1-#3.
For example, given the breadth of the current claims and the broadest reasonable interpretation of MPEP 2111, the Examiner finds such “rule processing” (independent Claim 10) and “event processing applied to filtering of events” (independent Claims 1,16), are not meaningfully different than parsing and comparing data found abstract in Berkheimer v. HP, Inc 881 F.3d 1360, 125 USPQ2d 1649,1652-1653 (Fed Cir 2018) as cited by MPEP 2106.04(a)(2) III C #3. Similarly, when tested per MPEP 2106.04(A)(2) III C #2, the “rule processing” (independent Claim 10) and “event processing applied to filtering of events” (independent Claims 1,16), would at most correspond to abstract processes of rule-based matching for a to-be-filtered event (Claims 1-20) executed in a computer environment. Yet, in FairWarning IP, LLC v. Iatric Sys., Inc., 839 F.3d 1089, 120 USPQ2d 1293 (Fed Cir. 2016) as cited by MPEP 2106.04(A)(2) III C #2, the Federal Circuit found that storing, accessing, compiling and combining of information from disparate information sources, to generate a full picture of activity, identity, frequency of activity, and the like in such computer environment, still set forth the abstract selecting of information, by content or source, for collection, analysis, and announcement. It then follows that here, the accessing or “obtaining” “keys and key values of the events’ / “event” / “to-be-filter event”, along with the “event filtering rule” as recited throughout Claims 1,2,4,7-10,12,14-17, 19 for compiling or “matching” at Claims 1,2,4-7,9-10,13,15-17,19,20 and combining of information, akin here to “key combination and a key value combination” at dependent Claims 8,12, from disparate information sources would equally set forth the abstract exception in a manner not meaningfully different than FairWarning, as tested per MPEP 2106.04(A)(2) III C #2.
Additionally, or alternatively such “rule processing” (independent Claim 10) and “event processing applied to filtering of events” (independent Claims 1,16), when tested per MPEP 2106.04(a)(2) I A, can also be interpreted to set forth mathematical relationships expressed in words. Indeed, as initially explained by MPEP 2106.04(a)(2) I A iv. organizing information and manipulating information through mathematical correlations by generating first and second data by taking existing information, manipulating the data using mathematical functions, and organizing this information into a new form remains abstract.
Here, when testing independent Claims 1-20 per MPEP 2106.04(a)(2) I A supra, the Examiner finds that such mathematical constructs are expressed in words, as: “wherein the one or more first conditions are atomic conditions and the one or more second conditions are stateful function conditions, and the one or more second conditions indicates duration or repeatability of the one or more first conditions” at independent Claims 1,10,16 as well as the “one or more third conditions”, as well as “key” and “key values” and “matching rule”, “event filtering rule”, and “operation rule” (i.e. via Boolean “AND” operator) as preponderantly recited through Claims 1-20, starting with generating first and second data by taking existing information, manipulating the data using mathematical functions, set forth here by “matching” [as an example of correlation supra] “a to-be-filtered event with an event matching rule” “to obtain an event” [as an example of existing information supra] “that meets one or more first conditions and one or more second conditions” [as examples of first and second data supra] “wherein the one or more first conditions are atomic conditions and the one or more second conditions are stateful function conditions” for “sending an instruction to a destination address when the to-be-filtered event meets the event matching rule”. [akin to organizing the information into a new form remains supra] as recited at independent Claims 1,16.
Also here, when similarly testing independent Claim 10, Examiner finds that the organizing information and manipulating information through mathematical correlations by generating first and second data by taking existing information, manipulating the data using mathematical functions, and organizing this information of MPEP 2106.04(a)(2) I A iv., is reflected here by language such as “obtaining an event filtering rule” and “performing filtering using the event filter rule to obtain an event that meets all of one or more third conditions and an event matching rule, the event matching rule is used for performing filtering to obtain an event that meets one or more first conditions and one or more second conditions, and the second condition indicates duration or repeatability of the one or more first conditions, wherein the one or more first conditions are atomic conditions and the one or more second conditions are stateful function conditions” as recited at independent Claim 10.
Similar abstract correlation or “matching” is recited here as: “matching the events in the server with one or more third conditions, to obtain the to-be-filtered event, wherein the to-be-filtered event is an event that meets the one or more third conditions” (dependent Claims 2,17) / “wherein the tree is used for performing filtering to obtain a to-be-filtered event, and the to-be-filtered event is an event that meets the one or more third conditions” (dependent Claim 14), “matching the keys of the events with keys of the one or more third conditions” “when a key of an event meets the keys of the one or more third conditions, matching a key value of the event with key values of the one or more third conditions, wherein the to-be-filtered event is an event that meets the key values of the one or more third conditions” (dependent Claims 4,19), “the one or more first conditions and the one or more second conditions that match each other are used as different child nodes of a same parent node, and a parent node of the one or more first conditions and the one or more second conditions that match each other corresponds to an AND operation rule” (dependent Claims 5,13,20), “wherein the matching of the to-be-filtered event with the event matching rule includes traversing the tree for the to-be-filtered event” (dependent Claim 6), the latter also arguable as corresponding to the abstract manipulating of data using mathematical functions, and organizing this information as enumerated by MPEP 2106.04(a)(2) I A iv.
Here the abstract information used in the aforementioned correlation and manipulation is further narrowed as: “wherein the one or more third conditions comprises a key and a key value” (dependent Claims 3,11,18), “obtaining keys and key values of the events” (dependent Claims 4,19), “obtaining an event filtering rule, wherein the event filtering rule is used for performing filtering to obtain an event that meets all of the one or more third conditions and the event matching rule; and storing the one or more third conditions and the event matching rule” (dependent Claim 7), “obtaining keys of the one or more third conditions, and obtaining key values of the one or more third conditions” (dependent Claims 8,12).
Accordingly, there is a preponderance of legal evidence showing that, given the current claim breadth and the broadest reasonable interpretation, as tested per MPEP 2111, the current claims recite or at a minimum describe or set forth the abstract exception. Step 2A pong one.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
This judicial exception is not integrated into a practical application because per Step 2A prong two, the individual or combination of additional, computer-based elements such as: memory stor[ed] instructions executed by the processor as recited at independent Claim 16
are found to merely apply the already identified abstract exception, which when tested per MPEP 2106.05(f), do not integrate the abstract exception into a practical application.
For example, when tested, per MPEP 2106.05(f)(2) ¶1, such additional, computer-based elements represent mere invocation of computer to receive, store, or transmit data, that according to MPEP 2106.05(f)(2) ¶1, does not integrate the abstract idea into a practical application.
- Here such capability to store data is recited as: “storing the one or more third conditions and the event matching rule” at independent Claim 10 and dependent Claim 7, “storing a key combination and a key value combination, wherein the key combination is a combination of the keys of the one or more third conditions, and the key value combination is a combination of the key values of the one or more third conditions” at dependent Claims 8,12, “the event matching rule is stored” at dependent Claim 9, “wherein the event matching rule is stored in a form of a tree” at dependent Claim 13
- Here such capability to transmit data is recited as: “sending an instruction to a destination address when the to-be-filtered event meets the event matching rule” at Claims 1,16
Also, MPEP 2106.05(f)(2) (iii), (i), (v) find that monitoring audit log data executed on a computer, and application of a mathematical algorithm on the computer, represent, along with the use of software to tailor information and provide it on the computer mere invocation of computers components or machinery as a tool to perform an existing process, and hence do not integrate the abstract exception into a practical application. It then follows that here, any purported degree of computerization in monitoring the events attributes and conditions as identified at the prior set, to be mathematically correlated or matched as also identified above, for further tailoring information to be provided, akin to what is claimed here to a “destination address when the to-be-filtered event meets the event matching rule” at independent Claims 1,16, would analogously represent mere invocation of computers components or machinery as a tool, and hence would not integrate the abstract exception into a practical application.
Thus, there is a preponderance of legal evidence showing that any purported automation or computerization above does not integrate the abstract exception into a practical application.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception because Examiner follows MPEP 2106.05(d) II guidelines and carries over the above findings at MPEP 2106.05 (f) to submit that as shown above, the additional elements, merely apply the already recited abstract idea. For these same reasons, said computer-based additional elements also do not provide significantly more than the abstract idea itself, in light of MPEP 2106.05(f) as option for evidence. Based on such legal evidence conferred by the MPEP 2106.05(f) test above, the Examiner submits that the additional computer-based elements do not provide significantly more. Yet, assuming arguendo, that further evidence would be required to demonstrate conventionality of the additional, computer-based elements, Examiner would further point to MPEP 2106.05(d) to demonstrate that said additional elements remain well-understood, routine, conventional. In such case, Examiner would rely, among the others, on the Applicant’s own Original Specification as follows:
- Original Specification ¶ [0311] reciting at high level of generality: “Fig.14 shows an electronic device according to an embodiment of this application. The electronic device includes at least one memory 1402, configured to store a program, and at least one processor 1401, configured to execute the program stored in the memory 1402. When the program stored in the memory 1402 is executed, the processor 1401 is configured to perform any event processing method according to the first aspect and any event rule processing method according to the second aspect”.
- Original Specification ¶ [00318] reciting at high level of generality: “When the function is implemented in the form of the software functional unit and sold or used as an independent product, the function may be stored in a computer-readable storage medium. Based on such an understanding, the technical solutions of embodiments of this application essentially, or the part contributing to the prior art, or some of the technical solutions may be implemented in a form of a software product. The computer software product is stored in a storage medium, and includes several instructions for instructing a computer device (which may be a personal computer, a server, or an access network device) to perform all or some of the steps of the methods described in embodiments of this application. The storage medium includes any medium that can store program code, such as a USB flash drive, a removable hard disk drive, a read-only memory (Read-Only Memory, ROM), a random access memory (Random Access Memory, RAM), a magnetic disk, or an optical disc”.
- Original Specification ¶ [00319] reciting at high level of generality: “The foregoing descriptions are merely specific implementations of embodiments of this application, but are not intended to limit the protection scope of embodiments of this application. Any variation or replacement readily figured out by a person skilled in the art within the technical scope disclosed in embodiments of this application shall fall within the protection scope of embodiments of this application”.
- Additionally, or alternatively per -
MPEP 2106.05(d)(II) the following computer functions are well‐understood, routine, and conventional functions: receiving/transmitting data over network including use of intermediary computer to forward information2 and gathering statistics3 / electronic recordkeeping4 / storing and retrieving information in memory5 , performing repetitive calculations6 , arranging a hierarchy of groups, sorting information7. It then follows that here even if testing, in the arguendo, the level of computerization for the matching for the event to be filtered, including the use of tree , per the conventionality test of MPEP 2106.05(d)(II), such functionality, given the breath of the claims and the broadest reasonable interpretation test MPEP 2111, would still not provide significantly more.
All of this preponderance of legal and/or factual evidence demonstrate that the additional computer-based elements fail to provide anything significantly more than what was already identified as part of the abstract exception above.
Therefore, Claims 1-20, although directed to statutory categories (here methods or processes at Claims 1-9 and 10-15, and “apparatus” or machine at Claims 16-20 ), they still recite, or at least describe or set forth the abstract idea (Step 2A prong one), with their additional, computer-based elements not integrating the abstract idea into a practical application (Step 2A prong two) or providing significantly more than abstract idea (Step 2B).
Accordingly, Claims 1-20 are patent ineligible.
Claim Rejections - 35 USC § 102
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
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)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale or otherwise available to the public before the effective filing date of the claimed invention.
Claims 1-4,7,9-11 and 15-19 are rejected under 35 U.S.C. 102(a)(1) based upon a public use or sale or other public availability of the invention as disclosed by:
Weber et al, US 20090327199 A1 hereinafter Weber. As per,
Claims 1,16 Weber teaches “An event processing method, applied to filtering of events in a server, the method comprising”/“An apparatus for event processing, the apparatus comprises: a processor, and a memory coupled to the processor and configured to store a plurality of instructions that, when executed by the processor, causes the processor to be configured to”
(Weber ¶ [0083]-¶ [0087])
- “matching a to-be-filtered event with an event matching rule, wherein the event matching rule is used for performing filtering to obtain an event that meets one or more first conditions and one or more second conditions” (Weber ¶ [0054] evaluation of event-condition-action rule 212 may be preceded by the following example operation of a system including a state correlation engine. Predecessor transactions may be executed (e.g. transactions representing 1st,2nd,3rd tasks 206,208,210 of Fig.2A) and those respective transactions may set instances token1, token2, and token3 of type Token to a state that matches the evaluation predicates of filter operators 226, 234, 236. The correlation engine may perform a lookup of source nodes of event-condition-action rules having type information of the instance of the type Token. Those source nodes that match the type of the instance may be flooded with events corresponding to the instances of type Token such that the rules corresponding to the source nodes are implicitly evaluated, including the rule of Fig.2B. For each of the rules to be evaluated, an event that has before and after images representing attributes of a state variable that is an instance of type Token may be passed along each of the respective networks representing the rules along with events corresponding to the respective type of instance for a process instance (e.g. to match the process instance 222 source node). ¶ [0055] 3rd , 6th-8th sentences process instance 222 is to match an event of an instance of type of object called “process instance or Instance, where a type process instance may represent a type of object that exists throughout a lifecycle of a run-time process instance and includes information related to the run-time process instance, where the event may be generated as a result of a change of state of the instance (e.g., completion of execution of a process instance. Then, pairs of token and process instance events are filtered by the 3 filter operators 226,234,236 in accordance with states of corresponding ingoing connectors of an AND merge gateway of a corresponding flow model (e.g., the flow model of Fig. 2A) that may be part of a synchronization control pattern. If filter conditions are met, evaluation of the event-condition-action rule 212 may continue; otherwise, the evaluation of event-condition-action rule 212 may end (and, for example, may continue when new, additional events propagate down the network). The filter conditions of the filter operators 226, 234, 236 may be that state in which tokens must be before a merge (e.g. all tokens to be joined may be in a state ready for synchronization, such as a state indicated all predecessor activities (e.g. tasks 1,2,3) have completed).
“wherein the one or more first conditions are atomic conditions” (Weber ¶ [0018], [0044] 3rd-4th sentence a type of operator node may represent atomic predicate. Types of atomic predicates and their operator nodes…include constant selection, which may be represented by a filter operator node and may be used to determine whether an attribute of an instance matches certain criteria; inner join, which may be represented by a join operator node and may be used to generate pairs of instances with the assistance of an internal table having columns to represent pairs to match according to a key; projection, which may be represented by a swizzle operator node and may be used to map a sequence of instances to another sequence; and negated existence quantifier, which may be represented by an inhibitor operator node) “and the one or more second conditions are stateful function conditions, and the one or more second conditions indicates duration or repeatability of the one or more first conditions” (Weber ¶ [0021] 1st sentence: A state correlation engine may store a state of execution of rules…represented by … a state of operator nodes (e.g. described below joins and Cartesian product operator nodes may store a state of execution), and instances of state variables, to provide for statefulness across evaluation of rules such that events (e.g., in the sense of event objects or more broadly in the sense of occurrences [interpreted as repeatability] that may result in event objects that characterize the occurrences) from different points in time may be correlated. ¶ [0071] 2nd - 4th sentences noting an example where Send transaction is to be enabled when a 100th message has arrived. When counter variable is 100, send out message, remove counter. The “Collect” and “Send” may be triggered successively if “Send” was enabled by “Collect” (by increasing the counter to 100) while “Init” would always be succeeded by “Collect” which is enabled by the creation of a new counter.¶ [0073] 2nd sentence: the “Send” transaction is to be triggered whenever the counter has reached its threshold of 100 and a message instance exists, as expressed by the chaining of the filter operator node 438 with the subsequent join operator node 442 where each operator represents a “base predicate” of an overall condition) “and”
- “sending an instruction to a destination address when the to-be-filtered event meets the event matching rule” (Weber ¶ [0071] the business process of network 420 may reflect a scenario where incoming signals from an RFID (Radio Frequency Identification) reader are to be collected over time and sent out in a chunk of 100 signals to a business system. The three transactions Init, Collect, and Send reflect a first transaction Init to be enabled whenever a new RFID signal has come in but no counter for counting a number of incoming signals exists, a second transaction Collect is enabled whenever a new RFID signal has come in and a counter exists, and a third transaction Send to be enabled when a 100th message has arrived. The transactions may include the following pseudo-code: Init: When [new RFID signal has come in] and [no counter exists], create counter and set it to 0; Collect: When [new RFID signal has come in] and [counter variable is less than 100], remove RFID signal, increment counter and aggregate signal into message; Send: When counter variable is 100, send out message, remove counter. The Collect and Send may be triggered successively if Send was enabled by Collect (by increasing the counter to 100) while “Init” would always be succeeded by Collect which is enabled by the creation of a new counter. ¶ [0073] 2nd sentence: the Send transaction is to be triggered whenever the counter has reached its threshold of 100 and a message instance exists, as expressed by the chaining of the filter operator node 438 with the subsequent join operator node 442 where each operator represents a base predicate of an overall condition).
Claim 10. Weber similarly teaches: “An event rule processing method comprising:”
- “obtaining an event filtering rule” (Weber ¶ [0021] 3rd sentence: statefulness of execution allow execution of rules to propagate… ¶ [0021] …a state of execution of rules, which may be represented by… condition network… ¶ [0061] 6th sentence: The condition network may include filters including a filter node for a particular subscriber list that filters events with a group. ¶ [0064] Figs.4A-4C include diagrams of event-condition-action rule networks that correspond to message filtering and message correlation. In Fig.4A, event-condition-action network 402 includes source node 404 of type message connected to filter condition node 406, which is connected to a destination node 408 that performs transaction T1. In general, the event-condition-action rule represented by network 402 may be referred to as plain filtering network. In that network, filter condition node 406 applies a comparison predicate that effectively filters events comprising images of instances that meet criterion of the filter condition node 406 such that any matching events will be forwarded to the destination node associated with transaction T1, where the transaction of the target node 408 may be executed. ¶ [0065] 3rd-4th sentences: using network 402, if a new message instance having a customer_id of value 4711 and a payload of “some payload” is created, an event that may be referred to as a create event may be generated that has empty before image and an after image with the given attributes. That event may be matched against source node 404 for referring to a type message and passed to the filter condition node 406. ¶ [0046] 6th sentence: events may be propagated through a network and filtered/combined by the filters/joins that are traversed along the way from the source to the action nodes);
- “performing filtering using the event filter rule to obtain an event that meets all of one or more third conditions and an event matching rule, the event matching rule is used for performing filtering to obtain an event that meets one or more first conditions and one or more second conditions” (Weber ¶ [0042] 8th sentence: a join operator may combine two events based on matching key values in their before and after image. ¶ [0044] 4th-8th sentences: Types of atomic predicates [interpreted as first condition] and their operator nodes may include constant selection, which may be represented by a filter operator node and may be used to determine whether an attribute of an instance matches certain criteria; inner join which may be represented by a join operator node and may be used to generate pairs of instances with the assistance of an internal table having columns to represent pairs to match according to a key …Of the types of nodes, only a few nodes may hold state (joins/inhibitors); however, a correlation engine in general holds all instances (of the declared types) that exist at a given moment. Operator nodes may treat before and after images of events differently, possibly cutting off either of them and forwarding a structurally modified event. Finally, operators (such as joins) may combine events from multiple inputs and their intra-operator state (which contains after images from previously seen events). Thus, events may grow in size and refer to multiple state variables (even of different types).
Weber ¶ [0054] evaluation of event-condition-action rule 212 may be preceded by the following example operation of a system including a state correlation engine. Predecessor transactions may be executed (e.g. transactions representing 1st,2nd,3rd tasks 206,208,210 of Fig.2A) and those respective transactions may set instances token1, token2, and token3 of type Token to a state that matches the evaluation predicates of filter operators 226, 234, 236. The correlation engine may perform a lookup of source nodes of event-condition-action rules having type information of the instance of the type Token. Those source nodes that match the type of the instance may be flooded with events corresponding to the instances of type Token such that the rules corresponding to the source nodes are implicitly evaluated, including the rule of Fig.2B. For each of the rules to be evaluated, an event that has before and after images representing attributes of a state variable that is an instance of type Token may be passed along each of the respective networks representing the rules along with events corresponding to the respective type of instance for a process instance (e.g. to match the process instance 222 source node). ¶ [0055] 3rd , 6th-8th sentences process instance 222 is to match an event of an instance of type of object called “process instance or Instance, where a type process instance may represent a type of object that exists throughout a lifecycle of a run-time process instance and includes information related to the run-time process instance, where the event may be generated as a result of a change of state of the instance (e.g., completion of execution of a process instance. Then, pairs of token and process instance events are filtered by the 3 filter operators 226,234,236 in accordance with states of corresponding ingoing connectors of an AND merge gateway of a corresponding flow model (e.g., the flow model of Fig. 2A) that may be part of a synchronization control pattern. If filter conditions are met, evaluation of the event-condition-action rule 212 may continue; otherwise, the evaluation of event-condition-action rule 212 may end (and, for example, may continue when new, additional events propagate down the network). The filter conditions of the filter operators 226, 234, 236 may be that state in which tokens must be before a merge (e.g. all tokens to be joined may be in a state ready for synchronization, such as a state indicated all predecessor activities (e.g. tasks 1,2,3) have completed. ¶ [0060] As instances of types of objects may store attributes that reflect events and the attributes may be updated by transactions or other events, the instances of types may be considered stateful. This statefulness may be retained for evaluation of a single network and for evaluation across different networks. For example, an instance of an object of a process instance type described above may be maintained across evaluation of many networks that represent a process lifecycle of a run-time process instance.
¶ [0078] noting another example where All rules that match a state of execution reflected by events that reflect modifications of instances of types of objects may be flooded (i.e., evaluated), where multiple rules may be evaluated asynchronously, in parallel), “wherein the one or more first conditions are atomic conditions” (Weber ¶ [0018],[0044] 3rd- 4th sentence a type of operator node may represent atomic predicate. Types of atomic predicates and their operator nodes…include constant selection, which may be represented by a filter operator node and may be used to determine whether an attribute of an instance matches certain criteria; inner join, which may be represented by a join operator node and may be used to generate pairs of instances with the assistance of an internal table having columns to represent pairs to match according to a key; projection, which may be represented by a swizzle operator node and may be used to map a sequence of instances to another sequence; and negated existence quantifier, which may be represented by an inhibitor operator node) “and the one or more second conditions are stateful function conditions and the second condition indicates duration or repeatability of the one or more first conditions”; (Weber ¶ [0021] 1st sentence: A state correlation engine may store a state of execution of rules…represented by … a state of operator nodes (e.g. described below joins and Cartesian product operator nodes may store a state of execution), and instances of state variables, to provide for statefulness across evaluation of rules such that events (e.g., in the sense of event objects or more broadly in the sense of occurrences [interpreted as repeatability] that may result in event objects that characterize the occurrences) from different points in time may be correlated. ¶ [0071] 2nd-4th sentences noting an example where Send transaction is to be enabled when a 100th message has arrived. When counter variable is 100, send out message, remove counter. The “Collect” and “Send” may be triggered successively if “Send” was enabled by “Collect” (by increasing the counter to 100) while “Init” would always be succeeded by “Collect” which is enabled by the creation of a new counter.¶ [0073] 2nd sentence: the “Send” transaction is to be triggered whenever the counter has reached its threshold of 100 and a message instance exists, as expressed by the chaining of filter operator node 438 with the subsequent join operator node 442 where each operator represents a “base predicate” of an overall condition)) “and”
- “storing the one or more third conditions and the event matching rule”
(Weber ¶ [0021] state correlation engine may store a state of execution of rules, which …represented by a combination of one or more of selections of condition network channels within rules (e.g. including enablement of transactions and enablement of branches of a condition network), a state of operator nodes (e.g., as described below joins and Cartesian product operator nodes may store a state of execution), and instances of state variables, to provide for statefulness across evaluation of rules such that events (e.g. in sense of event objects or more broadly in the sense of occurrences that may result in event objects that characterize the occurrences) from different points in time may be correlated. The retention [storing] of state may result in significant performance improvements as whenever an event happens (e.g., in the sense of an occurrence that is to result in a change to an instance of an object), the event may be correlated against the whole state (which has not necessarily changed in a transaction) without having to flood an overall network with a whole state... In addition, statefulness of execution may allow for execution of rules to propagate to the further execution of other rules (which may be referred to as chaining of evaluation of rules) such that, in combination, there is a stateful, continuous evaluation of rules. By allowing stateful transitions across networks representing rules, a modularity of rules may be improved such that large, intricate networks expressing complex, detailed rule patterns that take into account many branches of evaluation need not be generated and combinations of simpler rules that individually take into account a state of execution of a state correlation engine may be modeled. The simpler rules may reduce a memory footprint of rules which may improve the ability to keep many rules resident in main memory for quick execution.
Weber ¶ [0032] The state correlation engine may further provide for stateful execution of rules in the sense that a state of execution may be retained [or stored] across execution of rules (e.g. information about state may be retained [or stored] across execution of rules and changed according to actions of rules or otherwise as a result of events). State may be retained [or stored] by a combination of…retaining [or store] state variables of instances of objects of a type language, retaining [or storing] a state of selections of condition network channels within rules (e.g., including enablement of transactions and enablement of branches of a condition network), and a state of operator nodes (e.g retaining tables in joins and Cartesian product operator nodes across events)
Weber ¶ [0060] As instances of types of objects may store attributes that reflect events and the attributes may be updated by transactions or other events, the instances of types may be considered stateful. This statefulness may be retained for evaluation of a single network and for evaluation across different networks. For example, an instance of an object of a process instance type described above may be maintained across evaluation of many networks that represent a process lifecycle of a run-time process instance. For example, at ¶ [0068] 4th - 6th sentences: The after images from those events may be stored in a column (e.g., a right column) of an internal join table of the join operator node 416 (where another column (e.g., a left column) would remain blank for the message after images). If a new message including the customer identifier 4711 is received at a state correlation engine, a respective message instance including that customer identifier may be generated and the state correlation engine may cause an event to enter the join operator node 416 on an input channel as indicated by the connection between the message node 412 and the join operator node 416. The after image of that message instance may be stored in a column (e.g., a left column) of the join table for message instance images and all matching images from another column (e.g., a right column) corresponding to the subscription images may be identified, which includes the subscription having the customer identifier 4711)
Claims 2,17 Weber teaches all the limitations in claims 1,16 above. Weber further teaches
- “matching the events in the server with one or more third conditions, to obtain the to-be-filtered event, wherein the to-be-filtered event is an event that meets the one or more third conditions” (Weber ¶ [0063] 2nd-3rd, 8th-10th sentences: event-condition-action rule 302 covers both a synchronous provisioning of a flow (e.g. as a web service) and the invocation of a subflow from an outer flow (through the respective transactions 308). To perform that, invoking a subflow may construct a request object and the outer flow (where a branch of the outer flow that has triggered a subflow is “on hold” while the subflow executes) may continue executing, where the subflow may send a response to cause a branch that called the subflow to continue execution (where, a matching of a response to the subflow from which it came may be used to determine whether to continue execution of the branch that called the subflow)…. Two attributes initiator and kicker may contain the instance and token objects of a calling process. The initiator attributes may be used by the subflow to identify the outer flow (e.g., to be able to traverse the call stack) whereas the kicker attribute may serve as correlation criterion for the outer flow (i.e., continue the outer flow when there is a response document that has a kicker attribute that equals the waiting token of the outer flow). A key extraction mechanism may be applied to a request document and an inner process may correlate on the service, operation, and request payload to start the subflow.
Weber ¶ [0042] 8th sentence: a join operator may combine two events based on matching key values in their before and after image. ¶ [0068] For example, a party having a customer identifier of 4711 and a party having a customer identifier of 4712 may subscribe to messages with the keys 4711 and 4712, respectively. Generating events for the subscriptions may include generating image pairs that include empty before images and after images that include the respective customer identifiers. Events including those image pairs may enter the join operator node 416 on an input channel as indicated by the subscription node 414 connected to the join operator node 416. The after images from those events may be stored in a column (e.g., a right column) of an internal join table of the join operator node 416 (where another column (e.g., a left column) would remain blank for the message after images). If a new message including customer identifier 4711 is received at a state correlation engine, a respective message instance including that customer identifier may be generated and the state correlation engine may cause an event to enter the join operator node 416 on an input channel as indicated by the connection between the message node 412 and the join operator node 416. The after image of that message instance may be stored in a column (e.g., a left column) of the join table for message instance images and all matching images from another column (e.g., a right column) corresponding to the subscription images may be identified, which includes the subscription having the customer identifier 4711. The pair of matching images may be created and put into a combined event that is passed to destination node 418, which may be enabled and the pair may be digested by an execution of actions of the destination node 418 (e.g. the party matching the subscription instance may receive the pair and consume the message). If the message instance having the customer identifier 418 is subsequently deleted, a respective delete event containing an empty after image may enter the join operator node 416 and the corresponding entry in a column of the join table may be deleted. A combined delete event including images from the message and subscription instances may be passed to the destination node 418 where the respective transaction may be disabled).
Claims 3,11,18 Weber teaches all the limitations in claims 2,10,17 above. Weber further teaches
- “wherein the one or more third conditions comprises a key and a key value”.
(Weber ¶ [0044] 4th sentence:…generate pairs of instances with the assistance of an internal table having columns to represent pairs to match according to a key…¶ [0042] 8th sentence: a join operator may combine two events based on matching key values in their before and after image. Weber ¶ [0063], ¶ [0068] for different examples).
Claims 4,19 Weber teaches all limitations in claims 3,18 above. Weber further teaches “wherein the matching of the events in the server with the one or more third conditions comprises”:
- “obtaining keys and key values of the events” (Weber ¶ [0063] 9th sentence: a key extraction mechanism may be applied to a request document…).
- “matching the keys of the events with keys of the one or more third conditions”
(Weber ¶ [0063] 9th sentence: a key extraction mechanism may be applied to a request document and an inner process may correlate [or match] on the service, operation, and request payload to start the subflow. Specifically, per ¶ [0044] 4th sentence: a filter operator node and may be used to determine whether an attribute of an instance matches certain criteria…generate pairs of instances with the assistance of an internal table having columns to represent pairs to match according to a key); “and”
- “when a key of an event meets the keys of the one or more third conditions, matching a key value of the event with key values of the one or more third conditions, wherein the to-be-filtered event is an event that meets the key values of the one or more third conditions”.
(Weber ¶ [0068] For example, a party having a customer identifier of 4711 and a party having a customer identifier of 4712 may subscribe to messages with the keys 4711 and 4712, respectively. Generating events for the subscriptions may include generating image pairs that include empty before images and after images that include the respective customer identifiers. Events including those image pairs may enter the join operator node 416 on an input channel as indicated by the subscription node 414 connected to the join operator node 416. The after images from those events may be stored in a column (e.g., a right column) of an internal join table of the join operator node 416 (where another column (e.g., a left column) would remain blank for the message after images). If a new message including the customer identifier 4711 is received at a state correlation engine, a respective message instance including that customer identifier may be generated and the state correlation engine may cause an event to enter the join operator node 416 on an input channel as indicated by the connection between the message node 412 and the join operator node 416. The after image of that message instance may be stored in a column (e.g., a left column) of the join table for message instance images and all matching images from another column (e.g., a right column) corresponding to the subscription images may be identified, which includes the subscription having the customer identifier 4711. The pair of matching images may be created and put into a combined event that is passed to the destination node 418, which may be enabled and the pair may be digested by an execution of actions of the destination node 418 (e.g., the party matching the subscription instance may receive the pair and consume the message). If the message instance having the customer identifier 418 is subsequently deleted, a respective delete event containing an empty after image may enter the join operator node 416 and the corresponding entry in a column of the join table may be deleted. A combined delete event including images from the message and subscription instances may be passed to the destination node 418 where the respective transaction may be disabled).
Claim 7 Weber teaches all the limitations in claim 2 above. Weber further teaches:
- “obtaining an event filtering rule, wherein the event filtering rule is used for performing filtering to obtain an event that meets all of the one or more third conditions and the event matching rule” (Weber ¶ [0021] 3rd sentence: statefulness of execution allow execution of rules to propagate… ¶ [0021] …a state of execution of rules, which may be represented by… condition network… ¶ [0061] 6th sentence: The condition network may include filters including a filter node for a particular subscriber list that filters events with a group. ¶ [0042] 8th sentence: a join operator may combine two events based on matching key values in their before and after image. ¶ [0044] 4th-8th sentences: Types of atomic predicates and their operator nodes may include constant selection, which may be represented by a filter operator node and may be used to determine whether an attribute of an instance matches certain criteria; inner join which may be represented by a join operator node and may be used to generate pairs of instances with the assistance of an internal table having columns to represent pairs to match according to a key …Of the types of nodes, only a few nodes may hold state (joins/inhibitors); however, a correlation engine in general holds all instances (of the declared types) that exist at a given moment. Operator nodes may treat before and after images of events differently, possibly cutting off either of them and forwarding a structurally modified event. Finally, operators (such as joins) may combine events from multiple inputs and their intra-operator state (which contains after images from previously seen events). Thus, events may grow in size and refer to multiple state variables (even of different types).
Weber ¶ [0054] evaluation of event-condition-action rule 212 may be preceded by the following example operation of a system including a state correlation engine. Predecessor transactions may be executed (e.g. transactions representing 1st,2nd,3rd tasks 206,208,210 of Fig.2A) and those respective transactions may set instances token1, token2, and token3 of type Token to a state that matches the evaluation predicates of filter operators 226, 234, 236. The correlation engine may perform a lookup of source nodes of event-condition-action rules having type information of the instance of the type Token. Those source nodes that match the type of the instance may be flooded with events corresponding to the instances of type Token such that the rules corresponding to the source nodes are implicitly evaluated, including the rule of Fig.2B. For each of the rules to be evaluated, an event that has before and after images representing attributes of a state variable that is an instance of type Token may be passed along each of the respective networks representing the rules along with events corresponding to the respective type of instance for a process instance (e.g. to match the process instance 222 source node).
Weber ¶ [0055] 3rd,6th-8th sentences process instance 222 is to match an event of an instance of type of object called “process instance or Instance, where a type process instance may represent a type of object that exists throughout a lifecycle of a run-time process instance and includes information related to the run-time process instance, where the event may be generated as a result of a change of state of the instance (e.g., completion of execution of a process instance. Then, pairs of token and process instance events are filtered by the 3 filter operators 226,234,236 in accordance with states of corresponding ingoing connectors of an AND merge gateway of a corresponding flow model (e.g., the flow model of Fig. 2A) that may be part of a synchronization control pattern. If filter conditions are met, evaluation of the event-condition-action rule 212 may continue; otherwise, the evaluation of event-condition-action rule 212 may end (and, for example, may continue when new, additional events propagate down the network). The filter conditions of the filter operators 226, 234, 236 may be that state in which tokens must be before a merge (e.g. all tokens to be joined may be in a state ready for synchronization, such as a state indicated all predecessor activities (e.g. tasks 1,2,3) have completed.
Weber ¶ [0060] As instances of types of objects may store attributes that reflect events and the attributes may be updated by transactions or other events, the instances of types may be considered stateful. This statefulness may be retained for evaluation of a single network and for evaluation across different networks. For example, an instance of an object of a process instance type described above may be maintained across evaluation of many networks that represent a process lifecycle of a run-time process instance.
Weber ¶ [0064] Figs.4A-4C include diagrams of event-condition-action rule networks that correspond to message filtering and message correlation. In Fig.4A, event-condition-action network 402 includes source node 404 of type message connected to filter condition node 406, which is connected to a destination node 408 that performs transaction T1. In general, the event-condition-action rule represented by network 402 may be referred to as plain filtering network. In that network, filter condition node 406 applies a comparison predicate that effectively filters events comprising images of instances that meet criterion of the filter condition node 406 such that any matching events will be forwarded to the destination node associated with transaction T1, where the transaction of the target node 408 may be executed. ¶ [0065] 3rd-4th sentences: using network 402, if a new message instance having a customer_id of value 4711 and a payload of “some payload” is created, an event that may be referred to as a create event may be generated that has empty before image and an after image with the given attributes. That event may be matched against source node 404 for referring to a type message and passed to the filter condition node 406. ¶ [0046] 6th sentence: events may be propagated through a network and filtered/combined by the filters/joins that are traversed along the way from the source to the action nodes);
Weber ¶ [0078] noting another example where All rules that match a state of execution reflected by events that reflect modifications of instances of types of objects may be flooded (i.e., evaluated), where multiple rules may be evaluated asynchronously, in parallel); “and”
- “storing the one or more third conditions and the event matching rule”.
(Weber ¶ [0021] state correlation engine may store a state of execution of rules, which …represented by a combination of one or more of selections of condition network channels within rules (e.g. including enablement of transactions and enablement of branches of a condition network), a state of operator nodes (e.g., as described below joins and Cartesian product operator nodes may store a state of execution), and instances of state variables, to provide for statefulness across evaluation of rules such that events (e.g. in sense of event objects or more broadly in the sense of occurrences that may result in event objects that characterize the occurrences) from different points in time may be correlated. The retention [or storing] of state may result in significant performance improvements as whenever an event happens (e.g., in the sense of an occurrence that is to result in a change to an instance of an object), the event may be correlated against the whole state (which has not necessarily changed in a transaction) without having to flood an overall network with a whole state... In addition, statefulness of execution may allow for execution of rules to propagate to the further execution of other rules (which may be referred to as chaining of evaluation of rules) such that, in combination, there is a stateful, continuous evaluation of rules. By allowing stateful transitions across networks representing rules, a modularity of rules may be improved such that large, intricate networks expressing complex, detailed rule patterns that take into account many branches of evaluation need not be generated and combinations of simpler rules that individually take into account a state of execution of a state correlation engine may be modeled. The simpler rules may reduce a memory footprint of rules which may improve the ability to keep many rules resident in main memory for quick execution.
Weber ¶ [0032] The state correlation engine may further provide for stateful execution of rules in the sense that a state of execution may be retained [or stored] across execution of rules (e.g. information about state may be retained [or stored] across execution of rules and changed according to actions of rules or otherwise as a result of events). State may be retained [or stored] by a combination of…retaining [or store] state variables of instances of objects of a type language, retaining [or storing] a state of selections of condition network channels within rules (e.g., including enablement of transactions and enablement of branches of a condition network), and a state of operator nodes (e.g retaining tables in joins and Cartesian product operator nodes across events)
Weber ¶ [0060] As instances of types of objects may store attributes that reflect events and the attributes may be updated by transactions or other events, the instances of types may be considered stateful. This statefulness may be retained for evaluation of a single network and for evaluation across different networks. For example, an instance of an object of a process instance type described above may be maintained across evaluation of many networks that represent a process lifecycle of a run-time process instance. For example, at ¶ [0068] 4th - 6th sentences: The after images from those events may be stored in a column (e.g., a right column) of an internal join table of the join operator node 416 (where another column (e.g., a left column) would remain blank for the message after images). If a new message including the customer identifier 4711 is received at a state correlation engine, a respective message instance including that customer identifier may be generated and the state correlation engine may cause an event to enter the join operator node 416 on an input channel as indicated by the connection between the message node 412 and the join operator node 416. The after image of that message instance may be stored in a column (e.g., a left column) of the join table for message instance images and all matching images from another column (e.g., a right column) corresponding to the subscription images may be identified, which includes the subscription having the customer identifier 4711)
Claims 9, 15 Weber teaches all the limitations in claims 7, 10 above. Weber further teaches:
- wherein when the to-be-filtered event is obtained by matching the events in the server against the one or more third conditions, the event matching rule is stored (Claim 9).
- “wherein the one or more third conditions are used for performing matching on events in a server to obtain the to-be-filtered event, and the to-be-filtered event is the event that meets the one or more third conditions” (Claim 15) (Weber ¶ [0086] 1st sentence: the subject matter herein can be implemented in a computing system such as a server. Specifically, ¶ [0030] The description with reference to Figs.1-5 includes a description of a state correlation engine, as a component of the system that processes event-condition-action rules that represent a process. Also, ¶ [0021] 1st sentence noting state correlation engine may store a state of execution of rules, with additional details at ¶ [0032], ¶ [0060], ¶ [0068] 1st - 6th sentences: For example, at ¶ [0068] 1st - 5th sentences: a party having a customer identifier of 4711 and a party having a customer identifier of 4712 may subscribe to messages with the keys 4711 and 4712, respectively. Generating events for the subscriptions may include generating image pairs that include empty before images and after images that include the respective customer identifiers. Events including those image pairs may enter the join operator node 416 on an input channel as indicated by the subscription node 414 connected to the join operator node 416. The after images from those events may be stored in a column (e.g., a right column) of an internal join table of the join operator node 416 (where another column (e.g., a left column) would remain blank for the message after images). If a new message including the customer identifier 4711 is received at a state correlation engine, a respective message instance including that customer identifier may be generated and the state correlation engine may cause an event to enter the join operator node 416 on an input channel as indicated by the connection between the message node 412 and the join operator node 416. Additional details at ¶ [0054] ¶ [0055] 3rd, 6th-8th sentences, ¶ [0060], ¶ [0078]).
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Rejections under 35 § U.S.C. 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102 of this title, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
This application currently names joint inventors. In considering patentability of the claims the examiner presumes that the subject matter of the various claims was commonly owned as of the effective filing date of the claimed invention(s) absent any evidence to the contrary. Applicant is advised of the obligation under 37 CFR 1.56 to point out the inventor and effective filing dates of each claim that was not commonly owned as of the effective filing date of the later invention in order for the examiner to consider the applicability of 35 U.S.C. 102(b)(2)(C) for any potential 35 U.S.C. 102(a)(2) prior art against the later invention.
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 5-6,13-14, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over:
Weber as applied to claims 4,10,19 above, in view of
Vega et al, US 20130205008 A1 hereinafter Vega. As per,
Claims 5,13,20 Weber teaches all the limitations in claims 4,10,19 above.
Weber also teaches at ¶ [0063] subflows along branches,
Weber ¶ [0045], [0055] 6th sentence, [0057] also teaches an AND operation rule
Weber also has already established at ¶ [0021] 1st sentence, ¶ [0071] 2nd-4th sentences, ¶ [0073] 2nd sentence, “the one or more second conditions” as statefulness conditions indicative of occurrences or repeatability
Weber nevertheless falls short to explicitly recite to clearly anticipate:
- “wherein the event matching rule is expressed / stored in a form of a tree, the tree comprises one or more parent nodes and a plurality of child nodes, the one or more first conditions and the one or more second conditions that match each other are used as different child nodes of a same parent node, and a parent node of the one or more first conditions and the one or more second conditions that match each other corresponds to an AND operation rule”.
Vega however in analogous art of event rule processing teaches or suggests:
- “wherein the event matching rule is expressed / stored in a form of a tree, the tree comprises one or more parent nodes and a plurality of child nodes, the one or more first conditions and the one or more second conditions that match each other are used as different child nodes of a same parent node, and a parent node of the one or more first conditions and the one or more second conditions that match each other corresponds to an AND operation rule”.
(Vega Annotated Fig. 5 below and ¶ [0071]-¶ [0072] noting under parent labeled “AND” 520, the first condition 524 and second condition 526 are equal thus match each other - 522. Similarly, under parent labeled “AND” 528, the first condition 534 and second condition 536 equal - 532 and thus match each other. Additionally, time constraint 538 is associated with expression 528 in that the action by the user to change the drop ship checkbox control value must have been performed today in order for expression 528 to evaluate to true. In this manner, multiple time constraints can be placed on differing rule criteria, and the time constraints can be applied to nested expressions (e.g. 528 and 510) )
PNG
media_image2.png
544
894
media_image2.png
Greyscale
Vega Fig.5 in support of rejection arguments
It would have been obvious to one skilled in the art, before the effective filling date of the claimed invention, to have modified Weber’s methods and apparatus to have included Vega’s teaching or suggestion in order to have advantageously subclassing a control of interest is that it notifies of only relevant events, thereby eliminating the need to filter each message occurring within the application to identify messages associated with just the control of interest (Vega ¶ [0042] last sentence in view of MPEP 2143 C, D and/or G). Another advantage of having incorporated Vega’s teaching or suggestions would have been able to allow for a more flexible and less strict programming logic (Vega ¶ [0074] 2nd sentence in view of MPEP 2143 C, D and/or G).The predictability of such modification would have been corroborated by the broad level of skills of one of ordinary skills in the art as articulated by Weber ¶ [0088] in view of Vega ¶ [0097]
Further, the claimed invention could have also been viewed as a mere combination of old elements in a similar field of endeavor dealing with event rule processing. In such combination each element would have merely performed same analytical and Boolean matching function as it did separately. Thus, one of ordinary skill in the art would have recognized that, given the existing technical ability to combine the elements as evidenced by Weber in view of Vega in the to be combined elements would have fitted together, like puzzle pieces in a logical, complementary, technologically feasible and/or economically desirable manner. Thus, it would have been reasoned that the results of the combination would have been predictable (MPEP 2143 A).
Claim 6 Weber / Vega teaches all the limitations in claim 5 above.
Weber teaches or suggests:
- “wherein the matching of the to-be-filtered event with the event matching rule includes traversing the tree for the to-be-filtered event” (Weber ¶ [0046] 7th sentence: events may be propagated through a network and filtered/combined by the filters/joins, respectively, that are traversed along the way from the source to the action nodes. ¶ 0062] 1st sentence: Fig.3 is a diagram of an event-condition-action rule 302 for independent subflows for execution by a correlation engine. ¶ [0063] In general, the event-condition-action rule 302 may be used to expose workflows in a fashion similar to synchronous web services (i.e., an incoming request may trigger a workflow which sends out a response to continue the outer flow when it ends). The event-condition-action rule 302 covers both a synchronous provisioning of a flow (e.g., as a web service) and the invocation of a subflow from an outer flow (through the respective transactions 308). To perform that, invoking a subflow may construct a “request” object and the outer flow (where a branch of the outer flow that has triggered a subflow is “on hold” while the subflow executes) may continue executing, where the subflow may send a response to cause a branch that called the subflow to continue execution (where, a matching of a response to the subflow from which it came may be used to determine whether to continue execution of the branch that called the subflow). The rule represented by an event-condition-action rule 302 for independent workflows may invoke a subflow with a signature of the subflow (where the signature may be normalized on a Web Services Description Language-style interface which may have eXtensible Markup Language Schema Definition typed parameters and responses). Roughly, there may be two transitions generated for a “workflow reference” model element, which may be referred to as an “independent or linked-in subflow invocation”. Initially (i.e., when a control flow has “arrived” at a subflow activity), an asynchronous transition may take care of generating a request document that matches the operation/service as set in (e.g., the WSDL interface of) a workflow reference model element. It may also switch a token state of the outer flow to an intermediate state signaling the execution of a subflow. Two attributes “initiator” and “kicker” may contain the instance and token objects of a calling process. The “initiator” attributes may be used by the subflow to identify the outer flow (e.g., to be able to traverse the call stack) whereas the “kicker” attribute may serve as correlation criterion for the outer flow (i.e., continue the outer flow when there is a “response” document that has a “kicker” attribute that equals the “waiting” token of the outer flow). A key extraction mechanism may be applied to a “request” document and an inner process may correlate on the service, operation, and request payload to start the subflow. Vice versa, each end event within the subflow may generate a “response” document and set the subflow instance as initiator and the original (outer) token reference as “kicker”. A synchronous “endSubflow” transition may check for (1) the token being in the intermediate (waiting) state and (2) the existence of a “Response” document with the right service, operation, and kicker).
Vega also teaches or suggests: “wherein the matching of the to-be-filtered event with the event matching rule includes traversing the tree for the to-be-filtered event” (Vega Fig.5 traversing the tree from root 502 down to the hierarchy to the to child nides using narrowing features, Boolean operators etc.).
Rationales to have modified/combined Weber / Vega were presented above.
Claim 14 Weber / Vega teaches all the limitations in claim 13 above. Further,
Weber teaches “wherein the tree is used for performing filtering to obtain a to-be-filtered event, and the to-be-filtered event is an event that meets the one or more third conditions”
(Weber ¶ [0063] 2nd-3rd, 8th-10th sentences: event-condition-action rule 302 covers both a synchronous provisioning of a flow (e.g. as a web service) and the invocation of a subflow from an outer flow (through the respective transactions 308). To perform that, invoking a subflow may construct a “request” object and the outer flow (where a branch of the outer flow that has triggered a subflow is “on hold” while the subflow executes) may continue executing, where the subflow may send a response to cause a branch that called the subflow to continue execution (where, a matching of a response to the subflow from which it came may be used to determine whether to continue execution of the branch that called the subflow)…. Two attributes “initiator” and “kicker” may contain the instance and token objects of a calling process. The “initiator” attributes may be used by the subflow to identify the outer flow (e.g., to be able to traverse the call stack) whereas the “kicker” attribute may serve as correlation criterion for the outer flow (i.e., continue the outer flow when there is a “response” document that has a “kicker” attribute that equals the “waiting” token of the outer flow). A key extraction mechanism may be applied to a “request” document and an inner process may correlate on the service, operation, and request payload to start the subflof
Weber ¶ [0042] 8th sentence: a join operator may combine two events based on matching key values in their before and after image. ¶ [0068] For example, a party having a customer identifier of 4711 and a party having a customer identifier of 4712 may subscribe to messages with the keys 4711 and 4712, respectively. Generating events for the subscriptions may include generating image pairs that include empty before images and after images that include the respective customer identifiers. Events including those image pairs may enter the join operator node 416 on an input channel as indicated by the subscription node 414 connected to the join operator node 416. The after images from those events may be stored in a column (e.g., a right column) of an internal join table of the join operator node 416 (where another column (e.g., a left column) would remain blank for the message after images). If a new message including the customer identifier 4711 is received at a state correlation engine, a respective message instance including that customer identifier may be generated and the state correlation engine may cause an event to enter the join operator node 416 on an input channel as indicated by the connection between the message node 412 and the join operator node 416. The after image of that message instance may be stored in column (e.g. left column) of the join table for message instance images and all matching images from another column (e.g right column) corresponding to the subscription images may be identified, which includes the subscription having the customer identifier 4711. The pair of matching images may be created and put into a combined event that is passed to the destination node 418, which may be enabled and the pair may be digested by an execution of actions of the destination node 418 (e.g. the party matching the subscription instance may receive the pair and consume the message). If the message instance having the customer identifier 418 is subsequently deleted, a respective delete event containing an empty after image may enter the join operator node 416 and the corresponding entry in a column of the join table may be deleted. A combined delete event including images from the message and subscription instances may be passed to the destination node 418 where the respective transaction may be disabled).
Vega also teaches or suggests: “wherein the tree is used for performing filtering to obtain a to-be-filtered event, and the to-be-filtered event is an event that meets the one or more third conditions” (Vega Fig.5 above and ¶ [0066]-¶ [0073] for specific example and additional details at
Vega ¶ [0043] where the hosting application, as part of its coding, uses discrete identifiers for identifying attributes of the application, used in building information of an event passed to the dispatch loop. The discrete identifiers include attribute names, and attributes in the software can be identified using an attribute name from this set of identifiers, and include either a customized or conventional name for the application attribute. The identifier can be used in rule specification to accurately identify application attributes in a manner that is consistent with the way the hosting application identifies the application attributes. This enables the advisor program to, for instance, use the identifiers in obtaining data about the application attributes. When a user interacts with the attribute, for instance toggles a dialog control causing an event to be reported, that interaction can be identified based on the attribute name provided in the event. This facilitates identifying the user behavior (e.g. toggling) with respect to the particular attribute (e.g. dialog control) of the application, in that reported events can be examined for the particular discrete identifier of a relevant application attribute. An event which reports that a window was opened might provide as part of the event information the title (name) of the window (attribute), the title being a discrete identifier used by the application. According to aspects of the invention, specification of the rules is made by way of these discrete identifiers, in order for the criteria of the rules to be understandable in the context of the application. When multiple applications host the advisor program, different rule sets can be applied using the respective identifiers of each hosting application. Alternatively, a single rule set can be applied for all hosting applications, or the hosting applications may employ a common set of identifiers.
Vega ¶ 0044] Returning to Fig.3, responsive to the user interacting with a relevant area or application attribute (312), such as one that is deemed relevant by virtue of it being specified in the criteria of one or more rules, the advisor program application interface receives and distributes interaction data (314) to the advisor processing engine of the advisor program. The interaction data includes information provided in the event reporting the interaction, such as the discrete identifier of the attribute that was being interacted with (e.g. “DialogControl1”) and the nature of that interaction (e.g. ‘toggles on’ or ‘toggled off’). The processing engine builds a user behavior state by accumulating this interaction data within the context of the present application session (316). The behavior of the user with respect to the relevant attributes of the application is accumulated over a period of time to form a behavior state based on what is indicated in the rules as being relevant user behavior for monitoring. By way of example, if the triggering criteria of a rule is interested user interaction with a quantity input control in a particular area of the application three or more times without changing the entity on which the user operates (i.e. value in that quantity control), then the user behavior of selecting the control the first time, a second time, and a third time will be accumulated, each time building-up the behavior state with respect to that control based on the repeated interaction. Not only can interaction data be accumulated within the present application session, but additionally, the accumulated interaction data can be stored over multiple prior sessions with the application (318). A session is, in one example, some period of time during which the user interacts with the application and attributes thereof. In one example, a session extends from the time of opening or launching the application or an individual module until that application or module is exited or navigated away-from by the user. A built application state can therefore include data obtained across multiple sessions, and a built user behavior state of the application state can include user interaction data across the multiple sessions. In this manner, the buildup of user behavior state incorporates interaction data from previous and present interactions, enabling triggering of rule criteria based on non-serialized (i.e. out-of-sequence and/or out-of-order) interaction, if so desired.
Vega ¶ [0058] 4th-10th sentences an advisor application information interface 404 listens to events, e.g. from a dispatch loop, for initial pertinent user-behavior related info (for instance opening up screen 402 a having button 402 b and Listbox 402 c). Since Rule 1 (410) is interested in user behavior with respect to Listbox 402 c, advisor-application information interface 404 creates, responsive to an event i.e. opening of screen 402 a, an advisor-control information interface 406 to obtain data about control 402 c, i.e. to directly observe user interaction occurring on control 402 c. The user interaction data on both advisor-application information interface 404 and advisor-control information interface 406 is provided to rule engine 408 which evaluates Rule 1 (410) and other installed rules on the workstation based on buildup of application state (in this example built-up user behavior state). In Fig.4, Rule 1 (410) specifies triggering criteria (behavior expression 410a) of changing the value in Listbox 402 c five or more times. Thus as user changes value of Listbox 402c, these interactions are observed on advisor-control information interface 406 and the behavior state is built-up over time with each successive user interaction to change the value of Listbox 402 c. The rule is evaluated based on this buildup of behavior state and may be triggered if the criteria evaluates to true)
Rationales to have modified/combined Weber / Vega were presented above.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Claims 8,12 are rejected under 35 U.S.C. 103 as being unpatentable over:
Weber as applied to claims 7,10 above, in view of
Borthakur et al, US 11030242 B1 hereinafter Borthakur. As per,
Claims 8,12 Weber teaches all the limitations in claims 7,10.
Weber does not explicitly recite: “wherein the storing of the one or more third conditions comprises”:
- “obtaining keys of the one or more third conditions, and obtaining key values of the one or more third conditions”;
- “storing a key combination and a key value combination, wherein the key combination is a combination of the keys of the one or more third conditions, and the key value combination is a combination of the key values of the one or more third conditions”.
Borthakur however in analogous art of event rule processing teaches or suggests
“wherein the storing of the one or more third conditions comprises”:
- “obtaining keys of the one or more third conditions, and obtaining key values of the one or more third conditions”; (Borthakur column 7 lines 8-13: The key-value store 155 stores the key-value pairs in a sorted order, for example, in order of alphabetically sorted keys. Each index is associated with an order in which values of field data and document identifier are combined to obtain the keys of the key-value pairs added to the index. column 5 lines 9-20: Assume that an index I1 combines values associated with the field in the following order: field name, field type, and document identifier to obtain keys. This index is configured to allow efficient access to all occurrences of fields having a particular name and optionally a field type. For example, assume that the query engine 150 needs to search for all documents with field name “A1” independent of the field type and the document. The query engine 150 generates a key-expression “A1” and searches for all key-value pairs having a prefix matching the generated key-expression. This prefix search matches all occurrences of field “A1” independent of the field type and document.
column 5 lines 34-46: Another index, for example, index I2 may combine the field data and document identifier values in a different order. For example, index I2 may combine field name, field value, and document identifier in this particular order to obtain keys of key-value pairs. The query engine 150 may use index I2 to search for all documents that have a particular value “V1” of a particular field “A1”. The query engine 150 performs such a search by generating a key-expression by combining the field name “A1” and the field value “V1” and performing a prefix search for the generated key-expression in the index I2. The prefix search would match all occurrences of fields with name “A1” and value “V1” independent of the document identifier)
- “storing a key combination and a key value combination, wherein the key combination is a combination of the keys of the one or more third conditions, and the key value combination is a combination of the key values of the one or more third conditions”.
(Borthakur column 9 lines 6-9: The key expression generator 230 generates expressions by combining field data and/or document identifiers in the order associated with an index to access data stored in the index. Also, column 15 lines 44-49: The search system 100 further constructs a query key that combines the field index identifier S with the document identifier 200 and the field name address_zip to generate the string S_200_address_zip and searches the key-value store 155 for this key using the field index. claim 6: updating the plurality of indexes comprises, storing a key-value pair in the field index, the key-value pair comprising: a key obtained by combining the document identifier and the field name, and a value representing the field value).
It would have been obvious to one skilled in the art, before the effective filling date of the claimed invention, to have modified Weber’s teaching to have further included Borthakur’s teachings or suggestions in order to have provided more efficient querying of information stored in the documents, and more specifically to indexing semi-structured documents using a key-value store (Borthakur column 1 lines 7-10, column 2 lines 14-26, column 3 lines 19-21, column 4 lines 30-42, 56-63, column 5 lines 5-8, column 7 lines 19-30 in view of MPEP 2143 C,D and/or G). Borthakur would also have provided a more efficient mechanism to access the appropriate keys in a key-value store. The key-value store would have stored the key-value pairs in a sorted order of the keys, for example sorted in lexicographical, alphabetical, or any other known and predetermined order. Since the key-value pairs would have been stored in a sorted order, the seek ( ) operation would have been performed to efficiently locate the matching key (Borthakur column lines 24-32 in view of MPEP 2143 C, D, and/or G). The predictability of such modification would have been corroborated by the broad level of skills of one of ordinary skills in the art as articulated by Weber ¶ [0088] in view of Borthakur column 16 line 64- column 17 line 47.
Further, the claimed invention could have also been viewed as a mere combination of old elements in a similar field of endeavor dealing with event rule processing. In such combination each element would have merely performed the same gathering, analytical, matching and storage function as it did separately. Thus, one of ordinary skill in the art would have recognized that, given existing technical ability to combine the elements evidenced by Weber in view of Borthakur, the to be combined elements would have fitted together like pieces of a puzzle in a logical, complementary, and technologically feasible manner. Thus, it would have been reasoned that the results of the combination would have been predictable (MPEP 2143 A).
Conclusion
The following art is made of record and considered pertinent to Applicant's disclosure:
- Fu et al, Smart os scheduling for serverless functions, InSC22 International Conference for High Performance Computing, Networking, Storage and Analysis, p1-p16, IEEE, 2022, Nov 13, 2022
- WO-2013119786 A2 teaching Selectively triggering execution of services in a computing environment
- US 20230214267 A1 teaching Optimizing resource utilization based on quota trees in resource scheduling
- US 20230214257 A1 teaching Using multiple quota trees in resource scheduling
- US 20080046873 A1 reciting the following:
¶ [0052] At step 90, the disclosed system determines the intersection of the master command tree and the operative command tree by performing a logical "AND" operation on the master command tree and operative command tree. As a result, an actual command tree is created that includes only those tree nodes and/or vertices that are contained in both the master command tree and the operative command tree. The actual command tree generated at step 90 is then used by the disclosed control system to present device and associated command options to the user, for example audibly and/or through a graphical user interface, and to process commands received from the user.
¶ [0079] Fig.19 shows an example of an operative command tree 230 reflecting user specific command configuration information. For example, the operative command tree 230 may be formed based on the user specific configuration files 58 shown in FIG. 2. FIG. 20 shows an example of an actual command tree 240 formed as a result of performing a logical "AND" operation between the master command tree 220 of FIG. 18 and the operative command tree 230 of FIG. 19. The actual command tree 240 only includes those command tree components that are contained in both the master command tree 220 and the operative command tree 230. Thus the actual command tree 240 reflects the intersection of the master command tree 220 and the operative command tree 230. Moreover, the order and/or arrangement of the command tree components in the actual command tree 240 reflect the order and/or arrangement of the command tree components in the operative command tree 230. Accordingly, since the order in which commands are presented to the user is based on the actual command tree 240, the user is provided with a user interface experience that reflects the user specific operative command tree 230.
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to OCTAVIAN ROTARU whose telephone number is (571)270-7950. The examiner can normally be reached on 571.270.7950 from 9AM to 6PM. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, PATRICIA H MUNSON, can be reached at telephone number (571)270-5396. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of an application may be obtained from Patent Center. Status information for published applications may be obtained from Patent Center. Status information for unpublished applications is available through Patent Center for authorized users only. Should you have questions about access to Patent Center, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). 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) Form at https://www.uspto.gov/patents/uspto-automated- interview-request-air-form.
/Octavian Rotaru/
Primary Examiner, Art Unit 3624 A
September 12th, 2026
1 USPTO’s training entitled Focus on Computer/Software-related Claims dated May 2015 slides 16-17,20-21, which cites MPEP 2111.04, with respect to the patentable weight of intended use or result
2 Symantec, 838 F.3d at 1321, 120 USPQ2d at 1362
TLI Communications LLC v. AV Auto. LLC, 823 F.3d 607, 610, 118 USPQ2d 1744, 1745 (Fed. Cir. 2016);
OIP Techs., Inc., v. Amazon.com, Inc., 788 F.3d 1359, 1363, 115 USPQ2d 1090, 1093 (Fed. Cir. 2015);
buySAFE, Inc. v. Google, Inc., 765 F.3d 1350, 1355, 112 USPQ2d 1093, 1096 (Fed. Cir. 2014)
3 OIP Techs., 788 F.3d at 1362-63, 115 USPQ2d at 1092-93;
4 Alice Corp. Pty. Ltd. v. CLS Bank Int'l, 573 U.S. 208, 225, 110 USPQ2d 1984 (2014);
Ultramercial, 772 F.3d at 716, 112 USPQ2d at 1755;
5 Versata Dev. Group, Inc. v. SAP Am., Inc., 793 F.3d 1306, 1334, 115 USPQ2d 1681, 1701 (Fed. Cir. 2015);
OIP Techs., 788 F.3d at 1363, 115 USPQ2d at 1092-93;
6 Flook, 437 U.S. at 594, 198 USPQ2d at 199); and Bancorp Services v. Sun Life, 687 F.3d 1266, 1278, 103 USPQ2d 1425, 1433 (Fed. Cir. 2012)
7 Versata Dev. Group, Inc. v. SAP Am., Inc., 793 F.3d 1306, 1331, 115 USPQ2d 1681, 1699 (Fed. Cir. 2015).