text:
A personalization system that uses rules to adjudicate and characterize a customer, or a customer's actions, and then to personalize a business function, such as a displayed page, based on the outcome of those rules. In one embodiment the invention provides a system for web-based personalization, that allows for personalizing the content or business functioning of a web-based application to reflect the characteristics of a particular user. The system comprises a user profiler, for determining a snapshot of a particular user of a web-based application, a rules editor for inputting a set of rules governing the business functioning of said web-based application, and a rules engine. The system then uses the set of rules to make decisions about the particular user and the business functioning of said web-based application, and to determine the content or business functioning of said web-based application as it applies to that user.
1. A method for customizing the functionality of a web application, comprising:
storing a plurality of rules that are independent of a particular user and wherein each rule defines a business functioning, and actions to be taken by a web application in response to a particular event;
allowing a user to log in and begin a current session at a web application;
receiving, via an event listener interface at an event service located at the server, notification, from the web application on the server, of events that occur during the current session or after the user has logged in, including events triggered by the user interacting with the web application during the current session, and then associating the events with the profile of a user, to create a snapshot of the user at a point in operation of the application for use with the current session;
determining a plurality of scenarios wherein each scenario describes a possible series of events that characterize a users' session interactions and can cause one or more of the rules to be triggered, and a plurality of campaigns each of which can be defined by an administrator to have a start and end period during which the campaign is active, and wherein each campaign describes a set of scenarios together with a goal so that they can be collectively activated or deactivated;
using the snapshot of the user and a set of rules, to make decisions about the user and to determine one of the plurality of scenarios for use with the current session, wherein the rules can be updated and applied to a rules engine without stopping the execution of the rules engine, to effect an immediate change to the business functioning of the web application during the user's session;
selecting a campaign corresponding to the user, and one of activating or deactivating the campaign once a predefined set of events has been met; and
using the rules engine with the updated rules to determine, at runtime, the business functioning of the web application, including the actions to be taken by the web application, for the current session and current user only.
2. The method of
inputting, via a rules editor, a set of rules governing the business functioning of said web-based application.
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. A method for providing web-based personalization, that allows for personalization of the functioning of a web-based application, comprising the steps of:
configuring a server to allow a user to access a web application running on the server, and to log in and initiate a session within the web application;
accessing a plurality of stored rules that are independent of a particular user and that define business functioning of the web application, wherein each rule defines actions to be taken by the web application in response to a particular event;
listening at an event service located at the server, for notification of events from the web application during a current session or after the user has logged in, including events performed interactively by the user, and associating those events with a user profile, to create a snapshot of the user;
accessing a plurality of stored scenarios, each of which describe a possible series of events that characterize a users' session interactions and can cause one or more of the rules to be triggered;
matching the snapshot of the user and the events to determine a particular scenario from the plurality of scenarios for use with the current session, and
changing, for the current session and current user only, the business functioning of the web-based application, including the actions to be taken by the web application, according to the particular scenario.
9. The method of
storing the rules as XML documents within a rules repository.
10. The method of
11. The method of
grouping a set of said rules together and using the set to determine a scenario of events to be understood by the web-based application.
This application claims priority from provisional application "SYSTEM AND METHOD FOR RULES-BASED WEB SCENARIOS AND CAMPAIGNS", application Ser. No. 60/283,977, filed Apr. 16, 2001, and provisional application "SYSTEM AND METHOD FOR WEB-BASED PERSONALIZATION AND ECOMMERCE MANAGEMENT" application Ser. No. 60/306,509, filed Jul. 18, 2001, which applications are incorporated herein by reference.
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
The invention relates to online and particularly to web-enabled systems, and to methods for personalizing an application behavior and content for a user or group of users.
In the field of e-commerce, there exists a demand for businesses to be able to tailor their products and services to better match the needs and requirements of their customers. This demand exists equally in both the business-to-business (B2B) and the business-to-consumer (B2C) worlds. A particular example of such tailoring of business services is in the field of personalization. Personalization allows a business to personalize, or otherwise customize, their offerings to a particular customer, or group of customers. For example, in an Internet/Web environment, a B2C content provider may wish to deploy a Web site in which the Web site content is personalized for each individual customer visiting the site, or for each type of customer based on certain characteristics. Examples of such Web-based B2C providers include on-line catalog-providers; product vendors; news, media and entertainment providers; and information or reference sources.
As their business success has come to depend more and more on dependable personalized services, e-commerce providers have demanded more from their personalization systems. A prevalent demand is for personalization systems that can assist a provider in not only providing a personalized Web site, but can allow the e-commerce provider to tailor all of their business functions—marketing, production, distribution, etc. at a single source, and to update the information or data that these functions rely on, in a quick, dependable, and easily-modifiable manner, that requires little or no system down-time.
Traditional systems used for personalizing web content are mostly analytic in nature, and rely on using previously collected data in a manner that allows an administrator to modify a web site or e-commerce application based on an understanding of that data. For example, personalization systems from vendors such as ATG and Broadbase, who primarily provide Online Analytical Processing (OLAP) systems, rely on the commerce provider collecting sufficient by large amounts of data to represent their target population in an analytical way, i.e. statistically, and to then use that data to personalize content to a sub section of the population. Data can be collected by traditional mechanisms, i.e. through standard market research tools, or can be collected on-line through for example, maintaining histories of a customer's prior use. However, such data is typically stored in a repository for further analysis before it is subsequently analyzed and used to allow an administrator to update the actual content. In this manner the data is not used to provide a real-time personalization of the system, or one that is easily modifiable in run-time by an administrator. Instead, the data is used more to present a change in content over a large period of time and a large number of users. No attempt is made to customize data content at the per-user level during the actual user or customer session.
As today's e-commerce demands grow to requiring real-time update of personalized user content, and/or available products and services, there is an ever increasing demand for systems that allow an administrator to quickly customize the content that is presented to a user during application run-time, and even when the user is actively operating within a session. Furthermore, systems that allow this change to be effected automatically, i.e. by using rules or some other mechanism to alter the content presented to a user during their session, are especially useful. As end users become more sophisticated, and demand better quality of service from their content providers, and as back-end commerce applications become more complex, and flexible enough to offer such a detailed variation in content, there is an ever increasing demand for systems that allow or support the ability to provide real-time personalized data content to the user. Systems that can do this, while at the same time allowing great ease of use in setting up data content and marketing campaigns, are especially useful, since they allow an administrator to quickly administer the actual content and the rules by which that content will be sent to the user.
The invention provides a system and a method for allowing an e-commerce provider to customize or to personalize their business functions or content for each customer, group of customers or for a particular type of customer. A simple example of this is in the personalization of a Web site, such that each visiting customer may see perhaps slightly different site content, customized for their particular needs. But the system may be equally used in any business system that would benefit from personalization. As used herein, a user or customer may be an individual or any other entity, such as another organization or company. The business functions the user accesses may not be the type displayed on a screen, but may instead be, for example, automatic style order retrieval and processing and other operations. The invention allows application behavior and data to be personalized at any step in the process, and between any entities.
Generally described, the invention provides a personalization system that uses rules to adjudicate and characterize a customer, or a customer's actions, and then to personalize a business function, such as for example a data communication, or a displayed page, based on the outcome of those rules. Rules may be used to create scenarios—potential series of events that characterize a customer's session. Scenarios may in turn form the basis of campaigns—a set of possible scenarios that have a combined start time and a stop time, within which the customer operates, and within which environment the rules-based system makes its determinations, and provides characterizations and personalizations.
In the environment of the Internet and/or a website, an embodiment of the invention can be used to display personalized content to a Web user based on their session information. In this embodiments, the Web application used by the user may be, for example, a commerce Web site application such as a on-line booking system, e.g. flight reservations, or product catalog ordering. When the user logs into such an application a session is created and events occur that correspond to that session. These events are used to drive the rules-based engine, which in turn in used to drive the providing of content. Inferences about the user's profile can be made based on the user profile, and rules can be then run against that profile, all of which occur in real-time, and without need the to refer to a secondary personalization source such as a repository of statistical or marketing information.
In accordance with one embodiment of the invention, a Personalization Rules Editor allows business users to manage customer relationships and fine-tune user-system interactions using a task-driven interface and easy-to-use rule editing templates. The Personalization Rules Editor drives an embedded rules engine, and eliminates the need to master complex Boolean logic to create and edit rules, allowing business people to focus on creating business rules that manage customer interactions.
Behavior Tracking records page impressions, click-throughs, "add-tos" and removals from shopping carts, and purchase and order histories, for use in analysis of customer shopping and buying patterns.
Placeholders and Promotions are an easy way for business users to specify where promotional content will appear. Once Java Server Page (JSP) page tags are in place on the pages, placeholders eliminate the need to reprogram the application every time content on the pages needs changing. Users simply point and click to choose and place content on pages using the administration tool.
An Email Service provides the ability to send personalized emails triggered by user events.
Discounts and Pricing can be applied in a variety of ways including percentage off, fixed amount off, and fixed price. Discounts may be applied to product items, whole orders, or shipping. Cross-sell and up-sell scenarios can be combined with discounts to create strong incentives.
The web-based Personalization Server enables management of customer relationships to win and retain customers. A business must quickly attract and retain customers to achieve competitive advantage and market leadership. The Personalization Server provided by the invention enables adaptable e-commerce applications that personalize customer interactions and drive online sales. Information can be captured about customers and shared with the business processes inside and outside the enterprise, and used it to enhance customer experience. Capturing this information, and using it to personalize future interactions, ensures that the e-business delivers highly relevant information to customers.
The Personalization Server includes complete personalization capabilities, and a rich set of pre-built templates and commerce functions, to quickly assemble adaptable solutions that respond to the needs and interests of customers and targeted customer segments. The portal framework included in Personalization Server allows developers to quickly build portal sites using a my Portal-style interface. This new framework enables users to personalize the content, layout, and overall appearance of the portal according to their own preferences, as well as manage their profiles. Also included are essential tools for integrating with leading e-analytics e-marketing systems, and creating and managing personalized content utilizing either out-of-the-box solutions or integrated content management packages. The customer experience can be personalized based on responses to outbound marketing campaigns, and response information analyzed to further segment customers for deeper personalization.
Using a task-driven, user-friendly GUI tool, the powerful personalization capabilities of Personalization Server can be directly accessed by business managers.
Benefits provided by the invention include:
The invention thus provides a system for web-based personalization, that allows for personalizing the content or business functioning of a web-based application to reflect the characteristics of a particular user of said web-based application, said system comprising: a user profiler, for determining a snapshot of a particular user of a web-based application; a rules editor for inputting a set of rules governing the business functioning of said web-based application; a rules engine, that accepts input from said rules editor and said snapshot of said particular user, and uses said set of rules to make decisions about said particular user and the business functioning of said web-based application; and, a personalization process or that uses the output of said rules engine to determine the content or business functioning of said web-based application as it applies to said particular user.
The following glossary and definitions of Terms, Acronyms, and Abbreviations will be useful in describing the invention:
The invention provides a real-time rules-based personalization engine that can be used to personalize and customize business functions, application, or information content for delivery to a customer or a user of the system. In the context of this invention, the customer or user may be an individual, for example an individual user of a web site, or they may be another organization that uses interactive or automatic mechanisms to communicate with the system. As the user interacts with the system, events are generated which are used to drive the rules-based engine. In accordance with the particular rules used, the personalization engine determines in real-time, which content or information should be transmitted to the user. For example, this content may be the particular information a user sees on a web site display, or it can be some other form of data communication, for example, data automatically communicated to a Wireless Application Protocol (WAP) device or a Personal Digital Assistant (PDA) device that is not necessarily seen by the user. In accordance with one embodiment of the invention, XML files are used to configure the working of the rules-based engine, allowing the administrator to quickly and easily modify the operation of the rules-based engine by simply editing the text of the XML files. Since the rules-based engine can be used to control business functions other than the mere display of data on the screen, the invention provides organizations with an ability to personalize their business functions and applications for each customer, or type of customer.
The operation of the personalization system is made easier by the use of campaigns and scenarios. As used in the context of this invention, a scenario is a set of events that will cause a particular rule to be triggered and the corresponding action, business function, or data to be displayed. A campaign may include many scenarios, and provides an easy mechanism by which an administrator can control an entire set of scenarios to best reflect the needs of a particular user of group of users.
Rules-based Engine
The centerpiece of the invention is a rules-based engine. The rules-based engine utilizes rules to make informed decisions about the current proceedings and to determine actions therefrom. Each rule defines a situation (an "if" clause) and an action (a "then" clause). The use of such rules allows a flowchart style chaining of situations and actions into a scenario. The rules are stored within a ruleset, or within a plurality of rulesets. As used herein, a ruleset is a collection of related rules, bundled so that the rules engine can use them together. Rulesets, and rules, are used to direct the flow of events within scenarios and campaigns.
In accordance with one embodiment of the invention, rules may be written in an XML format for ease of portability between systems. Additionally, the XML schemas may be parsed in real-time, allowing for the real-time modification of the rules (and of the business workflows) without requiring any system down-time. Furthermore, since a user's characteristics or profile can be calculated by a series of rules, the system provides a mechanism by which a real-time "snapshot" of a user can be generated on demand, and can be used to provide personalized content or services for that user.
A scenario is a chain of conditions and actions. The scenario describes a flowchart of possible interactions with a user. A campaign uses a set of such scenarios to achieve a business goal for a sponsor or to address a particular business function. In the context of a Web-site or a similar B2C application, campaigns may use on-line ads, email, and consumer discount promotions, through the scenarios, to achieve these goals.
Scenarios represent abstract functionality. However, scenarios used within the context of a campaign may be built on top of any business-to-business, business-to-consumer, or e-commerce platform, such as the range of WebLogic application server commerce server products from BEA Systems.
In accordance with one embodiment scenarios are individually named and maintain a list of classifications for which each scenario is valid. Through a scenario engine, a particular scenario can be searched for based upon such criteria as Name, Description, or types of Classifications. The search may include both whole-word matching and pattern-matching (e.g. description like '*superbowl*'). The results of the search is the names of those scenarios that match the search. During real-time delivery of context the system can quickly match the current situation to a shared scenario and react accordingly.
The scenario engine acts as a scenario definition repository. The scenario definitions may be stored in XML format for ease of use in editing, although other formats can be used. The scenario engine may also return XML definitions of scenarios, by name and can deploy scenarios given a scenario definition.
Scenarios are comprised of a ruleset with constituent rules. Each rule defines a situation (an "if" clause) and an action (a "then" clause). The use of the rules allows the flowchart style chaining of situations and actions into a scenario.
Possible inputs ("if's") into the scenario ruleset include, but are not limited to:
Using a scenario rules editor, a system user (typically a systems administrator for example) is able to write custom rules against any inputs, including for example, against the user profile, against the contents of the user's session (specifically the shopping cart), against the user's current request information (browser type, page location, etc.), against certain user historical events (e.g. shopping history), against the event type, headers, or body (the text body in a TextMessage, etc.) The possible outputs ("items") from the ruleset includes an Action definition, (ActionDef) to execute, i.e. one or more actions which the system must take to respond to the input. This may include delivering a particular type of content.
Scenarios are valid only for certain user classifications (i.e. customer segments).
The rules engine does not execute any functionality itself (i.e. it does not generate Actions, such as posting Events, etc). Instead, identifying objects are passed out from the rules engine to the scenario engine, which then performs the required action according to its scenario repository.
In normal use the evaluation of a rule will assert an ActionDef. The action will cause something to happen, or to be displayed to the user. The user will do something that will cause an event. The event will be sent to the scenario engine and the cycle will repeat until, possibly, an end state is reached.
A campaign is a sponsored set of scenarios designed to achieve a particular goal. In a marketing context the campaign may be designed to promote a certain range of goods for a certain period of time. Other campaigns are more general in that they merely include a set of (typically related) scenarios which the company or organization currently wants in effect. Each campaign is associated with one or more scenarios. Campaigns can be marked as either active or inactive, and typically have a designated date/time at which they start and stop. Through the campaign engine, campaigns can be searched for based upon such criteria as, Name, Start and/or stop time, Classifications (via relationships to scenarios), Sponsor name, Description, Value proposition, Goal description and Active state.
The search may include both whole word matching and pattern matching (e.g. description like '*superbowl*'). The results of the search is the names of those campaigns that match the search. The scenarios related to the campaign can then be retrieved via searching on the scenario engine.
The campaign engine acts as a campaign definition repository. As with the scenario definitions, the campaign definitions may be stored in XML format. The campaign engine can return XML definitions of campaigns, by name, and can deploy campaigns given a campaign definition.
Campaign Goals & Activation
Campaigns can use goals in two ways. A goal is a textual description that can be used to better clarify the purpose of the campaign. Secondly, a goal is a quantitative measurement that can be achieved by a campaign. In accordance with one embodiment, all campaigns have an is-active rule, which receives the following inputs:
The output of the is-active rule is either a True or False. True indicates that the campaign is currently active. False indicates it is not active and that no additional processing will take place. There is a mechanism to deactivate a campaign, regardless of the campaign activation criteria the campaign can always be activated or deactivated by an administrator. This status is first checked before evaluating the activation or scenario rules. Additionally, campaigns can have start and stop times that determine a campaign's active state.
Campaign Lifecycle
After the campaign has actually been started, it subsequently becomes active 182, generally based upon the start time of the campaign, or by explicitly marking it as an active campaign. Anytime after first becoming active, the campaign can become or be marked as inactive 184, either by reaching the campaign's predetermined stop time, the campaign's goals being met (i.e. an "is-active if" rule), or by an administrator deactivating the campaign. After being deactivated, the campaign can in some instances become active again, generally by the administrator modifying it, redeploying it and marking it active.
In some embodiments, at any point after starting up, the campaign can also be shutdown 186. This is generally a manual process performed by an administrator. During shutdown, all of the per-scenario shutdown rules are executed. The inputs to these rules is the campaign data object and the current time. The outputs should be the action definitions (ActionDefs) for the campaign engine to execute. These actions should typically undo any of the actions from the startup rules, although there is no mandatory requirement to do so.
After the campaign has been shutdown, it is cleaned up 188. This involves removing all campaign related data (e.g. ad exposure counts, scenario state information, etc.). It may also involve removing the campaign definition from the campaign engine repository.
Campaigns are driven by events. Additionally, ad exposure and click-through counts are maintained by the campaign service for campaign usage. These can also be accessed for reporting.
The action service abstracts the notion of an action which the scenario engine is supposed to execute, based upon the results of a ruleset. This allows the rules to assert a generalized definition of a concrete action. This ActionDef can be used to gain access to an object which can then execute the underlying action. New Actions can thus be created and deployed without restarting the server. One way to do this is to deploy a Session EJB which can serve up the concrete Action objects.
An Action repository is available to the scenario tool. In one embodiment this action repository can be described by an XML document. The scenario tool uses this to dynamically display the action to the user, and to gather all of the parameters to the action from the user. A predefined set of Actions for campaigns may include the following:
A placeholder represents a position within a Java Servlet Page (JSP). The behavior of the placeholder is determined by the particular system configuration. This is very similar to the scenario's Action concept. However, the behavior of the placeholder is very much request-driven, not event-driven. In typical implementations, a request will come in at a web page from a web user for a JSP page that contains a placeholder JSP tag. The tag contacts a session EJB that will return an object describing the behavior that should occur. The behavior can optionally be a displayable unit. In the case of a displayable unit, the displayable unit will include a renderer object which knows how to display the unit.
Ad Placeholders
In those environments that use the invention for ad generation, placeholders can be used to display ads. For placeholder behaviors that display ads, an ad bucket for a user for a placeholder is used. The ad bucket contains a set of ads or ad groups that should be displayed to the user, plus a bucket-entry based view count. Each entry in the bucket has the following information: User name; Placeholder name; Date and time entered; Ad query (defined the ad or ad group to display); Weight; View count; Campaign name; Scenario name.
In some implementations there can bean ad bucket for each placeholder that is not tied to a particular user (i.e. a global-user bucket). Otherwise, each entry in the bucket will have the same information.
Because an ad bucket might be populated externally from the placeholder request (i.e. by the campaign/scenario engines), an ad bucket conflict resolution mechanism can be used. This conflict resolution mechanism determines which entry in the user's ad bucket will actually be used to find an ad to display. In one embodiment, the weight of the valid bucket entries is used. A bucket entry is valid if its corresponding campaign is currently active or it is not associated with a campaign. A single entry's weight will give it a (weight*100/(sum of all weights)) percent chance of being viewed. A random number is used to determine which bucket entry will be used. For example, if there are four entries in the bucket with weight 1,2,3, and 4, then the layout might be for example:
Once the entry has been determined, the entry's query is executed to result in a set of ads (i.e. an ad group). Each ad in the group will have its own weight. A similar algorithm will be applied to determine which ad from the ad group to use. If something occurs to cause the ad group size to be zero, the system will choose a new bucket entry to use, ignoring the previously selected bucket entry. If there are no user bucket entries, a global-user bucket will be checked in the same fashion. The global-user bucket will generally be populated via campaign startup rules.
In one embodiment of the invention for use with Web-sites having advertisements, the display a particular ad to the user can generate an event, as will the click-thru of an ad. In both cases, the ids of the campaign and scenario that placed the ad into the ad bucket are passed along with the event. This enables the system to tie "See" and "Click-thru" events back to both the ad and the campaign, for subsequent analytical and reporting purposes.
Ad Service
The ad service provides ad metadata and content for subsequent display to the user. The service is able to retrieve an ad based upon its unique identifier or based upon a search against ad metadata. Ads may include for example: a single image with an optional click-thru URL, alternate text, border specification, width, height, and mouse overtext; a block of HTML text (which can contain a click-thru URL), plus any of the supplementary media referenced by the HTML block; or a reference to in-line a JSP page.
All ads have an associated relative weight, which can be an integer number. The weight of a particular ad is used to resolve ad display conflicts.
In one embodiment, the ad service keeps track of the following ad impression (what a user sees), and click-thru event counts per ad: Global count; and, Per-campaign count.
This information is used to handle the campaign goal evaluation. It could additionally be used in reports. Per-user ad counts can be handled through the event service.
In some embodiments, there can be a mechanism to query the ad service to view, increment, and decrement the counts. This information is then used immediately by the campaign and scenario engines and so must be retrievable at the above levels of detail.
Email Service
An email service can be used to support email based campaigns. Email based campaigns allow the system to direct personalized email content to a user or group of users. In one embodiment the email service supports two modes of operation based upon configuration: batch mode or pass-thru mode. Pass-thru mode causes the service to immediately send the email request. Batch mode causes the service to store the email request to a datastore from where it can be sent at a later time. An administration interface or a command-line program can be used to fire off batched emails. The information required by the email service is: the standard email header information (e.g. To, From, Subject), the MIME email header information (e.g. Content-Type, Content-Length, Content-Disposition, some of this might be determined from the email body), the body of the email, the ids of the campaign and scenario which initiated the email, and how long the email is valid (i.e. if it hasn't been sent in 5 days, don't bother)
Deployment of Campaigns and Scenarios
Campaigns and scenarios must be deployed to the server before they may operate. In one embodiment a servlet capable of passing XML definitions to the appropriate service for deployment can be used.
The Campaign and Scenario Services take their input from XML files that may in turn be generated by a set of administrator tools. Schemas for Campaign and Scenario definitions are used, as well as a schema for Scenario Rules.
An administrator can use these administration tools to create and deploy Campaign and Scenario definitions. The tools generate XML files that represent these definitions, and deploy the new definitions through a deployer servlet. This servlet accepts a stream of XML data and calls the appropriate services to handle the data. Campaigns, Scenarios, and their associated Rules may be deployed separately. Normally the rules will be deployed first, followed by the scenarios that use them, and then finally the campaigns that are made up of the scenarios. When a campaign or scenario is "deployed", the associated service persists the XML definition in a central database or repository.
EJB Implementation
The services described above may be implemented as a set of stateless services—in one embodiment, for example, as a set stateless session beans conforming to the Enterprise Java Bean (EJB) specification. The sections below detail an implementation of the invention that utilizes EJB's to provide the services and functions necessary to support the scenarios and campaigns. It will be evident that other types of resource can be used, instead of or in addition to EJB's.
Scenario Service
The Scenario Service is designed to allow a flow of interactions between the system and a user to be defined as a set of rules and actions.
Scenario Session Bean
The Scenario Service Session Bean is the external interface to scenario functionality. When an event is received by the Scenario Service, it determines if any scenarios in the system should react to the event. If so, the service passes the event on to each scenario that is interested, and then lets them run their rules on the information contained in the event. This session bean also provides functionality to redeploy scenarios and export existing scenarios as XML.
Scenario Objects
A Scenario acts as a wrapper around a RuleSet that contains some additional business logic. When a scenario receives an event from the Scenario Service, it will first do a check to make sure that the Event is meaningful to the scenario. If not, then the scenario will return immediately. Otherwise, if it is meaningful it will pass the information contained in the event to the Rules Service, along with the RuleSet contained in the scenario. Scenario rules produce Action Defs as they fire. After executing the RuleSet, the scenario will use the Action Service to execute the resultant Action Def Objects, if any. This prevents the actions produced by the rules from executing within the Rule Engine thread.
Action Objects
When a Scenario runs a set of rules against an event that it has received, some sort of action will usually be executed as a result of these rules. To accomplish this, the rules create, initialize, and ActionDef objects. These objects must be initialized with the name of the Action they represent, and a map of parameters that the Action will need to run. They are responsible for instantiating the actual implementations of the Action interface, which will do the actual work. This interface comprises of an init method that takes a map of named parameters, and a run method that will execute the action. The rule designer to instruct the rules engine to correctly initialize the ActionDefs with data from the event, the current user, or any other available resource. For example, a Scenario that sends email will contain a rule that returns an Action Def, initialized with a map of appropriate parameters such as the recipients email address and the text of the message, and the name of the Action, SendEmailAction. After the rules are finished executing, the scenario will make the returned ActionDef object retrieve the actual Action implementation. When the run method is called on the Action, it will use the initialization parameters to accomplish its task, which in this case is invoking an email service to send the message.
EJB Ad Service
The Ad Service provides ways to retrieve ads based on the current user of the system. It consists of an AdBucketService session bean that is responsible for managing which ads should be displayed for which users, and a lower level AdService session bean that acts as a pass-thru to the content management service.
Ad Bucket Service
The Ad Bucket Service is a stateless session EJB that provides ad content to placeholders. This is done by looking at ads which target the placeholder and creating a set of valid ads. This set is then passed to an AdConflictResolver which picks the actual ad to serve and updates the ad information. The ad query from this is passed to the AdService to choice the actual ad. If no valid ad is found, then a global ad bucket is checked for ads. The AdBucketService also provides a method to add an ad to a users ad bucket. This is usually called when an event from a Scenario causes an AdAction to be fired. It also provides an interface which will allow campaign state to be cleaned up. More generally, the interfaces will remove content from user buckets based upon the name of a Scenario Container. A campaign is just one implementation of a Scenario container.
Ad Info
The AdInfo is a data struct that contains some subset of the information entered into the Database. Database Table entries for user ad information may include the following:
The AdConflictResolver is responsible for choosing the "best" ad to display to the user and updating the ad in the database. This method applies an algorithm to a set of ads to choice the "best" one to display. It then updates the weight and viewCount based upon the algorithm.
The ad service is a separately deployed stateless session EJB which implements the DocumentManager interface and delegates to a DocumentManager. Ad objects may be Document objects deployed in a DocumentManager.
Click-thru Servlet
This servlet is used to track ad click-through events. The content output of the from the AdBucketService will wrap the ad and direct it two this Servlet. The ClickThruServlet is the central place to record user clicks on ads. This may cause campaign events to be raised. The Servlet will redirect the user to the target page after processing the click thru event.
EJB Placeholder Service
A Placeholder represents a named location in a JSP page where content can be placed by the commerce server. It is represented by a placeholder JSP tag. Behind the placeholder tag is the PlaceholderService, a stateless session EJB. The PlaceholderService is responsible for passing content back to the JSP page.
The content is retrieved from a content handler EJB which implements the ContentBucket interface. A content handler is registered with the named placeholder when the placeholder is defined.
The PlaceholderTag is used to place content from the placeholder service into a JSP page. The placeholder is a named entity. The placeholder tag defines four attributes including: name—The name of the placeholder within the system; height—An optional height for the content; width—An optional width for the content; and renderer—An optional named EJB that can transform the content output from the ContentBucket before passing it back through the PlaceholderTag.
The PlaceholderService is a stateless session EJB whose primary responsibility is to return content to the PlaceholderTag. In addition, it provides method for the define placeholders, and query for placeholders. The query method can be used by tools to create drop down lists, etc. A define placeholder method defines a new placeholder for the system. The name must be unique and the contentBucketName must be a EJB that defines the ContentBucket interface. Placeholders will be defined within a database table that contains the following information: name—a unique name for the placeholder; type—the name of an EJB that represents the ContentBucket producing; and content for the placeholder.
The ContentBucket interface defines an interface which the PlaceholderService uses to receive content. This interface will be implemented by "Buckets". The DiscountBucket also is a content bucket.
This is an abstract base class that implements a transform of the output of a ContentBucket before passing it back to the PlaceholderTag, and acts as a connection point where the system may perform XSLT type transformations to the output of a ContentBucket.
EJB Email Service
The Email Service session bean is a generic platform-level service to provide the ability to send email. It provides real-time email capabilities, as well as batch email capabilities. In the simplest case, an email can be sent by providing a "to" address, subject, and message text. A default "from" address can be specified in the server configuration.
Email Batching
The Email Service also provides the ability to batch a set of emails to be sent later. In the context of a Campaign, this can be used to gradually accumulate emails about a promotion or special offer as users generate events, and then send them all at once when the promotion starts. A batch of emails may be identified with a string id. In the context of a Campaign, this might be the name of the Campaign. Each batch will have a date to determine when it should be sent, or possibly a range, so that emails added to a batch before the start date will be batched, and emails added within the date range will be sent immediately.
EJB Campaign Service
The Campaign Service is the highest level service covered by this document. A Campaign is a sponsored set of scenarios designed to achieve a goal.
Campaign Service Session Bean
The Campaign Service Session bean is the interface between campaigns and the rest of the system. It implements an EventListener interface so that it can receive events that should be processed by the scenarios that make up a campaign. This session bean also provides functionality for tools to deploy new campaigns, and retrieve campaign definitions as XML.
Campaign Object
A campaign contains a set of Scenarios, as well as some information about the campaign itself such as a start and end date.
Campaign Bootstrap
In some embodiments, a campaign may also contain a bootstrap rule that will be executed when the campaign is deployed OR when the server starts up. This bootstrap rule can do things like place entries in the global ad bucket so that users can be shown ad content for the campaign without needing to trigger an event that is recognized by one of the campaign's scenarios.
Part of a campaign definition is a set of date-time and time ranges for which the campaign is active. These ranges can also be negative; for example, there can be a date range from December 18-December25 and an inactive time range of 8am -11am. This would cause the campaign to consider itself active between the 18th and 25th of December, but not between the hours of 8am-11am. Part of the first "isActive" call to a campaign will be to check these date ranges against the current date/time so that the call can be short-circuited without firing up the rules engine.
Additionally, in some embodiments an activation rule can be defined for a campaign. The activation rule can return either true or false, and will be called after the active date range is validated. This provides an alternate method of short-circuiting the call prior to running all the rule sets that belong to the campaign's scenarios. The activation rule also provides a way to stop the campaign from executing once a "goal" is met, by having the rule check for the goal condition, and return false if it has been met.
Receiving an Event
When a campaign receives an event through the Campaign Service, it will first check to make sure that it is active by looking at its start and end date range, as well as any defined time ranges, and then possibly running its activation rule. If either of these checks fails, the campaign is considered inactive, and will not execute further. If the campaign determines that it is active, it will pass the event to each of its scenarios, so that they can all act on the event by running their rule sets, and executing any actions that result from that.
Cleaning Up After a Campaign
In accordance with one embodiment, campaign definitions can also include a "cleanup rule" that will be executed when the campaign is undeployed. This will give the campaign a chance to delete any information that may have been created during its run, like ad queries in ad buckets. Like the rules in a scenario, this rule will return zero or more Action objects that can be executed to do the cleanup. It will be evident that alternative methods of cleanup can be used.
Deployer Service
The interface to the deployer component is the DeployerServlet. This is a standard servlet that will accept a stream of XML, which contains data to deploy, and route that stream to an appropriate helper class. The servlet's configuration information will contain information mapping XML document types to implementations of a DeployerHelper interface. When the servlet receives the XML data stream, it will examine the document type, and instantiate the correct DeployerHelper implementation to handle it. Each DeployerHelper implementation will know how to deploy the data from the XML stream. This is up to the individual component; it could be calling a session bean to handle the actual deployment, or it could be entering the data in the database directly.
EJB Event Service
The campaign and scenario have a requirement to have potentially synchronous event handling, in addition to asynchronous event handling via JMS. In the Event property set type, the name of each property set will correspond to an Event type. This mechanism will allow the editors to be extended as we or our customers add new event types. The following Event types and property set are supported, although it will be evident that additional Event types can be supported within the spirit and scope of the invention:
The following section describes a typical implementation of a personalization system in accordance with one embodiment of the invention. It will be evident that alternative implementations can be used within the spirit and scope of the invention.
Behavioral Tracking
Some embodiments of the invention are particularly useful for tracking users actions on a Web-site, and for using this tracked information to modify the Web-site content accordingly. In order to track users' interactions with a website, a behavior tracking system can be used to store this data for future analysis. Generalizing the event mechanism involves two major tasks.
The event types must be decoupled and defined in terms of the context in which they will be used. Display events must be defined for a general page view, product view, and ad view. The same is true of ClickEvents. In addition, the definition of the other events must be sharpened and finalized; and,
The event service must be generalized in order to decouple the content of the events from the mechanism. In one embodiment all events are stored in a single database table. A single listener will receive an event from the event service and will pass that event to the single persister. The single persister will call a helper method to create an XML string that will be stored in the database; the data will then be stored in the single database table.
The events that can be tracked include:
SessionBeginEvent—Marks the beginning of any user's session. User does not have to be logged on for the user to be in a session. However, if a user is logged on, they still retain the same session ID they had prior to login. An anonymous user will have a session ID, but not have a user ID until they log on (authenticate). Generated when user's session begins.
The Event Table
In one embodiment the tracking event table structure uses a single table that facilitates storing data from all event types. This embodiment of the table has five columns as shown below, although alternate variations can be used:
The first five items are common to all types of events that are captured and stored in the database. The final item, XML_DEFINITION, represents an XML document that is stored as a CLOB in the table. XML_DEFINITION stores the first five items above and the event specific data that may differ between all of the event types. This XML document is created specifically for each event type.
Administrative Tools and Editors
The administrative tools feature can be split into several main components.
Editors—The actual widgets, icons, and other UI features that the administrator will be interacting with to create a campaign, scenario, ruleset, or discount definition. This is independent of any tools framework, keeping the editors as reusable as possible. The tools framework will create and listen to the models to facilitate the presentation inside a UI and persistence of the underlying objects. Editors also have access to a Repository object that contains information from the outside world such as list of presentation templates, available properties, etc.
The Rules Editor is the foundation of most of the other administrator tools. Campaigns and scenarios are made up of rules (within rulesets). Thus, in order to edit the rules within the scenarios and campaigns, the Rule Editor must be used.
When the Rules Editor is invoked, the "unit of work" is a ruleset. A ruleset is a collection of related rules, bundled so that the Rules Engine can use them together.
The Classifiers ruleset is a special case. Because Classifications (perhaps the fact that the user is a "Gold Member", for example) need to be re-used in any campaign, scenario, or rule, having a single ruleset per application that stores all Classifications that are to be re-used makes life much easier (for us). Thus, there will be a special Classifier ruleset that contains only Classifier rules. Note the difference between a Classifier and a Classification. A Classifier is a rule type whose right-hand side asserts a Classification object. For example, in the Classifier "If the visitor's home state is Colorado, then classify the visitor as a Skiier", the classification "Skiier" would be what is reused in other rules. ("If the visitor is a skiier, then show the Vail Ad in the Left Ad Holder". A Classifier rule is not used within another rule—only a Classification.
XML->HTML-like reader
The Model gives the Rules Editor a ruleset DOM to work with when the Rules Editor is started. When a rule within the ruleset is selected, the Rules Editor must be able to display the rule's Data contained within the ruleset DOM, as well as the Presentation information DOM necessary to show the rule properly. The Rules Editor needs to be able to turn both DOMs' information into a readable rule with hyperlinks for the parameterizable sections.
Phrase Editors
When a hyperlink (parameterizable area) is clicked in a rule, the presentation DOM needs to know what phrase editor to open. A Phrase Editor is a dialogue used to get a specific value for use in the rule. For example, a date and time selector, or a property picker.
Scenario Editor
The Scenario Editor edits a ruleset just as the Rules Editor does. The only difference between the two is that a Scenario is started from a template (an "Ad Scenario" template, for example), and the Scenario has a bit of metadata about it (a description, for example). In other words, most of the functionality (rules) used within the Scenario Editor is nested within the embedded Rules Editor. A Scenario is essentially a ruleset and some metadata. The scenario Data contains this metadata and a link to a ruleset. The Scenario Data also contains a link to the Classifier ruleset, so that Classifications created within the Classifier rules can be used within the Scenario's rules.
Campaign Editor
The Campaign Editor can have multiple scenarios within it, as well as a ruleset of start and end conditions. There is also campaign metadata, such as a sponsor, a description, and searching information (start and end dates, etc). The Campaign Editor uses the Scenario Editor and the Rules Editor when it adds or modifies Scenarios. Campaign Data has links to every ruleset used within, including the Scenarios, the start/end condition ruleset and the Classifier ruleset.
Discount Definition Editor
The Discount Definition Editor is only related to the Campaign, Scenario, and Rules Editors in that rules created within the Rules Editor can refer to discounts created within the Discount Definition Editor (discounting type rules).
A Classifier such as "If the visitor's gender is male, then classify the visitor as a beer drinker" has not only Data such as "gender", "male", and "beer drinker", but also Presentation information about how a Classifier show be displayed ("If the visitor's . . . "). This Presentation information is stored outside of the Editors themselves, so that different Presentations can be plugged in for different uses (such as different locales or a specific Presentation for a business or vertical market).
For each Editor (Campaign, Scenario, Rules, and maybe Discount Definition), there is an XML schema governing how any Presentation XML for that Editor must be structured.
Presentation XML
Given a schema, each Editor needs default Presentation XML. This includes rule text for every type of rule (Classifier, Content Selector, Placeholder Content Selector, Send E-mail, Discount), and display information (maybe just metadata names, maybe more) for scenarios and campaigns.
Each Editor, while knowing how to handle a specific kind of Data and Presentation DOM (campaign, ruleset, etc), should not necessarily have to do all transversal, update, and other activities with the DOM. Each Editor has an associated Model that handles much of the "grunt work", providing useful methods for the Editor.
Convenience methods
The Model for each Editor provides convenience methods that the Editors can use to get or set values from the DOM. For example, a campaign Model might provide a method String getSponsor( ) that traverses the Data DOM to get the sponsor for a campaign.
Each Editor's Model also provides event listening and firing mechanisms so that it is the model's job to inform the tools framework of such things as the "dirtying" of data (meaning the Save button is enabled), based on events fired from the Editor.
The Model for each Editor possesses a Repository of information relating to the Editor. The Repository may contain such information as template lists, and may also hold the reference to the Presentation DOM for each Editor.
Tools Framework
The tools framework is the outer layer of the GUI, and houses the various Editors within. The tools framework is responsible for displaying the sets of campaigns, scenarios, rulesets, and discount definitions. The tools framework also performs saving, opening, and searching (Campaign lookup, for example) tasks. The tools framework never communicates directly to an Editor—it is always done through the Editor's Model.
The word "Data" in this document refers to the information the administrator user is trying to create, update, or delete by using the tools. Data could be a ruleset, a scenario, a campaign, or discount definition.
The template concept is key for the administrator tools. By providing templates at each level (campaign, scenario, rule, and rule clause), the tools make it very easy for the administrator user to create quickly whatever they need to do. By making the templates pluggable (new templates can be created later on), a great deal of power and flexibility is provided.
A template is simply an unparameterized version of a scenario, campaign, or rule (or rule clause). A template provides basic structure, but the Editor should allow modification of a campaign, scenario, or rule started from a template into whatever the administrator user desires. For example, a user could start with an e-mail scenario template and by adding and removing rules, end up with a scenario that discounts a product and sends no e-mail at all.
Some embodiments of the invention allow a user, for example in a Web environment to offer discounts to certain customers. In these embodiments all discounts have unique identifiers. Through a scenario, it is possible to associate a discount to a user.
Discounting is a portion of the promotions functionality that honors monetary promotions extended to a customer by the campaign service, or possibly yet to be developed functionality. Discounting includes defining of discounts and applying those discounts through a pricing service that works on orders or shopping cart contents. Specifically the pricing service will apply a set of discounts to a set of products to maximize the monetary benefit to the customer. Many other services provided by the commerce server will interact with discounting functionality and therefore a number of dependencies and impacts on those services exist.
Customer—The browser-based user who interacts with the commerce site. Also includes computer systems that interact with the commerce site.
Developer—General term for any person operating, configuring, maintaining or developing on the commerce server.
Commerce Engineer, Commerce Manager—Advanced level developer with responsibility for managing the business functions.
Discount Tool—A tool for defining discounts.
Embodiments of the invention provides for a software facility deployed within the commerce server to facilitate providing discounts to customers. Discounts may be provided to all customers or to particular segments of customers. Discounts may always be in affect or may have conditionals that dictate when or under what circumstances the discount is available. In some embodiments, the system includes a dynamic pricing service which executes the discounts against a specific product or set of products to produce the cost of the product or products to the particular customer at the particular time. Although the promotions functionality (the presentation of an offer to the customer other than through the product catalog) is external to the discount system the dynamic pricing service can honor offers made through the promotions facility.
The discount system includes dependency and inter operability with the shopping cart, catalog, checkout and order management systems. The system can stand alone or allow third-party developers to provide there own integration of their catalog and order systems. Tools may be used to maintain discount definitions.
The discount system has two primary use cases. The first involves the developer interfacing with the discount configuration system. The second involves the customer interacting with the catalog, shopping cart, checkout and indirectly with the pricing service. A third use case exists where a developer interfaces to the pricing service to perform an unspecified task.
Embodiments of the invention provide a mechanism that allows the discount system to honor offers presented to customers through the promotion system. The mechanism is termed the discount indication mechanism.
The promotions facility makes all determinations based on user attributes whether a particular user discount applies to a user. After making this determination the promotions facility updates a discount indication mechanism with a user identifier and a discount identifier. The discount indication mechanism is referred to, in the rest of this specification, as the customer discount association.
The discount system provides customer targeted discounting of a qualification style. The basic premise of qualification discounting is that a discount definition describes the items (and in what quantity) required to qualify for a discount (qualifying items) and the items that are to receive the discount (target items). In general, the qualifying items may or may not be the same as the target items. For simplicity, in one embodiment, the qualifying and target items may be required to be the same set of items.
Application of discounts is done in the context of a collection of objects (order, shopping cart, etc.). When a discount is applied to the collection the set of objects matching the discount definition is removed from the collection and the target items are discounted per the discount definition. Additional discounts are applied until there are no more discounts, no more objects in the pool or no discounts that match the remaining collection objects. More specifically, the pricing service will apply the discounts to the given object collection in such a manner as to maximize the monetary savings to the customer.
The discount system may also provide a mechanism for associating sale discounts with particular product items or categories. Sale discounts can be applied prior to any qualification discounting.
Application to Web-based Personalization and Ecommerce Management
In accordance with one embodiment of the invention, a Personalization Rules Editor allows business users to manage customer relationships and fine-tune user-system interactions using a task-driven interface and easy-to-use rule editing templates. The Personalization Rules Editor drives an embedded rules engine, and eliminates the need to master complex Boolean logic to create and edit rules, allowing business people to focus on creating business rules that manage customer interactions.
Behavior Tracking records page impressions, click-throughs, "add-tos" and removals from shopping carts, and purchase and order histories, for use in analysis of customer shopping and buying patterns.
Placeholders and Promotions are an easy way for business users to specify where promotional content will appear. Once Java Server Page (JSP) page tags are in place on the pages, placeholders eliminate the need to reprogram the application every time content on the pages needs changing. Users simply point and click to choose and place content on pages using the administration tool.
An Email Service provides the ability to send personalized emails triggered by user events.
Discounts and Pricing can be applied in a variety of ways including percentage off, fixed amount off, and fixed price. Discounts may be applied to product items, whole orders, or shipping. Cross-sell and up-sell scenarios can be combined with discounts to create strong incentives.
The web-based Personalization Server enables management of customer relationships to win and retain customers. A business must quickly attract and retain customers to achieve competitive advantage and market leadership. The Personalization Server provided by the invention enables adaptable e-commerce applications that personalize customer interactions and drive online sales. Information can be captured about customers and shared with the business processes inside and outside the enterprise, and used it to enhance customer experience. Capturing this information, and using it to personalize future interactions, ensures that the e-business delivers highly relevant information to customers.
The Personalization Server includes complete personalization capabilities, and a rich set of pre-built templates and commerce functions, to quickly assemble adaptable solutions that respond to the needs and interests of customers and targeted customer segments. The portal framework included in Personalization Server allows developers to quickly build portal sites using a my Portal-style interface. This new framework enables users to personalize the content, layout, and overall appearance of the portal according to their own preferences, as well as manage their profiles. Also included are essential tools for integrating with leading e-analytics e-marketing systems, and creating and managing personalized content utilizing either out-of-the-box solutions or integrated content management packages. The customer experience can be personalized based on responses to outbound marketing campaigns, and response information analyzed to further segment customers for deeper personalization.
Using a task-driven, user-friendly GUI tool, the powerful personalization capabilities of Personalization Server can be directly accessed by business managers.
Benefits provided by the invention include:
The invention thus provides a system for web-based personalization, that allows for personalizing the content or business functioning of a web-based application to reflect the characteristics of a particular user of said web-based application, said system comprising: a user profiler, for determining a snapshot of a particular user of a web-based application; a rules editor for inputting a set of rules governing the business functioning of said web-based application; a rules engine, that accepts input from said rules editor and said snapshot of said particular user, and uses said set of rules to make decisions about said particular user and the business functioning of said web-based application; and, a personalization processor that uses the output of said rules engine to determine the content or business functioning of said web-based application as it applies to said particular user.
Additional Features
Additional features provided by various embodiments of the invention include those listed below. It will be evident to one skilled in the art that the following list is presented to illustrate the various features that can be used with the personalization system provided by the invention, and that many modifications and variations will be apparent within the spirit and scope of the invention.
The foregoing description of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obviously, many modifications and variations will be apparent to the practitioner skilled in the art. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, thereby enabling others skilled in the art to understand the invention for various embodiments and with various modifications that are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalence.
Citations de brevets
Citations hors brevets
Rķfķrencķ par
╔vķnements juridiques
Image d'origine
Faire pivoter


text:
The Liberal side of our country does not like the words: "Illegal Alien." Jay Leno has suggested that we replace those words with this: "Undocumented Democrats." Sounds right to me!
The Liberal side of our country does not like the words: "Illegal Alien." Jay Leno has suggested that we replace those words with this: "Undocumented Democrats." Sounds right to me!
I suggest we use the term BODYBAG STUFFING. These FEDERAL FELONS have INVADED our country. not with the intent of 'living the American Dream', but STEALING the American Dream. They shuold all get a 7.62 round in t he head as they invade our cointry, and ANY ILLEGAL that is found in the interior that is not ACTIVELY heading South, should get the same.
AWWWwwww What about the kids. Phuque 'em. When I was the sole support of my late father, I did 45 days for contempt. When I asked the judge if I could serve it out on weekends so I could keep an income coming into the house he said in open court, and I quote, "Phuque Ewe. You should have kept your mouth shut @$$ole"
I say let the RIO GRANDE run red with blood and
Remember the Alamo!
" Save a tree...........Eat A Beaver!"
I seldom talk to liberals.............................. But when I do, I order fries............
That's about what I have heard in Kalifornia since 1972.
Sad. And only now are these slogans hitting the public conscience.
There are worse:
"La Raza" "For the Race" As in "for the Latin Race"
"Mecha" "Medicine" As in the Medicine for the Anglo's
"Alianza" "Alliance" But the common meaning is "No Compromise"
Of course, like any language, the translation is dependent on the context. Spanish is no different.
The three words / Phrases I posted above are all names for "Hispanic" or "Chicano" Student organizations that have infested S. California Schools since the 1960's. They were originally funded via an organization that was publicly affiliated with Native American Indians (the Central American kind) and Headquartered in El Salvador. There was this little insurrection there in the late 1970's. Anyone remember that?
These organizations were the incubators for all of the Lefty-Libtard-Communist-Facist-FleshEating-DestroyAmericaNOW-Lawyers that have been arguing and winning over the idiot Democrats to their cause since the late 1980's. And now they have spread. EVERYWHERE! In Medical terms, they have metastasized!
They are smart. They are here. They can not be defeated by normal means. The only way to destroy them, is to excise them. They seek retribution for the Alamo, and the Treaty of Guadalupe Hidalgo that ceded California and much of the Western United States after the Mexican American War. Nevermind that we paid off their debt to Spain. Nevermind that they have lived for over two centuries under the umbrella of our protection. None of that matters. Only the Reconquista!
Imagine whirled peas
Peace, Love, And Superior Firepower
Mr. Bellson, good guess..... There is a group of legals, illegals, mestizos, what have you that are trying to 'take back' the SouthWest U.S because it's 'theirs'. Not just what we would consider the SouthWest but up to and including the Monterey Peninsula in California and including parts of Nevada, Utah and Colorado. This trash calls themselves 'La Reconquistadors';as in they are going to take back, 'reconquer' a part of the U.S.
So my sign-off line is 'DEATH to the RECONQUISTADORS'
They need to make the border as close to 100% secure as possible. I'd start with an electrified fence, then a 20 yard "no man's land" that is seeded with mines, then another electrified fence, then a 20 foot high concrete wall, at least 5 feet thick, with guard/observation towers every half mile, topped with concertina wire. Authorize the border guards to shoot to kill ANYTHING that pops up over or under the border, unless it's headed back South. Put regular, thermal, and night vision cameras along the border that can be remotely operated by someone in a command center, and place small command centers every 20 miles. Give the border guards excellent equipment and allow them to do their jobs!!!!!!!!!!
Enforcement, NOT Amnesty!!!!!!
"If theyre going to come here illegally, apply for & receive assistance through a corrupted Government agency encouraging this lawless behavior, work under the table & send billions of dollars each year back to their families in Mexico, while bleeding local economies dry, protest in our streets waving their Mexican flags DEMANDING rights, while I have to press 1′ for English, then they need to be shipped back to where they came from!" -Chad Miller
Illegal alien is accurate though I will settle for invaders!
Back during the 50s, EVERYBODY called them "WETBACKS," even the government! I remember President Eisenhower calling them that! Because, that was how they were known at the time. But, now that word has become a "dirty word." But, I sometimes think that it still fits!

subset: commoncrawl


text:
Wednesday, March 6, 2013
A man of the cloth?
I get into moods when it comes to my clothes. These moods last about a minute and a half because I don't put a lot of thought into what I wear.
As long as I'm zipped-up, not button crooked, and with no shirttails sticking out of odd places, I'm good.
During the winter I often go for the black and gray lecturing professor look – whether I believe I can pass for a visiting lecturing professor or not.
I have this "Man in Black" look. Black sport coat, black mock turtleneck, black trousers, black socks, right down to black boxers.
I wear black because black is supposed to be slimming, and combined with my silvery hair and closely trimmed beard, it makes for what I hope to be an alluring site for the ladies.
I'm not trolling when I get all trussed up in black because in all seriousness I don't see myself as the trolling type. Oh, I belong on a lake bottom somewhere but I digress.
On Thursday I had the MIB look working nicely.
I'm standing in a Barnes and Noble perusing the contemporary fiction section looking for something to read when an attractive woman approaches. While she too is perusing the contemporary fiction section of books, I can tell her attention is more on me than what may be on the bookshelves.
I'm thinking "Yahtzee!"
Somebody's about to score.
She stands there regarding the bookshelves, cutting the furtive side glance my way until finally she says to me, and listen closely: "Father, that was something else today in the Vatican, wasn't it?"
This was the day Pope Benedict XVI became the first pontiff in more than 600 years to retire his Vatican post as head of the Roman Catholic church.
That's when I regard my MIB Look reflection in the store window. I don't look anything like Johnny Cash, but more like Spencer Tracy's Father Flannigan in "Boys Town." The only thing missing was the clerical collar.
She thinks I'm a priest.
I give it a One-and-a-half Mississippi and note my all-black attire; and kudos to me for thinking quickly on my feet because quick thinking is not included in my skills sets.
I reply in an introspective and spiritual tone, "These are transitional times, my child."
I figured – quickly thinking mind you – that it would be less embarrassing for her and less awkward for me to just play along than to say she was mistaken because of the way I was dressed.
I thought about doing the sign of the Cross but since I'm left handed I would have done so as a Southpaw and I'm not real up to date on any potential dark side ramifications for making ceremonial theological hand signals with the left hand.
I surely didn't want my inadvertent faux pas to open some mysterious portal into a dark dimension and rain fire and brimstone down upon the Earth.
So, I buy my book and beat a trail for the parking lot wondering how much trouble a person can get into for impersonating a man of the cloth.
Now, before dodging the lightning I did take into account that I am an ordained minister duly sworn. I consider my five-minute ordination period as an introspective time of my life.
But Lord, have mercy. You can't make this stuff up. Or maybe you can.
There, that should hold up in court.
The Berkeley Independent is pleased to offer readers the enhanced ability to comment on stories. We expect our readers to engage in lively, yet civil discourse. We do not edit user submitted statements and we cannot promise that readers will not occasionally find offensive or inaccurate comments posted in the comments area. Responsibility for the statements posted lies with the person submitting the comment, not The Berkeley Independent.
If you find a comment that is objectionable, please click "report abuse" and we will review it for possible removal. Please be reminded, however, that in accordance with our Terms of Use and federal law, we are under no obligation to remove any third party comments posted on our website. Read our full terms and conditions.
© 2015 The Berkeley Independent an Evening Post Industries company. All Rights Reserved.
Registration on or use of this site constitutes acceptance of our Terms of Service, Privacy Policy and Parental Consent Form.


text:
For a sophisticated nursery with a cool element, the Sophia 9 Piece Crib set is just right! Modern black and white damask print is offset with baby pink borders for a stylish look that won't be outdated.
9 Piece Set Includes:
- Crib Comforter
- Crib Bumper
- Fitted Sheet
- Crib Skirt (Dust Ruffle)
- Diaper Stacker
- Toy Bag
- Decorative Pillow
- 2 Window Valances
Note: Other accessories shown in picture are not included.
Gift Wrap not available.


text: Alexandra Rausch is an Assistant Professor in Business Management and Management accounting at the Alpen-Adria-Universitaet Klagenfurt, Austria. Her current research interests include Managerial decision-making behavior, Behavioral Accounting, Stakeholder Management and her main research methods focus on empirical and experimental surveys. Her doctoral thesis was about the efficiency and effectiveness of communication processes in management. Besides research she teaches Management Accounting and Budgeting at the Universitaet Klagenfurt and at the Universitaet Salzburg as well as in practice-oriented university-level programs. Furthermore, she held seminars on special topics at the University of Rijeka (Croatia) and Padua (Italy). Alongside her core responsibilities research and teaching she also conducted several projects in operative and strategic business practice and is volunteer managing director of the Committee for supporting the Faculty of Business Administration at the Universitaet Klagenfurt.


text:
Tuesday, February 9, 2010
The soldiers released a volley of rifle fire followed by a cloud of smoke. As they lowered their rifles to reload, Ensign Boggs rushed up behind them, firing off a volley of his own -- harsh criticism of their shooting skills. The soldiers of the 1st Independent Company of South Carolina raised their rifles once more, fired and received another set of insults -- all to the delight of the crowd.
Visitors were invited to come and witness life during colonial times as soldiers performed drills, merchants sold their goods and children ran along the hillside playing games Saturday at Colonial Dorcester State Historic Site. The park celebrated the 250th anniversary of the building of the fort still standing at what was known as the town of Dorchester.
The Journal Scene is pleased to offer readers the enhanced ability to comment on stories. We expect our readers to engage in lively, yet civil discourse. We do not edit user submitted statements and we cannot promise that readers will not occasionally find offensive or inaccurate comments posted in the comments area. Responsibility for the statements posted lies with the person submitting the comment, not The Journal Scene.
If you find a comment that is objectionable, please click "report abuse" and we will review it for possible removal. Please be reminded, however, that in accordance with our Terms of Use and federal law, we are under no obligation to remove any third party comments posted on our website. Read our full terms and conditions.
© 2015 The Journal Scene an Evening Post Industries company. All Rights Reserved.
Registration on or use of this site constitutes acceptance of our Terms of Service, Privacy Policy and Parental Consent Form.


text:
Wind: 0 mph
Oswell "Ozzie" John Goss, 83, passed away in the comfort of his home and family in Moretown on Sunday, August 12, 2012. Born in Littleton, NH, on September 12, 1928, he was the son of the late John and Maude (Hutchins) Goss. On September 27, 1952, he married the former Evelyn Rita Kilby at St. Andrew Catholic Church in Waterbury.
Ozzie attended schools in Warren and Moretown and then as a young man worked as a farmhand. He later was employed by Ward Lumber Co. of Moretown, delivered milk for Winnisquam Farms of Waterbury and then worked for the State of Vermont Highway Department. Most recently he worked for the Vermont State Department of Liquor Control, retiring in 1991.
Ozzie was an integral part of the fabric in Moretown. He served as a longtime member and Assistant Fire Chief of the Moretown Volunteer Fire Department, was a justice of the peace, second constable and served as the janitor at the Moretown Town Hall. A faithful and devout member of St. Patrick Church in Moretown, Ozzie and Evelyn spent many years raising money and caretaking at St. Patrick Cemetery. He was also a member of the National Guard and Mad River American Legion Post 75 in Waitsfield.
Ozzie could oftentimes be found holding court on the front porch of their home in the village of Moretown visiting with friends and neighbors. His other interests included fishing, hunting, swimming, camping and watching NASCAR racing.
Ozzie is fondly remembered by his family for the love and devotion to his wife, Evelyn, and their children and families.
Ozzie is survived by his wife of nearly 60 years, Evelyn R. Goss of Moretown; their children, Patricia M. Moulton and her husband F. George Moulton II of Bonita Springs, FL, Christina A. Lamson and her husband David of Northfield Falls, Rebecca S. Ciampi and her husband Craig of Moretown, John O. Goss and his wife Reta of Warren, and Michael R. Goss and his companion Jesse King of Waterbury Center; eight grandchildren and nine great-grandchildren. He was predeceased by a daughter, Joy A. Goss, in 1961.
A Mass of Christian Burial will be celebrated from St. Andrew Catholic Church in Waterbury on Thursday, August 16, 2012, at 11 a.m. with a reception to follow in the church parish hall. There will be no calling hours. Interment will take place in Mountain View Cemetery in Moretown. The family requests that flowers be omitted; rather memorial gifts would be appreciated to the Moretown Volunteer Fire Department, P.O. Box 491, Moretown, VT 05660. To send online condolences visit www.perkinsparker.com and Facebook. Assisting the family is the Perkins-Parker Funeral Home in Waterbury.


text:
This week's music section is like a giant, gaudy neon sign flashing the word "CHRISTMAS!" two feet in front of your face!
There are a bunch of holiday concerts in town this week, and we feature six of them:
–Jazz fusioneers Spyro Gyra at On a Lite Christmas Nite
–Throwback harp-guitarist John Doan does his Victorian Christmas show
–Broadway star Gary Morris plays A Starry Nights Christmas in Sisters
—Blind Boys of Alabama have already sold out the Tower Theatre
–Smooth jazz pianist Tom Grant is at The Oxford Hotel
—Bill Keale and friends do the holiday Hawaiian-style at The Old Stone
Elsewhere: PoetHouse Art hosts a benefit for paralyzed snowboarder Tyler Eklund tonight, Brandi Carlile's back but tickets are long gone, a group of Sisters songwriters play at The Barn, and Bobby Lindstrom's back in town, plus the Josh Hart Project, Little Black Dress, DSkiles Band, Bloodlust and Embrace the Fear. Again, it's all right here.


text:
Join the Megadeth Cyber Army, Megadeth's official fan club. The MCA is a gathering place to chat, have fun, hang out and discuss all things Mega and metal. Win some awesome prizes, interact with the band members, check out exclusive content, shop at the club-exclusive store, and pick up a kick-ass introductory package when you join as an Ultimate Soldier! cyberarmy.megadeth.com
Are you tagging your pics with #mymegadeth? Show us how Megadeth is a part of your life! Tag your pics on Instagram, Facebook, and Twitter. Every month we award a prize to a random winner! instagram.com/megadeth
The Dean USA Custom shop is rolling out some Dave Mustaine Signature VMNT Angel of Deths! Also, here is a great shot of Dave with Megadeth and his DEAN USA VMNT AOD at Wacken 2014!!! See the whole line of Dave's signature Deans here: bit.ly/Y9SyFX
Attention Megamail Subscribers and all Megadeth fans! We have moved mail services! Megamail has moved to a much more efficient mail service so that we can provide you the very best way to get you all the latest and greatest news about Megadeth! To ensure that you are not missing out on any upcoming Megadeth exclusives, sign up for our new Megadeth Megamail Mailing list at the following secure link:
Megadeth will perform at Japan's Summer Sonic 2014 this coming weekend. The festival takes place on August 16 & 17 in Tokyo and Osaka. Lineup includes Arctic Monkeys, Robert Plant, Avenged Sevenfold, Pixies and more. Fore more information, visit summersonic.com/2014.
Ladies! Post a pic of yourself wearing a Megadeth shirt tagged with #megadethgirls for a chance to win! One lucky lady will receive a Megadeth t-shirt signed by Dave Mustaine! Enter here: s.heyo.com/7a9487.
Hey Megafans!! Here's your chance to come SAIL WITH US TO COZUMEL FOR FREE on Motörhead's MotörBoat! Click through to on.fb.me/1mD8Qwg to be entered for FREE!!
You can NOW watch Megadeth live from BLOODSTOCK at Catton Park in Derbyshire, U.K., (August 10, starting at 9:00 p.m. U.K. Time) below.
This weekend heralds the arrival of BLOODSTOCK Festival! BLOODSTOCK have partnered with live streaming website, Daily Motion to enable those who can't get along to Catton Park this weekend to still enjoy three days of metal mayhem from the Ronnie James Dio main stage. You can catch Megadeth live on Sunday, Aug 10 at 9:00 p.m. U.K. Time at the following link: www.dailymotion.com/video/x12kc97_live-stream-bloodstock-festival-2014_music.
New 20th Anniversary Youthanasia merchandise is now available for purchase in the Official Megadeth Shop. Check out the new Youthanasia Tee, Youthanasia Raglan, and a new Megadeth Baseball Jersey and Megadeth Vic Tee all at Megadeth's online store! store.megadeth.com
Tweets from @Megadeth/megadeth-dave-mustaine


text:
|Idaho state parks - a beautiful place to play and stay!
Find Campsites
Sugarloaf:: Due to Sugarloaf's automated irrigation system, all camping equipment must be on living pad or site pad to prevent from getting wet. In addition, the irrigation water is not safe to drink.
ATTENTION: Please note beginning with 2015 stays, Idaho State Park fees will charge different rates for resident and non- resident customers. This change requires the collection of unique primary site occupant information (name, address, and telephone number) for all sites. This includes cabins, campsites, yurts and group facilities. Customers booking multiple sites under one name should expect a follow up call from IDPR staff requesting primary occupant information.
Lake Cascade State Park, ID
Status: Open year round. Season Dates
Max reservation window: Fri Apr 29 2016 Later Dates
234 site(s) found
Companion Campsite Serviced /W/E (2 hkp) (5)
** Arrival dates earlier than the online-reservation-window may also be available at the campground.


text:
Wednesday, April 10, 2013
Santee Cooper begins its spring 2013 Mini-Bond sale last week, offering investors the opportunity to purchase municipal bonds throughout April for as little as $200.
Santee Cooper Mini-Bonds, which are tax exempt, are available for purchase by residents of South Carolina, customers of Santee Cooper, members of the state's electric cooperatives, electric customers of the city of Georgetown and electric customers of the Bamberg Board of Public Works. The term "tax-exempt" means exempt from federal and South Carolina income taxes for South Carolina residents under current law.
Interest rates vary according to the bond maturity dates, which range from 2018 through 2033. A complete list of interest rates will be available throughout the sale at www.scminibonds.com.
The last date to request an information packet for the 2013 Series M1 Mini-Bonds is April 25, and the last date to order Mini-Bonds is April 30. Investors can purchase directly from Santee Cooper by ordering bonds online at www.scminibonds.com or by calling toll-free 1-877-246-3338 to request information or order forms. The maximum combined purchase is $50,000 per individual.
"Once again, we are pleased to offer investors an easy and unique opportunity to enhance their portfolios by investing in South Carolina," said Lonnie Carter, Santee Cooper president and CEO. "Not only are they an easy investment opportunity, Mini-Bonds also help Santee Cooper fulfill our responsibility to provide South Carolina with reliable, low-cost and environmentally protective electricity."
The Berkeley Independent is pleased to offer readers the enhanced ability to comment on stories. We expect our readers to engage in lively, yet civil discourse. We do not edit user submitted statements and we cannot promise that readers will not occasionally find offensive or inaccurate comments posted in the comments area. Responsibility for the statements posted lies with the person submitting the comment, not The Berkeley Independent.
If you find a comment that is objectionable, please click "report abuse" and we will review it for possible removal. Please be reminded, however, that in accordance with our Terms of Use and federal law, we are under no obligation to remove any third party comments posted on our website. Read our full terms and conditions.
© 2015 The Berkeley Independent an Evening Post Industries company. All Rights Reserved.
Registration on or use of this site constitutes acceptance of our Terms of Service, Privacy Policy and Parental Consent Form.


text:
David Hall: The 1937 is fairly available in mint state and Gem condition. It is rarer than the 1936 and 1939, but not as rare as the 1934, 1935, and 1938. Luster is usually white and frosty and strike is typically sharp.
© 1999 - 2015 Collectors Universe NASDAQ: CLCT


text:
Hilbert and Fredonia Go 2-0 in Hawks Tournament
- Release Date:
- September 14, 2012
- Contact:
- The Office of Sports Information
- (716) 649-7900 ext. 333
HAMBURG, NY – Hilbert College hosted their first annual women's volleyball Invitational Tourney September 14th and for the several hundred fans in attendance it was a very entertaining afternoon and late evening watching the exciting play from all teams.
Hilbert found a way to battle back to capture their fifth win out of six tries this season when they beat SUNYIT in five sets (25-22, 27-29, 22-25, 25-14, 15-13) Freshman Allegra Johnson (15) and Chelsea Reischuck (11) finished with double-digit kills and Shannon Memminger had 38 assists. After long serves early in the match, the Hawks found their groove and finished with 17 service aces. SUNYIT's Kaitlyn Harrington led with 15 kills. Taviot Jackowski completed 30 assists while Jessica Sass kept play alive with 13 digs.
Meanwhile on the next court, D'Youville College and Keuka College worked just has hard playing to a four set match. Keuka opened with a 25-23 win, D'Youville fought to a 31-29 victory before Keuka took the next two sets (25-23 and 25-19). Keuka's Paige Golden had an impressive match earning 27 kills and 19 digs. Taylor Smith led the Storm with 22 digs and Jill Nolan passed for 38 assists. D'Youville had four players finish with double digit digs led by Lara Svensson and Alicia Porack's 20 apiece. Luciana Payne earned 12 kills and Natalie Rieman finished with 30 assists (10 digs).
SUNYIT finished the day with a 3-0 sweep of Keystone (25-15, 25-22, 25-14). Keystone's Shelby Morgan earned 14 kills and Chrissy Busichio led with 11 digs. Carol Busichio quarterbacked the team with 16 assists for the Giants. The big three, Harrington (15 kills), Sass (23 digs) and Jackowski (33 assists) led SUNYIT to a 1-1 day.
Keuka (5-3) went into another long four game set with Fredonia but came up on the short end of the straw this time. Fredonia has great position at the net earning 44 team kills and 10 blocks to squeak out the 25-20, 25-19, 23-25, 25-19 victory. Lindsey Olson finished with a double-double (13 kills and 10 digs) Meredith Smietana led five Blue Devils at the net with six blocks to pair with her 9 kills. And Kelly Edinger passed for 36 assists.
Hilbert moved to 6-1, the team's best start in school history after their 3-0 late game over Keystone (0-9). Shelby led Keystone with 6 kills and 11 digs. The Hawks had seven different players credited with kills, led by Reischuck (6). Hilbert, again, served up 11 aces during the match.
And in the final match of the night, Fredonia started slow, but then kicked it back into gear. In their 4 set victory over D'Youville, Olsen finished with 13 kills and Lauren Hokaj 23 digs with Kelly Edinger setting for 36 assists.
The day's recap can be found on the Hilbert Invitational Page along with Saturday, September 15th game times/pairings.
Hilbert College, located in suburban Hamburg, N.Y., south of Buffalo, is a private four-year college founded in 1957 in the Catholic Franciscan tradition. With nearly 1,100 students, Hilbert is a dynamic Western New York college that offers career-focused majors, including one of the top criminal justice programs in the region, and more than 50 minors and concentrations. The college's engaging, student-centered campus community offers numerous leadership, internship, and service learning opportunities from which students launch successful careers while making positive changes in their communities. The Hilbert Blueprint promotes a well-rounded student experience over four years – starting with the Foundations Seminar in the freshman year, followed by Sophomore Service, Junior Symposium, and culminating with the Senior Capstone. Hilbert has expanded its academic offerings with the college's first graduate programs and new Accelerated Degree Programs geared to adult learners.
Upcoming Events
- First Year Student Orientation
- Aug 14, 2015
- Summer Session A2 Ends
- Aug 21, 2015
- First Year Student Orientation
- Aug 28, 2015


text:
- ePapers
- News
- Schools
- Sports
- Records
- Calendar
- Classifieds
- Area Links
- Contact
30-07-2015 Hits:175
Peach harvest from 1914.Most area residents know of the great history of peaches growing in the Catawba Island area. Few, however, realize the importance of this particular year as it...Read more
29-07-2015 Hits:765
A satellite image by NOAA taken July 27 shows the algal bloom near the area.As predicted by multiple organizations, there is a harmful algal bloom in Lake Erie. How we've...Read more
26-07-2015 Hits:242
A female Osprey getting banded at ONWR. By Heidi Hughes, Ottawa National Wildlife RefugePhotos by Heidi HughesNot the football team. We're talking about real, live fish eating birds of prey: Ospreys.Read more
Vee Reifsnyder of the Walleye Drop committee
Items for the raffle featuring a Yuengling kayak
Car show
Jessica Toris who enjoyed and the games and sun with her sister, Juliet.
Destination Designs
Making Your Web Work
Having an online presence is essential for growing your small business. The internet will connect you with potential customers every hour of every day through your website, directories, and social media. Reaching these customers takes careful planning and good design. Destination Designs combines thirty years of media experience, an award winning design team, and with internet marketing solutions that meet every small business's budget.


text:
Alliance coach wants Alexander Gustafsson vs. Antonio Rogerio Nogueira and Phil Davis vs. Gegard Mousasi
Hey Joe Silva, go ahead and take five, Eric Del Fierro has that whole matchmaking thing under control.
Ultimate Fighting Championship (UFC) President Dana White is hoping to coordinate a future fight with Alexander Gustafsson, one that would have "The Mauler" competing (in Sweden) around the same time as the promotion's Super Bowl Weekend fight card, with the intention of keeping pace with UFC Light Heavyweight Champion Jon Jones.
That way he can set up their highly-anticipated rematch for summer 2014.
That's assuming both competitors are successful their next time out. While "Bones" is trying to break Glover Teixeira, Gustafsson (15-2) is still without a date to the big dance. But in a perfect world, according to his Alliance MMA coach, he would be facing one of two top-10 contenders when the time comes to lace 'em up.
From UFC Tonight:
"I talked to their coach Eric Del Fierro and he said in a perfect world he'd like Phil Davis to fight Gegard Mousasi next. For Alexander Gustafsson, he joked he'd like to fight Jon Jones again. Gustafsson would like to fight Ryan Bader or Antonio Rogerio Nogueira next."