IP Library Granted Patent US 12,326,877
Granted Patent B2
US 12,326,877 · App. 17/378,896 · Granted Jun 10, 2025

Methods and systems for multi-dimensional aggregation using composition

Inventors: Nathaniel Davidson (Raanana, IL); Igor Makhlin (Haifa, IL); Alex Vladimir Popovich (Netanya, IL); Raman Walia (Bangalore, IN); Boris Grinblat (Tel Aviv, IL); Uri Kochavi (Tel Aviv, IL)
Assignee: Open Text Corporation
G06F16/283G06F9/3895G06F16/244G06F16/24556G06F17/175G06Q10/06
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,326,877
App. No.
17/378,896
Filed
Jul 19, 2021
Granted
Jun 10, 2025
Kind
B2
Art Unit
2156
USPC
707/805
Abstract

Multi-dimensional aggregation using user interface workflow composition is described. Data for a computer implemented process is in a set of related data objects in a data store with each object in the set of related data objects representing an entity modelled in the process. A number of levels for a multi-dimensional aggregation associated with a request is determined where each level of the multi-dimensional aggregation represents a different dimension of data values to be aggregated. Data is aggregated at the levels of aggregation based on the relationships between parent objects and children objects. The data for a final level of aggregation is output to a user interface. The final result includes multiple dimensions of data.

Claims (66)

1. A system for multi-dimensional aggregation comprising:

a processor;

a non-transitory, computer-readable medium storing a set of instructions executable by the processor, wherein the set of instructions include instructions for:

storing data for a computer implemented process in a set of related data objects in a data store, each object in the set of related data objects representing an entity modelled in the process;

receiving a request generated responsive to a user interaction in a user interface of a workflow composition tool during workflow composition, the user interaction including user selection of a set of parent objects each having a set of children objects and user selection of an aggregation function to apply a multi-dimensional aggregation of data from the set of the user-selected parent objects and the set of children objects, the user-selected aggregation function selected by the user from a plurality of aggregation functions selectable from the user interface;

determining a number of levels for the multi-dimensional aggregation associated with the request, each level of the multi-dimensional aggregation representing a different dimension of data values to be aggregated,

wherein the multi-dimensional aggregation of data from the set of the user-selected parent objects and the set of children objects to be applied is configured for:

for each parent object in the set of parent objects:

retrieving children object data for a first level of multi-level aggregation for a related set of children objects related to that parent object,

aggregating the children object data to generate aggregated children object data for that parent object, and

outputting the aggregated children object data for use in a second level of multi-dimensional aggregation;

for the second level of multi-dimensional aggregation:

applying the user-selected aggregation function to parent object data from the set of parent objects to generate a data value for a first dimension of the multi-dimensional aggregation, and

applying the user-selected aggregation function using the aggregated children object data for each parent object to generate a data value for a second dimension of the multi-dimensional aggregation to generate a final result; and

outputting the final result to the user interface, the final result including multiple dimensions of data values.

2. The system of claim 1 , wherein the user interface is a drag and drop interface of the workflow composition tool that allows the user to drag a representation of the user-selected aggregation function from a list of aggregations functions into a work area, wherein the user interaction comprises a user dragging the representation of the user-selected aggregation function into the work area.

3. The system of claim 1 , wherein receiving the request comprises receiving the request at a server from a processor-based client application and wherein outputting the final result to the user interface comprises sending the final result from the server to the processor-based client application.

4. The system of claim 1 , wherein the set of instructions further comprises instructions for periodically determining whether aggregation is complete for each level of the multi-dimensional aggregation and outputting the final result to the user interface responsive to a determination that aggregation is complete for each level of the multi-dimensional aggregation.

5. The system of claim 1 , further comprising a computer memory coupled to the processor and a database, wherein aggregating the data for the related set of children objects to generate the aggregated children object data for each parent object comprises inserting the data for the related set of children objects in an instance table in the computer memory to enable aggregating the data for the related set of children objects, and wherein the set of instructions comprises instructions for storing the aggregated children object data in the database for use in a next level of the multi-dimensional aggregation.

6. The system of claim 1 , wherein retrieving data for the first level of multi-level aggregation from the related set of children objects comprises retrieving non-aggregated data from a data source table.

7. The system of claim 1 , wherein aggregating the data from the related set of children objects to generate the aggregated children object data for each parent object comprises applying a different function than the user-selected aggregation function.

8. The system of claim 1 , wherein outputting the final result to the user interface comprises creating a data source that has a list entity names, a list of fields, computed column definitions, aggregation field definitions, and structured query language statements for data retrieval.

