USRE43474E1 - Mechanism and method for specified temporal deployment of rules within a rule server - Google Patents

Mechanism and method for specified temporal deployment of rules within a rule server Download PDF

Info

Publication number
USRE43474E1
USRE43474E1 US11/854,404 US85440407A USRE43474E US RE43474 E1 USRE43474 E1 US RE43474E1 US 85440407 A US85440407 A US 85440407A US RE43474 E USRE43474 E US RE43474E
Authority
US
United States
Prior art keywords
time
rules
transaction
transaction request
rule
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime, expires
Application number
US11/854,404
Inventor
Johannes W. F. Majoor
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fair Isaac Corp
Original Assignee
Fair Isaac Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fair Isaac Corp filed Critical Fair Isaac Corp
Priority to US11/854,404 priority Critical patent/USRE43474E1/en
Assigned to HNC SOFTWARE, INC. reassignment HNC SOFTWARE, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MAJOOR, JOHANNES W. F.
Assigned to FAIR ISAAC CORPORATION reassignment FAIR ISAAC CORPORATION MERGER (SEE DOCUMENT FOR DETAILS). Assignors: HNC SOFTWARE, INC.
Assigned to FAIR, ISAAC AND COMPANY, INCORPORATED reassignment FAIR, ISAAC AND COMPANY, INCORPORATED MERGER (SEE DOCUMENT FOR DETAILS). Assignors: HNC SOFTWARE INC.
Assigned to FAIR ISAAC CORPORATION reassignment FAIR ISAAC CORPORATION MERGER (SEE DOCUMENT FOR DETAILS). Assignors: FAIR, ISAAC AND COMPANY, INCORPORATED
Application granted granted Critical
Publication of USRE43474E1 publication Critical patent/USRE43474E1/en
Adjusted expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data

