Source: http://www.google.com/patents/US20020059183?dq=7,453,150
Timestamp: 2017-10-20 10:01:44
Document Index: 393103237

Matched Legal Cases: ['art 501', 'art 505', 'art 503', 'art 507', 'art 780', 'art 786', 'art 788', 'art 790', 'art 792']

Patent US20020059183 - Method and system for managing event attributes - Google Patents
The present invention provides techniques for managing and analyzing business information. Specific embodiments provide persons with business or other non-technical fields with the capability to create, edit, and work with data models, profiles, and reports for business and other information. Specific...http://www.google.com/patents/US20020059183?utm_source=gb-gplus-sharePatent US20020059183 - Method and system for managing event attributes
Publication number US20020059183 A1
Application number US 09/963,145
Also published as US7111010
Publication number 09963145, 963145, US 2002/0059183 A1, US 2002/059183 A1, US 20020059183 A1, US 20020059183A1, US 2002059183 A1, US 2002059183A1, US-A1-20020059183, US-A1-2002059183, US2002/0059183A1, US2002/059183A1, US20020059183 A1, US20020059183A1, US2002059183 A1, US2002059183A1
Original Assignee Li-Wen Chen
Patent Citations (8), Referenced by (91), Classifications (17), Legal Events (7)
Method and system for managing event attributes
US 20020059183 A1
opening said at least one of a plurality of nodes; and
11. A system for managing data, comprising:
a user interface (UI) driver logic that is operative to provide a user interface.
a dynamically linked library (DLL);
a ClsEventAttributeGUI;
a ClsEventAttributeGUI; and
a CIProcess logic.
wherein said processor is operative to receive an input of information indicating at least one of a plurality of events; and to receive for each event an input of at least one of a plurality of attributes; and thereupon, said processor is operative to display at least one node for each of said at least one of a plurality of events and to display at least one of a plurality of edges for at least two of said plurality of events; and wherein said at least one node for each of said at least one of a plurality of events and said at least one of a plurality of edges for at least two of said plurality of events form a graph; and thereupon said processor is operative to create a query to a database based upon said graph.
U.S. Provisional Patent Application Serial No. 60/235,390, to Li-Wen Chen entitled, “METHOD AND SYSTEM FOR ANALYZING CUSTOMER BEHAVIOR BASED UPON EVENT ATTRIBUTES,” filed Sep. 25, 2000;
U.S. Provisional Patent Application Serial No. 60/235,373, to Li-Wen Chen entitled, “USER INTERFACE AND METHOD FOR ANALYZING CUSTOMER BEHAVIOR BASED UPON EVENT ATTRIBUTES,” filed Sep. 25, 2000;
U.S. Provisional Patent Application Serial No. 60/309,214, to Li-Wen Chen entitled, “BUSINESS USER INTERFACE DESIGN SYSTEM AND METHOD,” filed Jul. 31, 2001; and
U.S. Provisional Patent Application Serial No. 60/309,633, to Li-Wen Chen entitled, “METHOD AND SYSTEM FOR MANAGING EVENT ATTRIBUTES,” filed Aug. 1, 2001.
1. U.S. patent application Ser. No.______, Li-Wen Chen entitled, “METHOD AND SYSTEM FOR MANAGING EVENT ATTRIBUTES,” (Attorney Docket Number 52719-00027); and
2. U.S. patent application Ser. No.______, Li-Wen Chen entitled, “USER INTERFACE AND METHOD FOR ANALYZING CUSTOMER BEHAVIOR BASED UPON EVENT ATTRIBUTES,” (Attorney Docket Number 52719-00028).
[0029]FIG. 1 illustrates a conceptual drawing of a representative architecture of a system suitable of embodying a decision support application in a specific embodiment of the present invention.
[0030]FIG. 2 illustrates a representative computer system suitable for implementing a specific embodiment of the present invention.
[0031]FIG. 3A illustrates representative software architecture in a specific embodiment of the present invention.
[0032]FIG. 3B illustrates representative software architecture in another specific embodiment of the present invention.
FIGS. 4A-4D illustrate representative types of information in a specific embodiment of the present invention.
FIGS. 5A-5D illustrate flowcharts of representative processes in a specific embodiment of the present invention.
[0035]FIG. 6A illustrates a representative login screen in a specific embodiment of the present invention.
[0036]FIG. 6B illustrates a representative screen for connecting to a repository in a specific embodiment of the present invention.
[0037]FIG. 6C illustrates a representative screen for selecting a project in a specific embodiment of the present invention.
[0038]FIG. 6D illustrates a representative menu screen in a specific embodiment of the present invention.
[0039]FIG. 6E illustrates a representative menu screen in a specific embodiment of the present invention.
FIGS. 6F-6G illustrate representative informational screens in a specific embodiment of the present invention.
[0041]FIG. 7A illustrates a representative business report definition screen in a specific embodiment of the present invention.
[0042]FIG. 7B illustrates a representative menu screen in a specific embodiment of the present invention.
[0043]FIG. 7C illustrates a representative set permissions screen in a specific embodiment of the present invention.
[0044]FIG. 7D illustrates a representative menu screen in a specific embodiment of the present invention.
[0045]FIG. 7E illustrates a representative information browsing interface in a specific embodiment of the present invention.
[0046]FIG. 7F illustrates a representative information browsing interface in a specific embodiment of the present invention.
[0047]FIG. 7G illustrates a pivot table list in a specific embodiment of the present invention.
[0048]FIG. 8A illustrates a representative new user cube definition interface in a specific embodiment of the present invention.
FIGS. 8B-8C illustrate a representative create new cube structure interface in a specific embodiment of the present invention.
FIGS. 8D-8E illustrate a representative cube filter interface in a specific embodiment of the present invention.
[0051]FIG. 9A illustrates a representative define profile interface in a specific embodiment of the present invention.
FIGS. 9B-9C illustrate a representative create new profile interface in a specific embodiment of the present invention.
FIGS. 10A-10B illustrate a representative define new segmentation code interface in a specific embodiment of the present invention.
FIGS. 10C-10E illustrate representative define segmentation code by percentage interfaces in a specific embodiment of the present invention.
FIGS. 10F-10G illustrate a representative define segmentation code by enumeration interface in a specific embodiment of the present invention.
[0056]FIG. 11 illustrates a representative profile interface in a specific embodiment of the present invention.
[0057]FIG. 12 illustrates a representative define target customer set interface in a specific embodiment of the present invention.
[0058]FIG. 13 illustrates a representative define event dialog in a specific embodiment of the present invention.
[0059]FIG. 14 illustrates a representative define event graph in another specific embodiment of the present invention.
[0060]FIG. 15 illustrates a representative define event attribute dialog in a specific embodiment of the present invention.
[0061]FIG. 16A illustrates a representative define node attribute dialog in a specific embodiment of the present invention.
[0062]FIG. 16B illustrates a representative define edge attribute dialog in a specific embodiment of the present invention.
[0063]FIG. 17A illustrates a representative event model diagram in a specific embodiment of the present invention.
[0064]FIG. 17B illustrates a representative event graph diagram in a specific embodiment of the present invention.
[0065]FIG. 17C illustrates a representative event based attribute diagram in a specific embodiment of the present invention.
Segmentation codes: One or more segmentation codes can be used to segment business data by defining ranges of attribute values. For example, a data attribute such as income level can be segmented into income levels of $0-$10,000; $10,001-$50,000; $50,001-$100,000; and over $100,000.
[0079]FIG. 1 illustrates a representative architecture of a system suitable for embodying a decision support application in a specific embodiment of the present invention. As shown in FIG. 1, in a specific embodiment, a system 100 for managing and analyzing information comprises a computer system 102, coupled to database 101, a metadata repository 110, and an optional input/output device(s) 108, which can be a console, display screen or the like. In specific embodiments, metadata repository 110 may be combined with or co-located with database 101. In some specific embodiments, one or both of metadata repository 110 and database 101 may be located on the computer system 102, while in alternative embodiments, one or both of metadata repository 110 and database 101 may be located on another computer system (not shown), which may be a server computer, for example. In some specific embodiments, a network may connect computer system 102 with a server computer having access to database 101 and/or metadata repository 110, so that a client-server relationship is established. However, a client-server relationship is not necessary to practice the invention.
[0081]FIG. 2 illustrates a representative computer system suitable for implementing a specific embodiment of the present invention. As shown in FIG. 2 a computer system 102 suitable for embodying a specific embodiment of the invention. Computer system 102 includes a bus 115, which interconnects a variety of components and subsystems. Bus 115 interconnects a central processor 114, a system memory 116, an input/output controller 118, a display screen 124 via a display adapter 126, a serial port 128, a keyboard 132, a fixed disk drive 144 via storage interface 134, and a removable disk drive 136. Removable disk drive 136 is operative to receive a removable disk 138. Many other devices may be connected to bus 115. For example, an external device such as a printer (not shown), and/or a scanner (not shown) may be connected via an I/O controller 118. Mouse 146 can be connected to serial port 128. A network interface 148 can be included to provide connectivity to one or more networks, including the Internet. Many other devices and subsystems (not shown) may be connected in a similar manner. Also, it is not necessary for all of the devices shown in FIG. 2 to be present to practice the present invention. Further, the devices and subsystems may be interconnected in different ways from that shown in FIG. 2 in various specific embodiments. Source code to implement the present invention may be operatively disposed in system memory 116 and/or stored on storage media such as fixed disk 144 or removable disk 138.
[0082]FIG. 3A illustrates representative software architecture in a specific embodiment of the present invention. Representative software architecture 300 in FIG. 3A comprises a plurality of software code that may be operatively disposed in system memory 116 and/or stored on storage media such as fixed disk 144 or removable disk 138 of FIG. 2. In a representative embodiment, software architecture 300 comprises a plurality of user services 302, a plurality of business services 304, and a plurality of data services 306.
[0085]FIG. 3B illustrates representative software architecture in another specific embodiment of the present invention. Representative software architecture 350 in FIG. 3B comprises a plurality of software code that may be operatively disposed in system memory 116 and/or stored on storage media such as fixed disk 144 or removable disk 138 of FIG. 2. In a representative embodiment, software architecture 350 comprises a plurality of user services 352, a plurality of business services 354, and a plurality of data services 356.
[0088]FIG. 4A illustrates a representative application information architecture capable of supporting a decision support application in a specific embodiment of the present invention. As shown by FIG. 4A, an architecture diagram 400 comprises of database 101 that contains information about a business process in a specific embodiment. The database 101 contains a plurality of data elements. The data contained within database 101 may be organized in a variety of different ways, which may be called schema. In a specific embodiment, database 101 is a relational database. A physical model 401 conceptualizes relationships between various data elements within database 101. Physical models, such as, for example relational models, provide one or more relationships between information elements, such as a customer, a transaction, a product, and so forth, stored in the relational database 101. Representative examples of physical models will be described herein with reference to specific embodiments of FIG. 4D. Physical model 401 may be derived from one or more subject models, such as subject model 301. Subject model 301 comprises a reverse star schema (RSS) relationship among a plurality of data elements stored in the database 101. Subject model 301 provides a way for users and consumers of the data in database 101 to think about the relationships among the data in a useful way. Representative examples of subject models will be described herein with reference to specific embodiments of FIG. 4C.
[0091]FIG. 4B illustrates a representative logical model in a specific embodiment of the present invention. In FIG. 4B, a logical model 201 for a single subject system in a specific embodiment is shown. Logical model 201 comprises a single business subject, such as customer, which is the center concept 412 of logical model 201. In various specific embodiments, the business subject could be product, sales, line of business or the like. Surrounding the center concept 412 are one or more static attributes 413, such as demographics of a customer, or geographic information about a customer. Further, one or more dynamic attributes 414 may be derived from the static attributes and activities/events 415. For example, one or more age levels may be derived from demographic information about the customer. Further, one or more activities and events 415 may be defined for the center concept 412. For example, a purchase transaction and a return transaction are activities/events relating to the center point customer. Accordingly, in FIG. 4B, the customer is the center concept 412, while geographic information and demographics are static attributes 413. These are merely representative examples of the many possible static attributes that may be used in various specific embodiments of the present invention. Purchase transactions 416 and return transactions 417 are examples of activities/events 415. Surrounding the static attributes 413 are one or more dynamic attributes 414, which may be derived from the static attributes 413 and/or from one or more activities and events 415. For example, one or more age levels, a dynamic attribute, may be derived from demographic information about the customer, a static attribute. One or more activities and events 415 may be defined for the center concept 412.
[0093]FIG. 4C illustrates a derived subject model in a specific embodiment of the present invention. In FIG. 4C, a derived subject model 301 corresponding to the logical subject model 201 of FIG. 4B in a specific embodiment is shown. Derived subject model 301 comprises a plurality of relationships between a plurality of groups and information entities in database 101, as illustrated by logical model 201. Logical model 201 provides a customer centric view, with the core component 420 comprising center concept 412, the customer. Accordingly, the derived subject model 301 comprises a customer entity 432. Static attributes are represented by a customer demographics entity 433, which comprises demographics information for each customer in customer entity 432, and a customer geographic entity 434, which comprises geographical information about each customer in customer entity 432. A purchase transaction entity 435 comprises merchant purchase transaction data, such as a time, a date, an amount, a description, and so forth, for a plurality of purchase transactions entered into by customers in customer entity 432. A return transaction entity 436 comprises merchant return transaction data, such as a time, a date, and a returning item, and so forth, for a plurality of return transactions entered into by customers in customer entity 432.
[0095]FIG. 4D illustrates a physical model in a specific embodiment of the present invention. In FIG. 4D, a physical model 401 corresponding to the derived subject model 301 of FIG. 4C in a specific embodiment is shown. Physical model 401 is a relational model that illustrates relationships between entities of customer, transaction, and product that are incorporated in information stored in the database 101. In a specific embodiment, the database is a relational database, however, other methods of storing and retrieving information may be used in various other specific embodiments as will be evident to those skilled in the art. In physical model 401, a plurality of dynamic attributes and profiles has been derived from the derived subject model 301. A star schema organization of the data entities in the focus group 421 is created dynamically by a software process in a specific embodiment. In a specific embodiment, C-INSight™, a product of MetaEdge Corporation, of Sunnyvale, Calif., provides the capability to dynamically derive attributes and profiles from static data and to create a star schema, and, hence a multidimensional cube, dynamically.
[0099]FIG. 5A illustrates a flowchart of representative process for cube generation in a specific embodiment of the present invention. As shown by flowchart 501 in FIG. 5A, the method for managing information comprises displaying one or more of profiles 502. Further, the method includes displaying one or more of cubes 504. An input from a user indicating a selected one from the one or more of profiles and a selected one from the one or more of cubes is received 506. The method also includes updating the selected one from the one or more of cubes with information from the selected one from the one or more of profiles 508. In a specific embodiment, during updating, at least one of the plurality of profiles is added into the selected one from the one or more of cubes replacing an existing dimension within the selected one from the one or more of cubes. In a specific embodiment, the one or more of profiles are redefined using segmentation codes and attributes. For example, a graphical user interface (GUI) may be used to provide input according to which the profiles are redefined. In a specific embodiment, attributes, profiles and segmentation codes are combinable to create new profiles.
[0101]FIG. 5C illustrates a flowchart of representative process for cube generation in a specific embodiment of the present invention. As shown by flowchart 505 in FIG. 5C, the user completes selection of a cube from which to derive a new user defined cube 532 using a process such as described herein above with reference to flowchart 503 of FIG. 5B, for example. Then, the user defines the new cube structure 534. The user can define a structure for a new cube based upon at least one component of an existing cube. Next, the user creates a new profile 536. In a specific embodiment, the user can create profiles by indicating a selected one from the one or more profiles, or redefine profiles from attributes, segmentation codes, and the like, by dragging and dropping the selected one from the one or more of profiles to the cubes.
[0102]FIG. 5D illustrates a flowchart of representative process for cube generation in a specific embodiment of the present invention. As shown by flowchart 507, attributes are selected 542 based upon events. Then, the attributes are segmented 544 using one or more segmentation codes. Profiles are formed 546 from the attributes and segmentation codes. Cubes are defined 548 based upon the profiles. Cube reports may be static reports or dynamic reports.
[0103]FIG. 6A illustrates a representative login screen in a specific embodiment of the present invention. In a specific embodiment, business users can login using either of a window interface and a web interface using a login panel 602. In a representative embodiment, the business user interface provides access to capabilities to create, edit, delete and process cubes, profiles, segmentation codes and reports, including static reports, offline dynamic reports and online dynamic reports. The business user can complete the login process by providing an identifier associated with the user into a user name field 604 and authentication information into a password field 606. The business user then clicks a login button 608 to commence authentication of the user as a business user having access privileges to create, modify, and work with cube reports, profiles, segmentation codes, and the like via a business user interface. In specific embodiments, a plurality of access permissions may be used to restrict access to the business user interface to business users. Other types of users can be blocked from viewing the business user interface.
[0104]FIG. 6B illustrates a representative screen for connecting to a repository in a specific embodiment of the present invention. In a specific embodiment, once a business user successfully completes the login process using the business user interface, the user will be presented with a repository selection panel 612 having a dropdown list 614 containing the available repositories that the current login user can access. The business user may scroll through the list of available repositories, select a repository of interest, and click submit button 616, in order to connect to the repository.
[0105]FIG. 6C illustrates a representative screen for selecting a project in a specific embodiment of the present invention. In a specific embodiment, once a business user successfully completes connecting to a repository, the business user will be presented with a project list selection panel 622. The project list selection panel 622 comprises a project navigation tree 624 comprising one or more projects 626. In one specific embodiment, each project 626 further comprises a cube report function 628 for generating dynamic reports, and a report function 629 for generating static reports. The business user may select a project 626 from the project navigation tree 624 using the mouse, keyboard, or other type of input device to begin a project.
[0106]FIG. 6D illustrates a representative menu screen in a specific embodiment of the present invention. In a specific embodiment, when a business user selects cube report function 628 of selection panel 622, the business user will be presented with a cube menu panel 632. Representative cube menu panel 632 includes a variety of options, including a My Cube 634, a Shared Cube 636, a New Cube 638, and a My Profiles 639. These options enable the user to work with dynamic cube reports, and will next be described in further detail with reference to select specific embodiments.
[0112]FIG. 6E illustrates a representative menu screen in a specific embodiment of the present invention. In a specific embodiment, when a business user selects static report function 629 of selection panel 622, the business user will be presented with a report menu panel 642. Representative report menu panel 642 includes a variety of options for creating and working with static reports, including a My Report 644 and a Shared Report 646 option. Representative report menu 642 further includes an About menu option 648 and a Help menu option 649. Selecting the About menu option 648 invokes a pop-up about window of FIG. 6F. Selection of the Help menu option 649 invokes a pop-up Help window of FIG. 6G. Static reports may be created from a cube, for example.
[0115]FIG. 7A illustrates a representative business report definition screen in a specific embodiment of the present invention. In specific embodiments, reports may be pre-defined or template based. Pre-defined reports comprise reports in which a user has defined the dimensions. Typically, pre-defined reports are not changed at run time. Template reports comprise reports, in which customer profile dimensions can be added, deleted, or edited at run time. For example, adding a new customer profiles dimension to a template report may be accomplished by dragging and dropping a profile. FIG. 7A shows a report panel 650 having a profile panel 652 and a report and template panel 654. Profile panel 652 has a plurality of profiles displayed therein. These profiles comprise a set of user-defined profiles. The user can add a profile, such as Profilel 656, to a template report, such as template report 658, by dragging and dropping the Profilel 656 icon to the Template report 658. If a user would like to edit or delete profiles from template report 658, the user can double click on the template report icon 658 to invoke a “define business report” dialog as shown in FIG. 7B. The user can drag and drop a profile from the profile panel 652 to the report and template panel 654 in order to create either a profile dimension or cube filter.
[0116]FIG. 7B illustrates a representative business report definition screen in a specific embodiment of the present invention. In a specific embodiment, when a business user selects a template report, such as template report 658 in FIG. 7A, a “define business report” dialog 702 shown in FIG. 7B will be brought up. Using the define business report dialog 702, the user can view the report organization and add/delete dimensions. A profile panel 704 provides icons for available profiles. A “define cube report” panel 706 shows dimensions and detail information for a profile selected from the profile panel 704. For example, Profilel 656 in the profile panel 704 comprises sales data that is arranged according to dimensions of income profile, channel, and product. To add a new profile dimension for the report, the user can drag a profile from profile panel 704 and drop it into the define cube report panel 706. New profiles may be defined by clicking a “New profile” button 708 to bring up a “define new profile” dialog, which will be described in further detail herein below.
[0117]FIG. 7C illustrates a representative menu screen in a specific embodiment of the present invention. In a specific embodiment, when a business user selects the My Cube 634 option on menu 632 in FIG. 6D, a My Cube interface 712 is presented to the user. In a specific embodiment, My Cube interface 712 provides a display area 714 in which a variety of information about cubes defined to the system can be displayed. For example, information such as a cube name 716, a description 718, a status 720, a date and/or time that the cube was last processed 722, one or more actions 724, a deletion selection option 726 and a process selection option 728 are displayed for cubes defined to the system in a specific embodiment. In a representative example, the user can select a particular cube by name, such as example cube “eventKeyDatel” as shown in display area 714. Selecting an edit option 730 from among actions 724 for this cube enables the user to edit an existing cube structure. The user can set permissions for the cube eventKeyDate 1 by selecting a set permissions option 734 from among actions 724. These permissions enable the user to allow group(s) of users to view the cube. Checking deletion selection option 726 and pressing submit button 736 deletes the cube. Checking process selection option 728 and pressing submit button 736 processes the cube. Processing can run in another machine, or in the same machine as the selection panel 712 in various specific embodiments. Selecting the cube name enables a browse data function. This option can invoke an online cube interface that will link to a cube. In specific embodiments, the cube can be viewed using OLAP, for example.
[0118]FIG. 7D illustrates a representative set permissions screen in a specific embodiment of the present invention. In a specific embodiment, when a business user selects the set permissions option 734 of selection panel 712, the business user will be presented with a permissions dialog panel 742. Representative permissions dialog panel 742 includes an all groups panel 744 and an object groups panel 746. Selecting from the all groups panel 744 and clicking a right arrow button 748 adds a selected group to the object groups panel 746. Selecting from the object groups panel 746 and clicking a left arrow button 750 removes a selected group from the object groups panel 746. In specific embodiments, a variety of groups can be granted various permissions. For example, in the representative permissions dialog panel 742, permissions for the following groups can be set:
[0121]FIG. 7E illustrates a representative menu screen in a specific embodiment of the present invention. In a specific embodiment, when a business user selects the Shared Cube 636 option on menu 632 in FIG. 6D, a Shared Cube interface 752 is presented to the user. In a specific embodiment, Shared Cube interface 752 provides a display area 754 in which a variety of information about shared cubes defined to the system can be displayed. For example, information such as a cube name 756, an owner name 757, a description 758, a status 760, and a date and/or time that the cube was last processed 762 are displayed for shared cubes defined to the system in a specific embodiment. Shared cube interface 752 allows a user to view another user's cube. For example, in a representative example, the user can select a particular shared cube by name, such as example shared cube “anna.test” 764 shown in display area 754. In a specific embodiment, the name can also serve as a link to an online cube if the cube has been processed successfully.
[0126]FIG. 7F illustrates a representative information browsing interface in a specific embodiment of the present invention. In a specific embodiment, when a business user selects the name of a shared cube 764 Shared Cube interface 752 in FIG. 7E, a shared cube browsing interface 772 is presented to the user. In a specific embodiment, shared cube browsing interface 772 provides a display area 774 in which a variety of information about the shared cube 764 defined to the system can be displayed. For example, in a shared cube browsing interface 772 comprises a cube name 776, a menu bar 778, a pivot chart 780, and a pivot table 782. Menu bar 778 comprises one or more options such as a pivot table view 784, a column chart 786, a bar chart 788, a line chart 790, an area chart 792, a view pivot table and chart option 794, and a close button 796.
[0127]FIG. 7G illustrates a pivot table list in a specific embodiment of the present invention. In a specific embodiment, when a business user selects by pressing a view pivot table and chart button 794 of shared cube browsing interface 772, the business user will be presented with a field list 798. The field list 798 provides a variety of fields that can be dragged to the pivot table 782.
[0128]FIG. 8A illustrates a representative new user cube definition interface in a specific embodiment of the present invention. In a specific embodiment, when a user clicks on a new menu popped up from a cube folder, a new user cube definition panel 812 is displayed. When the user creates a new cube from an existing cube, this step may be skipped. The new user cube definition interface panel 812 is invoked when the user clicks on New Cube menu on the top menu bar. The new user cube definition interface panel 812 comprises a my cube panel 814 and a public (shared) cube group panel 816. The user chooses a cube of interest from either My Cube group or Shared Cube group. The cube owner, status and description for the cube are displayed in cube properties box 818. When the user clicks the “Next” button 819, a create cube panel is displayed.
[0129]FIG. 8B illustrates a representative create new cube structure interface in a specific embodiment of the present invention. In a specific embodiment, the create new cube structure interface 820 may be used to build a new cube based on a designer cube or a business user cube. Create new cube structure interface 820 comprises an original cube structure window 822, that lists dimensions from a user-selected cube chosen from new user cube definition interface panel 812 of FIG. 8A. An attribute dimensions panel 824 lists attributes available for a user to use as dimensions in his/her new cube. A profile dimension panel 826 lists profiles available for a user to use as dimensions in his/her new cube. A new cube panel 828 lists dimensions selected for the new cube. When a user opens this dialog after selecting a cube, dimensions from the user-selected cube will be displayed in panel 828. A cube filter button 830 enables the user to invoke a cube filter interface, as discussed herein below with reference to FIG. 8D. A description link 832 invokes a description.
[0131]FIG. 8D illustrates a representative cube filter interface in a specific embodiment of the present invention. The cube filter interface 840 enables a user to define a filter based upon attributes. A representative cube filter interface 840 comprises a filter attributes panel 842 having a listing of one or more attributes that may be incorporated into a filter. A user can select particular ones from the filter attributes panel 842 using a mouse, touch screen or other pointing device, and add the selected filter attribute to a filter expression contained in a filter expression field 844 by clicking an insert filter attribute button 846. One or more relationship indications can be selected from a relationships panel 848, and adding the relationship by clicking the insert filter attribute button 846. A clear expression button 847 enables the user to start over, if desired. A syntax check is performed on the filter expression after the user clicks on an “OK” button 849. If the filter expression syntax is right, this window will be closed and the user can be returned back to a previous panel. If the syntax of the entered filter expression is not right, a message popup window 850, as shown in FIG. 8E, will appear to ask the user to retype the filter expression. This will narrow the chance of processing failure.
[0132]FIG. 9A illustrates a representative define profile interface in a specific embodiment of the present invention. Using a define new profile interface panel 900, the user can add new attributes into a existing profile by dragging one or more attributes, such as attribute 901, for example, from a left panel 902 and dropping the attributes into a profile, such as profile 903, for example, within a right panel 904. The user can also create a new profile by dropping an attribute into a profile named “Template profile” 906, which will create a new profile. The user can also edit a profile by right clicking on a profile icon and selecting the “Edit” function from a pop-up menu, or by double clicking the profile icon to start a Profile Editing dialog.
Further, the user can choose to define a new attribute for a profile by clicking a “New Attribute” button 908 at the bottom of the left panel 902. A new dialog will start, from which the user can select an event-based attribute, and select an event graph to create an event-based dynamic attribute, which is described in greater detail herein below with reference to FIGS. 11-17C. Alternatively, or in addition, the user can select a state-based attribute that will bring the user into an aggregation interface.
[0134]FIG. 9B illustrates a representative create new profile interface in another specific embodiment of the present invention. Using a create new profile interface panel 920, the user can create a new profile by using existing segmentation codes and attributes, including basic attributes, derived attributes, and event attributes. Create new profile interface panel 920 includes a new profile name field 922, a descriptive profile core table field 924, for receiving information about the new profile. An existing attributes panel 928 comprises a place to display one or more existing attributes from which the user may select to include in the new profile. An existing segmentation codes panel 926 comprises a place to display one or more existing segmentation codes from which the user may select to include in the new profile. The user can select one or more of the existing attributes and/or the existing segmentation codes for inclusion into the new profile using select and deselect arrow buttons 925. Alternatively, or in addition, the user can choose to create one or more new segmentation codes by clicking a new code button 927 to invoke a define new segmentation code interface panel 1000 of FIG. 10A. The newly generated profile will appear in a new profile list 929. The user can choose to add it to the new cubes. Clicking on a Save button 923 will create a new profile in the repository. FIG. 9C illustrates a representative save Profile confirm page in a specific embodiment of the present invention. The save profile confirm page 930 is displayed to provide the user with feedback that the profile was created successfully.
[0135]FIG. 10A illustrates a representative define new segmentation code interface in a specific embodiment of the present invention. Using a define segmentation code interface panel 1000, the user can create a segmentation code based upon an existing code or attributes. The user can click on an existing segmentation code to enable a new code button. The user can click on the new code button to invoke a new segmentation code interface panel 1000 in order to create a new code based on an existing code. Users can build a code segmentation expression by selecting from a list of available attributes. New segmentation code interface panel 1000 comprises a code name field 1002, a description field 1004, for displaying information about the code. A define segmentation code by range interface panel 1008 comprises a place to display area for one or more existing segmentation codes and ranges for the codes, code expressions, and code values from which the user may selectively choose to include in the new segmentation code. Once the user has input her selections, she can click a save button 1009 to invoke an error checking process for determining overlap of lower and upper bounds for the segmentation code. If an error is detected, an error check overlapping of lower bound and upper bound screen, such as error checking screen 1007 illustrated by FIG. 10B is displayed.
[0136]FIG. 10C illustrates a representative define segmentation code by percentage interface in a specific embodiment of the present invention. As illustrated by interface panel 1010 of FIG. 10C, segmentation codes can be divided evenly by percentage in a specific embodiment of the present invention. Define segmentation code interface panel 1010 comprises a code name field 1012, and a description field 1014 for displaying information about the code. A define segmentation code by percentage interface panel 1010 comprises a display area 1016 for displaying one or more existing segmentation codes, percentages for the codes, and code values. The user may selectively choose to divide the segmentation code evenly by clicking a Divide Evenly button 1018, or to divide the segmentation code randomly by clicking a Divide Randomly button 1020. Here, the user has chosen to divide the new segmentation code evenly, so a number of divisions field 1022 is provided to receive input of a number of divisions. After the user enters a desired number of divisions into the number of divisions field 1022, she can click a divide evenly button 1024 to apply the input to the segmentation code.
[0137]FIG. 10D illustrates a representative define segmentation code by percentage interface in a specific embodiment of the present invention. As illustrated by interface panel 1030 of FIG. 10D, segmentation codes can be divided randomly by percentage in a specific embodiment of the present invention. Define segmentation code interface panel 1030 comprises a code name field 1032, and a description field 1034 for displaying information about the code. A define segmentation code by percentage interface panel 1030 comprises a display area 1036 for displaying one or more existing segmentation codes, percentages for the codes, and code values. Here, the user has selectively chosen to divide the segmentation code randomly by clicking a Divide Randomly button 1038. Accordingly, a plurality of segmentation division fields 1040 is provided in display area 1036 in order to receive input of information about one or more segmentations. Once the user has input her segmentations, she can click a save button 1042 to invoke an error checking process for determining that the percentages entered total 100% for the segmentation code. If an error is detected, an error check summation screen 1046, such as illustrated by FIG. 10E is displayed.
[0138]FIG. 10F illustrates a representative define segmentation code by enumeration interface in a specific embodiment of the present invention. As illustrated by interface panel 1050 of FIG. 10F, segmentation codes can be divided by enumeration in a specific embodiment of the present invention. Define segmentation code interface panel 1050 comprises a code name field 1052, and a description field 1054 for displaying information about the code. Define segmentation code by enumeration interface panel 1050 comprises a display area 1056 for displaying one or more existing segmentation codes, enumerated values for the codes, and code values.
[0140]FIG. 11 illustrates a representative profile interface in a specific embodiment of the present invention. As illustrated by FIG. 11, a representative profile interface panel 1100 comprises of a list of profiles 1102, a list of segmentation codes 1104, an editing interface icon 1106, a set permissions page icon 1108, a delete profile or code check box 1110, and a process profile or code check box 1112. Clicking on editing interface icon 1106 will invoke an interface for editing profiles. Clicking on the set permissions page icon 1108 will invoke the set permissions page, enabling the user to grant or revoke access rights to profiles and/or codes. Checking check box 1110 will cause the deletion of an associated profile or code, and/or allow group deletion of profiles and/or codes. Checking process profile or code check box 1112 will enable the system to process the profile and/or code, and/or allow group processing of profiles and/or codes.
[0143]FIG. 12 illustrates a representative define target customer set interface in a specific embodiment of the present invention. Using a define target customer set interface panel 1200, the user can select a specific set of values, which can be either derived from a data mining modules, or based on specific analysis report from within a profile. A profile value set comprises a set of values comprising the ranges in a segmentation of one or more attributes in the profile. For example, if an income attribute is segmented according to $0-$10,000.00, $10,001.00-$50,000.00, and over $50,001.00, the profile value set comprises the various income levels in this segmentation, i.e., $0, $10,000.00, $10,001.00, $50,000.00, and $50,001.00.
EventGraphName(EventName1->EventName2-> . . . →EventNamen)
Means to define event graph containing EventName1 follows by EventName2 follows By . . . EventNamen
Analogously, a data structure can be defined for each of the event attributes in an event graph. For example, an event attribute object can be assigned an event attribute name, an event graph name, corresponding to an event graph having the event attributes, and a series of one or more event names. This may be expressed as indicated by the notation shown below:
EventGraphName (EventNamei(fi, di), . . . , EventNamej(fj,dj)) means EventNamei, . . . , EventNamej are selected in eventgraph EventGraphName with fi is node filter expression and di is duration expression.
[0171]FIG. 14 illustrates a representative define event graph in another specific embodiment of the present invention. A define event graph dialog 1420 comprises a name field 1422, a description field 1424, an event list 1426, a centric entity 1427, and a graph area 1428, in which a user can enter information in order to build an event graph 1430. The event list 1426 shows the defined events by short description which points to a triple event table/event column/event value. A user can give event graph 1430 a name and a description by entering this information into name field 1422 and description field 1424, respectively. The user can drag and drop events from event list 1426 to graph 1430 in the graph area 1428 in order to make event nodes, such as event node 1432 in the graph 1430. The user may drag from a first node 1432 to a second node 1434 to form an edge 1436 in the graph 1430 in order to indicate a time order dependency between the first and second nodes. Once the user has completed entering information, clicking a ‘save’ button 1438 causes entered information to be saved in repository 110. A valid graph is comprised by event nodes that contain same event timestamp column and event type column (if any) in the event tables, as shown below:
[0172]FIG. 15 illustrates another representative define event attribute dialog in another specific embodiment of the present invention. A define event attribute dialog 1520 comprises an attribute name field 1522, a description field 1524, an event graph pull down list 1526, and a graph area 1528, in which a user can enter information directly into nodes in an event graph 1530. In define event attribute dialog 1520, users may left click a node to select an event and/or right click a node to bring up a node filter expression dialog. Users can left click then right click an edge to specify a duration condition. In a specific embodiment, edges have a default condition of:
timestamp (event1) <timestamp (event2) if no condition is specified.
Subscribe->terminate->resubscribe
[0179]FIG. 17A illustrates a representative event model diagram in a specific embodiment of the present invention. Event model 1700 comprises a plurality of nodes and connections. Nodes represent information in tables of database 101. Connections represent relationships between the nodes. An event node 1702 comprises a description and typevalue. Both of these components are of data type string, however in other embodiments other data types can be used. Further, other or different data may be included in the nodes, one or more of the nodes depicted in event model 1700 may not be used in some specific embodiments, and in many specific embodiments, other nodes may be included in addition to or instead of the depicted nodes of event model 1700. In FIG. 17A, event node 1702 is connected to a table node 1704, an EventTypeColumn node 1706, and an EventTStampColumn node 1708. Both EventTypeColumn node 1706, and EventTStampColumn node 1708 are connected to a Column node 1710.
[0180]FIG. 17B illustrates a representative event graph diagram in a specific embodiment of the present invention. Event graph 1750 comprises a plurality of nodes and connections. Nodes represent information. Connections represent relationships between the nodes. An EventGraph node 1752 comprises a description of an event graph, such as event graph 1430 of FIG. 14. The EventGraph node 1752 is connected to an EventGraphElem node 1754. The EventGraphElem node 1754 represents one or more elements in the event graph, such as nodes 1432 and 1434 of FIG. 14. The EventGraphElem node 1754 is connected to an Event node 1702 of FIG. 17A, and an Event Relationship node 1756. The Event Relationship node 1756 indicates a relationship for EventGraphElem node 1754. In some specific embodiments, other or different data may be included in the nodes, one or more of the nodes depicted in event graph 1750 may not be used in some specific embodiments, and in many specific embodiments, other nodes may be included in addition to or instead of the depicted nodes of event graph 1750.
[0181]FIG. 17C illustrates a representative event based attribute diagram in a specific embodiment of the present invention. Event based attribute model 1800 comprises a plurality of nodes and connections. Nodes represent information. Connections represent relationships between the nodes. EventGraph node 1752 of FIG. 17B is connected to an EventBasedAttrib node 1802, an EventGraphElemAttrib node 1804, and EventGraphElem node 1754 of FIG. 17B. The EventBasedAttrib node 1802 can provide attribute information about a specific event in the event graph. The EventGraphElemAttrib node 1804 is connected to an EventRelationshipAttrib node 1806 that can provide relationship attributes about the attributes in EventBasedAttrib node 1802. The EventRelationshipAttrib node 1806 is further connected to EventRelationship node 1756 of FIG. 17C. In some specific embodiments, other or different data may be included in the nodes, one or more of the nodes depicted in event based attribute model 1800 may not be used in some specific embodiments, and in many specific embodiments, other nodes may be included in addition to or instead of the depicted nodes of event based attribute model 1800.
Event1 ----> Event2 ----> ... ---->EventN
contExpr1 cont1Expr2 ... contExprN
typeVal1 typeVal2 ... typeValN
durExpr1 durExpr2 durExprN
US8015140 * Aug 16, 2010 Sep 6, 2011 Fair Isaac Corporation Method and apparatus for recommendation engine using pair-wise co-occurrence consistency
US8886549 * Dec 30, 2005 Nov 11, 2014 Oracle International Corporation Incremental, real-time computation of aggregate expressions
US9703984 Jul 17, 2015 Jul 11, 2017 Mari Llc One way and two way data flow systems and methods
US20030187855 * Mar 27, 2002 Oct 2, 2003 International Business Machines Corporation Method of structuring a catalog
US20070005635 * Nov 30, 2005 Jan 4, 2007 Microsoft Corporation Importing database data to a non-database program
US20070162500 * Dec 30, 2005 Jul 12, 2007 Oracle International Corporation Incremental, real-time computation of aggregate expressions
US20080065626 * Sep 11, 2007 Mar 13, 2008 Sandeep Jain Contextually analyzing data in tabular and graphical reports
US20130212457 * Mar 26, 2013 Aug 15, 2013 Microsoft Corporation Creating and Inserting Links by Drag and Drop
EP1966721A1 * Nov 29, 2006 Sep 10, 2008 Microsoft Corporation Multi-dimensional aggregation on event streams
EP1966721A4 * Nov 29, 2006 Jul 22, 2009 Microsoft Corp Multi-dimensional aggregation on event streams
Cooperative Classification Y10S707/99943, G06F17/30398, G06Q10/10, G06F17/30554, G06Q10/06, G06F17/30592
European Classification G06Q10/06, G06Q10/10, G06F17/30S4F5, G06F17/30S8M, G06F17/30S4V
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CHEN, LI WEN;REEL/FRAME:012212/0664