IP Library › Granted Patent US 12,443,605
Granted Patent B2
US 12,443,605 · App. 17/518,447 · Granted Oct 14, 2025

Generation of archiver queries for continuous queries over archived relations

Inventors: Unmesh Anil Deshmukh (Nagpur, IN); Anand Srinivasan (Bangalore, IN); Vikram Shukla (Fremont, CA)
Assignee: Oracle International Corporation
G06F16/24568G06F16/2308G06F16/24542G06F16/24544G06F16/951
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,443,605
App. No.
17/518,447
Granted
Oct 14, 2025
Kind
B2
Abstract

A method may include receiving a continuous query identified by an archived relation associated with an application. The method may also include generating a physical query plan. Additionally, the method may include constructing a structured query language (SQL) equivalent expression corresponding to an attribute utilized by the operator and/or constructing an output SQL expression for the identified operator based at least in part on the SQL equivalent expression. Additionally, the method may include constructing the archiver query for the identified operator based at least in part on the output SQL expression. Further, the method may include executing the archiver query to obtain a result set of data records related to the application and/or generating a snapshot output of one or more data values related to the application based at least in part on the result set of data records.

Claims (69)

1. A computer-implemented method, comprising:

identifying, by a computer system, a query plan for a continuous query, the query plan comprising one or more physical operators, the one or more physical operators comprising respective query operator flags;

sorting, by the computer system, the query plan;

identifying, by the computer system, at least one of the physical operators of the one or more physical operators in a traversal of the sorted query plan, wherein at least one of the respective query operator flags are set to false;

for each identified physical operator of the identified one or more physical operators in the traversal of the sorted query plan:

determining, by the computer system, whether state initialization has been performed on the identified physical operator; and

in accordance with a determination that no state initialization has been performed on the identified physical operator:

constructing, by the computer system, a query string for the identified physical operator;

setting, by the computer system, the query string as an output expression for the identified physical operator;

determining, by the computer system, whether the identified physical operator is stateful; and

in accordance with a determination that the identified physical operator is stateful;

marking, by the computer system, the identified physical operator comprising a respective query operator flag as a query operator at least in part by setting the respective query operator flag to true; and

in accordance with a determination that state initialization has been performed on the identified physical operator:

marking, by the computer system, the identified physical operator comprising a respective query operator flag as a query operator at least in part by setting the respective query operator flag to true.

2. The computer-implemented method of claim 1 , wherein the query plan comprises a physical query plan.

3. The computer-implemented method of claim 1 , wherein the query plan is sorted topologically.

4. The computer-implemented method of claim 1 , wherein the traversal of the sorted query plan is performed topologically.

5. The computer-implemented method of claim 1 , further comprising setting a second flag to false prior to identifying the one or more physical operators.

6. The computer-implemented method of claim 5 , wherein the second flag comprises a state initialization completion flag.

7. The computer-implemented method of claim 6 , further comprising:

setting, by the computer system, the second flag to true upon completing the traversal of the sorted query plan.

8. The computer-implemented method of claim 1 , wherein the output expression comprises an output structure query language (SQL) expression.

9. The computer-implemented method of claim 1 , further comprising constructing an archiver query for each identified physical operator that is marked as a query operator.

10. The computer-implemented method of claim 1 , further comprising:

determining whether an archiver query can be generated for the identified physical operator; and

in accordance with a determination that the archiver query can be generated for the identified physical operator:

determining whether the identified physical operator can query the generated archiver query.

11. The computer-implemented method of claim 10 , wherein the query string is constructed for the identified physical operator in accordance with a determination that the identified physical operator can query the generated archiver query.

12. A non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by one or more computer systems, configure the one or more computer systems to perform instructions comprising:

identifying a query plan for a continuous query, the query plan comprising one or more physical operators, the one or more physical operators comprising respective query operator flags;

sorting the query plan;

identifying at least one of the physical operators of the one or more physical operators in a traversal of the sorted query plan, wherein at least one of the respective query operator flags are set to false; and

for each identified physical operator of the identified one or more physical operators in the traversal of the sorted query plan:

determining whether state initialization has been performed on the identified physical operator;

in accordance with a determination that no state initialization has been performed on the identified physical operator:

