The present application is related to application Ser. No. 11/396,174 filed Mar. 3, 2006, entitled “Auto-Generating A Report Based On Metadata”.
The present subject matter relates to the field of computing, and more particularly, to databases, although databases are merely an exemplary and non-limiting field of the presently disclosed subject matter.
A typical database may contain hundreds if not thousands of entities. Such entities may relate to other entities in a myriad of ways. If users want to perform queries on such entities, for instance, to look up certain attributes associated with the entities, they may perform a database search that will result in a report. Such a report, moreover, may have a myriad of data elements as a result of the queries. However, if the report does not reflect exactly the contents of the intended queries or results the users hoped for, the queries may have to be performed again. Alternatively, the reports themselves may be further probed in order to arrive at the desired result—for example, by writing complex algorithms to capture the result.
Ad-hoc reports are an excellent way to empower end users to get exactly the information they may need or want. However, ad-hoc reports typically suffer from a lack of interactivity. Analytical views, on the other hand, may provide rich interactivity, but suffer from a lack of flexibility to get exactly the data needed (without involving a technical designer to modify the database model that underlies the views). Thus, to emulate the interactivity of analytical views and to provide the data honing ability of ad-hoc reports, it would be advantageous to provide mechanisms that allow for rich interactivity and flexibility when a user creates an ad-hoc report.
The above mentioned mechanisms allow for drilling on data elements in arbitrary ad-hoc reports, thereby allowing users to flexibly interact with such reports. In one aspect of the presently disclosed subject matter, an ad-hoc report is configured so that its data elements can be selected by users, thus allowing the users to drill through the ad-hoc report to data elements in other ad-hoc reports. For example, users can click on data elements in such ad-hoc reports to eventually arrive (potentially many clicks later) at other ad-hoc reports that contain data elements of interest to the users.
The aforementioned drilling is accomplished by using an original query associated with a data element in an ad-hoc report, a context of the click, and a granularity of a destination query associated with the new data element of interest. The original query provides the starting point of a drill, the granularity specifies the ending point of the drill, and the context of the click helps to determine the type of data elements the user is after. If a user clicks (or somehow otherwise selects) a specific data element in a first ad-hoc report, another ad-hoc report can be generated that will have data elements related to the former data elements.
It should be noted that this Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
The foregoing Summary, as well as the following Detailed Description, is better understood when read in conjunction with the appended drawings. In order to illustrate the present disclosure, various aspects of the disclosure are shown. However, the disclosure is not limited to the specific aspects discussed. The following figures are included:
Overview
Per the Brief Description of the Drawings,
Aspects of Drilling on Elements in Arbitrary Ad-Hoc Reports
Ad-hoc reports 102 may be at least partly based on the rich metadata 100, as well as analytical views 104. Those of skill in the art will readily appreciate the different kinds of entities, structures, and so on, which may be based on such rich metadata 100. Thus, Ad-hoc reports 102 may be of two varieties. Interactive (or dynamic) ad-hoc reports 106 and fixed ad-hoc reports 108. These latter types of reports 108, are fixed in that they may not provide for interactivity, such as drilling through to other data elements in other reports. The interactive reports 106, on the other hand, allow for user interaction so that users can, for example, click on data elements in these reports 106, and these data elements may lead the users to other data elements in other reports.
The analytical views 104, in contrast to ad-hoc reports 102 in general, typically allow for interactivity, but are limited capturing the types of data elements users may desire. Thus, for example, even though analytical views 104 may allow for user manipulation of data elements, the domain of such analytical views 104 may be limited by their underlying database model. Put in other words, while analytical view may provide for interactivity, they are not always adept at capturing the types of information users may be after.
Thus, interactive ad-hoc reports 106 provide the best of both worlds (from the ad-hoc world and the analytical view world), because they allow for interactivity and for easy capture (in ad-hoc fashion) of the types of data elements users may be interested in. The remaining discussion focuses on the various aspects of how drilling can be accomplished in ad-hoc reports, hence rendering them interactive.
In one such aspect,
Per
Interestingly, the user can then click 214 on this data element B 206 in report B 204, and thus generate other ad-hoc reports that will contain further data. In
To make the discussion so far more concrete, the following prosaic example is given. Ad-hoc report A 200 may be a report on the sales of a certain company. If an employee wants to see more details about sales and how they are related to, say, the products the company manufactures, that employee can click 212 on the sales data element (in this example corresponding to data element A 202). The click 212 may then link 218 to some products ad-hoc report—in this case, corresponding to report B 204. Once the employee sees the products data, he may yet again click 220 on some particular products data element to see, for example, the return rate for that product. The return rate, in turn, may be generated in another ad-hoc report (in
Such linking between ad-hoc reports leads to the subject matter shown in
Path A 318 may have data elements A 301, B 302, and C 304. Starting 300 at data element A 301, a user may wish to drill down on data element A 301 in order to get more details on this data element 301. Thus, a user may select or click on data element A 301 and thereby drill down 324 to an underlying data element B 302. For instance, if data element A 301 provides information for a particular customer, data element B 302 can provide the home address of that customer. Moreover, the user can keep drilling down 332 to a further data element C 304, which, for example, may have the daytime phone number of that customer. Another example of drilling down would be drilling from a yearly report down to a monthly report, down to a weekly report, down to a daily report, and so on.
However, the user can not only drill down on data elements, but may also drill through to other data elements along different paths. Thus, starting 300 with data element A 301 again, the user can select data element A 301 and drill through 326 to data element E 308, which is in path B 320. This data element E 308, for instance, can provide information regarding the region in which the customer resides. Such drilling through to data elements and drilling down to data elements can be infinite, since user can keep drilling without having to stop—assuming the data elements are linked in the first place (as they will be, given how rich metadata can associate reports—as discussed above).
To give one example of this infinite drilling capability of the presently disclosed subject matter, a user can start 300 at data element A 301, drill 326 to data element E 308 (in path B 320), then drill 328 to data element G 312 (in path C 322), then drill 330 to data element C 304 (taking the user back to path A 318), and finally drill 334 back to data element E 308. Of course, it may be the case that once at data element E 308, the user may drill down 334 to data element F 310, at which point the user may not be able to drill down anymore. However, because the drilling described herein is infinite, the user can drill back up to data element E 308 (hence the double directioned arrow; the other drill arrows are unidirectional only for simplicity's sake, to make the present discussion more manageable, simple, and clear—those of skill in the art will readily appreciate how user could also drill up on data elements).
Alternatively, even if a user reaches the bottom most data element (for example, the most specific data element on a path, per the daytime phone number example given above), such as data element C 304, the user can drill through 334 to some other data element (other than a data element directly above, as was the case with data elements E 308 and F 310, and as would be the case with data element 302). That other data element, in
Next, in another aspect of the presently disclosed subject matter,
Suppose, for instance, that a user has chosen to drill through to data element D 408 (shown along with its drill paths in dashed lines, to distinguish it from the other data elements and drill paths). Once at data element D 408, four possible choice are present. The user may drill through back to path A 420 and data element C 406; drill down to data element E 410; drill through to data element F 412 in path C 414; or, drill through to data element G 414 in path D 426. In one exemplary aspect of the presently disclosed subject matter, the user may have to select the drill path in the case where not enough information is present to determine which data element is desired based on the context of the selection.
When at data element D 408, the user can select, for example, to drill through to data element F 412. Upon arrival on this data element 412, the user may yet again have to select which drill path to choose (either to data element H 416 or data element G 414. The user may select data element G 414, which may be the intended data element which the user is after. Interestingly, when the user was present at data element D 408, he could have drilled directly from data element D 408 to data element G 414 (without having to go through data element F 412). In another aspect of the presently disclosed subject matter, suggestions can be provided to the user regarding the most efficient route to take in order to get to the desired result. Alternatively, given the rich connectivity of drilling mechanism, the user can arrive at the desired path in the manner favored by the user (perhaps the user may want to go through data element F 412 to arrive at data element G 414, since this former data element 412 may also be of interest to the user).
Next,
Thus, upon arrival at data element B 504, context information is sustained, so that the user can more easily hone in on the desired data element. Alternatively, if the user decides to go back to data element A 502, filter X is subtracted or discarded 512. If the user is back at data element A 502, such a user may drill through to another data element, such as data element C 506. With the drilling, another filter Y 503 can be added. Retaining of context as the user keeps clicking on data elements, allows the user to retain information where the user has been, which may aid the user in ultimately reaching his final destination.
Aspects of General Implementations of Drilling on Elements in Arbitrary Ad-hoc Reports
Next,
Finally, third, the granularity of the resulting query 606 is considered by the system 600. This means that the system 600 takes into account which level of specificity for a particular data element should be shown (the resulting query is the basis for the newly generated ad-hoc report that will contain the particular data element). One level of granularity could be an overview of this data element; another level could have all the details associated with this data element, and so on. This, of course, is merely an exemplary implementation, and those skilled in the art will readily recognize the myriad of other implementations that could be constructed in view of
Then, at block 704, drilling can be performed from the first data element to a second data element in a second ad-hoc report, where the second ad-hoc report is generated upon a selection of the first data element. As mentioned already, such drilling can be accomplished by using an original query associated with the first data element, a context of the selection, and a granularity of a destination query associated with the second data element.
As the loop from block 704 back to block 700 suggests, this process can be continued indefinitely, allowing users to drill down on data, drill through data, and so on. As indicated above already, drilling can be performed from one path, where the first data element resides, to a second path, where the second data element resides. Alternatively, drilling can be performed on a path containing both the first data element and the second data element. Furthermore, the implementation of
Lastly, while the present disclosure has been described in connection with the preferred aspects, as illustrated in the various figures, it is understood that other similar aspects may be used or modifications and additions may be made to the described aspects for performing the same function of the present disclosure without deviating therefrom. For example, in various aspects of the disclosure, drilling through on data elements in arbitrary ad-hoc reports was discussed. However, other equivalent mechanisms to these described aspects are also contemplated by the teachings herein. Therefore, the present disclosure should not be limited to any single aspect, but rather construed in breadth and scope in accordance with the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
5603025 | Tabb et al. | Feb 1997 | A |
5666528 | Thai | Sep 1997 | A |
5845278 | Kirsch et al. | Dec 1998 | A |
5937155 | Kennedy et al. | Aug 1999 | A |
6018733 | Kirsch et al. | Jan 2000 | A |
6160549 | Touma et al. | Dec 2000 | A |
6195653 | Bleizeffer et al. | Feb 2001 | B1 |
6539370 | Chang et al. | Mar 2003 | B1 |
6549907 | Fayyad et al. | Apr 2003 | B1 |
6584464 | Warthen | Jun 2003 | B1 |
6631402 | Devine et al. | Oct 2003 | B1 |
6801910 | Bedell et al. | Oct 2004 | B1 |
6804664 | Hartman et al. | Oct 2004 | B1 |
6829605 | Azzam | Dec 2004 | B2 |
6850933 | Larson et al. | Feb 2005 | B2 |
6925463 | Bhattacharjee et al. | Aug 2005 | B2 |
6993533 | Barnes | Jan 2006 | B1 |
6996569 | Bedell et al. | Feb 2006 | B1 |
7051038 | Yeh et al. | May 2006 | B1 |
7139766 | Thomson et al. | Nov 2006 | B2 |
7152200 | Albert et al. | Dec 2006 | B2 |
7222130 | Cras et al. | May 2007 | B1 |
7406468 | Larson et al. | Jul 2008 | B2 |
7720867 | Subramanian et al. | May 2010 | B2 |
20030225768 | Chaudhuri et al. | Dec 2003 | A1 |
20040034615 | Thomson et al. | Feb 2004 | A1 |
20040111410 | Burgoon et al. | Jun 2004 | A1 |
20040139102 | Vierich et al. | Jul 2004 | A1 |
20050034064 | Meyers et al. | Feb 2005 | A1 |
20050039033 | Meyers et al. | Feb 2005 | A1 |
20060184584 | Dunn et al. | Aug 2006 | A1 |
20070130517 | Wu | Jun 2007 | A1 |
20070233680 | Carlson et al. | Oct 2007 | A1 |
Number | Date | Country |
---|---|---|
1 265 871 | Feb 1990 | CA |
9909492 | Feb 1999 | WO |
WO 0155937 | Aug 2001 | WO |
Number | Date | Country | |
---|---|---|---|
20070233666 A1 | Oct 2007 | US |