9. The system of claim 1 , wherein the selectable plurality of aggregation functions comprises a counting function, a summing function, and an averaging function.

10. A computer program product comprising a non-transitory, computer-readable medium storing a set of instructions executable by a processor, wherein the set of instructions include instructions for:

accessing data for a computer implemented process from a set of related data objects in a data store, each object in the set of related data objects representing an entity modelled in the process;

receiving a request generated responsive to a user interaction in a user interface of a workflow composition tool during workflow composition, the user interaction including user selection of a set of parent objects each having a set of children objects and user selection of an aggregation function to apply a multi-dimensional aggregation of data from the set of the user-selected parent objects and the set of children objects, the user-selected aggregation function selected by the user from a plurality of aggregation functions selectable from the user interface;

determining a number of levels for the multi-dimensional aggregation associated with the request, each level of the multi-dimensional aggregation representing a different dimension of data values to be aggregated,

wherein the multi-dimensional aggregation of data from the set of the user-selected parent objects and the set of children objects to be applied is configured for:

for each parent object in the set of parent objects:

retrieving children object data for a first level of multi-level aggregation for a related set of children objects related to that parent object,

aggregating the children object data to generate aggregated children object data for that parent object,

and outputting the aggregated children object data for use in a second level of multi-dimensional aggregation;

for the second level of multi-dimensional aggregation:

applying the user-selected aggregation function to parent object data from the set of parent objects to generate a data value for a first dimension of the multi-dimensional aggregation, and

applying the user-selected aggregation function using the aggregated children object data for each parent object to generate a data value for a second dimension of the multi-dimensional aggregation to generate a final result; and

outputting the final result to the user interface, the final result including multiple dimensions of data values.

11. The computer program product of claim 10 , wherein the user interface is a drag and drop interface of the workflow composition tool that allows the user to drag a representation of the user-selected aggregation function from a list of aggregations functions into a work area, wherein the user interaction comprises a user dragging the representation of the user-selected aggregation function into the work area.

12. The computer program product of claim 10 , wherein receiving the request comprises receiving the request at a server from a processor-based client application and wherein outputting the final result to the user interface comprises sending the final result from the server to the processor-based client application.

13. The computer program product of claim 10 , wherein the set of instructions further comprises instructions for periodically determining whether aggregation is complete for each level of the multi-dimensional aggregation and outputting the final result to the user interface responsive to a determination that aggregation is complete for each level of the multi-dimensional aggregation.

14. The computer program product of claim 10 , wherein aggregating the data for the related set of children objects to generate the aggregated children object data for each parent object comprises inserting the data for the related set of children objects in an instance table in a computer memory that is coupled to the processor, to enable aggregating the data for the related set of children objects, and wherein the set of instructions comprises instructions for storing the aggregated children object data in a database for use in a next level of the multi-dimensional aggregation.

15. The computer program product of claim 10 , wherein retrieving data for the first level of multi-level aggregation from the related set of children objects comprises retrieving non-aggregated data from a data source table.

16. The computer program product of claim 10 , wherein aggregating the data from the related set of children objects to generate the aggregated children object data for each parent object comprises applying a different function than the user-selected aggregation function.

17. The computer program product of claim 10 , wherein outputting the final result to the user interface comprises creating a data source that has a list of entity names, a list of fields, computed column definitions, aggregation field definitions, and structured query language statements for data retrieval.

18. The computer program product of claim 10 , wherein the selectable plurality of aggregation functions comprises a counting function, a summing function, and an averaging function.

19. A computer-implemented method for multi-dimensional data aggregation using workflow composition, the method comprising:

accessing data for a computer implemented process from a set of related data objects in a data store, each object in the set of related data objects representing an entity modelled in the process;

receiving a request generated responsive to a user interaction in a user interface of a workflow composition tool during workflow composition, the user interaction including user selection of a set of parent objects each having a set of children objects and user selection of an aggregation function to apply a multi-dimensional aggregation of data from the set of the user-selected parent objects and the set of children objects, the user-selected aggregation function selected by the user from a plurality of aggregation functions selectable from the user interface;

determining a number of levels for the multi-dimensional aggregation associated with the request, each level of the multi-dimensional aggregation representing a different dimension of data values to be aggregated,

wherein the multi-dimensional aggregation of data from the set of the user-selected parent objects and the set of children objects to be applied is configured for:

for each parent object in the set of parent objects:

retrieving children object data for a first level of multi-level aggregation for a related set of children objects related to that parent object,