constructing a query string for the identified physical operator;

setting the query string as an output expression for the identified physical operator;

determining whether the identified physical operator is stateful; and in accordance with a determination that the identified physical operator is stateful:

marking the identified physical operator comprising a respective query operator flag as a query operator at least in part by setting the respective query operator flag to true; and

in accordance with a determination that state initialization has been performed on the identified physical operator:

marking, by the computer system, the identified physical operator comprising a respective query operator flag as a query operator at least in part by setting the respective query operator flag to true.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the operations further comprise constructing an archiver query for each identified physical operator that is marked as a query operator.

14. The non-transitory computer-readable storage medium of claim 12 , wherein the operations further comprise:

determining whether an archiver query can be generated for the identified physical operator; and

in accordance with a determination that the archiver query can be generated for the identified physical operator:

determining whether the identified physical operator can query the generated archiver query.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the query string is constructed for the identified physical operator in accordance with a determination that the identified physical operator can query the generated archiver query.

16. A system, comprising:

a memory storing a plurality of instructions; and

a processor configured to access the memory and execute the plurality of instructions to at least:

identify a query plan for a continuous query, the query plan comprising one or more physical operators, the one or more physical operators comprising respective query operator flags;

sort the query plan;

identify at least one physical operator of the one or more physical operators in a traversal of the sorted query plane wherein at least one of the respective query operator flags are set to false; and

for each identified physical operator of the identified one or more physical operators in the traversal of the sorted query plan:

determine whether state initialization has been performed on the identified physical operator;

in accordance with a determination that no state initialization has been performed on the identified physical operator:

construct a query string for the identified physical operator;

set the query string as an output expression for the identified physical operator;

determine whether the identified physical operator is stateful; and

in accordance with a determination that the identified physical operator is stateful:

mark the identified physical operator comprising a respective query operator flag as a query operator at least in part by setting the respective query operator flag to true

in accordance with a determination that state initialization has been performed on the identified physical operator:

mark, by the computer system, the identified physical operator comprising a respective query operator flag as a query operator at least in part by setting the respective query operator flag to true.

17. The system of claim 16 , wherein the processor is further configured to execute the plurality of instructions to at least construct an archiver query for each identified physical operator that is marked as a query operator.

18. The system of claim 16 , wherein the processor is further configured to execute the plurality of instructions to at least:

determining whether an archiver query can be generated for the identified physical operator; and

in accordance with a determination that the archiver query can be generated for the identified physical operator:

determining whether the identified physical operator can query the generated archiver query.