Definitions

  • the invention relates generally to the field of transaction processing and more specifically to the operation of a rule server.
  • the present invention relates generally to computer systems that utilize rules-based mechanisms to facilitate or implement an application or business process.
  • a type of system that often uses a rules-based approach is an expert system or knowledge-based system, which attempts to mimic the thought process that an expert would utilize to address tasks in a particular field.
  • Computer systems that employ rules-based mechanisms e.g. experts systems, are employed in a wide variety of settings, such as computer systems that bank loan officers use for guidance in approving and rejecting loan applications.
  • Other examples of disciplines in which rules-based based systems are used include automobile repair, medical diagnosis, oil exploration, financial planning, chemical analysis, surgery, weather prediction, computer repair, computer system configuration, operation of nuclear plants, interpreting government regulations, tax preparation, as well as many others.
  • a typically rules-based approach employs one or more sets of rules (“rulesets”) that define actions or results that occur upon specified input values or parameters.
  • a rule server is a computing device that performs the functionality of applying a set of rules to a given set of input values or parameters.
  • An exemplary rules-based product embodying this approach is the Blaze AdvisorTMproduct available from HNC Software, Inc. of San Diego, Calif.
  • rules-based approach is that the composition of rules defined in a ruleset may be changed over time with the evolution of a business processes or to reflect a new procedure.
  • rules are adjusted in a rule server by maintaining multiple rulebases.
  • a rulebase is a component that stores one or more rulesets. Administrators effect changes to one or more rules stored within a rulebase not being used by the rule server, and then swap it for the rulebase in operation at the time the new rules are desired to be deployed. End-users accessing to the rule server thereafter are processed using the rulebase with the new changes.
  • the clear drawback to this approach is the overhead involved in swapping rulebases. Further, prior versions of the rulebases are not saved or operatively connected, so it is difficult to determine how a rule server would have processed input at an earlier point in time prior to when the current rulebase was operational.
  • the present invention provides an improved mechanism for “freshness dating” of a rule server.
  • the present invention provides a method for operating a rules server that comprises a rulebase, wherein the rulebase comprises one or more rules, by (a) associating at least one rule of the one or more rules with a start time and an end time; (b) receiving a transaction request; (c) determining a transaction time for the transaction request; and (d) determining a set of one or more currently operational rules in the one or more rules for the transaction request, wherein the transaction time for the transaction request is after the start time associated with each of the set of one or more currently operational rules, and the transaction time for the transaction request is before the end time associated with each of the one or more currently operational rules.
  • the principles disclosed herein are equally applicable to perform update operations for other types of computer systems. Further details of aspects, objects, and advantages of the invention are described below in the detailed description, drawings,
  • FIG. 1 is a functional block diagram illustrating a rule-based system 100 according to one embodiment of the present invention
  • FIG. 2 is a flow-chart illustrating the functional steps of an embodiment of the invention
  • FIG. 3 is a diagram of a system architecture of which the present invention may be implemented
  • FIG. 4A is a pictorial representation of a graphical user interface for specifying a start time and an end time according to an embodiment of the invention.
  • FIG. 4B is a pictorial representation of a graphical user interface for specifying a start time and an end time according to another embodiment of the invention.
  • FIG. 1 shows a rules-based system 100 according to an embodiment of the invention.
  • a client 102 of a computer-based application connects to a rule server 104 to perform a rules-driven operation.
  • the client 102 may be either a local client or a remote client that connects via a network connection 103 .
  • the rule server 104 comprises or is operatively connected to a rulebase 108 that contains one or more rulesets.
  • a rule engine 106 is the mechanism that applies a selected ruleset to an input received from client 102 to generate a set of results.
  • the rule server 104 includes processing entities to perform work on behalf of clients 102 .
  • processing entities are usable in the invention, such as processes, threads, or agents.
  • processing entities are referred to herein as rule service agents 105 .
  • the rule server 104 can be configured to provide a pool of rule service agents 105 to handle service requests on behalf of clients 102 . Multiple rule service agents 105 are available to handle service requests in parallel from multiple clients 102 . Even with only a single rule service agent 105 available, concurrent client requests can be handled using a queuing arrangement for client requests.
  • a single dedicated rule service agent 105 performs service requests on behalf of a single client.
  • a single rule service agent 105 can process service requests on behalf on multiple clients.
  • Rule service agents 105 are operatively connected to the rule engine 106 .
  • the present invention permits rules to be stored within a rulebase 108 that are not currently effective.
  • the present invention provides a mechanism for associating a valid start date and stop date for each rule within a rulebase 108 such that the rule is only employed by the rule server 104 if the date to employ the rule is any date between the start date and the stop date, i.e. when the rule is currently effective.
  • FIG. 2 is a flow-chart illustrating the functional steps of an embodiment of the invention.
  • an administrator of the rule server 104 associates a start time and an end time with one or more rules 205 within the rulebase 108 .
  • a start time is the moment in time when the particular rule becomes effective
  • the end time is the moment in time when the particular rule is no longer effective.
  • the term “effective” in this context means that the particular rule will be applied by the rule engine 106 .
  • rule server 104 when a transaction request is received by a rule server 104 , only rules in effect, referred to herein interchangeably as effective rules, contained within the rulebase 108 will be employed by the rule server 104 .
  • the administrator may associate a start time and an end time with each rule through a variety of well established means of applying input to a rule server 104 .
  • the administrator associates a start time and an end time through a graphical user interface, such as the one illustrated in FIG. 4A .
  • the start times and stop times governing the effectiveness of rules within a rulebase 108 may be arbitrarily complex.
  • the start and stop times may be whole days, e.g., a rule effective from May 1 to Dec. 31, 2001.
  • rules can be effective for a duration expressed in a finer granularity, such as a time interval expressed in hours, minutes, or seconds, e.g., a rule effective from 9:01:00 AM EDT to 4:59:59 PM EDT.
  • the a periodic effective range may be specified.
  • a periodic effective range is desirable when a rule is used in regular intervals, e.g., a rule effective during normal business hours.
  • start and stop times are adjusted to consider the time zones of the rule server 104 and its clients 102 . For example, suppose a rule has an effective time set to 9:00 AM to 5:00 PM local time. If the rules are being processed by a rule server 104 in San Francisco (which is in Pacific Standard time), and the client 102 initiates the transaction request from Singapore, the time of the transaction may be adjusted to reflect the local time in Singapore at the time the transaction was initiated. According to other embodiments of the invention, the start times and stop times of rules may be dependent upon external events specified by the administrator. For example, a rule may be specified to stop when a particular marketing campaign is over or a specified special offer is concluded.
  • a transaction request is received 210 according to an embodiment of the invention.
  • the transaction request initiated by a client 102 , is transmitted to the rule server 104 over the network connection 103 .
  • the transaction request is processed once received by the rule server 104 by rule server agents 105 .
  • Rule server agents 105 subsequently transfer the request to an appropriate rule engine 106 for processing.
  • the rule server 104 determines the transaction time of transaction request 220 .
  • the rule server agents 105 or the rule engine 106 may perform this action. Consequently, the function of determining the transaction time may be performed by numerous functional components of the rule server 104 , and the present invention is not limited to which particular component performs this function.
  • the transaction time of the transaction request is determined once when the rule server 104 receives the transaction request.
  • the transaction time is repeatedly determined after the expiration of a specified length of time. For example, the transaction time of the transaction request may be calculated after every second or every millisecond.
  • the administrator of the rule server 108 may specify such length of time through a graphical user interface, such as a web page, operatively connected to the rule server 104 .
  • a graphical user interface such as a web page
  • defaults may be assigned to the start time and end time in appropriate circumstances. For example, an unspecified start time may be defaulted to being equivalent to the current time, thus taking effect immediately.
  • the administrator of the rule server 104 may program the rule server 104 to evaluate certain input values, or lack thereof, with specified default values.
  • a set of effective rules within the rulebase 108 are determined 230 .
  • the rule server 104 includes within the set of effective rules those rules in the rulebase 108 that have a start time before the transaction time, and an end time after the transaction time.
  • the rule engine 106 determines the set of effective rules.
  • the rulebase 108 determines the set of effective rules. Consequently, it is contemplated that different components of the rule server 104 may determine the set of effective rules.
  • the rule server processes the transaction request with the set of effective rules 240 after determining the set of effective rules within the rulebase 108 . If the set of effective rules changes before a transaction is complete, which is possible when the transaction time of a transaction request is determined at periodic intervals, then the most recent set of effective rules is used by the rule server 104 .
  • Embodiments of the invention advantageously provide for removing the overhead traditionally associated with managing rules within a rulebase 108 which become effective at different points in time. Accordingly, by providing for rules to be stored within a single rulebase 108 , with rules that become effective at different points in time, version control of the rules is simplified. Further, outdated rules that are no longer effective may co-exist in the same rulebase 108 as the current versions of the same rules.
  • Embodiments of the invention also advantageously provide for a historical perspective of rules in the rulebase 108 .
  • one may view the rules within a rulebase 108 to determine the effective rules at a particular moment in time, whether that point in time is in the past, present, or future.
  • input to the rule server 104 may be processed from a set of rules that are effective at a different moment in time other than the current time. This is desirable because the behavior of the rule server 104 may be tested at any point in time, because rules governing the behavior of the rule server 104 are accessible.
  • the transaction time used to test the rule server 104 at different times other than the current time may be specified by an administrator through a variety of well known input mechanisms to a rule server 104 , such as, e.g., a graphical user interface.
  • a rules server 100 may be implemented according to embodiments of the invention on a computer system 300 .
  • execution of the sequences of instructions required to practice the invention is performed by a single computer system 300 .
  • two or more computer systems 300 coupled by a communication link 315 may perform the sequence of instructions required to practice the invention in coordination with one another.
  • a description of only one computer system 300 will be presented below; however, it should be understood that any number of computer systems 300 may be employed to practice the invention.
  • FIG. 3 is a block diagram of the functional components of a computer system 300 according to an embodiment of the invention.
  • the term computer system 300 is broadly used to describe any computer that can store and independently run one or more programs, e.g., a personal computer, a server computer, a portable laptop computer, or a personal data assistants (“PDA”).
  • PDA personal data assistants
  • Each computer system 300 may include a communication interface 314 coupled to the bus 306 .
  • the communication interface 314 provides two-way communication between computer systems 300 .
  • the communication interface 314 of a respective computer system 300 transmits and receives electrical, electromagnetic or optical signals that include data streams representing various types of information, including instructions, messages and data.
  • a communication link 315 links one computer system 300 with another computer system 300 .
  • the communication link 315 may be a LAN, in which case the communication interface 314 may be a LAN card.
  • the communication link 315 may be a PSTN, in which case the communication interface 314 may be an integrated services digital network (ISDN) card or a modem.
  • ISDN integrated services digital network
  • the communication link 315 may be a wireless network.
  • a computer system 300 may transmit and receive messages, data, and instructions, including program, i.e., application, code, through its respective communication link 315 and communication interface 314 .
  • Received program code may be executed by the respective processor(s) 307 as it is received, and/or stored in the storage device 310 , or other associated non-volatile media, for later execution.
  • a computer system 300 may receive messages, data and/or program code in the form of a carrier wave.
  • the computer system 300 operates in conjunction with a data storage system 331 , wherein the data storage system 331 contains a database 332 that is readily accessible by the computer system 300 .
  • the database 332 may be stored on another computer system 300 , e.g., in a memory chip and/or hard disk.
  • the database 332 may be read by the computer system 300 from one or more floppy disks, CD-ROMs, or any other medium from which a computer can read.
  • the computer system 300 can access two or more databases 332 , stored in a variety of mediums, as previously discussed.
  • a computer system 300 includes a bus 306 or other communication mechanism for communicating instructions, messages and data, collectively, information, and one or more processors 307 coupled with the bus 306 for processing information.
  • a computer system 300 also includes a main memory 308 , such as a random access memory (RAM) or other dynamic storage device, coupled to the bus 306 for storing dynamic data and instructions to be executed by the processor(s) 307 .
  • the main memory 308 also may be used for storing temporary data, i.e., variables, or other intermediate information during execution of instructions by the processor(s) 307 .
  • a computer system 300 may further include a read only memory (ROM) 309 or other static storage device coupled to the bus 306 for storing static data and instructions for the processor(s) 307 .
  • ROM read only memory
  • a storage device 310 such as a magnetic disk or optical disk, may also be provided and coupled to the bus 306 for storing data and instructions for the processor(s) 307 .
  • a computer system 300 may be coupled via the bus 306 to a display device 311 , such as, but not limited to, a cathode ray tube (CRT), for displaying information to a user.
  • a display device 311 such as, but not limited to, a cathode ray tube (CRT)
  • An input device 312 is coupled to the bus 306 for communicating information and command selections to the processor(s) 307 .
  • Another type of user input device may include a cursor control 313 , such as, but not limited to, a mouse, a trackball, a fingerpad, or cursor direction keys, for communicating direction information and command selections to the processor(s) 307 and for controlling cursor movement on the display 311 .
  • an individual computer system 300 performs specific operations by their respective processor(s) 307 executing one or more sequences of one or more instructions contained in the main memory 308 .
  • Such instructions may be read into the main memory 308 from another computer-usable medium, such as the ROM 309 or the storage device 310 .
  • Execution of the sequences of instructions contained in the main memory 308 causes the processor(s) 307 to perform the processes described herein.
  • hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention.
  • embodiments of the invention are not limited to any specific combination of hardware circuitry and/or software.
  • Non-volatile media i.e., media that can retain information in the absence of power
  • Volatile media i.e., media that can not retain information in the absence of power
  • Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise the bus 306 .
  • Transmission media can also take the form of carrier waves; i.e., electromagnetic waves that can be modulated, as in frequency, amplitude or phase, to transmit information signals. Additionally, transmission media can take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
  • the instructions may initially be provided on a magnetic disk of an external computer system 300 (not shown).
  • the external computer system 300 may load the instructions into its dynamic memory and then transit them over a telephone line, using a modem.
  • a modem coupled to the local computer system 300 may receive the instructions on a telephone line and use an infrared transmitter to convert the instruction signals transmitted over the telephone line to corresponding infrared signals.
  • An infrared detector (not shown) coupled to the bus 306 may receive the infrared signals and place the instructions therein on the bus 306 .
  • the bus 306 may carry the instructions to the main memory 308 , from which the processor(s) 307 thereafter retrieves and executes the instructions.
  • the instructions received by the main memory 308 may optionally be stored on the storage device 310 , either before or after their execution by the processor(s) 307 .

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