aggregating the children object data to generate aggregated children object data for that parent object, and

outputting the aggregated children object data for use in a second level of multi-dimensional aggregation;

for the second level of multi-dimensional aggregation:

applying the user-selected aggregation function to parent object data from the set of parent objects to generate a data value for a first dimension of the multi-dimensional aggregation, and

applying the user-selected aggregation function using the aggregated children object data for each parent object to generate a data value for a second dimension of the multi-dimensional aggregation to generate a final result; and

outputting the final result to the user interface, the final result including multiple dimensions of data values.

20. The method of claim 19 , wherein the user interface is a drag and drop interface of the workflow composition tool that allows the user to drag a representation of the user-selected aggregation function from a list of aggregation functions into a work area, wherein the user interaction comprises a user dragging the representation of the user-selected aggregation function into the work area.

21. The method of claim 19 , wherein receiving the request comprises receiving the request at a server from a processor-based client application and wherein outputting the final result to the user interface comprises sending the final result from the server to the processor-based client application.

22. The method of claim 19 , further comprising:

periodically determining whether aggregation is complete for each level of the multi-dimensional aggregation and outputting the final result to the user interface responsive to a determination that aggregation is complete for each level of the multi-dimensional aggregation.

23. The method of claim 19 , wherein aggregating the data for the related set of children objects to generate the aggregated children object data for each parent object comprises inserting the data for the related set of children objects in an instance table in a computer memory that is coupled to the processor, to enable aggregating the data for the related set of children objects, and wherein the set of instructions comprises instructions for storing the aggregated children object data in a database for use in a next level of the multi-dimensional aggregation.

24. The method of claim 19 , wherein retrieving data for the first level of multi-level aggregation from the related set of children objects comprises retrieving non-aggregated data from a data source table.

25. The method of claim 19 , wherein aggregating the data from the related set of children objects to generate the aggregated children object data for each parent object comprises applying a different function than the user-selected aggregation function.

26. The method of claim 19 , wherein outputting the final result to the user interface comprises creating a data source that has a list of entity names, a list of fields, computed column definitions, aggregation field definitions, and structured query language statements for data retrieval.

