U.S. patent application number 11/510064 was filed with the patent office on 2007-05-03 for custom user definable keyword bidding system and method.
Invention is credited to Dipendra Malhotra, Kevin Smith.
Application Number | 20070100708 11/510064 |
Document ID | / |
Family ID | 38007018 |
Filed Date | 2007-05-03 |
United States Patent
Application |
20070100708 |
Kind Code |
A1 |
Smith; Kevin ; et
al. |
May 3, 2007 |
Custom user definable keyword bidding system and method
Abstract
A system and method allow a user or business entity to create
customized rules for bidding on keywords to/from a search engine. A
bid automation engine allows a user or business entity to specify a
number of rules for bidding on keywords used in Internet
advertising campaigns. The bid automation engine may be part of, or
interface with, a web analytics tool and/or a bid management system
to provide user-defined strategies for bidding on keywords.
Accordingly, a user or business entity may set up a customized
bidding strategy for keywords by building sets of bidding
rules.
Inventors: |
Smith; Kevin; (Pleasant
Grove, UT) ; Malhotra; Dipendra; (Princeton,
NJ) |
Correspondence
Address: |
FENWICK & WEST LLP
SILICON VALLEY CENTER
801 CALIFORNIA STREET
MOUNTAIN VIEW
CA
94041
US
|
Family ID: |
38007018 |
Appl. No.: |
11/510064 |
Filed: |
August 24, 2006 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
60731159 |
Oct 28, 2005 |
|
|
|
Current U.S.
Class: |
705/26.1 |
Current CPC
Class: |
G06Q 30/0601 20130101;
G06Q 30/08 20130101; G06Q 40/04 20130101; G06Q 30/0275 20130101;
G06Q 30/0241 20130101; G06Q 30/02 20130101; G06Q 30/0242
20130101 |
Class at
Publication: |
705/026 |
International
Class: |
G06Q 30/00 20060101
G06Q030/00 |
Claims
1. A computer-implemented method of keyword bidding for Internet
advertising, comprising: enabling a user to define a keyword
condition to be met in order for a rule to be triggered; and
enabling a user to define an action to be taken when the rule is
triggered, wherein the action results in bidding for the keyword
according to a selection by the user.
2. The computer-implemented method of claim 1, wherein the
selection relates to adjusting a cost-per-click (CPC)
parameter.
3. The computer-implemented method of claim 1, wherein the action
results in bidding for the keyword according to a predefined
selection.
4. The computer-implemented method of claim 1, further comprising:
interfacing with a search engine to collect information for
determining whether the keyword condition has been met.
5. The computer-implemented method of claim 1, further comprising:
interfacing with a web analytics tool to validate a performance of
the keyword bidding.
6. The computer-implemented method of claim 1, further comprising:
enabling the user to define a library of customized bidding
rules.
7. The computer-implemented method of claim 1, wherein the
selection relates to at least one of disabling the keyword and
taking no action.
8. A system for customized keyword bidding for Internet
advertising, comprising: a bid automation tool arranged to allow a
user to customize at least one rule for bidding on a keyword; a bid
management system operatively connected to the bid automation tool
and arranged to perform keyword bidding with a search engine; and a
web analytics tool operatively connected to the bid automation tool
and arranged to validate the customized bidding rule.
9. The system of claim 8, wherein the bid automation tool is
further arranged to enable the user to define an event component of
the at least one rule.
10. The system of claim 8, wherein the bid automation tool is
further arranged to enable the user to define an action component
of the at least one rule.
11. The system of claim 8, wherein the web analytics tool is
arranged to monitor web traffic in correlation with instantiation
of the customized at least one rule.
12. The system of claim 8, wherein the bid automation tool is
further arranged to allow the user to select a CPC adjustment as
part of the customized at least one rule.
13. The system of claim 8, wherein the bid automation tool is
further arranged to perform the rule based on at least one
predefined rule.
14. A computer-readable medium having instructions stored therein
and that are executable by a processor, the instructions comprising
instructions to: enable a user to define a keyword condition to be
met in order for a rule to be triggered, the keyword being used for
Internet advertising; and enable a user to define an action to be
taken when the rule is triggered, wherein the action results in
bidding for the keyword according to a selection by the user.
15. The computer-readable medium of claim 14, wherein the selection
relates to adjusting a cost-per-click (CPC) parameter.
16. The computer-readable medium of claim 14, wherein the action
results in bidding for the keyword according to a predefined
selection.
17. The computer-readable medium of claim 14, further comprising
instructions to: interface with a search engine to collect
information for determining whether the keyword condition has been
met.
18. The computer-readable medium of claim 14, further comprising
instructions to: interface with a web analytics tool to validate a
performance of the keyword bidding.
19. The computer-readable medium of claim 14, further comprising
instructions to: enable the user to define a library of customized
bidding rules.
20. The computer-readable medium of claim 14, wherein the selection
relates to at least one of disabling the keyword and taking no
action.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present application claims priority, under 35 U.S.C.
.sctn. 119(e), of U.S. Provisional Patent Application No.
60/731,159, filed Oct. 28, 2005 and entitled "Custom User Definable
Bidding System and Method", the entirety of which is hereby
incorporated by reference.
BACKGROUND
[0002] The rapid growth in accessibility and use of the Internet
has drawn an increasing number of businesses into using the
Internet as a vehicle to attract potential customers. In many
cases, businesses are relying on the Internet as their sole or
primary marketing and advertising conduit. It is now commonplace
for online and "brick-and-mortar" businesses to contract with
search engines in an effort to direct search engine users to the
businesses. Such relationships generally revolve around the use of
keywords (or key phrases), the rights to which are purchased from
search engines by businesses, in response to which the search
engines conspicuously display advertising associated with the
businesses when a user inputs the particular purchased keywords.
For example, a shoe company may purchase the keyword "sandal" from
a search engine, so that when a user inputs "sandal" in the search
engine, the search engine prominently displays a link to the shoe
company or advertising associated therewith.
[0003] The pricing of keywords can vary depending on any one or
more of a number of factors including, but not limited to, the
demand for a particular keyword (the more sought a keyword is, the
higher its value), the number of searches including particular
keywords, time of usage for keywords, and ad position. Further, the
cost of a particular keyword may be fixed, or the cost may depend
on the number of users that click on an advertising link returned
in response to a search of the keyword. The amount of money a
business spends on online advertising is referred to in the art as
"ad-spend", and the general goal of businesses advertising on the
Internet is to minimize ad-spend and maximize not necessarily
traffic through their website, but revenue generated from that
traffic.
[0004] It is not uncommon for businesses keen on online advertising
to purchase hundreds or thousands of keywords from one or more
search engines. Typically, the management of such large numbers of
keywords is performed manually with human users actually inputting
the keywords. For example, keywords are currently managed using any
one of a number of spreadsheet (e.g., Excel.RTM. by Microsoft
Corporation) or document formats (e.g., Word.RTM. by Microsoft
Corporation). Users generally list the keywords in a spreadsheet or
document and then convert the document such that the keywords are
listed in a format that is convertible and uploadable to a search
engine. As indicated above, large advertising campaigns can have
tens of thousands of keywords as part of an Internet marketing
strategy. Therefore, those skilled in the art will note that such
manual management of keywords can be cumbersome and prone to
error.
[0005] Due to the demand and competition for various keywords,
businesses often have to bid for keywords. Search engines generally
provide rudimentary instructions for bidding on keywords. There are
also a small number of predefined bidding strategies. Such
strategies have been encoded by some bid management systems to, for
example, maintain a position with regard to a keyword, maintain
relative pricing as to a competitor or uniform resource locator
(URL), and set bidding by time. However, as there are very few
predefined bidding strategies, with so many different types of
businesses, many bidding strategies may not be applicable to a
large number of businesses.
[0006] Further, as described above, many businesses manage
thousands or tens of thousands of keywords. Each may be associated
with a single advertising campaign or multiple advertising
campaigns. With such a great number of keywords, it is difficult to
fit all of them with one of a very limited number of bidding
strategies. Thus, there is at least a need for a system that
provides flexibility so that a user or business entity is able to
custom design bidding rules or strategies according to their needs
and objectives.
SUMMARY
[0007] According to at least one aspect of one or more embodiments
of the present invention, a computer-implemented method of keyword
bidding for Internet advertising includes: enabling a user to
define a keyword condition to be met in order for a rule to be
triggered; and enabling a user to define an action to be taken when
the rule is triggered, where the action results in bidding for the
keyword according to a selection by the user.
[0008] According to at least one other aspect of one or more
embodiments of the present invention, a system for customized
keyword bidding for Internet advertising includes: a bid automation
tool arranged to allow a user to customize at least one rule for
bidding on a keyword; a bid management system operatively connected
to the bid automation tool and arranged to perform keyword bidding
with a search engine; and a web analytics tool operatively
connected to the bid automation tool and arranged to validate the
customized bidding rule.
[0009] According to at least one other aspect of one or more
embodiments of the present invention, a computer-readable medium
having instructions stored therein and that are executable by a
processor to: enable a user to define a keyword condition to be met
in order for a rule to be triggered, the keyword being used for
Internet advertising; and enable a user to define an action to be
taken when the rule is triggered, wherein the action results in
bidding for the keyword according to a selection by the user.
[0010] The features and advantages described herein are not all
inclusive, and, in particular, many additional features and
advantages will be apparent to those skilled in the art in view of
the following description. Moreover, it should be noted that the
language used herein has been principally selected for readability
and instructional purposes and may not have been selected to
circumscribe the present invention.
BRIEF DESCRIPTION OF DRAWINGS
[0011] FIG. 1 shows a system in accordance with an embodiment of
the present invention.
[0012] FIG. 2 shows a business rule manager user interface in
accordance with an embodiment of the present invention.
[0013] FIG. 3 shows a business rule manager user interface in
accordance with an embodiment of the present invention.
[0014] FIG. 4 shows a business rule manager user interface in
accordance with an embodiment of the present invention.
[0015] FIG. 5 shows a business rule manager user interface in
accordance with an embodiment of the present invention.
[0016] FIG. 6 shows a business rule manager user interface in
accordance with an embodiment of the present invention.
[0017] FIG. 7 shows a business rule manager user interface in
accordance with an embodiment of the present invention.
[0018] FIG. 8 shows a special events user interface in accordance
with an embodiment of the present invention.
[0019] FIG. 9 shows a rule template library window in accordance
with an embodiment of the present invention.
[0020] FIG. 10 shows an advanced editor page in accordance with an
embodiment of the present invention.
[0021] FIG. 11 shows a business rules manager user interface in
accordance with an embodiment of the present invention.
[0022] Each of the figures referenced above depict an embodiment of
the present invention for purposes of illustration only. Those
skilled in the art will readily recognize from the following
description that one or more other embodiments of the structures,
methods, and systems illustrated herein may be used without
departing from the principles of the present invention.
DETAILED DESCRIPTION
[0023] In the following description of embodiments of the present
invention, numerous specific details are set forth in order to
provide a more thorough understanding of the present invention.
However, it will be apparent to one skilled in the art that the
present invention may be practiced without one or more of these
specific details. In other instances, well-known features have not
been described in detail to avoid unnecessarily complicating the
description.
[0024] Embodiments of the present invention generally relate to a
system and/or method for allowing a user or business entity to
create customized rules for bidding on keywords to/from a search
engine. In one or more embodiments, a bid automation engine allows
a user or business entity to specify a number of rules for bidding
on keywords used in Internet advertising campaigns. The bid
automation engine is part of, or interfaces with, a web analytics
tool (e.g., SiteCatalyst by Omniture, Inc.) and/or a bid management
system (e.g., SearchCenter by Omniture, Inc.) to provide
user-defined strategies for bidding on keywords. One or more
embodiments allow a user or business entity to set up a customized
bidding strategy for keywords by building sets of bidding
rules.
[0025] Further, one or more embodiments allow a user or business
entity to define one or more libraries of customized bidding rules.
Thus, the user or business entity is able to create multiple
libraries of different rules to manage thousands of keywords.
Because the bidding rules are customizable, the rules may be
modified based on performance data provided by the web analytics
tool. Accordingly, by using an iterative process that includes
modifying the custom bidding rules and bidding strategies, users
and/or business entities are able to maximize the web traffic that
is driven to their websites due to keyword purchasing.
[0026] As shown in FIG. 1, a bid automation tool 10 is operatively
connected to a search engine 12 and a bid management system 14. The
bid automation tool 10, via data exchange with the search engine 12
and the bid management system 14, provides a user interface (UI)
accessible to create bid rules for keywords. An example of such a
user interface is shown in FIG. 2.
[0027] Rules may be thought of as building blocks of a bidding
strategy. In one or more embodiments, there may be predefined rules
and custom rules. A rule library may list these rules and their
descriptions in a simple manner and provides links to edit, delete,
or create new custom rules.
[0028] Referring now to the user interface shown in FIG. 2, there
is a field for allowing the user or business entity to enter a
custom name for the rule. Further, there is an option for notifying
the user or business entity whenever the rule is triggered.
Notification may occur via e-mail, or in one or more other
embodiments, how often and when the rule is triggered may be
maintained on a website perusable by the user or business
entity.
[0029] Still referring to the user interface shown in FIG. 2, a
pull-down box is accessible to allow a selection for how many of
the set parameters have to be met in order for the rule to be
triggered. For example, the displayed selection in FIG. 2 indicates
that all of the set conditions must be met in order for the rule to
be triggered. However, in other situations, a user or business
entity may decide that the rule should be triggered whenever at
least one of the set conditions is met.
[0030] If and when the customized rule is triggered, an action
follows, and the user or business entity may have customized the
course of action to be taken in response to a rule being triggered.
For example, a selection may be that when the rule is triggered
(described above), the maximum cost-per-click (CPC) is increased by
a factor of 3 up to a maximum of $4.99. Other options may include
disabling the keyword if the rule is triggered and/or simply not
changing the bid. Once the desired rule trigger and action have
been set, the user or business entity may save the rule to a rule
library.
[0031] In one or more embodiments, a user interface may be provided
for comparing web traffic to the custom rules used to bid on
keywords. For example, a bid automation tool in accordance with one
or more embodiments may interface with a bid management system
(e.g., SearchCenter by Omniture, Inc.). Further, the bid management
system may in turn be operatively connected to a web analytics tool
(e.g., SiteCatalyst by Omniture, Inc.) and an Internet search
engine such as one provided by Google, Inc., Microsoft Corporation,
or Yahoo! Inc. Those skilled in the art will note that ability of
one or more embodiments to provide customizable rules for bidding
on keywords as well as communicating with the web analytics tool
for a real comparison to web traffic may provide validation of the
custom created rules.
[0032] The addition of a bid management system to a bid automation
tool allows users or business entities to create, define, and
maintain rules that trigger specific actions when particular events
occur. The rule variables and actions are relevant to a particular
search engine, although in one or more other embodiments, the rule
variables and actions may apply to more than one search engine.
[0033] The user or business entity is able to group these rules
into a bidding strategy, which, in one or more embodiments, is a
rule for weekdays, weekends, and special events. A current bidding
strategy may be displayed on a "manage keywords/campaigns/ads
groups" page. By selecting the current strategy, the user or
business entity is taken to a main page, and from this page, the
user or business entity may change the strategy for the keyword
that they are currently viewing, edit or create new strategies, add
special events, and/or create custom rules via a rule library
(described below). Once the strategies and rules have been defined,
a backend, or running, process may periodically check to see if a
rule is triggered. When a rule is triggered, the corresponding
action(s) associated with the rule may be performed by the backend
process.
[0034] In one or more embodiments, a bidding strategy includes a
collection of rules that define a user's desired bidding
methodology used for a keyword or collection of keywords. When a
user requests to customize a bidding rule, a customization user
interface, such as that shown in FIG. 2, may be presented to the
user. The user interface generally has, for example, an email
option, user defined criteria, user defined action, and whether all
or any criteria need to be met in order for the bidding rule to be
triggered.
[0035] Further, in one or more embodiments, the user interface
shown in FIG. 2 allows for the ability to enter multiple
criteria/action blocks called "action sets". In other words, a user
can craft a bidding rule according to such a paradigm: "If my
keyword is performing well, lets do this; however, if this keyword
is not performing well, lets do this instead". Further, the user
may add unlimited action sets to a custom rule. The action sets may
be evaluated from the top down, and evaluation may stop as soon as
the criteria for an action set is met. In other words, if the first
action set's criteria is met, the action for that action set is
fired, and the second action set is not even evaluated--i.e., they
are mutually exclusive. Those skilled in the art will note that
such a feature provides increased flexibility of custom bidding
rules. As another example, a user may enter their own position rule
by entering 4 or more actions sets in this manner: "If my position
is way too high (I want 3 and I am currently 20), adjust my CPC by
a lot"; "If my position is just a little high, increase my CPC a
little; "If my position is way to low (I want 10, but am currently
being placed #1), decrease my CPC by a lot; otherwise if I am only
a position or two away, decrease my CPC by just a little."
[0036] Further, still referring to the user interface shown in FIG.
2, there is a time frame drop-down. This tells the user over what
period of type to evaluate the criteria of a custom rule. For
instance, if your criteria is "clicks >1000" and your timeframe
is 3 days, that means you must have received at least 1000 clicks
over the last 3 days for that criterion to be met.
[0037] Further, in one or more embodiments, there are various
courses of action that may be performed when a rule event is
triggered. For example, the user may specify a mathematical
operation to be performed on the max CPC. The configurable operand
may be specified through a text box, and the operator may be
selectable via a drop-down list that includes one or more of the
following: multiple CPC by; increment CPC by; decrement CPC by; and
set CPC to. Those skilled in the art will note that this list may
be different for different search engines. Further, for this
option, a max CPC may be entered that represents the most the user
is willing to spend on the keywords associated with this rule. This
field may be left empty if no max is desired. In another example,
the user may disable the keyword such that keywords associated with
this keyword, group, or campaign will be disabled for advertising
with the specified search engine. In another example, the user may
select that there be no automated changed to the CPC or the
keywords/campaign/group. This option may exist for users who simply
want to be notified of events through e-mail.
[0038] Additionally, in one or more embodiments, performance based
rules may be created based on a series of conditionals for various
variables. The rule may be defined by creating one or more
conditional rows for the rule. A conditional row may include a
variable, an operator, and a value. Each of these elements to the
conditional row may be selected from a drop-down list. A list of
variables may include, but it not limited to: average position for
the search engine; number of impression the search engine reports;
total cost of advertisement for the keyword, group, or campaign;
cost per click for the keyword, group, or campaign; the current
maximum CPC; return on ad spend; click through rate; and calculated
metrics. Operators may include, but are not limited to: a "greater
than" operation; a "less than" operation; and an "equal to"
operation. Further, as described above with reference to FIG. 2,
the user or business entity may select that all rules need to be
met before the action is performed or may indicate that the action
can be performed as soon as any of the conditions are met.
[0039] Now referring to FIG. 3, the shown business rules manager
user interface allows the user to add new, edit, or delete, as well
as showing the user how many keywords currently have each rule
assigned to them. In one or more embodiments, they may be organized
by search engine. Further, in one or more other embodiments, the
user may copy a business rule into a different search engine's
list.
[0040] FIG. 4 shows a predefined rule with the advanced options
open. In the advanced options, there are day parts and special
events. As shown in FIG. 8 below, a user interface for special
events shows the name of the event, the dates, and a drop-down from
which the user can choose a business rule that the user has already
created. This may be the same list as what is on the business rules
manager user interface shown in FIG. 3. The day parts section
allows the user to enter the custom day part builder and shows a
graphical summary of the user's daily dayparts.
[0041] FIG. 5 shows a custom day part builder. A legend at the top
has available rules that the user may put into day parts. The user
may click the new rule button to add additional rules to this list.
Below there is a representation of the 24 hours of the day. The
user may drag rules from the legend into an hour to create a day
part. The user may then expand or decrease the day part by dragging
the handles. This example shows that the default rule of "Get
Position 2" (set up on a previous page) (set up on the previous
page) will run from 12:00 midnight until 1:00 am. From 1:00 am
until 5:00 am, the keyword will be disabled, and from 5:00 to 1:00
pm, the keyword will have its CPC set to the minimum bid allowed by
the search engine. From then until 7:00 pm, the CPC will be set to
$0.20, after which the default rule will run until the end of the
day. This pattern may be followed daily.
[0042] FIG. 6 shows that the user may treat each day of the week
differently. In this example, all weekdays, except Tuesday, are
treated the same, however, on the weekends, the keywords will be
disabled (there are many companies that do not want to advertise on
the weekends). The user may also set this up so that he/she only
advertises during normal business hours. FIG. 7 shows an example of
what a day part summary may look like when defining each day of the
seek separately.
[0043] FIG. 8 shows a special events user interface. This user
interface shows the name of the event, the dates, and a drop-down
from which the user can choose a business rule that the user has
already created. In one or more embodiments, a report suite may
have a global collection of special events. These are days that a
user or business entity may want to treat differently. For example,
advertising gets expensive over the Christmas holidays, so the user
may wish to disable some ad groups during that time period. By
selecting an add events option, the user may select which of the
special events should apply to this strategy. Further, the user may
choose and/or customize a different rule for each special
event.
[0044] FIG. 9 shows a rule template library user interface, which
provides a definition of the custom rule template.
[0045] FIG. 10 shows a screenshot of an advanced editor page in
accordance with an embodiment of the present invention. This page
allows the user to assign business rules to keywords. The user may
do such at the campaign level, ad group level, and/or keyword
level. The interface shows all of the user's campaigns. Clicking
the "+" next to the campaigns shows the ad groups in that campaign.
Clicking on the "+" next to ad groups shows the keywords in that ad
group. If the user enters a business rule on the campaign level and
clicks on the clipboard/arrow icon next to it, it will apply that
rule to every keyword in every ad group in that campaign. The user
may do the same thing on the ad group row and on the keyword
row.
[0046] FIG. 11 shows a business rule edit/create page in accordance
with an embodiment of the present invention. The user may name a
business rule and then select from the drop-down which rule
template the user wants to use. This is an example of a predefined
rule template where the user enters the position he/she wants and
how much he/she is willing to pay to obtain that position,
whereupon the bid automation tool adjusts the user's bid to get
closer that position. Further, those skilled in the art will note
the advanced options link at the bottom. This is where the day
parts and special events described above may reside.
[0047] Although custom rules are a good differentiator, many user's
or business entity's needs may be meet with predefined rules. These
rules may vary dependent on the type of search engine being used.
Example of predefined rules include, but are not limited to:
maintaining a specific position intelligently by raising and
lowering the max CPC up until a user-specified CPC max; setting the
CPC to 1 percent less than a competitor's max bid value; setting
the CPC to be within the first bid group inside a set of conditions
(where a bid gap may be defined as any CPC where the competitive
bids have a difference greater than 1 percent); setting the CPC to
be within the largest bid gap inside a set of conditions; setting
the CPC to be 1 percent above or 1 percent below a specified
competitive URL; setting the CPC to be 1 percent below a lower
competitor when get within a configurable range of your highest
bid; moving position to a configurable position when the cost is
less than or equal to a configurable amount; adjusting the keyword
bid if the price difference exceeds a specified amount; setting the
CPC to the minimum allowed by the search engine; and allowing
retrieval of a bid price (e.g., sent through an alert) without
taking any action on the CPC or position.
[0048] Further, in one or more embodiments, a log may be kept of
every change to a bid, both manual and automatic, and every rule
that gets executed on a keyword. This report allows the user to
filter by such things as the keyword, ad group, campaign, the
search engine, the rule, etc.
[0049] As described above, a bid automation tool in accordance with
one or more embodiments has access to third party search engine
information. Those skilled in the art will note that some data
provided by all search engines may be classified as the same, but
every search engine has their own specifics that only apply to that
search engine. Access to and parsing of data from the third party
search engines is required for the system to operate as designed.
How frequently rules are checked and the granularity of reports may
vary depending on the timeliness of the data retrieved from the
third party search engines.
[0050] The execution of rules may happen in a background process
that reads the rules, reads the metric data collected from the
third party search engines and the bid management system, and then
executes the rule if it fits the criteria. Further, in one or more
embodiments, rule execution may rely on an e-mail server and third
party search engine application program interfaces (APIs) in order
to perform properly.
[0051] In the above description, for purposes of explanation,
numerous specific details are set forth in order to provide a
thorough understanding of the invention. It will be apparent,
however, to one skilled in the art that the invention can be
practiced without these specific details. In other instances,
structures and devices are shown in block diagram form in order to
avoid obscuring the invention.
[0052] In particular, one skilled in the art will recognize that
other architectures and analysis and processing techniques and
mechanisms may be used, and that the present invention can be
implemented using mechanisms other than those described above.
[0053] Reference in the specification to "one embodiment" or "an
embodiment" means that a particular feature, structure, or
characteristic described in connection with the embodiment is
included in at least one embodiment of the invention. The
appearances of the phrase "in one embodiment" in various places in
the specification are not necessarily all referring to the same
embodiment.
[0054] Some portions of the detailed description are presented in
terms of algorithms and symbolic representations of operations on
data bits within a computer memory. These algorithmic descriptions
and representations are the means used by those skilled in the data
processing arts to most effectively convey the substance of their
work to others skilled in the art. An algorithm is here, and
generally, conceived to be a self-consistent sequence of steps
leading to a desired result. The steps are those requiring physical
manipulations of physical quantities. Usually, though not
necessarily, these quantities take the form of electrical or
magnetic signals capable of being stored, transferred, combined,
compared, and otherwise manipulated. It has proven convenient at
times, principally for reasons of common usage, to refer to these
signals as bits, values, elements, symbols, characters, terms,
numbers, or the like.
[0055] It should be borne in mind, however, that all of these and
similar terms are to be associated with the appropriate physical
quantities and are merely convenient labels applied to these
quantities. Unless specifically stated otherwise as apparent from
the discussion, it is appreciated that throughout the description,
discussions utilizing terms such as "processing" or "computing" or
"calculating" or "determining" or "displaying" or the like, refer
to the action and processes of a computer system, or similar
electronic computing device, that manipulates and transforms data
represented as physical (electronic) quantities within the computer
system's registers and memories into other data similarly
represented as physical quantities within the computer system
memories or registers or other such information storage,
transmission or display devices.
[0056] The present invention also relates to an apparatus for
performing the operations herein. This apparatus may be specially
constructed for the required purposes, or it may comprise a
general-purpose computer selectively activated or reconfigured by a
computer program stored in the computer. Such a computer program
may be stored in a computer readable storage medium, such as, but
is not limited to, any type of disk including floppy disks, optical
disks, CD-ROMs, and magnetic-optical disks, read-only memories
(ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or
optical cards, or any type of media suitable for storing electronic
instructions, and each coupled to a computer system bus.
[0057] The algorithms and modules presented herein are not
inherently related to any particular computer or other apparatus.
Various general-purpose systems may be used with programs in
accordance with the teachings herein, or it may prove convenient to
construct more specialized apparatuses to perform the method steps.
The required structure for a variety of these systems will appear
from the description below. In addition, the present invention is
not described with reference to any particular programming
language. It will be appreciated that a variety of programming
languages may be used to implement the teachings of the invention
as described herein. Furthermore, as will be apparent to one of
ordinary skill in the relevant art, the modules, features,
attributes, methodologies, and other aspects of the invention can
be implemented as software, hardware, firmware or any combination
of the three. Of course, wherever a component of the present
invention is implemented as software, the component can be
implemented as a standalone program, as part of a larger program,
as a plurality of separate programs, as a statically or dynamically
linked library, as a kernel loadable module, as a device driver,
and/or in every and any other way known now or in the future to
those of skill in the art of computer programming. Additionally,
the present invention is in no way limited to implementation in any
specific operating system or environment.
[0058] It will be understood by those skilled in the relevant art
that the above-described implementations are merely exemplary, and
many changes can be made without departing from the true spirit and
scope of the present invention. Therefore, it is intended by the
appended claims to cover all such changes and modifications that
come within the true spirit and scope of this invention.
* * * * *