An improved method and mechanism for specified temporal deployment of rules within a rules server. A rules server applies a set of rules, stored within a rulebase, to a given set of input values or parameters. Each rule is associated with a start time and an end time. Upon receiving a transaction request, a transaction time is determined for the transaction request. Subsequently, a set of effective rules within the ruleset are identified by the rules server, wherein each effective rule has a start time before the transaction time, and an end time that is after the transaction time. The rule server applies only the set of effective rules to the transaction.

Description

FIELD OF THE INVENTION
The invention relates generally to the field of transaction processing and more specifically to the operation of a rule server.
BACKGROUND AND SUMMARY
The present invention relates generally to computer systems that utilize rules-based mechanisms to facilitate or implement an application or business process. A type of system that often uses a rules-based approach is an expert system or knowledge-based system, which attempts to mimic the thought process that an expert would utilize to address tasks in a particular field. Computer systems that employ rules-based mechanisms, e.g. experts systems, are employed in a wide variety of settings, such as computer systems that bank loan officers use for guidance in approving and rejecting loan applications. Other examples of disciplines in which rules-based based systems are used include automobile repair, medical diagnosis, oil exploration, financial planning, chemical analysis, surgery, weather prediction, computer repair, computer system configuration, operation of nuclear plants, interpreting government regulations, tax preparation, as well as many others.
A typically rules-based approach employs one or more sets of rules (“rulesets”) that define actions or results that occur upon specified input values or parameters. A rule server is a computing device that performs the functionality of applying a set of rules to a given set of input values or parameters. An exemplary rules-based product embodying this approach is the Blaze Advisor™product available from HNC Software, Inc. of San Diego, Calif.
One advantage of the rules-based approach is that the composition of rules defined in a ruleset may be changed over time with the evolution of a business processes or to reflect a new procedure. Commonly, rules are adjusted in a rule server by maintaining multiple rulebases. A rulebase is a component that stores one or more rulesets. Administrators effect changes to one or more rules stored within a rulebase not being used by the rule server, and then swap it for the rulebase in operation at the time the new rules are desired to be deployed. End-users accessing to the rule server thereafter are processed using the rulebase with the new changes. The clear drawback to this approach is the overhead involved in swapping rulebases. Further, prior versions of the rulebases are not saved or operatively connected, so it is difficult to determine how a rule server would have processed input at an earlier point in time prior to when the current rulebase was operational.
Therefore, it is desirable to implement a method and mechanism for upgrading one or more sets of rules without taking a rule server offline. The present invention provides an improved mechanism for “freshness dating” of a rule server. In an embodiment, the present invention provides a method for operating a rules server that comprises a rulebase, wherein the rulebase comprises one or more rules, by (a) associating at least one rule of the one or more rules with a start time and an end time; (b) receiving a transaction request; (c) determining a transaction time for the transaction request; and (d) determining a set of one or more currently operational rules in the one or more rules for the transaction request, wherein the transaction time for the transaction request is after the start time associated with each of the set of one or more currently operational rules, and the transaction time for the transaction request is before the end time associated with each of the one or more currently operational rules. Note that the principles disclosed herein are equally applicable to perform update operations for other types of computer systems. Further details of aspects, objects, and advantages of the invention are described below in the detailed description, drawings, and claims.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example, and not by limitation, in the figures of the accompanying drawings and which like reference numerals refer to similar elements and in which:
FIG. 1 is a functional block diagram illustrating a rule-based system 100 according to one embodiment of the present invention;
FIG. 2 is a flow-chart illustrating the functional steps of an embodiment of the invention;
FIG. 3 is a diagram of a system architecture of which the present invention may be implemented;
FIG. 4A is a pictorial representation of a graphical user interface for specifying a start time and an end time according to an embodiment of the invention; and
FIG. 4B is a pictorial representation of a graphical user interface for specifying a start time and an end time according to another embodiment of the invention.
DETAILED DESCRIPTION OF EMBODIMENT(S)
In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
The present invention provides an improved method and mechanism for changing rules in a rules-based computing system and for effecting the new or revised rules without swapping rulesets in a rule server. FIG. 1 shows a rules-based system 100 according to an embodiment of the invention. In the rules-based system 100 of FIG. 1, a client 102 of a computer-based application connects to a rule server 104 to perform a rules-driven operation. The client 102 may be either a local client or a remote client that connects via a network connection 103. The rule server 104 comprises or is operatively connected to a rulebase 108 that contains one or more rulesets. A rule engine 106 is the mechanism that applies a selected ruleset to an input received from client 102 to generate a set of results.
The rule server 104 includes processing entities to perform work on behalf of clients 102. Various types of processing entities are usable in the invention, such as processes, threads, or agents. Such processing entities are referred to herein as rule service agents 105. The rule server 104 can be configured to provide a pool of rule service agents 105 to handle service requests on behalf of clients 102. Multiple rule service agents 105 are available to handle service requests in parallel from multiple clients 102. Even with only a single rule service agent 105 available, concurrent client requests can be handled using a queuing arrangement for client requests. In an embodiment, a single dedicated rule service agent 105 performs service requests on behalf of a single client. In an alternate embodiment, a single rule service agent 105 can process service requests on behalf on multiple clients. Rule service agents 105 are operatively connected to the rule engine 106.
The present invention permits rules to be stored within a rulebase 108 that are not currently effective. The present invention provides a mechanism for associating a valid start date and stop date for each rule within a rulebase 108 such that the rule is only employed by the rule server 104 if the date to employ the rule is any date between the start date and the stop date, i.e. when the rule is currently effective.
The functional steps performed by embodiments of the invention will now be explained with reference to FIG. 2, which is a flow-chart illustrating the functional steps of an embodiment of the invention. Initially, according to embodiments of the invention, an administrator of the rule server 104 associates a start time and an end time with one or more rules 205 within the rulebase 108. A start time is the moment in time when the particular rule becomes effective, and the end time is the moment in time when the particular rule is no longer effective. The term “effective” in this context means that the particular rule will be applied by the rule engine 106. In other words, when a transaction request is received by a rule server 104, only rules in effect, referred to herein interchangeably as effective rules, contained within the rulebase 108 will be employed by the rule server 104. The administrator may associate a start time and an end time with each rule through a variety of well established means of applying input to a rule server 104. In an embodiment of the invention, the administrator associates a start time and an end time through a graphical user interface, such as the one illustrated in FIG. 4A.
The start times and stop times governing the effectiveness of rules within a rulebase 108 may be arbitrarily complex. For example, in the embodiment illustrated in FIG. 4A, the start and stop times may be whole days, e.g., a rule effective from May 1 to Dec. 31, 2001. In other embodiments of the invention, rules can be effective for a duration expressed in a finer granularity, such as a time interval expressed in hours, minutes, or seconds, e.g., a rule effective from 9:01:00 AM EDT to 4:59:59 PM EDT. In other embodiments of the invention, the a periodic effective range may be specified. A periodic effective range is desirable when a rule is used in regular intervals, e.g., a rule effective during normal business hours. A graphical user interface for specifying start and stop times according to this embodiment is illustrated in FIG. 4B. According to other embodiments of the invention, the start and stop times are adjusted to consider the time zones of the rule server 104 and its clients 102. For example, suppose a rule has an effective time set to 9:00 AM to 5:00 PM local time. If the rules are being processed by a rule server 104 in San Francisco (which is in Pacific Standard time), and the client 102 initiates the transaction request from Singapore, the time of the transaction may be adjusted to reflect the local time in Singapore at the time the transaction was initiated. According to other embodiments of the invention, the start times and stop times of rules may be dependent upon external events specified by the administrator. For example, a rule may be specified to stop when a particular marketing campaign is over or a specified special offer is concluded.
Subsequently, a transaction request is received 210 according to an embodiment of the invention. The transaction request, initiated by a client 102, is transmitted to the rule server 104 over the network connection 103. The transaction request is processed once received by the rule server 104 by rule server agents 105. Rule server agents 105 subsequently transfer the request to an appropriate rule engine 106 for processing.
After the rule server 104 receives the transaction request, the rule server 104 determines the transaction time of transaction request 220. The rule server agents 105 or the rule engine 106 may perform this action. Consequently, the function of determining the transaction time may be performed by numerous functional components of the rule server 104, and the present invention is not limited to which particular component performs this function. In embodiments of the invention, the transaction time of the transaction request is determined once when the rule server 104 receives the transaction request. In another embodiment of the invention, the transaction time is repeatedly determined after the expiration of a specified length of time. For example, the transaction time of the transaction request may be calculated after every second or every millisecond. The administrator of the rule server 108 may specify such length of time through a graphical user interface, such as a web page, operatively connected to the rule server 104. In embodiments of the invention, defaults may be assigned to the start time and end time in appropriate circumstances. For example, an unspecified start time may be defaulted to being equivalent to the current time, thus taking effect immediately. The administrator of the rule server 104 may program the rule server 104 to evaluate certain input values, or lack thereof, with specified default values.
After determining the transaction time of a transaction request, a set of effective rules within the rulebase 108 are determined 230. The rule server 104 includes within the set of effective rules those rules in the rulebase 108 that have a start time before the transaction time, and an end time after the transaction time. According to embodiments of the invention, the rule engine 106 determines the set of effective rules. According to other embodiments of the invention, the rulebase 108 determines the set of effective rules. Consequently, it is contemplated that different components of the rule server 104 may determine the set of effective rules.
The rule server processes the transaction request with the set of effective rules 240 after determining the set of effective rules within the rulebase 108. If the set of effective rules changes before a transaction is complete, which is possible when the transaction time of a transaction request is determined at periodic intervals, then the most recent set of effective rules is used by the rule server 104.
Embodiments of the invention advantageously provide for removing the overhead traditionally associated with managing rules within a rulebase 108 which become effective at different points in time. Accordingly, by providing for rules to be stored within a single rulebase 108, with rules that become effective at different points in time, version control of the rules is simplified. Further, outdated rules that are no longer effective may co-exist in the same rulebase 108 as the current versions of the same rules.
Embodiments of the invention also advantageously provide for a historical perspective of rules in the rulebase 108. In other words, one may view the rules within a rulebase 108 to determine the effective rules at a particular moment in time, whether that point in time is in the past, present, or future. As such, in embodiments of the invention, input to the rule server 104 may be processed from a set of rules that are effective at a different moment in time other than the current time. This is desirable because the behavior of the rule server 104 may be tested at any point in time, because rules governing the behavior of the rule server 104 are accessible. In such embodiments, the transaction time used to test the rule server 104 at different times other than the current time may be specified by an administrator through a variety of well known input mechanisms to a rule server 104, such as, e.g., a graphical user interface.
A rules server 100 may be implemented according to embodiments of the invention on a computer system 300. In an embodiment of the invention, execution of the sequences of instructions required to practice the invention is performed by a single computer system 300. According to other embodiments of the invention, two or more computer systems 300 coupled by a communication link 315 may perform the sequence of instructions required to practice the invention in coordination with one another. In order to avoid needlessly obscuring the invention, a description of only one computer system 300 will be presented below; however, it should be understood that any number of computer systems 300 may be employed to practice the invention.
A computer system 300 according to an embodiment of the invention will now be described with reference to FIG. 3, which is a block diagram of the functional components of a computer system 300 according to an embodiment of the invention. As used herein, the term computer system 300 is broadly used to describe any computer that can store and independently run one or more programs, e.g., a personal computer, a server computer, a portable laptop computer, or a personal data assistants (“PDA”).
Each computer system 300 may include a communication interface 314 coupled to the bus 306. The communication interface 314 provides two-way communication between computer systems 300. The communication interface 314 of a respective computer system 300 transmits and receives electrical, electromagnetic or optical signals that include data streams representing various types of information, including instructions, messages and data. A communication link 315 links one computer system 300 with another computer system 300. The communication link 315 may be a LAN, in which case the communication interface 314 may be a LAN card. Alternatively, the communication link 315 may be a PSTN, in which case the communication interface 314 may be an integrated services digital network (ISDN) card or a modem. Also, as a further alternative, the communication link 315 may be a wireless network.
A computer system 300 may transmit and receive messages, data, and instructions, including program, i.e., application, code, through its respective communication link 315 and communication interface 314. Received program code may be executed by the respective processor(s) 307 as it is received, and/or stored in the storage device 310, or other associated non-volatile media, for later execution. In this manner, a computer system 300 may receive messages, data and/or program code in the form of a carrier wave.
In an embodiment, the computer system 300 operates in conjunction with a data storage system 331, wherein the data storage system 331 contains a database 332 that is readily accessible by the computer system 300. In alternative embodiments, the database 332 may be stored on another computer system 300, e.g., in a memory chip and/or hard disk. In yet alternative embodiments, the database 332 may be read by the computer system 300 from one or more floppy disks, CD-ROMs, or any other medium from which a computer can read. In an alternative embodiment, the computer system 300 can access two or more databases 332, stored in a variety of mediums, as previously discussed.
A computer system 300 includes a bus 306 or other communication mechanism for communicating instructions, messages and data, collectively, information, and one or more processors 307 coupled with the bus 306 for processing information. A computer system 300 also includes a main memory 308, such as a random access memory (RAM) or other dynamic storage device, coupled to the bus 306 for storing dynamic data and instructions to be executed by the processor(s) 307. The main memory 308 also may be used for storing temporary data, i.e., variables, or other intermediate information during execution of instructions by the processor(s) 307.
A computer system 300 may further include a read only memory (ROM) 309 or other static storage device coupled to the bus 306 for storing static data and instructions for the processor(s) 307. A storage device 310, such as a magnetic disk or optical disk, may also be provided and coupled to the bus 306 for storing data and instructions for the processor(s) 307.
A computer system 300 may be coupled via the bus 306 to a display device 311, such as, but not limited to, a cathode ray tube (CRT), for displaying information to a user. An input device 312, including alphanumeric and other keys, is coupled to the bus 306 for communicating information and command selections to the processor(s) 307. Another type of user input device may include a cursor control 313, such as, but not limited to, a mouse, a trackball, a fingerpad, or cursor direction keys, for communicating direction information and command selections to the processor(s) 307 and for controlling cursor movement on the display 311.
According to one embodiment of the invention, an individual computer system 300 performs specific operations by their respective processor(s) 307 executing one or more sequences of one or more instructions contained in the main memory 308. Such instructions may be read into the main memory 308 from another computer-usable medium, such as the ROM 309 or the storage device 310. Execution of the sequences of instructions contained in the main memory 308 causes the processor(s) 307 to perform the processes described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and/or software.
The term “computer-usable medium,” as used herein, refers to any medium that provides information or is usable by the processor(s) 307. Such a medium may take many forms, including, but not limited to, non-volatile, volatile and transmission media. Non-volatile media, i.e., media that can retain information in the absence of power, includes the ROM 309. Volatile media, i.e., media that can not retain information in the absence of power, includes the main memory 308. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise the bus 306. Transmission media can also take the form of carrier waves; i.e., electromagnetic waves that can be modulated, as in frequency, amplitude or phase, to transmit information signals. Additionally, transmission media can take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
Various forms of computer-usable media may be involved in providing one or more sequences of one or more instructions to the processor(s) 307 for execution. For example, the instructions may initially be provided on a magnetic disk of an external computer system 300 (not shown). The external computer system 300 may load the instructions into its dynamic memory and then transit them over a telephone line, using a modem. A modem coupled to the local computer system 300 may receive the instructions on a telephone line and use an infrared transmitter to convert the instruction signals transmitted over the telephone line to corresponding infrared signals. An infrared detector (not shown) coupled to the bus 306 may receive the infrared signals and place the instructions therein on the bus 306. The bus 306 may carry the instructions to the main memory 308, from which the processor(s) 307 thereafter retrieves and executes the instructions. The instructions received by the main memory 308 may optionally be stored on the storage device 310, either before or after their execution by the processor(s) 307.
In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention. For example, the reader is to understand that the specific ordering and combination of process actions shown in the process flow diagrams described herein is merely illustrative, and the invention can be performed using different or additional process actions, or a different combination or ordering of process actions. The specification and drawings are, accordingly, to be regarded in an illustrative rather than restrictive sense.

