| CPC G06F 16/287 (2019.01) [G06F 3/04812 (2013.01); G06F 3/04817 (2013.01); G06F 16/2246 (2019.01); G06F 16/2453 (2019.01); G06F 16/24535 (2019.01); G06F 16/2456 (2019.01); G06F 16/9027 (2019.01)] | 20 Claims |

|
1. A method for generating data visualizations using multi-fact object models, comprising:
at computing device having a display, one or more processors and memory storing one or more programs configured for execution by the one or more processors:
receiving a first user input specifying a first dimension data field and a second dimension data field for generating a first data visualization;
determining that the first dimension data field belongs to a first object of an object model and the second dimension data field belongs to a second object of the object model, distinct from the first object;
constructing a dimension subquery according to characteristics of the first dimension data field, the second dimension data field, the first object, and the second object, including:
determining a join type for combining (i) first data rows that include data values of the first dimension data field and (ii) second data rows that include data values of the second dimension data field; and
constructing the dimension subquery according to the determined join type, the dimension subquery referencing the first object and the second object;
executing the dimension subquery against one or more data sources corresponding to the first dimension data field and the second dimension data field to retrieve first tuples that comprise unique ordered combinations of data values for the first dimension data field and the second dimension data field;
constructing one or more measure subqueries, each of the measure subqueries referencing one or more measure data fields in the object model;
executing the one or more measure subqueries to retrieve second tuples;
forming extended tuples by combining the retrieved first tuples and the retrieved second tuples; and
generating and displaying the first data visualization according to the extended tuples.
|