text:
An integrated data mining and relational database management system is provided on a server. The data mining engine determines characteristics of relationships between input data values and an output data value that are obtained from a relational database (managed by the relational database management system). The integration allows direct conversion of data values from the relational database to data mining identifiers used for data mining operations by the data mining engine, and vice-versa. The integrated server also makes patterns uncovered during data mining (e.g., "understand" and "predict" information) available in virtual relational database tables that can be queried.
1. A computer program product, implemented on a machine readable medium, comprising instructions operable to:
integrate a relational database with a data mining engine; and
define a data mining model as a relational table, the data mining model providing multiple relationships between inputs and outputs and indicia of the importance of each relationship between an output and one or more inputs.
2. The computer program product of
3. The computer program product of
4. The computer program product of
5. The computer program product of
6. The computer program product of
7. The computer program product of
8. The computer program product of
9. The computer program product of
10. The computer program product of
11. The computer program product of
12. The computer program product of
13. The computer program product of
14. The computer program product of
15. The computer program product of
16. The computer computer program product of
17. The computer program product of
18. The computer program product of
19. The computer program product of
20. The computer program product of
21. The computer program product of
22. The computer program product of
23. The computer program product of
24. The computer program product of
25. The computer program product of
26. The computer program product of
27. The computer program product of
28. A method of evaluating a query on a predict table in a data mining model, the predict table providing multiple relationships between input values and output values and configured to return a predicted output value in response to a query containing one or more input values, the method comprising:
(a) identifying an expression or sub-expression in a predicate of the query;
(b) identifying a start/stop condition from the expression or sub-expression;
(c) binding the start/stop condition to a column of the predict table; and
(d) passing column values constrained by the start/stop condition to data mining engine.
29. The method of
identifying a second sub-expression in the predicate; and
determining that the second sub-expression will be evaluated after receiving results of a data mining operation from the data mining engine.
30. The method of
31. The method of
32. The method of
33. A computer system comprising:
a relational database management system;
a data mining engine integrated with the relational database management system such that data values from a relational database managed by the relational database management system are directly converted to data mining identifiers used for data mining operations by the data mining engine, wherein said data mining engine determines characteristics of relationships between input data values and an output data value and wherein the input and output data values are obtained from the relational database.
34. The computer system of
35. The computer system of
a definition of one or more data mining sub-tables which are not populated with data values; and
one or more data model look up indexes specifying translations between values in the relational database and data mining identifiers used by the data mining engine to represent the relational database values.
36. The computer system of
37. The computer system of
38. A computer program product, implemented on a machine readable medium, comprising instructions operable to:
receive a create model statement at a relational database with data mining capabilities; and
define a data mining model including at least one of a model table, an understand table, a predict table, a binary table, and an index at the relational database with data mining capabilities.
39. The computer program product of
receive an insert statement; and
in response to receiving the insert statement:
populate the data mining model with data; and
provide information about patterns to at least one of the understand table, predict table, and binary table.
40. The computer program product of
receive a query of the understand table; and
identify relevant patterns that were uncovered during data mining.
41. The computer program product of
receive a query of a predict table; and
return a likely output for a given set of input values.
42. The computer program product of
download the data mining model to a client using the binary table; and
upload a data mining model defined at the client using the binary table.
This application claims priority under 35 USC 119(e) from U.S. Provisional Application No. 60/063,999, filed Oct. 14, 1997, naming Wagstaff et al. as inventors, and titled "SYSTEM AND METHOD FOR INTEGRATING DATA MINING INTO A RELATIONAL DATABASE MANAGEMENT SYSTEM." That application is incorporated herein by reference in its entirety and for all purposes.
The present invention relates to relational database management systems. More specifically, the invention relates to data mining applications for data stored in a relational database table.
Data mining is the process of discovering unexpected patterns or trends in existing data so that a database user can use the discovered knowledge to manage a business more effectively. For example, a typical application might study the demographic information known about a list of customers to create a profile of people most likely to buy a given product, respond to a direct mail campaign, or default on a loan.
Despite its name, "data mining" has little to do with "drill-down" queries; these types of queries are feasible in a data warehouse that has no data mining component. The difference between a data mining exercise and standard decision support queries lies in the analyst's approach to the data: standard queries are assumption-driven, whereas data mining is discovery-based.
For example, an analyst who writes a query that compares sales last year to sales this year is looking for an accurate result to a routine business question, while an analyst who mines sales data is looking for patterns or trends that might be interesting and useful to understand. If the sales comparison query reveals that sales this year are up 200% from last year in some stores but only 100% in others, for example, the analyst might want to mine the data to discover any unexpected reasons for this discrepancy.
In other words, the data warehouse application helps analysts understand what happened, while data mining applications attempt to tell analysts why it happened. It is useful for a retailer to know, for example, what factor had the greatest impact on sales of a given product, and whether the retailer can control that factor or take advantage of that knowledge. Any number of factors can influence sales—price, style, packaging, promotions, placement in the store, season, weather, day of week, time of day, and so on. Without requiring analysts to ask explicit questions about each possible factor, a data mining application can read very large volumes of data and discover both obvious and hidden trends.
A data mining exercise consists of two main phases: building a model and predicting future results. A model defines the influencing factors (input data) is and the potential outcomes (output values). If the data must be obtained from a large pool of data that already exists (e.g., a relational database), the model also defines how these factors and outcomes are selected and mapped from the larger pool of data. The set of inputs, which might be very large (100 or more), is a list of factors that might influence the output. The result of the data mining exercise is a much smaller list of inputs that individually or in combination with other inputs does influence the output.
In turn, the model provides the ability to predict an output given a set of input characteristics. For example, if the model accurately reflects the tendency of customers with certain attributes (age, gender, income, and so on) to purchase a luxury automobile, the discovered results can be compared with a list of prospective buyers to determine those most likely to make a purchase in the near future. Because models can be used independently or in conjunction with query analysis, a warehouse query might be issued to generate a promotional mailing list from a Customer table.
Categorization analysis (a subset of data mining) has useful applications in various industries—financial services, direct mail marketing, telecommunications, insurance, healthcare, retail sales—as a means of solving business problems by leveraging a deeper knowledge of the targeted consumers. Some of these applications are as follows:
Promotion analysis—In retail sales, understanding which products customers often purchase in combination with other products can lead to changes and improvements to in-store displays, seasonal promotions, advertising campaigns, and general advertising strategies.
Churn analysis—In telecommunications, discovering the profile of individuals likely to switch (or not to switch) long-distance carriers helps find ways to attract long-term customers and discourage short-term customers from switching carriers.
Claims analysis—In insurance, isolating the characteristics of a good risk can save both time and money. In healthcare, cost-cutting measures can be discovered by analyzing the history of a claim and the profile of the claimant.
Customer profiling—In almost any business, discovering the demographic profile of consumers most likely to buy or use a given product is critical to maintaining a competitive edge. The ability to compile effective target mailing lists is a common result of good profiling.
Rate and usage analysis—In telecommunications, studying the details of customer calls helps analysts find ways to better serve customers and keep their business, as well as improve the day-to-day service available to those customers.
Fraud detection—In insurance, healthcare, and credit-card businesses, discovering the typical characteristics of a fraudulent claim or application helps analysts predict and prevent future fraudulent activity.
Various data mining products are available including "DataCruncher" from DataMind Corporation of San Mateo, Calif., "IBM Intelligent Miner" from IBM Corporation of Armonk, N.Y., and "MineSet" available from Silicon Graphics, Inc., of Redwood City, Calif. To use large data sets, all of these products must first retrieve data from a relational database (via SQL) and then convert the retrieved data to a flat file, and finally send that file to the data mining engine. Unfortunately, even if the data mining functionality can quickly and efficiently handle the large data sets it receives, the associated systems can convert and send the data only relatively slowly. First, the step of converting the database data to a flat file entails significant effort, including converting data types. Second, transporting the data to the data mining functionality typically involves sending the file over an ODBC connection. Unfortunately, transporting the large data sets necessary for many data mining projects over such connections is too slow for many applications. A related problem exists in providing the mined results back into a database. Specifically, other tools need to transfer the mined results back into the database, further increasing the overhead.
Further, some data mining products employ spreadsheets to provide the data used in the data mining operation and to display results of the operation. Without a mechanism for rapidly porting large data sets (from a large database for example), the size of the data sets employed with such products are limited. In addition to limiting application of data mining to relatively small data sets, this can limit the validity of models generated from the data.
In view of these limitations, a data mining system with improved performance would be desirable.
The present invention fills this need by providing an integrated data mining and relational database system. This is accomplished by eliminating the need to convert data to a flat file and export it from the relational database management system to a data mining engine. In addition, the invention makes patterns uncovered during data mining (e.g., "understand" and "predict" information) available in virtual relational database tables that can be queried.
Preferably, the relational database management system integrated with the data mining engine is integrated on a server. The data mining engine determines characteristics of relationships between input data values and an output data value that are obtained from a relational database (managed by the relational database management system). The integration allows direct conversion of data values from the relational database to data mining identifiers used for data mining operations by the data mining engine. It also allows identifiers output by the data mining engine to be converted back to the data values. As mentioned, prior data mining systems did not integrate data mining engines with relational database management systems. Therefore, they had to first convert data from the relational table to a flat file or other format before transferring that data to the data mining engine, which then converted the raw data to data mining identifiers for the process of data mining.
The integrated data mining engine and the relational database system of this invention allows users to create a data mining model that includes a model table specifying input columns and an output column for rows of values from the relational database. Note that the rows specify the relationships between the input values and the output value. Preferably, the model table includes a definition for the model but is not populated with data values. However, the model itself may include one or more data model look up indexes specifying translations between values in the relational database and data mining identifiers used by the data mining engine to represent the relational database values. One look up index may be a forward translation index configured to translate data values from the relational database to data mining identifiers. Another look up index may be a reverse translation index configured to translate data mining identifiers to corresponding data values from the relational database. The indexes allow data to be inserted for calculations by the data mining and rows to be constructed in response to user queries.
Another aspect of the invention relates to data mining models including a definition for a relational table providing multiple relationships between input values and output values and indicia of the "importance" of each relationship between an output and one or more inputs. Such relational tables are sometimes referred to as
Preferably, the relational table is not actually populated with data, but is tied to a data mining model so that the computer system can construct rows corresponding to the relationships in response to user queries. These rows can be displayed as views or otherwise presented to the user for review.
While the relational table may not be populated with data values, it does include a definition that may specify one or more columns for user specified outputs and inputs from a relational database. The rows of the table may specify relationships between input data values and an output data value. The definition may also specify one or more columns that indicate the importance of the relationships. For example, one column might be defined to contain values indicating occurrence counts for the relationships, another to contain occurrence frequencies for the relationships, and another to specify correlations for the relationships. Preferably, the importance of the relationships (however it is represented) is calculated by a data mining engine.
Yet another aspect of the invention provides a data mining model including a definition for a relational "
Another aspect of the invention provides a method of evaluating a query on a predict table in a data mining model. The method may be characterized as follows: (a) identifying an expression or sub-expression in a predicate of the query; (b) identify a start/stop condition from the expression or sub-expression; (c) binding the start/stop condition to a column of the predict table; and (d) passing column values constrained by the start/stop condition to a data mining engine. The method may require that expression meet certain criteria before its start/stop conditions will be bound to the column. If the expression or sub-expression does not meet these criteria, the DBMS may defer application of start/stop conditions (or even evaluation of start/stop conditions) until after receiving results of a data mining operation from the data mining engine. An example of a condition used to determine whether a start/stop condition should be applied before or after data mining is the condition that the expression or sub-expression be atomic and conjunctive. Further, the expression or sub-expression may have to compare a bindable value to a model input.
These and other features and advantages of the present invention will be detailed below with reference to associated drawings.
FIG. 1A is a block diagram illustrating a preferred architecture of this invention in which an integrated database (or warehouse) and data mine conducts rapid data mining operations in connection with a front-end tool.
FIG. 1B is a block diagram of a warehouse server of this invention including an integrated relational database and data mining model/engine.
FIG. 2 is a flow diagram illustrating an iterative technique for creating and using and refining a data mining model.
FIG. 3A is a process flow diagram depicting a procedure used by a database system to create a data mining model in accordance with one embodiment of this invention.
FIG. 3B is a diagram representing a "bucket name table" created by a system of this invention to keep track of ranges of continuous data values used in a data mining model.
FIG. 3C is a diagram representing a "composite" index for translating a bucket name to a corresponding identifier used by a data mining engine integrated with a relational database management system.
FIG. 3D is a diagram representing a reverse look up index for translating an identifier used by a data mining engine to an attribute used in a relational database.
FIG. 3E is a diagram representing forward look up indexes for translating an attribute used in a relational database to an identifier used by a data mining engine to integrated with a relational database management system.
FIG. 4 is a process flow diagram illustrating a procedure for inserting data into a model with data from a relational database.
FIG. 5A is a process flow diagram illustrating a procedure for selecting information from an "
FIG. 5B is a diagram of a relationship stream from a data mining engine and used by a database system to present information from an
FIG. 6A is a process flow diagram illustrating a procedure for selecting information from a "
FIG. 6B is a process flow diagram illustrating a procedure for pre-processing a predicate of a query on a
FIG. 6C is a process flow diagram illustrating a procedure for composing rows of data in response to a query on a
The present invention makes use of a data mining engine that calculates one or more values representing the importance of relationships chosen by a data mining user. The relationships represent a connection between an output value (e.g., whether or not popcorn was sold) and one or more input values (e.g., types of candy sold and types of drink sold). The data defining individual instances of these relationships may be obtained from a relational database. For example, one relationship used by the data mining engine might be that for customer A, a sale of chocolate (candy) and lemonade (drink) did not result in a popcorn sale. For customer B, a sale of a soda (drink) but no candy resulted in popcorn sale. For a customer C, a sale chocolate with a soda resulted in a popcorn sale. And for a customer D, a sale of licorice and no soda resulted in no popcorn sale.
In this example, the data mining user is interested in factors affecting the sale of popcorn. Do some products go with popcorn more naturally than others do? Obviously, more profound and complex data mining investigations can be performed. For now, just recognize that a large group of relationship instances of a standard form (e.g., input CANDY, input DRINK, output POPCORN SALE (yes or no)) are examined by the data mining engine to determine the importance of each of them or of groups of them. The "importance" may take the form of a correlation between specific inputs and a specific output, the discrimination between the two different relationships having the same inputs (but different outputs), the occurrence rate of a particular relationship instance (a gauge of the statistical validity of the result), etc.
This invention assumes that the data mining engine properly performs its role of analyzing the relationships and outputting the importance of the various relationships. It is not concerned with the calculations that make up the data mining operation. The invention is directed to ways in which the data mining engine and a relational database system (e.g., a RDBMS) are integrated. Preferably, they are tightly integrated such that the data mining engine can perform its calculations without transferring large blocks of data from a remote database. Preferably, the integration also allows the relationships provided by the user and the information calculated by the data mining engine to be analyzed in relational tables. By using an RDBMS, the entire process of building a data mining model and using it for understanding and prediction may be done with a standard (or slightly extended) set of SQL commands.
Some suitable data mining engines work on compact data mining identifiers that represent values comprising the relationship instances. For example, "chocolate" may be represented by the identifier "56." The reason for using identifiers is that the data mining engine can manipulate small identifiers much easier than it can the corresponding text strings, floating point values, images, etc. that are stored in a database. An example of a suitable data mining engine for use with this invention is the "DataCruncher" from DataMind Corporation.
FIG. 1A represents a client server architecture that may be used with the database systems of this invention. As shown, a network 3 includes a server 5 that services requests from a network client 7. Server 5 includes a relational database management system 9 (e.g., a Data Warehouse such the Red Brick Warehouse available from Red Brick Systems, Inc. of Los Gatos, Calif.) integrated with a data mining engine 11. Preferably, RDBMS 9 and data mining engine 11 are so tightly integrated that they appear as single server to client 7—which communicates directly with the RDBMS. The result of this integration is one product—a data warehouse RDBMS with data mining capabilities as well as ad hoc query analysis functions. Preferably, all capabilities and functions of server 5 are accessible via SQL, using a conventional SQL-based front-end tool running on client 7, for example.
Generally, the servers and/or the clients of this invention may be specially constructed for the required purposes, or, more typically, may be a general purpose programmable machine selectively activated or reconfigured by a computer program stored in memory. The processes presented herein are not inherently related to any particular computer or other computing apparatus. In one specific example, server 5 (including RDBMS 9 and data mining engine 11) runs on a single machine such as a computer running a UNIX or Microsoft Windows NT operating system. In a specific example, client 7 runs on a PC or workstation.
Because the information (tables, indexes, and certain other data structures) and program instructions may be employed to implement the data mining systems/methods described herein, the present invention relates to machine readable media that include program instructions, tables, indexes, etc. for performing various operations described herein. Examples of machine-readable media include, but are not limited to, magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROM disks; magneto-optical media such as floptical disks; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory devices (ROM) and random access memory (RAM). Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter.
Data mining in the relational database engine is accomplished by building models that behave like tables. FIG. 1B shows how a relational database serves as the data source for a data mining model, which consists of the parent "table" and three child "sub-tables."
As shown in FIG. 1B, network 3, server 5, client 7, and data mining engine 11 exist in the configuration shown in FIG. 1A. However, server 5 is shown in more detail. RDBMS server 5 includes a collection of tables 21 that together provide the data necessary to populate a data mining model 25. Data from tables 21 is represented in a "model" 27 within the umbrella data mining model 25. Model 27 lists the user-defined output and various inputs defining the relationship instances for data mining. Preferably, the model does contain data, but only unique data. For example, in the popcorn example, no matter how many users buy "soft drinks," only one instance of the value "soft drink" exists in the model and it is associated with a data mining identifier. Data mining engine 11 keeps a count of the occurrences of the "soft drink" value in the data set. As a user refines his or her model, inputs and outputs may be inserted into or deleted from model 27. In a specific example, the inputs and outputs correspond to columns from tables 21.
The descriptions of the sub-tables are created automatically when the model is created. Specifically, the system creates an
Still further, data mining model 25 communicates with data mining engine 11, which includes an internal model data object 39 containing the identifiers used by the data mining engine during the discovery process. In essence, internal model data object 39 represents the relationships specified in model 27 via data mining identifiers that the data mining engine can manipulate during discovery. It keeps count of the occurrences of each value (identifier) in the data set. It also recognizes the input and output columns defined for the model, but it is populated with identifiers rather than data values of the database. Data object 39 provides a link between the data mining model 25 (part of the RDBMS) and data mining engine 11.
The integrated data mining RDBMS systems of this invention may be used in an iterative process:
1. Create a model.
2. Populate the model to perform discovery.
3. Query the
4. Refine the model as required.
5. Use the model for prediction.
The first four steps represent a complete phase in the process that might be called the model-building phase. These steps are likely to be performed by an application developer—someone very familiar with the RDBMS and SQL. The fifth step represents a second phase that is more likely to be of interest to business analysts. Predictive models may be typically shared and reused among various decision-making groups connected to the same data warehouse.
FIG. 2 illustrates the iterative nature of a data mining process 201. Initially, an application developer creates a model at a step 203. This may involve defining the inputs, outputs, and other relevant model parameters in a
Next, at a step 205, the developer instructs the RDBMS to insert data into the model (via an
Next, at a step 207, a user queries
A preferred embodiment will be described below in which a data mining engine is closely integrated with a relational database management system through a series of data mining specific SQL statements and through a collection of indexes which translates values from a relational database to simpler "identifiers" used by a data mining engine. It should be understood that this invention is not limited to this particular collection of SQL statements or indexes. In fact, the invention is not necessarily limited to use with data mining engines that employ simple identifiers of the type described below ("data mining identifiers" or DMIDs). For the sake of illustration, the invention will be described with respect to a data mining engine resembling the "DataCruncher" made available by DataMind Corporation.
Referring now to FIG. 3A, a process for creating a model in accordance with one embodiment of this invention is depicted. This process corresponds to step 203 of FIG. 2. Initially, the system (e.g., server 5) receives a
create model popcorn (candy char (20) input, drinks char (20) input, popcorn char (3) output);
The purpose of this model is to discover what combinations of candy and drink purchases at a chain of movie theaters tend to be accompanied by a purchase of popcorn (an example of categorization analysis). The Popcorn column contains the values "Yes" and "No," while the other two columns contain generic names of types of candy and drinks (for example, "Chocolate" and "Soda"). Although only two inputs are used here, any number of input columns could be added to the model, and multiple versions of the model could be created to "rotate" the columns. For example, a second model could have the Popcorn and Drinks columns as inputs and the Candy column as the output. Such "product grouping" analyses are common in the retail industry. The goal of these analyses is to discover what products tend to be bought or consumed together, then find ways to promote or facilitate the sales of those products.
After the system receives the
Next, at a step 307, the system creates definitions for a relational
Next, at a step 309, the system creates the definitions for a
After the system has created sub-tables as described, it next creates the definition for a DMID table for use with a reverse look up index (see step 311). This table stores DMIDs for all the values in all the input and output columns in the model. The nature and purpose of such table/index will be detailed below with reference to FIG. 3B. For now, simply recognize that this "reverse"index is used to translate DMIDs used by a data mining engine to corresponding values from the relational database. This table/index is not populated at this point. Space is allocated and the necessary definitions are created.
Next, at a step 313, the system creates definitions for one or more "forward" indexes on model input and output columns. A discussion of such forward indexes will be provided with reference to FIG. 3C. For now, recognize that such forward indexes are used to translate values from the relational database to corresponding DMIDs for use by the data mining engine. This index is not populated at this point. Space is allocated and the necessary definitions are created.
Any given input or output column in a model may have its values represented as ranges of discrete values (which appear in the relational database). A user might specify such ranges in a
mapping ranges (1/1 to 3/31 as 'Q1', 4/1 to 6/31 as 'Q2', 7/1 to 9/30 as 'Q3', 10/1 to 12/31 as 'Q4').
To keep track of such ranges (buckets) when considering values in the model, the system may create a bucket name table 331 as illustrated in FIG. 3D. This procedure is illustrated at a decision step 315 and a process step 317 in FIG. 3A. At step 315, the system determines whether the
In the example shown in FIG. 3B, the bucket name table includes a bucket name column, a range column, and a sequence number of the range (e.g., 0, 1, 2, or 3 for Q1, Q2, Q3, or Q4). The range column represents a range of discrete data values from the relational database which constitute a given bucket. In the example shown, the bucket names correspond to quarters of a year. Thus, for example, quarter 1 ("Q1") appears in the bucket name column and the corresponding value in the range column are the dates January 1 through March 31. The standard ranges are identified for Q2, Q3, and Q4 as illustrated. Note that a separate bucket name table may be created for each column that employs mapped ranges. Further, there may be a data type conversion associated with the values in a column that has been range mapped. Preferably, such conversions are implicit. The relationship between the range column and the mapped column is stored in the model. Both the pre-mapped column and the post-mapped column definitions are part of the model. In essence, one inserts into the pre-mapped column and selects from the post-mapped column.
After the bucket name table has been created and populated, the system creates and populates (step 319) a composite index on the DMID model table (defined at step 311). For each mapped range in the
The composite index is used to get the DMID associated with a mapped to range (sequence number) associated with a given column. Note that the system must obtain the DMID for each mapped range at this point (in order to populate the index). It may accomplish this by requesting the new DMIDs from the data mining engine. Similar operations will be described with reference to the
In this embodiment of the invention, the data mining engine uses DMIDs not only for representing specific data values in tables, but also for representing the columns themselves that house those data values in the model. This is important because it lets the data mining engine know the relationship between the model inputs and the model output.
Thus, after the system has created and populated any appropriate bucket name and composite tables at steps 317 and 319 (or after the system has determined that decision step 315 is answered in the negative), the system registers input and output columns for DMIDs usable by the data mining engine (see step 321). Registration accomplishes two sub-steps: (1) the DBMS receives DMIDs to identify each column and (2) the data mining engine receives notification that there is a relationship (indicated by specifying some columns as input columns and one column as an output column). Regarding the first of these sub-steps, the system must obtain the column DMIDs from the data mining engine as described for step 319. The DMID/column pairs that result are stored in the DMID model created at step 311. Regarding the second of these sub-steps, the system flags the DMIDs associated with output data columns so that the data mining engine understands these DMIDs to be output DMIDs.
Next, at a step 323, the system creates the definitions for the model table itself. This involves specifying all input columns and the output column for the model table itself. This step is analogous to steps 305, 307, and 309 for defining the three sub-tables of the model. Thus, the model table is not yet populated with data. The model table serves as a template to allow insertions, deletions, etc. of input and output data and columns in the model. This is particularly beneficial during model refinement (step 211 of FIG. 2). The model also serves as the object of any data insertions into the model.
Finally, at a step 325, the system sets any discrimination and/or occurrence thresholds as necessary; the use of such thresholds is described below. If the user has specified one or more of these thresholds in the
As noted at step 311, the system creates definitions for a reverse look up index. Such reverse look up index is illustrated in FIG. 3D. The left side of this diagram shows a definition 351 for the index as it might appear (logically) at the model creation phase of data mining. The index definition includes a DMID and an associated value from the relational database. Thus, index definition 351 includes a DMID column and a value column. The column number of model table 27 is stored in the index (as a third column) where a row ID is ordinarily stored (i.e., in an index on an ordinary table). The DMID portion of this key forms the leading component of the index to allow easy conversion of a DMID provided from the data mining engine to the associated relational database attribute value.
Because the data from the relational database that will be used to populate the model has not yet been identified to the system, the reverse look up index is unpopulated at this stage. Later, at the model population phase, the DMIDs for discrete data values from the relational database are specified as illustrated at the right side of the FIG. 3D (see index 351′).
As indicated at step 313 of FIG. 3A, the system also defines a forward index for each input and output column of the model. Again, because the model has not yet been populated with discrete values, this step merely defines the indexes and does not populate them. That is, it does not assign DMIDs for specific database values. This is illustrated in FIG. 3E where at the
Two distinctions from the reverse look up index (351) are worth noting. First, the leading component of the key is the relational database attribute, not the DMID. This is because the purpose of the forward index is to translate relational database values to DMIDs that can be provided to the data mining engine. Thus, the forward indexes are used to translate data from the relational database to the data mining engine. In contrast, the reverse index is used to translate data from the data mining engine to the relational database format. Second, a separate forward index is created for each attribute in the model. In is contrast, only a single reverse index is created, which includes all attributes in the model. This is because the system does not know which column a DMID is associated with until it looks it up in the index. Note that the forward indexes may be combined into a single index. In a preferred embodiment, the indexes described herein are implemented as B-Tree indexes.
The population phase (sometimes referred to as the
Each row reflects a sales transaction at a movie theater. The
insert into popcorn_model
select * from popcorn_view;
Logically, this statement selects all the rows and columns from the view and inserts them into the model. Although this is the simplest possible query, in most cases the
When the
Initially in process 400, the system gets the first row of the data at a step 401. This row will include multiple input columns and an output column. After the first row has been selected and made the " current row," the system gets the first column of that row at a step 403. This column of the first row is then made the "current column." During process 400, the system incrementally considers each row and each column of such row in a nested fashion. Thus, process 400 repeatedly loops back through steps 401 and 403 as detailed below.
After the current row and column have been selected (to define an intersection of a row and a column), the system determines, at a decision step 405, whether the value at that intersection is in a bucket. If so, the system translates the discrete value from the relational database (and associated with that column-row intersection) to a bucket value (see step 407 which may employ a bucket name table as in FIG. 3B). Assuming, on the other hand, that the system determines that the value at the current row-column intersection is not to be converted to a bucket value, the system next determines whether the associated relational database value exists in a forward index (such as the indexes depicted in FIG. 3E). See step 409. If so, this means that the value had been previously considered in population process 400 and added to the forward index. In such case (decision step 409 is answered in the affirmative), the system gets the associated DMID from the forward index at a step 411. Note that if the current value was part of a bucket (decision step 405 was answered in the affirmative) process control is directed from step 407 to step 411. In other words, the DMID for the associated bucket value is retrieved from the appropriate forward index.
Assuming that decision step 409 is answered in negative (the current value does not exist in a forward index), the system identifies a new DMID for that value and then adds the new value-DMID pair to the appropriate forward index and to the reverse index. See step 413. Note that to identify a new DMID for the value, the system may consult the data mining engine.
After the new DMID has been obtained and the index is updated, the system next determines whether there are any other columns in the current row at a decision step 414. Assuming that there are other columns in the current row, process control returns to step 403 where the system gets the next column in the model. Process control then follows the above defined flow beginning at decision step 405. The system continues to loop through the flow bracketed by steps 403 and 414 until each column of the current row has been considered. Step 414 may also be performed immediately after step 411 (which assumes that decision step 409 had been answered in the affirmative).
After all columns for the current row have been considered (step 414 answered in the negative), the system provides the row associated DMIDs for the current row to the data mining engine. The data mining engine may then insert them into its internal model data object 39 (FIG. 1B) at a step 417.
Next, the system determines whether there are any other rows remaining in the data to be inserted at a decision step 419. Assuming that such additional rows do exist, process control returns to step 401 when the system retrieves the next row of the data for consideration as described above. The flow bracketed by steps 401 and 419 defines the outer loop of the nested column-row process 400. Eventually, all rows of the data to be inserted into the model will be considered. At that point, decision step 419 is answered in the negative and the process is concluded.
A process for selecting information from an
One way to constrain on the
select * from popcorn_understand when rank(importance)←3;
In standard SQL, this expression may read:
select * from popcorn_understand where importance ←3;
The strongest correlation in this model in terms of Importance value alone is a conjunction of Chocolate and Lemonade; when products in these two categories are purchased in a single transaction, popcorn tends not to be purchased. Note, however, that the Occurrence_Count (OccCt) value is low; only 10 transactions were recorded in which this correlation was found. Taking all columns into account, the strongest correlation in this result set is represented by the fourth row, which suggests that when no candy is purchased (
The query process begins with the system receiving a query (in standard SQL, for example) on the
As illustrated in FIG. 5A, the system receives the first relationship (of the
Next, at a step 505, the system evaluates any predicates in the SELECT statement. Such predicates may take the form of WHERE statements which delimit the data from the
Next, at a step 507, the system composes the row based upon any predicate, the converted DMIDs (step 503) and the associated relationship conclusions drawn by the data mining engine (e.g., correlation, occurrence count, and occurrence frequency). This step essentially presents the values and associated relationship information to the user in a readable format by using various operators available in the relational database management system. In a preferred embodiment, the DBMS employs an operator dedicated to handling queries of the
After the row has been composed as step 507, the system determines whether there are any additional relationships provided by the data mining engine for the current
In a preferred embodiment, the
As indicated in the discussion of FIG. 2 (step 211), models may require modifications in order to fine tune the discovery results. For example, the data set might not be representative or large enough or additional input and columns might be required. In a preferred embodiment, various SQL-like commands are provided to facilitate modification. For example, a model can be refined by adding or dropping columns with an
In a preferred embodiment, the
On a case-by-case (row-by-row) basis with a query that contains
In "batch" mode by joining from a database table or view to the
Assuming that the original popcorn model discussed above is not altered or refined in any way, a
select * from popcorn_predict where candy='Licorice' and drinks='Soda';
It may be desirable to specify
select max(score) from popcorn predict; 200
Given this knowledge, it is reasonable to say that a score of 156 is high; therefore, the prediction that Licorice and Soda purchases do not also involve Popcorn purchases looks reliable. However, note that the opposite case also returns a fairly high score of 98. In conclusion, this model returns some potentially interesting correlations; however, their reliability is difficult to judge until more data has been inserted into the model and the discovery results have been revisited.
A further explanation of some of the fields in the
The Score value is an integer value that indicates the strength of the prediction. A higher number in this field indicates a stronger prediction. This value is similar to Importance in the
If a prediction is valid, the "Rank" field indicates its rank relative to all the other valid predictions. If the prediction is not valid, this field has the value 0 (zero). Thus, this Rank field also indicates whether or not the prediction is valid. If it is valid, the value in the Valid field is "Y"; if it is not valid, the value is "N". A valid prediction is one that satisfies the minimal requirements for the predicted output value, as defined in the model's Discrimination Threshold and Occurrence Threshold parameters.
The "Discrimination" field indicates the difference in Score between the best prediction and the nearest other prediction for the given inputs. If this value is small, this might indicate that this output value and the nearest other are similarly likely to occur for the specified input value, or it might indicate that the data mining engine does not have enough information to make a strong distinction between the two predictions. If this value is large, it indicates that the likelihood of the most likely output value occurring is significantly stronger than the next one in rank.
For example, in a Credit model, the three possible output values (using an Account_Status field) are Balanced, Payment_Late, and Overdraft. If, for a given set of inputs, the Discrimination between an output of Balanced and an output of Overdraft is 5, then this might indicate that the inputs used are not very valuable in determining account status (it cannot be accurately predicted that a person with the given characteristics will have a balanced or an overdrawn account); if the Discrimination is 90, then this might indicate that the higher-ranked prediction is useful in predicting the desired outcome (a person with the given characteristics is significantly more likely to have a balanced account than an overdrawn one).
The number of possible relationships returned in a query on the
Assuming that the user does constrain his or her query, it is desirable to pre-process the predicate, to the extent possible, before requesting that the data mining engine return data streams containing relationship data for the
In view of the desire to efficiently handle predicates, a process 600 for handling queries on the
After any start/stop conditions have been identified in step 603, the system determines whether the user query requests a prediction based on data that is provided in a row-by-row format (see step 605). Assuming that the answer to this question is yes, the system executes the query in a row-by-row mode as indicated at the step 607. The process is then complete. Alternatively, the user query may specify that the predictions be made in a batch mode. If so, the system executes such query in the batch mode as indicated in step 609. The process is then complete following this path.
As indicated above, a batch mode prediction involves a query that requires joining from another data base table or view containing data for which a prediction is desired to the
A suitable process for approximating the start/stop conditions (step 603) is detailed in FIG. 6B. As shown there, process 603 begins with the system considering a particular sub-expression of the predicate associated with the
where candy='licorice'
and drinks ='soda'
and popcorn ='y'
Here "candy='licorice'", "drinks='soda"' and "popcorn='y'" are all sub-expressions.
After the current sub-expression has been identified, the system next determines whether it is conjunctive. See step 617. A disjunctive sub-expression is one connected by a disjunctive logical operator such as an OR. For example, in the predicate "where A=1 or A=2", this sub-expression qualifies as a "disjunctive sub-expression" for purposes of this analysis. If a system determines that the current sub-expression is disjunctive, it saves that sub-expression for post processing at a step 619. In other words, this sub-expression will be applied after the system receives the data streams from the data mining engine.
Assuming that the current sub-expression is conjunctive, the system next determines whether it is "atomic" at a step 621. An atomic predicate sub-expression is one that contains an expression on each side of a comparison operator; e.g., A=1, A=B, A>3, A<9, A<AVG (age), etc. For example, the sub-expressions "where age=15" and "where age>AVG (age) " are atomic sub-expressions when the query is on the age column. On the other hand, the sub-expression "A=B and A<>3" is an example of a non-atomic predicate sub-expression because it contains a logical "and". Assuming that the system determines that the current sub-expression is not atomic (step 621 is answered in the negative), it saves the predicate sub-expression for post processing at step 619 as discussed above.
If, on the other hand, the current sub-expression is in fact atomic, the system next determines whether the predicate sub-expression compares a model input column to a "bindable value." See step 623. A bindable value is any value that can be substituted for an expression at either compile time (such as a literal value such 15 in the expression where age=15) or execute time (such as a correlation value when A=B, where A and B are columns of a join specification). Anything other than an actual exact value is not a bindable value. For example, average age is not a bindable value, because it cannot be evaluated until all values in the column have been considered and averaged. This is true of all expressions using "aggregate" functions on the column being considered.
If the current predicate sub-expression does not employ a bindable value, the predicate sub-expression is saved for post processing at step 619 as explained above. On the other hand, if the predicate compares a bindable value (and is atomic and not disjunctive), then the system brackets the associated column with a start/stop condition based upon the predicate sub-expression (see step 625). In other words, the predicate is evaluated via pre-processing. This limits the number of column values that are submitted to the data mining engine.
After the appropriate start/stop conditions have been applied to the predicate based upon the current sub-expression, the system next determines whether there are any additional sub-expression contained within the predicate. See step 627. If so, process control returns to step 615 where the next sub-expression in the predicate is retrieved. Ultimately, all sub-expressions in the predicate will have been considered via the above-described process flow. When this occurs, decision step 627 is answered in the negative and process 603 is completed.
A process for executing a query in a row-by-row mode (step 607) is illustrated in FIG. 6C. As illustrated there, the process begins with the system applying any start/stop conditions that have been previously identified for pre-processing at a step 631. Obviously, the appropriate start/stop conditions are matched to the appropriate input column values being provided to the data mining model.
After all pre-processing predicates have been applied to the appropriate columns, the system feeds the relationships identified for prediction to the data mining engine. These relationships are identified by the cross product of the various input column values. Thus, every possible combination of values from the chosen input columns is submitted to the data mining engine. The various cross product terms may be generated from all possible combinations of values from each of the columns using nested loops, the number of which equals the number of input columns.
The individual terms of the cross product will have a number of values equal to the number of input columns used in the prediction. For example, the input columns in the query might be color (red, green, or blue), gender (male or female), and season (winter, summer, fall, and spring). The cross product of these input columns is <red, male, winter>, <red, male, summer>, <red, male, fall>, <red, male, spring>, <red, female, winter>, <red, female, summer>, <red, female, fall>, <red, female, spring>, <green, male, winter>, <green, male, summer>, <green, male, fall>, <green, male, spring>, <green, female, winter>, <green, female, summer>, <green, female, fall>, <green, female, spring>, <blue, male, winter>, <blue, male, summer>, <blue, male, fall>, <blue, male, spring>, <blue, female, winter>, <blue, female, summer>, <blue, female, fall>, and <blue, female, spring>. Assume that the
At a step 633, the system identifies the next group of input values in the cross product. It then converts those values to the associated DMIDs at a step 635. If the current value in the cross product term is a value that is mapped to a range, the system must first identify the bucket name associated with the value. It may accomplish this by consulting a bucket name table such as that depicted in FIG. 3B. The DMID for the bucket name may then be obtained from a composite index such as that depicted in FIG. 3C. If, on the other hand, the value under consideration is not part of a mapped range, then the system can simply obtain the appropriate DMID from a forward look-up index such as one of those presented in FIG. 3E.
Next, at a step 637, the system calls the appropriate data mining API to generate a prediction for the current relationship (as defined by the collection of input terms from the cross product). The data mining engine in turn returns a series of predictions, one for each possible output value associated with the input values. The outputs provided by the data mining engine may appear as streams, each including the DMID for the associated output value as well as a data structure presenting the appropriate
Thus, after the data mining API has been called at step 637, the system receives the next stream of data associated with the current group from the data mining engine at a step 639. Again, each stream is associated with a separate output value. The system converts the output DMID to a corresponding database value using a reverse look up table, for example. After the database management system has the converted stream and the associated input values in hand, it evaluates any remaining predicates of the query (i.e., the post-processing predicates of expressions). See step 641. The post-processing of predicates may includes such operations as comparisons of input values versus aggregate values, disjunctive conditions, predicates applied to the value calculated by the data mining engine (e.g., discrimination), etc.
After any remaining predicates have been evaluated, the system composes a row from the current stream at a step 643. This may involve any necessary predicate post processing, the relationship's input and output values, and the associated relationship conclusions drawn by the data mining engine (e.g., discrimination). This step essentially presents the values and associated relationship information to the user in a readable format by using various operators available in the relational database management system. In a preferred embodiment, the DBMS employs an operator dedicated to handling row-by-row queries of the
Next, at a step 645, the system determines whether the current stream provides the last output value associated with the current set of input values. If not, process control is directed back to step 639 where the system receives the next stream for the current group from the data mining engine. That stream is then processed as described above to compose an associated row. The number of output values associated with a given input groups is the number of possible output values. Ultimately, the last stream for the current group is evaluated (i.e., decision step 645 is answered in the affirmative). At that point, the system determines whether there are any more input groups left for prediction at a step 647. This involves determining whether the last term from the cross product has been considered. Assuming that there are additional groups for prediction, process control is directed back to step 633 where the system identifies the next term "group of input values" in the cross product. Those input values are then processed as described above. Ultimately, the last term of the cross product is considered (step 647 is answered in the negative) and the process is concluded. At that point, the user is presented with the rows of prediction data that he or she requested.
As indicated in FIG. 6A (step 609), a query on the
In a preferred embodiment, the
In some cases, a data mining engine and a SQL server will treat a null value differently. In SQL, a null value is unknown and, in most cases, will return no answers. In contrast, certain data mining engines such as the DataCruncher from DataMind will return all possible answers in response a null value. For example, if there is no DMID for Age equals 25 in the look tables and a query includes a predicate
As mentioned above, a
The Discrimination Threshold is similar to the Occurrence Threshold, except that it applies during prediction instead of during understanding. The Discrimination Threshold affects the number of rows that are generated for a prediction on an input row. If the Discrimination Threshold is set to 0.0, a prediction is generated for each possible output value. The Discrimination, or the difference in strength between the best prediction and the second best prediction, appears in the
If the Discrimination Threshold is set to a value greater than 0.0, then only the best prediction appears in the
Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. For example, the
Patent Citations
Non-Patent Citations
Referenced by
Legal Events
Original Image


text:
Films that start well and end terribly
View Single Post
26-02-2013, 23:47
Dr. Linus
Forum Member
Join Date: Mar 2010
Location: Teenage Wasteland
Posts: 5,841
Originally Posted by
That's what my book-reading friends told me, which is when my view on the ending started to change. Seeing all three films together really is a joy to behold.
Agreed. And I've also changed my view on Fellowship recently - it used to be my least favourite by far, but I now realise that it has so, so much going for it and my 11-year old self was wrong to think the one with the least battles was bad. It's absolutely wonderful.
Though Return of the King is even better.
Dr. Linus
View Public Profile
Find More Posts by Dr. Linus

subset: commoncrawl


text:
May 15, 2013
The River Institute's Board of Directors has awarded the 2013 River Award to Dr. David Lean and Dr. Peter Hodson.
Dr. Lean initiated the very first research program at the River Institute in 1994 through a partnership with the University of Ottawa. The goal was to undertake a global assessment of the health of the St. Lawrence River, and it started a research program that the River Institute continues today. Over the years, Dr. Lean has published over 100 research articles about the St. Lawrence River, and supervised many students at the River Institute. Dr. Lean has participated in key programs and committees at the River Institute including management and fund-raising committees, the St. Lawrence River Restoration Council, and the Annual River Symposium.
Dr. Peter Hodson is another critical partner in the development of scientific research and training at the River Institute. As a professor at Queen's University, one of Dr. Hodson's first outreach initiatives with the River Institute was to develop a joint field course in Ecotoxicology. This course was the first in an ongoing series of extremely successful university field courses offered jointly by Queen's University, Ottawa University, and the River Institute. Over the past decade, Dr. Hodson has been a member of the River Institute's Research Advisory Committee; a special advisor to the St. Lawrence River Restoration Council; Guest Chair of the River Conference Series; and a highly valued collaborator and student advisor with the River Institute's research programs. Both recipients have made a significant contribution to our knowledge and understanding of the St. Lawrence River ecosystem, and are equally deserving of the 2013 River Award.


text:
Please fill in the fields below to report a problem with this event. Our staff
will review the information and make whatever changes are necessary.
Event in question:
Ghosts Etc. on
12/8/2012 at
Modern Formations Gallery
Your name:
Your e-mail address:
Description of problem:
Enter the characters exactly how theyappear. Letters are case-sensitive. What is this?


text:
How long does a Chinchilla live for?
You do get many chinchilla owners that are upset and puzzled when their beloved chinchilla doesn't live as long as they thought they would - that's quite understandable, if you have researched on the web, about the lifespan of a chinchilla, you do get very conflicting views, some websites (especially vet comments) put chinchillas at 8-10 – while breeders/owners that have furballs aged 15 – 20 years, you also find the odd owner
Understanding the history of chinchillas, the breeding techniques and the underlying many problems of chinchillas (mainly because of breeding now and in the past) does help understand why many chinchillas can die younger than expected
What we are talking about is the years of interbreeding, fancy show breeding (by incompetent breeders)
Although this type of breeding includes the common and well know teeth problems (we all agree that bad malocclusion is probably the most well known killer) it also causes weaker genetics to flourish,
Breeding anything beyond the natural 'grey' chinchilla, aiming for darker grey, or aiming for mutations of all colours – is naturally, and unfortunately, going to cause a strain on the natural selection of the normal chinchilla species.
Even the first established mutation (beige) was a very weak specimen - and produced weak offspring
Talking to those that run rescues and sanctuaries, if the chinchilla hasn't 'a problem' (like teeth) then the life expectancy
Most chinchillas will live between 10 – 14 – that is a general average, and if they have eaten healthy and lived healthy
Rescue chinchillas can differ – depending on the genes once again, and the diet, I have known rescues to live
So to sum things up simply and not to get too complicated:
Poor bred chinchilla, these are lucky to hit 10 years on a full life healthy diet
Looking at a healthy bouncy kit can never be a sure way that they will live to 22
My own chinchillas
Quite a few of the chinchillas I have bought from a 'very good breeder' (I have 14 from the same breeder)
I also have 5 rescues with no background history but came to me aged 1-2 years, all healthy back then (although two seem to
The 3 pet shop chinchillas (my first 3 chinchillas I owned):
So it's really the genes – you can never tell by looking at them how long they will live –


text:
Hold down Control (PC) or Command (Mac) key + mouseclick to select more than one option
|Avg. Dinner Entrée
|Greater than $25
|$18.01 - $25
|$12.01 - $18
|$7.01 - $12
|Less than $7
Posted by HeartChocolate on 09/28/2012
Came here for dinner and drinks with a friend from out of town without having checked it out first myself, and was not disappointed. Atmosphere was great - moody, dimly-lit decor with spacious downstairs seating (though we sat upstairs) and friendly, attentive service. Food was delicious, although the chips were stale (which was disappointing because maybe they had an off-night; the amazing guac and smoky-tinged salsa almost made up for it, too). I had the veggie tacos, my friend the special burrito, and both arrived simply and beautifully arranged, fresh and flavorful. Same goes for the margaritas - I had the jalapeno-cilantro, she the skinny. The only disappointment was the tortilla chips, and that's not enough to keep me away.
Posted by SalsaSnob on 07/11/2012
Randomly popped by one night and now I am addicted. Great guac, it was so fresh and wonderful. OOooooffff, the Tuna Burrito will have you begging for more. Sooo fresh, soo tasty, salsa is fabuloso. There are some creative drinks on the menu, some boring but all in all strong and tasty. I tasted the spicy cilantro and haven't ordered any other since! (it'll knock your socks off, its so good) Very good looking crowd, music is tops, dancing always goes on for hours when I come back. All in all, excellence is in order.
Posted by James Levine on 09/09/2010
Best tacos i've had since being in NYC, and i'm from LA. The salsa is smoky and really unusual. The place is fun and margaritas delicious.
Posted by Anonymous on 07/20/2010
Poorly run and the food is over priced for what it is. Don't like the guac either.
Posted by 32clinton on 04/09/2010
went there with a friend the other night. very good atmosphere, nice service, decent food. portions are a little on the smaller side with sort of the minimalist touch to them (no sides type stuff)


text:
1 more definition
Your best crew/clan/friends/mates/buddies/homies
Friend: I could never unfriend you!
Self: Awww! Mine head.
Self: Awww! Mine head.
by makeitadoubleSTAT January 23, 2012
Type your email address below to get our free Urban Word of the Day every morning!
Emails are sent from email@example.com. We'll never spam you.×


text:
Full detailed profile on Gabriella (Gabi) Hernandez Fallon Played by Camila Banus on Days of Our Lives Daytime Soap Opera.
Camila Banus (NBC)
Real Name: Camila Banus
Sami storms into Will's and rants about not standing by doing nothing about Nick. She says Nick won't let them bring up Nick's past in the custody battle. Will argues that Gabi will stand up for Nick. Sami relents. Maybe it will work out. She rushes out and finds a way to put the screws to Gabi. She texts Rafe. Later, Gabi arrives. Will asks what's wrong. She scares Will by saying how sorry she is.
Back at Will's, he makes Gabi ignore Rafe's text and he asks her to promise not to take their daughter from him. She promises - says she's sorry because of Nick. He has changed. She has to believe it or she'll lose her mind. Will runs out. Rafe arrives to discuss the agreement. She claims it's what she wants.
When Gabi leaves the custody agreement on the sofa at home while getting the baby, Will arrives and sees it. He reads it and when Gabi returns, he accuses her of reducing his visitation to his daughter. Gabi denies wanting to keep him from their daughter so he assumes this is Nick's doing. Gabi denies that. She admits she was shocked when she read the agreement, too, but it's not how the final custody agreement will read. He hopes not. She leaves him with the baby to run errands and he calls EJ to come over.
At the Horton square, Maggie spots a distracted Nick. She asks what's up. He admits sometimes the people of Salem get to him but everything is going his way. Later, Nicole arrives and the bank teller gives her the photo of Jennifer that Liam left behind at the bank. Nicole worries for Jenn. Nearby, Gabi meets Nick to tell him about Will's reaction to the custody papers. He tells her not to be concerned. They make out and Percy interrupts with business. Nick signs some papers and Percy goes.
Nick and Gabi meet Aiden at the Brady's pub to discuss the custody agreement. Nick brings up Will's mom, the 'wild card' and how she called Gabi an unfit mother. When Aiden remembers Sami Brady's name from her murder trial last year, Nick grins. Gabi claims she almost lost the baby because of Sami stressing her out during her pregnancy. Gabi assures Aiden she doesn't want to stop Will from seeing his daughter. Aiden asks why Nick is there. Gabi calls them friends but considering Nick's criminal background, Aiden calls this a serious problem. Nick assures Aiden it won't come up. He'll guarantee it. Aiden's puzzled about this remark but comes up with a few ideas to protect Gabi. It makes her uncomfortable. It looks like Will may not get much time with Ari. Aiden says he'll draw them up but tells Gabi he represents her. And only her. He goes and she seems pensive.
Gabi arrives home and tells the guys about the custody agreement. "Let the games begin," Will says.
At the DiMera mansion, EJ and Stefano discuss the photo of EJ kissing Abigail. They hang up when Gabi arrives. They discuss her career and she asks him to be her lawyer. EJ's not sure Nick would like that. Gabi doesn't think Nick has a problem with him but EJ argues that indirectly, he was involved in the night Nick was "murdered" when he dealt with Abby at Smith Island. Gabi admits Sonny and Kate knew about it but they're safe. She goes. EJ's pissed, assuming the picture is Kate's doing.
Gabi meets Sami at the Brady's pub. Sami apologizes for calling her an unfit mother. Gabi says it's too little, too late. Gabi knows Sami doesn't want to be her friend. Nearby, Abby eavesdrops. Gabi says this is about Nick. He could have put the three of them away but he didn't. Sami wonders if he is holding her hostage. Abby walks up and Gabi runs off while Abby asks Sami what Gabi meant when she said Nick was holding all the cards. Sami acts puzzled by it too. Talk turns to the guy Abby dated. Abby says she was as much to blame as he was. It was a huge mistake and she's glad it ended.
At Gabi's, Nick tells Gabi Aiden Jennings has no ties to Salem or the Bradys. He'll make the perfect custody lawyer. On paper, the guys look more substantial than Gabi. She rants about Sami calling her unfit and Nick wonders if he should get away from her and Arianna. Gabi refuses to let anyone dictate her life.
Back at Gabi's, she receives a text from Rafe who is on his way. Nick decides that's his cue to leave. She invites him to be with her when she meets with Aiden. He's the only person she trusts. He goes and Rafe arrives and questions her about Nick's time in New York. Gabi's clueless so he admits he's having Nick investigated. She blows a gasket and asks him to let it go or her and a few others could serve prison time. He thinks on that and agrees to leave it alone.
« Back to Gabriella (Gabi) Hernandez Fallon profile


text:
Privacy and Cookies
Boeing has launched a "full-court press" on Congress members to earmark funds in the Fiscal 2010 defense budget to help the A160 Hummingbird program survive a pivotal transition period.
Despite strong interest for the A160 from the US special forces, army, marines and navy, Boeing's commitment to continue investing in the program without a production contract will reach a "pivot point" some time next year, says Vic Sweberg, Boeing's director for unmanned aircraft systems (UAS).
In 2008, the A160 completed a decade-long development process funded by the Defense Advanced Research Projects Agency (DARPA). The Hummingbird's development culminated in a record-breaking, 18h flight last year, although the program to date has completed only 150 flight hours, Sweberg says.
SOCOM plans to deploy the A160 to support counter-drug operations in two South American countries later this year, Sweberg says. The US Marine Corps has also selected the A160 to compete for a possible "immediate cargo UAS" contract.
But the program still lacks a production order, and a recent report by the Senate Armed Services Committee warned that Boeing's production capacity could disappear as early as October.
The A160 also remains a candidate to receive funds from the Joint Improvised Explosive Device Detection Organization (JEIDDO), which is seeking a platform to carry the Northrop Grumman vehicle and dismount exploitation radar (VADER), a sensor that can track hundreds of different moving people.
The army and special forces had originally agreed to partner to support the JEIDDO requirement, but funding for the A160 remains uncertain, says Tim Owings, the army's deputy program manager for UAS. JEIDDO officials are considering other platforms, most likely the General Atomics Aeronautical Systems (GA-ASI) MQ-9 Reaper.
Aircraft | Aerospace | Aviation | Military | Business aviation | MRO | General aviation | Space | Airports | Engines and propulsion | Flight tests | Accidents and incidents | Flightglobal blogs | E-newsletters |
Flightglobal dashboard | ACAS | MiliCAS | Ascend Fleets | Flightglobal Insight | ICAO | CapStats | Airport charges | Ascend Values | Aviation Exchange | Aircraft Ratings | Helicopter Fleets | Market Commentaries | FlightMaps Analytics | Industry resources
Browse by job role | Career advice | Jobs by email | Jobs search | Recruiter services
Airline Strategy Awards | Air shows | Conferences | Exhibitions | Flightglobal events
… part of Reed Business Information Copyright © 2015


text:
Home Buyers Sellers Adult Communities Time to Sell Search MLS Contact
Westbrook Village Real Estate and Homes for Sale, Westbrook Village Retirement Communiyin Peoria AZ
View Westbrook Village Homes for sale, Watch my video tour of Westbrook Retirement Community, See photos of Resale Homes and Westbrook Village MLS Listings, Retirement Living at its best you could find the perfect retirement home for you at Westbrook Village Retirement Community in Peoria AZ.
Westbrook Village Retirement Community, is located in Peoria Arizona and has over thirty nine hundred homes with many home styles to choose from like, Condos, Casitas,Courtyard Villas,Patio Homes & Ranch Style Single Family homes. There are two large recreational complexes, complete with near olympic pools, Tennis courts.
Westbrook Village Amenities:
Recreation & fine arts learning center
Olympic size pools and heated spa
Lighted tennis courts
Horseshoes & Billiards
Over 70 clubs & activities
Two 18 hole golf courses complete with pro shop
performing arts and entertainment
Health & fitness
woodworking shop
The Lakes Course:
Offers players a traditional golf course with mature landscape and trees accented with numerous water hazards,undulating greens and strategically placed bunkers.
The Vistas Course:
Is a links golf course, with challenging golf holes from your choice of four sets of tees, with out of bounds, doglegs and water hazards.
Westbrook Village Homes For Sale
Westbrook Village Golf Course Homes For Sale
Westbrook Village Condos and Patio Homes
Westbrook Village Community Info
Arizona Retirement Community Sun City Grand in Surprise AZ: Sun City Grand is resort style community. When you drive through Sun City Grand there is no mistaken how they arrived with the name "Sun City Grand" with its stunning views of The White Tank Mountains, lush green golf course fairways, waterfalls & lakes.
Retirement Community Sun City Festival Ranch in Buckeye Arizona: By Del Webb is located at the foot of the White Tank Mountain's. about 10 miles west of the Retirement Community Sun City Grand
Arizona Traditions in Surprise AZ: Arizona Traditions is a Active Adult Resort Golf Course Gated Retirement Community nestled near the base of the White Tank Mountains. Arizona Traditions Hometown Neighborhood has approximately 1700+ homes.
Arizona Retirement Community Corte Bella: Corte Bella Retirement Community is located in Sun City West Arizona. This Retirement Community offers the feel of Santa Barbara California, with mission architecture. This gated golf course resort country club community is on 718 acres. This active adult Arizona Retirement Community by Del Webb has approximately 1,550 homes,
Trilogy Retirement Community in Peoria Arizona: Trilogy Is like living in a five star resort. Located in the beautiful foothills of north Peoria Arizona. Trilogy Active Adult Arizona Retirement Community is part of the multi-generational Community Called Vistancia
Arizona Retirement Community Homes in Sun City West AZ: Del Webb began building Sun City West Arizona on 7,100 acres in 1979, and completed it in 1997. Sun City West offers a large variety of retirement home styles: Single family ranch style, condos, apartment style, duplexes, retirement homes and Casitas, Ranging in sq.ft. from 700+ to approximately.
Arizona Retirement Community PebbleCreek in Goodyear AZ: PebbleCreek is a Robson Community near the I-10 Freeway for easy access to down town Phoenix, with views of the White Tank Mountains & the Estrella Mountains.
CantaMia Arizona Retirement Community New Homes: A new Retirement Community in Goodyear AZ Located in the Estrella Mountain Preserve area.This Resort Lake Community is located within the beautiful master planned community of Estrella Mountains. CantaMia offers large open spaces, water ways and lakes.
Retirement Community Homes in Sun City Arizona: Del Webb, Sun City Arizona the original, was built between 1960 - 1979. Sun City is self contained with its own shopping, restaurants, banks, medical, post office and gas stations. Sun City AZ is drawing new life into the community many new home owners have bought and remodeled.
Sun Village in Surprise AZ: Located in the northwest valley Sun Village is close to Sun City West & Sun City Grand retirement communities. Sun Village is a gated golf course active adult community with mature landscape, lakes, walking & biking trails are located through out the community.
Retirement Community Homes in Ventana Lakes located in Peoria AZ & Sun City AZ: Ventana Lakes started in 1986 has 9 lakes and waterfalls covering approx. 30 acres of scenic walking trails & docking areas, all you need is a paddle boat and a fishing pole.
Retirement Community Homes in Westbrook Village in Peoria AZ: Westbrook Village has over thirty nine hundred homes with many styles to choose from. There are two large recreational complexes, complete with Olympic size pools, Tennis courts.
Surprise Arizona Real Estate & Homes for sale: Surprise Arizona has a collection of distinctive neighborhoods with a small town feel and big city amenities. Surprise Arizona is located about 45 minutes from downtown Phoenix, Surprise AZ is surrounded by mountain park lands, a regional lake and pristine, open Sonoran desert. Surprise Arizona was founded in 1938 by Homer Ludden, a state legislator. Ludden named the city after his hometown- Surprise, Nebraska.
Buckeye Arizona Real Estate & Homes for sale:Home to the new Sun City Festival Ranch new homes By Del Webb. Located in Buckeye AZ just 35 miles west of Phoenix, town planners project that Buckeye Arizona will take at least 30 years for the nearly 600-mile planning area that stretches from almost Wickenburg to Gila Bend, the Hassayampa River to Perryville Road, to be built out.
Peoria Arizona Real Estate & Homes for sale: Peoria AZ is Located northwest of the city of Phoenix, and is considered part of the greater Phoenix area. Peoria covers about 117 square miles.
Goodyear Arizona Real Estate & homes for sale: Home to the award winning PebbleCreek Retirement Community. Goodyear AZ is Located about 20 minutes west of downtown Phoenix, nestled near the base of the Estrella Mountains, Goodyear Arizona is one of the fastest growing cities in the state.


text:
Daily Sales Up to 70% OFF Limited-time deals start every day at 12 pm ET.
In 1944, William H. Harvey Sr. originated the idea of the pre-formed wax gasket for setting toilet bowls, Bol-Wax. He combined 7 different kinds of wax to make a mixture, which he knew would satisfy the needs of the plumber. He knew from his 25 years of experience as a master plumber that the wax must never harden, deteriorate, or dry out, or else the seal would become ineffective. Cold temperature must also be considered, because here too, if the gasket was too hard when the toilet bowl was tightened down, the bowl would crack. Today, more than 3500 plumbing specialty items are sold throughout North and South America. It would be difficult to find a hardware store that does not stock some products made by the Harvey Company. 135 sales representatives call on over 5,000 plumbing and hardware wholesalers nationally. New items are added every year. The William H. Harvey Company employees are proud of their work and do it very well. The original factory produced 1440 gaskets per day. Today, our demand requires a three shift, 24 hour continuous operation.


text:
Mobility Without Compromising Security: Best Practices for Mobile Device Security in the Enterprise
The explosive growth of mobile device use within the enterprise has created numerous management and control challenges for organizations that need to protect information that is accessed and/or stored on these devices. Next-generation mobile devices are as sophisticated as computers, yet the security for these devices is lacking, due to the intrinsic constraints imposed by portability, battery life and economics of connectivity. For example, while in a Wi-Fi or 3G mobile network, a mobile laptop could become infected before its anti-virus software signature is updated.
According to industry analysts, half of the devices connected to corporate networks will be mobile by 2015. Recent years have seen exponential growth in malware, targeting mobile phones specifically. According to a 2011 report, Google had to remove more than 50 malware infested applications on Android devices from its marketplace.
The consumerization of business applications on mobile devices increases the risk of data loss and malicious attacks. Poorly designed applications are also exposing private identity information. In addition, many of these devices belong to employees and enterprise data and applications are not partitioned, thereby exposing content.
In many instances, employees download applications, as opposed to IT provisioning devices. Accessible platforms and applications open the doors to malicious attacks both on and from mobile devices.
For example, the Zeus Botnet uses SMS messages to break into users' bank accounts. The attacker steals both user name and password from the infected phone and uses the information to access the victim's bank account. Another Android mobile operating system attack allowed users' private information to be transferred to a remote site. iPhone and iPads that are jail broken lose 70 percent of the security features.
There are some steps that enterprise organizations can take to address the vulnerabilities associated with mobile computing, including the following:
1. Batton Down the Hatches: Securing Endpoints – Eliminate malicious attacks before they reach mobile devices. Protect all endpoints, including mobile devices, to ensure that network traffic is free of malware, spam and unacceptable URLs. Firewalls and traditional intrusion detection systems (IDSs) provide only limited protection and often introduce network latency. Look into emerging technologies that provide accurate, high-performance threat detection, complete visibility of what is transmitted through the network and the ability to stop the transmission of malware in real-time.
2. Protect Web and Social Media Data – Implement full content scanning and inspection across all protocols. Include protection against third-party services or applications including Web-based services such as Gmail and applications like Facebook and YouTube.
3. Ensure Anywhere, Anytime Security – Employees roaming outside of an enterprise's protection perimeters can have their traffic routed through malware scanners to ensure the safe usage of mobile data and applications. The consistent enforcement of IT security policies and optimization of Web resources provides all employees with safe mobile usage across distributed enterprises while reducing time required for IT departments to spend on management and control issues.
4. Get Real-Time Visibility – There are immense benefits when network traffic can be looked at across all layers including the application layer, enabling visibility into the actual intent of the traffic. If this reconstruction and comprehension can be done in real-time, real-time security policies can then be applied to the traffic. This kind of deep content inspection can provide visibility, comprehension, manageability and real-time action for the information.
Knowing that all of the proper security protections are in place provides organizations with assurance that mission critical data on mobile devices will remain safe, and systems protected against the spread of malware.
Hongwen Zhang is president and CEO of Wedge Networks.


text:
The No. 1 reason for Thunder fans to root against the Raptors
After off-season overhauls, Atlanta and Orlando figure to fall out of the playoff picture, potentially creating two openings. But Brooklyn, Milwaukee, Cleveland and Washington are all likely to join the Raptors in that fight for what could be just two playoff spots.
If all goes well for the Thunder — which would mean this year won't be so kind to the Raptors — Oklahoma City could be in for a coup that sweetens the Harden trade even more.
It's rare that rebuilding team like the Raptors gives up such a high draft pick. It's even rarer for a championship-caliber team like the Thunder to have an opportunity at owning such a selection.
The pick also has enormous value beyond its basic lottery location. It's a chance to add what could be a top-10 pick to a core that includes Russell Westbrook, Kevin Durant and Serge Ibaka. That eventual player also will join an already impressive stable of even younger talent that includes Reggie Jackson, Jeremy Lamb and Perry Jones III, all of whom are being groomed to someday supplement the core — a terrifying reality for the rest of the league considering all three will be coming into their own as Durant, Westbrook and Ibaka are entering their primes.
Additionally, the Raptors pick has significant salary cap ramifications. With the new rules in the collective bargaining agreement handcuffing teams with stiffer penalties — increased taxes and the abolishment of sign-and-trades, the mid-level and bi-annual exceptions for taxpayers — it will be important for the Thunder to add players through the draft. A high draft pick presents a chance for the Thunder to add a high-caliber player on a relatively cheap rookie deal.
So if you're still steaming, Thunder fans, blow some off starting Tuesday night.
Root, root, root against the Raptors.
The Thunder picked up two first-round picks in the James Harden trade.
In addition to Toronto protected first-rounder, the Thunder also landed a protected Dallas first-round selection.
That pick is top-20 protected, meaning if the Mavs land a selection anywhere from 21-30 they must convey their pick to Oklahoma City.
In this case, Thunder fans hoping to receive the Mavs' pick this year should root for Dallas to make the playoffs and have, at best, the 10th best record among playoff teams.
But the wiser approach might be to wait.
Because the Mavs pick is unprotected in 2014, it would be better for the Thunder if the Mavs landed in the top 20 this year and kept their pick. That would give OKC a chance at an even higher selection in the 2014 draft depending on how the Mavericks finish. With an aging Dirk Nowitzki, 34, the Mavs might soon be lottery-bound beyond this season.
If they are, the James Harden trade could potentially give the Thunder a lottery pick in each of the next two drafts.
A look at how some of the future draft picks Thunder GM Sam Presti once acquired panned out.
July 11, 2007: Received a 2009 second-round pick from Orlando in exchange for Rashard Lewis.
July 20, 2007: Received a 2008 and 2010 first-round pick, as well as Kurt Thomas from Phoenix in exchange for Orlando's 2009 second-round pick. The 2008 pick, No. 24 overall, turned into Serge Ibaka. The 2010 pick, No. 26 overall, turned into a package that allowed the Thunder to move up and select Cole Aldrich.
Feb. 20, 2008: Received a 2009 first-round pick, Francisco Elson and Brent Barry from San Antonio in exchange for Kurt Thomas. The pick, No. 25 overall, was ultimately packaged to move up one spot for Byron Mullens.
Jan. 7, 2009: Received a 2009 first-round pick, Chucky Atkins and cash from Denver in exchange for a 2009 second-round pick and Johan Petro.
Feb. 19, 2009: Received Thabo Sefolosha from Chicago for Denver's 2009 first-round pick. Chicago used the pick to select Taj Gibson.
July 27, 2009: Received Etan Thomas and two second-round picks from Minnesota in exchange for Damien Wilkins and Chucky Atkins.
June 23, 2010: Received Daequan Cook and the 18th pick in the 2010 draft from Miami in exchange for Minnesota's second-round pick, the 32nd overall selection. The Heat used the pick on Dexter Pittman.
June 24, 2010: Received a conditional first-round pick from the L.A. Clippers in exchange for the 18th pick in the 2010 draft. The Clippers used the pick on Eric Bledsoe.
Feb. 24, 2011: Received Kendrick Perkins and Nate Robinson from Boston in exchange for Jeff Green, Nenad Krstic and the Clippers' top-10 protected 2012 pick. The Celtics used the pick on Fab Melo.
Thunder vs. Raptors
When: 7 p.m.
Where: Chesapeake Energy Arena
TV: FOX Sports Oklahoma (Cox 37, HD Ch. 722).
Radio: WWLS 98.1-FM, WWLS 640-AM
Three things to know
* The Thunder defeated the Raptors 91-75 inside Chesapeake Energy Arena in the lone meeting between the two teams last season.
* Toronto acquired point guard Kyle Lowry from Houston over the off-season in exchange for a future first-round pick. That pick now belongs to the Thunder after OKC acquired it from the Rockets in the James Harden trade.
* Through three games, Thunder guard Kevin Martin has made 12 of 17 3-pointers (70.6 percent) while shooting 53.1 percent from the field. Martin also is 16-for-16 from the foul line.
Projected starters
Thunder (1-2)
G;Russell Westbrook;6-3;21.3;6.0;6.7
G;Thabo Sefolosha;6-7;4.7;4.0;2.0
F;Kevin Durant;6-9;22.7;14.3;6.7
F;Serge Ibaka;6-10;8.8;6.3;0.0
C;Kendrick Perkins;6-10;3.7;4.7;1.0
Raptors (1-2)
G;Kyle Lowry;6-0;23.7;7.3;7.0
G;DeMar DeRozan;6-7;19.0;5.0;1.3
F;Landry Fields;6-7;2.3;3.3;1.7
F;Andrea Bargnani;7-0;13.0;2.3;1.3
C;Jonas Valanciunas;6-11;6.0;5.7;1.3