Claims (14)

1. A method for processing transactions, comprising:
operating a rules server, wherein said rules server comprises a single rulebase, wherein said rulebase comprises one or more rules;
associating at least one rule of said one or more rules with a start time and an end time;
receiving a transaction request for a transaction;
determining a transaction time for said transaction request, including automatically adjusting said transaction time to reflect a local time of said transaction request; and
determining a set of one or more effective rules for said transaction request from said at least one rule of said one or more rules associated with said start time and said end time, wherein said transaction time for said transaction request is after said start time associated with each of said set of one or more effective rules, and said transaction time for said transaction request is before said end time associated with each of said one or more effective rules;
wherein said rulebase is configured to store one or more corresponding versions of each rule of said one or more rules, including outdated rules;
wherein said rule server can be tested at any point in time, whether that point in time is in the past, present, or future, by an administrator specifying a testing time other than a current time, said testing time determining effective rules for testing; and
wherein if said one or more effective rules changes before said transaction is complete, then a most recent set of effective rules is used by said rule server.
2. The method of claim 1, further comprising the step of:
processing said transaction request with said set of one or more effective rules.
3. The method of claim 1, wherein said step of determining a transaction time for said transaction request is performed once each time said transaction request is received.
4. The method of claim 1, wherein said step of determining a transaction time for said transaction request is performed repeatedly after a specified length of time.
5. The method of claim 1, wherein said rulebase contains one or more rules that are not in said set of one or more effective rules.
6. The method of claim 1, wherein said start time and said end time is specified by an administrator through a graphical user interface.
7. The method of claim 1, wherein said transaction time is determined by an administrator.
8. A non-transitory computer-readable medium having thereon instructions for performing a process for processing transactions, said process comprising:
operating a rules server, wherein said rules server comprises a single rulebase, wherein said rulebase comprises one or more rules;
associating at least one rule of said one or more rules with a start time and an end time;
receiving a transaction request for a transaction;
determining a transaction time for said transaction request, including automatically adjusting said transaction time to reflect a local time of said transaction request; and
determining a set of one or more effective rules for said transaction request from said at least one rule of said one or more rules associated with said start time and said end time, wherein said transaction time for said transaction request is after said start time associated with each of said set of one or more effective rules, and said transaction time for said transaction request is before said end time associated with each of said one or more effective rules;
wherein said rulebase is configured to store one or more versions of said one or more rules, including outdated rules;
wherein said rule server can be tested at any point in time, whether that point in time is in the past, present, or future, by an administrator specifying a testing time other than a current time, said testing time determining effective rules for testing; and
wherein if said one or more effective rules changes before said transaction is complete, then a most recent set of effective rules is used by said rule server.
9. The computer-readable medium of claim 8, further comprises that step of:
processing said transaction request with said set of one or more effective rules.
10. The computer-readable medium of claim 8, wherein said step of determining a transaction time for said transaction request is performed once each time said transaction request is received.
11. The computer-readable medium of claim 8, wherein said stop of determining a transaction time for said transaction request is performed repeatedly after a specified length of time.
12. The computer-readable medium of claim 8, wherein said rulebase contains one or more rules that are not in said set of one or more effective rules.
13. The computer-readable medium of claim 8, wherein said start time and said end time is specified by an administrator through a graphical user interface.
14. The computer-readable medium of claim 8, wherein said transaction time is determined by an administrator.
US11/854,404 2001-07-03 2007-09-12 Mechanism and method for specified temporal deployment of rules within a rule server Expired - Lifetime USRE43474E1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/854,404 USRE43474E1 (en) 2001-07-03 2007-09-12 Mechanism and method for specified temporal deployment of rules within a rule server

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/898,908 US6944604B1 (en) 2001-07-03 2001-07-03 Mechanism and method for specified temporal deployment of rules within a rule server
US11/854,404 USRE43474E1 (en) 2001-07-03 2007-09-12 Mechanism and method for specified temporal deployment of rules within a rule server

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/898,908 Reissue US6944604B1 (en) 2001-07-03 2001-07-03 Mechanism and method for specified temporal deployment of rules within a rule server