19. The system of claim 18 , wherein the query string is constructed for the identified physical operator in accordance with a determination that the identified physical operator can query the generated archiver query.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2021
From: DESHMUKH, UNMESH ANIL; SRINIVASAN, ANAND; SHUKLA, VIKRAM
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 058029/0652 →
Continuity (5)
Continuation 15905490 · Feb 26, 2018
Continuation 14036659 · Sep 25, 2013
Provisional Application 61830007 · May 31, 2013
Provisional Application 61707641 · Sep 28, 2012
Related Publication 20220058200A1 · Feb 24, 2022
References Cited (167)
US 6304873B1 · Klein · 2001 [cited by examiner]
US 7672964B1 · Yan et al. · 2010 [cited by applicant]
US 7870167B2 · Lu et al. · 2011 [cited by applicant]
US 7984043B1 · Waas · 2011 [cited by examiner]
US 8316012B2 · Abouzied et al. · 2012 [cited by applicant]
US 8346511B2 · Schoning et al. · 2013 [cited by applicant]
US 8370812B2 · Feblowitz et al. · 2013 [cited by applicant]
US 8484243B2 · Krishnamurthy et al. · 2013 [cited by applicant]
US 8745070B2 · Krishnamurthy et al. · 2014 [cited by applicant]
US 8762369B2 · Macho et al. · 2014 [cited by applicant]
US 9256646B2 · Deshmukh et al. · 2016 [cited by applicant]
US 9262479B2 · Deshmukh et al. · 2016 [cited by applicant]
US 9361308B2 · Deshmukh et al. · 2016 [cited by applicant]
US 9805095B2 · Deshmukh et al. · 2017 [cited by applicant]
US 9953059B2 · Deshmukh et al. · 2018 [cited by applicant]
US 9990401B2 · Toillion et al. · 2018 [cited by applicant]
US 9990410B2 · Roytblat et al. · 2018 [cited by applicant]
US 10025825B2 · Deshmukh et al. · 2018 [cited by applicant]
US 10102250B2 · Deshmukh et al. · 2018 [cited by applicant]
US 10489406B2 · Toillion et al. · 2019 [cited by applicant]
US 11210295B2 · Deshmukh et al. · 2021 [cited by applicant]
US 11288277B2 · Deshmukh et al. · 2022 [cited by applicant]
US 11423032B2 · Park et al. · 2022 [cited by applicant]
US 11971894B2 · Deshmukh et al. · 2024 [cited by applicant]
US 20020116362A1 · Li et al. · 2002 [cited by applicant]
US 20060064487A1 · Ross · 2006 [cited by applicant]
US 20060074965A1 · Cunningham · 2006 [cited by examiner]
US 20060089939A1 · Broda et al. · 2006 [cited by applicant]
US 20060230029A1 · Yan · 2006 [cited by applicant]
US 20070136239A1 · Lee et al. · 2007 [cited by applicant]
US 20070203893A1 · Krinsky · 2007 [cited by examiner]
US 20070288635A1 · Gu · 2007 [cited by examiner]
US 20070294217A1 · Chen et al. · 2007 [cited by applicant]
US 20070299834A1 · Liu · 2007 [cited by examiner]
US 20070299885A1 · Pareek et al. · 2007 [cited by applicant]
US 20080120283A1 · Liu et al. · 2008 [cited by applicant]
US 20080243451A1 · Feblowitz et al. · 2008 [cited by applicant]
US 20080250073A1 · Nori et al. · 2008 [cited by applicant]
US 20080301125A1 · Alves et al. · 2008 [cited by applicant]
US 20090037404A1 · Lee · 2009 [cited by examiner]
US 20090070355A1 · Cadarette et al. · 2009 [cited by applicant]
US 20090070786A1 · Alves et al. · 2009 [cited by applicant]
US 20090100029A1 · Jain · 2009 [cited by examiner]
US 20090106189A1 · Jain · 2009 [cited by examiner]
US 20090106214A1 · Jain et al. · 2009 [cited by applicant]
US 20090112809A1 · Wolff et al. · 2009 [cited by applicant]
US 20090182779A1 · Johnson · 2009 [cited by applicant]
US 20090192981A1 · Papaemmanouil · 2009 [cited by examiner]
US 20090228431A1 · Dunagan et al. · 2009 [cited by applicant]
US 20090228434A1 · Krishnamurthy et al. · 2009 [cited by applicant]
US 20090228465A1 · Krishnamurthy et al. · 2009 [cited by applicant]
US 20090282021A1 · Bennett · 2009 [cited by applicant]
US 20090292979A1 · Aggarwal · 2009 [cited by applicant]
US 20090319501A1 · Goldstein et al. · 2009 [cited by applicant]
US 20100036803A1 · Vemuri et al. · 2010 [cited by applicant]
US 20100125584A1 · Navas · 2010 [cited by applicant]
US 20100229081A1 · Rothbucher · 2010 [cited by applicant]
US 20100287293A1 · Wright et al. · 2010 [cited by applicant]
US 20100293135A1 · Candea et al. · 2010 [cited by applicant]
US 20100332401A1 · Prahlad et al. · 2010 [cited by applicant]
US 20110016123A1 · Pandey et al. · 2011 [cited by applicant]
US 20110016160A1 · Zhang et al. · 2011 [cited by applicant]
US 20110161352A1 · de Castro Alves et al. · 2011 [cited by applicant]
US 20110178775A1 · Schoning et al. · 2011 [cited by applicant]
US 20110313844A1 · Chandramouli et al. · 2011 [cited by applicant]
US 20120054173A1 · Andrade et al. · 2012 [cited by applicant]
US 20120078868A1 · Chen et al. · 2012 [cited by applicant]
US 20120078951A1 · Hsu · 2012 [cited by examiner]
US 20120124096A1 · Krishnamurthy et al. · 2012 [cited by applicant]
US 20120158783A1 · Nice · 2012 [cited by examiner]
US 20120166417A1 · Chandramouli et al. · 2012 [cited by applicant]
US 20120324453A1 · Chandramouli et al. · 2012 [cited by applicant]
US 20130007539A1 · Ananthapadmanabh et al. · 2013 [cited by applicant]
US 20130031567A1 · Nano et al. · 2013 [cited by applicant]
US 20130066855A1 · Gupta et al. · 2013 [cited by applicant]
US 20130117317A1 · Wolf · 2013 [cited by applicant]
US 20130191370A1 · Chen et al. · 2013 [cited by applicant]
US 20130290368A1 · Chen et al. · 2013 [cited by applicant]
US 20140082013A1 · Wolf et al. · 2014 [cited by applicant]
US 20140095444A1 · Deshmukh et al. · 2014 [cited by applicant]
US 20140095445A1 · Deshmukh et al. · 2014 [cited by applicant]
US 20140095446A1 · Deshmukh et al. · 2014 [cited by applicant]
US 20140095447A1 · Deshmukh et al. · 2014 [cited by applicant]
US 20140095471A1 · Deshmukh et al. · 2014 [cited by applicant]
US 20140095473A1 · Srinivasan et al. · 2014 [cited by applicant]
US 20140095483A1 · Toillion et al. · 2014 [cited by applicant]
US 20140095540A1 · Hsiao et al. · 2014 [cited by applicant]
US 20140379712A1 · Lafuente Alvarez · 2014 [cited by applicant]
US 20160103882A1 · Deshmukh et al. · 2016 [cited by applicant]
US 20170024912A1 · de Castro Alves et al. · 2017 [cited by applicant]
US 20180181622A1 · Deshmukh et al. · 2018 [cited by applicant]
US 20180246935A1 · Toillion et al. · 2018 [cited by applicant]
CN 101866353 · 2010 [cited by applicant]
CN 102665207 · 2012 [cited by applicant]
JP 2006338432 · 2006 [cited by applicant]
JP 2007328716 · 2007 [cited by applicant]
WO 2012050582 · 2012 [cited by applicant]
U.S. Appl. No. 13/829,958, Non-Final Office Action, mailed on Feb. 1, 2016, 20 pages. [cited by applicant]
U.S. Appl. No. 13/829,958, Non-Final Office Action, mailed on Jan. 8, 2018, 22 pages. [cited by applicant]
U.S. Appl. No. 13/829,958, Notice of Allowance, mailed on Jun. 11, 2018, 13 pages. [cited by applicant]
U.S. Appl. No. 13/829,958, Final Office Action, mailed on Jun. 30, 2016, 19 pages. [cited by applicant]
U.S. Appl. No. 13/829,958, Final Office Action, mailed on Jun. 19, 2015, 17 pages. [cited by applicant]
U.S. Appl. No. 13/829,958, Non-Final Office Action, mailed on Dec. 11, 2014, 15 pages. [cited by applicant]
U.S. Appl. No. 13/829,958, Non-Final Office Action, mailed on Dec. 27, 2016, 20 pages. [cited by applicant]
U.S. Appl. No. 13/829,958, Final Office Action, mailed on Jun. 26, 2017, 22 pages. [cited by applicant]
U.S. Appl. No. 13/830,129, Non-Final Office Action, mailed on Feb. 27, 2015, 19 pages. [cited by applicant]
U.S. Appl. No. 13/830,129, Notice of Allowance, mailed on Sep. 22, 2015, 9 pages. [cited by applicant]
U.S. Appl. No. 13/830,428, Final Office Action, mailed on May 26, 2016, 26 pages. [cited by applicant]
U.S. Appl. No. 13/830,428, Final Office Action, mailed on Oct. 5, 2017, 33 pages. [cited by applicant]
U.S. Appl. No. 13/830,428, Non- Final Office Action, mailed on Dec. 5, 2014, 23 pages. [cited by applicant]
U.S. Appl. No. 13/830,428, Non-Final Office Action, mailed on Jan. 5, 2016, 25 pages. [cited by applicant]
U.S. Appl. No. 13/830,428, Non-Final Office Action, mailed on Mar. 22, 2017, 25 pages. [cited by applicant]
U.S. Appl. No. 13/830,428, Final Office Action, mailed on Jun. 4, 2015, 21 pages. [cited by applicant]
U.S. Appl. No. 13/830,428, Notice of Allowance, mailed on Apr. 2, 2018, 9 pages. [cited by applicant]
U.S. Appl. No. 14/036,500, Final Office Action, mailed on Mar. 17, 2016, 35 pages. [cited by applicant]
U.S. Appl. No. 14/036,500, Non-Final Office Action, mailed on Aug. 14, 2015, 26 pages. [cited by applicant]
U.S. Appl. No. 14/036,500, Non-Final Office Action, mailed on Feb. 9, 2017, 34 pages. [cited by applicant]
U.S. Appl. No. 14/036,500, Notice of Allowance, mailed on Jun. 30, 2017, 14 pages. [cited by applicant]
U.S. Appl. No. 14/036,659, Final Office Action, mailed on Apr. 22, 2016, 38 pages. [cited by applicant]
U.S. Appl. No. 14/036,659, Non-Final Office Action, mailed on Aug. 13, 2015, 33 pages. [cited by applicant]
U.S. Appl. No. 14/036,659, Notice of Allowance, mailed on Nov. 30, 2017, 13 pages. [cited by applicant]
U.S. Appl. No. 14/036,659, Non-Final Office Action, mailed on Jun. 2, 2017, 28 pages. [cited by applicant]
U.S. Appl. No. 14/036,659, Advisory Action, mailed on Sep. 21, 2016, 5 pages. [cited by applicant]
U.S. Appl. No. 14/037,072, Non-Final Office Action, mailed on Jul. 9, 2015, 12 pages. [cited by applicant]
U.S. Appl. No. 14/037,072, Notice of Allowance, mailed on Feb. 16, 2016, 18 pages. [cited by applicant]
U.S. Appl. No. 14/037,153, Final Office Action, mailed on May 3, 2018, 16 pages. [cited by applicant]
U.S. Appl. No. 14/037,153, Final Office Action, mailed on Jan. 21, 2016, 31 pages. [cited by applicant]
U.S. Appl. No. 14/037,153, Final Office Action, mailed on Jan. 22, 2020, 34 pages. [cited by applicant]
U.S. Appl. No. 14/037,153, Non-Final Office Action, mailed on Jun. 19, 2015, 23 pages. [cited by applicant]
U.S. Appl. No. 14/037,153, Non-Final Office Action, mailed on Jun. 27, 2019, 25 pages. [cited by applicant]
U.S. Appl. No. 14/037,153, Non-Final Office Action, mailed on Aug. 10, 2017, 45 pages. [cited by applicant]
U.S. Appl. No. 14/037,153, Non-Final Office Action, mailed on Feb. 5, 2021, 53 pages. [cited by applicant]
U.S. Appl. No. 14/037,153, Notice of Allowance, mailed on Dec. 15, 2021, 10 pages. [cited by applicant]
U.S. Appl. No. 14/037,171, Non-Final Office Action, mailed on Jun. 3, 2015, 15 pages. [cited by applicant]
U.S. Appl. No. 14/037,171, Notice of Allowance, mailed on Oct. 15, 2015, 15 pages. [cited by applicant]
U.S. Appl. No. 14/973,377, Non-Final Office Action, mailed on Nov. 30, 2017, 17 pages. [cited by applicant]
U.S. Appl. No. 14/973,377, Notice of Allowance, mailed on May 2, 2018, 8 pages. [cited by applicant]
U.S. Appl. No. 15/905,490, Non-Final Office Action, mailed on Dec. 11, 2019, 34 pages. [cited by applicant]
U.S. Appl. No. 15/905,490, Non-Final Office Action, mailed on Mar. 17, 2021, 40 pages. [cited by applicant]
U.S. Appl. No. 15/905,490, Notice of Allowance, mailed on Sep. 22, 2021, 11 pages. [cited by applicant]
U.S. Appl. No. 15/905,490, Final Office Action, mailed on Jul. 10, 2020, 34 pages. [cited by applicant]
U.S. Appl. No. 15/967,272, Final Office Action, mailed on May 15, 2019, 27 pages. [cited by applicant]
U.S. Appl. No. 15/967,272, Non-Final Office Action, mailed on Dec. 27, 2018, 18 pages. [cited by applicant]
U.S. Appl. No. 15/967,272, Notice of Allowance, mailed on Sep. 25, 2019, 8 pages. [cited by applicant]
Arasu, Continuous Queries Over Data Streams, Available online at: https://pdfs.semanticscholar.org/483b/9af341766583d213b857a785396125fd4ea1.pdf, Feb. 2006, 15 pages. [cited by applicant]
Bestehorn et al., Fault-tolerant Query Processing in Structured P2P-systems, Distributed and Parallel Databases, vol. 28, Issue 1, Aug. 2010, pp. 33-66. [cited by applicant]
BUZA Extension of CQL over Dynamic Databases, Journal of Universal Computer Science, vol. 12, No. 9, 2006, 12 pages. [cited by applicant]
Candea et al., A Scalable, Predictable Join Operator for Highly Concurrent Data Warehouses, Proceedings of the 35th International Conference on Very Large Data Bases, Aug. 2009, pp. 1-12. [cited by applicant]
Chen et al., NiagaraCQ: A Scalable Continuous Query System for Internet Databases, Proceedings of the 2000 ACM SIGMOD International Conference on Management of Data, May 14, 2000, 12 pages. [cited by applicant]
Chinese Application No. CN201380056012.X, Office Action, mailed on Jun. 1, 2017, 22 pages (12 pages of English Translation and 10 pages of Official Copy). [cited by applicant]
European Application No. 13776643.2, Office Action, mailed on May 3, 2018, 4 pages. [cited by applicant]
European Application No. 13776643.2, Office Action, mailed on Sep. 6, 2018, 7 pages. [cited by applicant]
European Application No. 13776643.2, Summons to Attend Oral Proceedings, mailed on Apr. 22, 2020, 11 pages. [cited by applicant]
European Application No. 13776643.2, Summons to Attend Oral Proceedings, mailed on Jul. 23, 2019, 9 pages. [cited by applicant]
Golab et al., Processing Sliding Window Multi-Joins in Continuous Queries Over Data Streams, Proceedings of the 29th Very Large Data Bases Conference, 2003, 12 pages. [cited by applicant]
Japanese Application No. JP2015-534680, Office Action, mailed on Aug. 22, 2017, 10 pages. [cited by applicant]
Kramer et al., Semantics and Implementation of Continuous Sliding Window Queries over Data Streams, Association for Computing Machinery Transactions on Database Systems, vol. 34, Issue 1, Apr. 2009, pp. 4:1-4:49. [cited by applicant]
Indian Application No. IN1806/CHENP/2015, First Examination Report, mailed on Feb. 21, 2020, 8 pages. [cited by applicant]
Tho et al., Zero-Latency Data Warehousing for Heterogeneous Data Sources and Continuous Data Streams, 5th International Conference on Information Integration and Web-based Applications Services, Sep. 2003, 11 pages. [cited by applicant]
U.S. Appl. No. 17/584,148, Non-Final Office Action mailed on Jun. 8, 2023, 28 pages. [cited by applicant]
U.S. Appl. No. 17/864,211 , “Non-Final Office Action”, Oct. 27, 2023, 18 pages. [cited by applicant]
European Patent Application EP13776643.2, Summons to Attend Oral Proceedings, mailed on Sep. 14, 2023, 25 pages. [cited by applicant]
U.S. Appl. No. 17/584,148, Notice of Allowance mailed on Feb. 7, 2024, 9 pages. [cited by applicant]
U.S. Appl. No. 17/864,211, “Final Office Action”, Apr. 10, 2024, 17 pages. [cited by applicant]
EP Office Action EP13776643.2, “Office Action” mailed, May 6, 2024, 9 pages. [cited by applicant]
U.S. Appl. No. 17/864,211, Final Office Action, Mailed on May 16, 2025, 18 pages. [cited by applicant]
U.S. Appl. No. 17/864,211, Non-Final Office Action, Mailed on Dec. 2, 2024, 18 pages. [cited by applicant]