27. The computer-implemented method of claim 19 , wherein the selectable plurality of aggregation functions comprises a counting function, a summing function, and an averaging function.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2021
From: EMC CORPORATION
To: OPEN TEXT CORPORATION
Reel/Frame 057438/0597 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2021
From: DAVIDSON, NATHANIEL; MAKHLIN, IGOR; POPOVICH, ALEX VLADIMIR; WALIA, RAMAN; GRINBLAT, BORIS; KOCHAVI, URI
To: EMC CORPORATION
Reel/Frame 057454/0947 →
Continuity (9)
Continuation 16222991 · Dec 17, 2018
Continuation 16272296 · Feb 11, 2019
Continuation 13538928 · Jun 29, 2012
Continuation 13538889 · Jun 29, 2012
Continuation 13538889 · Jun 29, 2012
Continuation 16222991 · Dec 17, 2018
Continuation 13538928 · Jun 29, 2012
Continuation 13538889 · Jun 29, 2012
Related Publication 20210342367A1 · Nov 4, 2021
References Cited (79)
US 5191525A · LeBrun et al. · 1993 [cited by applicant]
US 5713020A · Reiter · 1998 [cited by applicant]
US 6163774A · Lore · 2000 [cited by applicant]
US 6405207B1 · Petculescu · 2002 [cited by applicant]
US 6775682B1 · Ballamkonda · 2004 [cited by applicant]
US 7165065B1 · Welton et al. · 2007 [cited by applicant]
US 7324983B1 · Morris · 2008 [cited by applicant]
US 7756739B2 · D'hers et al. · 2010 [cited by applicant]
US 9471800B2 · Ho et al. · 2016 [cited by applicant]
US 10169442B1 · Davidson et al. · 2019 [cited by applicant]
US 10235441B1 · Makhlin · 2019 [cited by applicant]
US 11068507B2 · Davidson et al. · 2021 [cited by applicant]
US 11068508B2 · Davidson et al. · 2021 [cited by applicant]
US 11868717B2 · Ho · 2024 [cited by applicant]
US 20020038229A1 · Shah · 2002 [cited by applicant]
US 20040083222A1 · Pecherer · 2004 [cited by applicant]
US 20040128289A1 · Cochrane et al. · 2004 [cited by applicant]
US 20040139061A1 · Colossi · 2004 [cited by applicant]
US 20040243593A1 · Stolte · 2004 [cited by applicant]
US 20050060325A1 · Bakalash · 2005 [cited by examiner]
US 20050138001A1 · Mittal et al. · 2005 [cited by applicant]
US 20050177814A1 · Martlage · 2005 [cited by examiner]
US 20050182703A1 · D'hers · 2005 [cited by applicant]
US 20060161525A1 · Bordawakar et al. · 2006 [cited by applicant]
US 20060242180A1 · Graf et al. · 2006 [cited by applicant]
US 20060294129A1 · Stanfill · 2006 [cited by applicant]
US 20070233644A1 · Bakalash et al. · 2007 [cited by applicant]
US 20080027957A1 · Bruckner · 2008 [cited by applicant]
US 20080243660A1 · Amemiya · 2008 [cited by examiner]
US 20080294596A1 · Xiong · 2008 [cited by applicant]
US 20090006997A1 · Jiang · 2009 [cited by examiner]
US 20090013281A1 · Helfman · 2009 [cited by applicant]
US 20090018996A1 · Hunt · 2009 [cited by examiner]
US 20090049372A1 · Goldberg · 2009 [cited by applicant]
US 20090119309A1 · Gibson · 2009 [cited by applicant]
US 20090144307A1 · Bestgen · 2009 [cited by examiner]
US 20100017395A1 · Wayn · 2010 [cited by applicant]
US 20100057700A1 · Williamson · 2010 [cited by applicant]
US 20100058248A1 · Park · 2010 [cited by examiner]
US 20100246999A1 · Tillberg et al. · 2010 [cited by applicant]
US 20100313127A1 · Gosper · 2010 [cited by examiner]
US 20110054860A1 · Guild · 2011 [cited by applicant]
US 20110295836A1 · Bolsius · 2011 [cited by applicant]
US 20120143870A1 · Ballard · 2012 [cited by applicant]
US 20120158165A1 · Bohm · 2012 [cited by examiner]
US 20120166616A1 · Meehan et al. · 2012 [cited by applicant]
US 20120173519A1 · Buessow · 2012 [cited by applicant]
US 20120216290A1 · Roy et al. · 2012 [cited by applicant]
US 20120330996A1 · Chang et al. · 2012 [cited by applicant]
US 20150213283A1 · Ho et al. · 2015 [cited by applicant]
US 20160179313A1 · Ho · 2016 [cited by applicant]
US 20190121817A1 · Davidson et al. · 2019 [cited by applicant]
US 20190171652A1 · Makhlin · 2019 [cited by applicant]
US 20210073531A1 · Ho · 2021 [cited by applicant]
US 20230005285A1 · Ho · 2023 [cited by applicant]
WO WO2012095839A2 · 2012 [cited by examiner]
Office Action for U.S. Appl. No. 13/538,928, mailed Jan. 2, 2014, 20 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 13/538,889, mailed Mar. 12, 2014, 31 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 13/538,928, mailed Jun. 3, 2014, 24 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 13/538,889, mailed Jul. 28, 2014, 36 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 13/538,928, mailed Apr. 8, 2015, 29 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 13/538,889, mailed May 6, 2015, 40 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 13/538,928, mailed Sep. 4, 2015, 34 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 13/538,889, mailed Oct. 2, 2015, 36 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 13/538,928, mailed Jun. 28, 2016, 36 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 13/538,889, mailed Jul. 20, 2016, 33 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 13/538,928, mailed Jan. 4, 2017, 35 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 13/538,889, mailed Jan. 19, 2017, 49 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 13/538,889, mailed Oct. 2, 2017, 61 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 13/538,928, mailed Oct. 2, 2017, 72 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 13/538,928, mailed Apr. 17, 18, 83 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 13/538,889, mailed May 9, 2018, 85 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 16/222,991, mailed Aug. 31, 2020, 37 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 16/272,296, mailed Sep. 10, 2020, 36 pgs. [cited by applicant]
Office Action issued for U.S. Appl. No. 16/953,561, mailed Mar. 29, 2022, 24 pages. [cited by applicant]
Office Action issued for U.S. Appl. No. 14/685,280, mailed Mar. 2, 2016, 6 pages. [cited by applicant]
Office Action issued for U.S. Appl. No. 17/940,777, mailed Mar. 27, 2023, 27 pages. [cited by applicant]
Notice of Allowance issued for U.S. Appl. No. 17/940,777, mailed Sep. 15, 2023, 12 pages. [cited by applicant]
Soderland, “Learning Information Extraction Rules for Semi-Structured and Free Text,” Machine Learning 34, © 1999, pp. 233-272. [cited by applicant]