Publications (1)

Publication Number Publication Date
USRE43474E1 true USRE43474E1 (en) 2012-06-12

Family

ID=34912824

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/898,908 Expired - Lifetime US6944604B1 (en) 2001-07-03 2001-07-03 Mechanism and method for specified temporal deployment of rules within a rule server
US11/854,404 Expired - Lifetime USRE43474E1 (en) 2001-07-03 2007-09-12 Mechanism and method for specified temporal deployment of rules within a rule server

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/898,908 Expired - Lifetime US6944604B1 (en) 2001-07-03 2001-07-03 Mechanism and method for specified temporal deployment of rules within a rule server

Country Status (1)

Country Link
US (2) US6944604B1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10650449B2 (en) 2007-01-31 2020-05-12 Experian Information Solutions, Inc. System and method for providing an aggregation tool
US10692105B1 (en) 2007-01-31 2020-06-23 Experian Information Solutions, Inc. Systems and methods for providing a direct marketing campaign planning environment
US10963961B1 (en) 2006-10-05 2021-03-30 Experian Information Solutions, Inc. System and method for generating a finance attribute from tradeline data
US11010345B1 (en) 2014-12-19 2021-05-18 Experian Information Solutions, Inc. User behavior segmentation using latent topic detection
US11107158B1 (en) 2014-02-14 2021-08-31 Experian Information Solutions, Inc. Automatic generation of code for attributes
US11222341B2 (en) 2015-11-18 2022-01-11 Mastercard International Incorporated Rules engine for applying rules from a reviewing network to signals from an originating network
US11423408B2 (en) 2015-11-18 2022-08-23 Mastercard International Incorporated Rules engine for applying rules from a reviewing network to signals from an originating network

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8812512B2 (en) * 2003-01-15 2014-08-19 Luke Martin Leonard Porter Bitemporal relational databases and methods of manufacturing and use
WO2004063943A2 (en) * 2003-01-15 2004-07-29 Luke Leonard Martin Porter Time in databases and applications of databases
US7706574B1 (en) 2003-11-06 2010-04-27 Admitone Security, Inc. Identifying and protecting composed and transmitted messages utilizing keystroke dynamics
US7620819B2 (en) * 2004-10-04 2009-11-17 The Penn State Research Foundation System and method for classifying regions of keystroke density with a neural network
US7593911B1 (en) 2005-10-12 2009-09-22 At&T Corp. System and method for applying rule sets and rule interactions
US8020005B2 (en) * 2005-12-23 2011-09-13 Scout Analytics, Inc. Method and apparatus for multi-model hybrid comparison system
US20070162761A1 (en) * 2005-12-23 2007-07-12 Davis Bruce L Methods and Systems to Help Detect Identity Fraud
US20070198712A1 (en) * 2006-02-07 2007-08-23 Biopassword, Inc. Method and apparatus for biometric security over a distributed network
US7526412B2 (en) * 2006-03-31 2009-04-28 Biopassword, Inc. Method and apparatus for multi-distant weighted scoring system
US7849030B2 (en) 2006-05-31 2010-12-07 Hartford Fire Insurance Company Method and system for classifying documents
US20070300077A1 (en) * 2006-06-26 2007-12-27 Seshadri Mani Method and apparatus for biometric verification of secondary authentications
US8707459B2 (en) 2007-01-19 2014-04-22 Digimarc Corporation Determination of originality of content
US8010511B2 (en) 2006-08-29 2011-08-30 Attributor Corporation Content monitoring and compliance enforcement
US7680756B2 (en) * 2006-12-29 2010-03-16 Intuit Inc. System and method for creating and implementing community defined presentation structures
US8332932B2 (en) * 2007-12-07 2012-12-11 Scout Analytics, Inc. Keystroke dynamics authentication techniques
US8332870B2 (en) * 2008-09-30 2012-12-11 Accenture Global Services Limited Adapter services
CN113781230B (en) * 2021-09-24 2024-10-01 上海蚂蚁创将信息技术有限公司 Transaction processing method and device based on blockchain

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701400A (en) * 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US6101440A (en) * 1995-11-29 2000-08-08 Siemens Aktiengesellschaft Controller for an automatic motor vehicle transmission
US6438591B1 (en) * 1988-09-14 2002-08-20 Compaq Information Technologies Group L.P. Entity management system
US6449598B1 (en) * 1999-09-02 2002-09-10 Xware Compliance, Inc. Health care policy on-line maintenance dissemination and compliance testing system
US20020169982A1 (en) * 2001-05-08 2002-11-14 International Business Machines Corporation Method of operating an intrusion detection system according to a set of business rules

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438591B1 (en) * 1988-09-14 2002-08-20 Compaq Information Technologies Group L.P. Entity management system
US5701400A (en) * 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US6101440A (en) * 1995-11-29 2000-08-08 Siemens Aktiengesellschaft Controller for an automatic motor vehicle transmission
US6449598B1 (en) * 1999-09-02 2002-09-10 Xware Compliance, Inc. Health care policy on-line maintenance dissemination and compliance testing system
US20020169982A1 (en) * 2001-05-08 2002-11-14 International Business Machines Corporation Method of operating an intrusion detection system according to a set of business rules

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10963961B1 (en) 2006-10-05 2021-03-30 Experian Information Solutions, Inc. System and method for generating a finance attribute from tradeline data
US11954731B2 (en) 2006-10-05 2024-04-09 Experian Information Solutions, Inc. System and method for generating a finance attribute from tradeline data
US11631129B1 (en) 2006-10-05 2023-04-18 Experian Information Solutions, Inc System and method for generating a finance attribute from tradeline data
US11176570B1 (en) 2007-01-31 2021-11-16 Experian Information Solutions, Inc. Systems and methods for providing a direct marketing campaign planning environment
US10650449B2 (en) 2007-01-31 2020-05-12 Experian Information Solutions, Inc. System and method for providing an aggregation tool
US11443373B2 (en) 2007-01-31 2022-09-13 Experian Information Solutions, Inc. System and method for providing an aggregation tool
US10891691B2 (en) 2007-01-31 2021-01-12 Experian Information Solutions, Inc. System and method for providing an aggregation tool
US11803873B1 (en) 2007-01-31 2023-10-31 Experian Information Solutions, Inc. Systems and methods for providing a direct marketing campaign planning environment
US11908005B2 (en) 2007-01-31 2024-02-20 Experian Information Solutions, Inc. System and method for providing an aggregation tool
US10692105B1 (en) 2007-01-31 2020-06-23 Experian Information Solutions, Inc. Systems and methods for providing a direct marketing campaign planning environment
US11107158B1 (en) 2014-02-14 2021-08-31 Experian Information Solutions, Inc. Automatic generation of code for attributes
US11847693B1 (en) 2014-02-14 2023-12-19 Experian Information Solutions, Inc. Automatic generation of code for attributes
US11010345B1 (en) 2014-12-19 2021-05-18 Experian Information Solutions, Inc. User behavior segmentation using latent topic detection
US11222341B2 (en) 2015-11-18 2022-01-11 Mastercard International Incorporated Rules engine for applying rules from a reviewing network to signals from an originating network
US11423408B2 (en) 2015-11-18 2022-08-23 Mastercard International Incorporated Rules engine for applying rules from a reviewing network to signals from an originating network

Also Published As

Publication number Publication date
US6944604B1 (en) 2005-09-13

Similar Documents

Publication Publication Date Title
USRE43474E1 (en) Mechanism and method for specified temporal deployment of rules within a rule server
US6993514B2 (en) Mechanism and method for continuous operation of a rule server
US11763322B2 (en) Controlling enterprise software policy compliance assessment processes based on quantum combinations of assessment elements
US7430514B1 (en) System and method for processing insurance claims using a table of contents
US6542881B1 (en) System and method for revealing necessary and sufficient conditions for database analysis
US9208347B2 (en) Updating roles based access
US9691044B2 (en) Application shell login role based access control
US6931644B2 (en) Hierarchical connected graph model for implementation of event management design
DE112019003405T5 (en) AUTOMATIC FINE TUNING DEVICE FOR EMBEDDING CLOUD MICRO-SERVICES
US10817813B2 (en) Resource configuration and management system
US12067580B2 (en) Management of programmatic and compliance workflows using robotic process automation
WO2000008543A1 (en) Adaptive countermeasure selection method and apparatus
DE112021001639T5 (en) PROTECTION OF COMPUTER EQUIPMENT FROM MALICIOUS ATTACKS
US20140156325A1 (en) Selective automated transformation of tasks in crowdsourcing systems
CN114679341A (en) Network intrusion attack analysis method, equipment and medium combined with ERP system
US7571107B1 (en) System and method for externalization of rules for assessing damages
US20190260755A1 (en) System for controlling access to a plurality of target systems and applications
EP3764310A1 (en) Prediction task assistance device and prediction task assistance method
Straub Evaluating the use of technology readiness levels (TRLS) for cybersecurity systems
US20070174113A1 (en) Enterprise incentive management
DE112023000325T5 (en) SELECTION OF SAFETY POLICY BASED ON CALCULATED UNCERTAINTY AND PREDICTED RESOURCE CONSUMPTION
CN116009248A (en) Design method of power divider, power divider and device
US7424714B2 (en) Mission collaboration system
US20130159050A1 (en) Methods and Systems for Managing Corporate Risk
Bîlcan et al. Risk and uncertainty in information society

Legal Events

Date Code Title Description
AS Assignment

Owner name: HNC SOFTWARE, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MAJOOR, JOHANNES W. F.;REEL/FRAME:022385/0355

Effective date: 20010905

Owner name: FAIR ISAAC CORPORATION, MINNESOTA

Free format text: MERGER;ASSIGNOR:HNC SOFTWARE, INC.;REEL/FRAME:022393/0317

Effective date: 20021031

AS Assignment

Owner name: FAIR ISAAC CORPORATION, MINNESOTA

Free format text: MERGER;ASSIGNOR:FAIR, ISAAC AND COMPANY, INCORPORATED;REEL/FRAME:028130/0685

Effective date: 20030327

Owner name: FAIR, ISAAC AND COMPANY, INCORPORATED, CALIFORNIA

Free format text: MERGER;ASSIGNOR:HNC SOFTWARE INC.;REEL/FRAME:028130/0662

Effective date: 20021031

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12