exsys expert system development software technical overvie › ~pattarachai › es › class ›...

31
Technical Overview - 1 - EXSYS Expert System Development Software Technical Overview What is a Knowledge-Based Expert System Expert knowledge of how to solve a problem is often scarce and valuable. Knowledge-based expert systems are programs that capture some of that knowledge and allow its dissemination to others. A knowledge-based expert system is a program that emulates the interaction a user might have with a human expert or specialist to solve a problem. The rules used in a knowledge-based expert system contain some of the knowledge of a human specialist(s) in a particular field. The inference engine makes use of these rules to solve the problem. The end user provides interactive input by selecting one or more answers from a list or by entering data. The system will ask questions until it has reached a conclusion. The conclusion may be a single answer or a list of possible recommendations, arranged in order of likelihood. The program can explain, in English, why it is asking specific questions, how it arrived at its conclusion and why. Expert systems are often thought of as large projects to solve big problems. While they can be used that way, the most effective use of EXSYS 's expert system technology is to capture the knowledge needed to solve small, specific problems and make it accessible to people needing to make decisions via an intranet/Internet. Most of the individual decisions people make everyday only require knowledge of a specific area and this is where expert systems work best. Using Exsys tools, building knowledge-based expert systems need not be complex or difficult to build. In a very simple case, consider the path of a decision tree diagram you might draw on paper describing how to solve a problem. By making a selection at each branch point, the tree diagram can help someone make a decision. In a sense, it is a very simple expert system. This type of tree structured logic can easily be converted into a computerized system that is easy to use, faster and automated. More elaborate systems may include confidence (weighting) factors allowing several possible solutions to be selected with different degrees of certainty. A system may be highly interactive (directly asking the user questions) or embedded where all input comes from another program. The range of problems that can be handled by knowledge-based expert systems is vast. Applications can be developed with EXSYS software for any problem that involves a selection from among a definable group of choices where the decision is based on logical steps. Expert systems can help automate anything from complex regulations to aiding customers in selecting

Upload: others

Post on 06-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 1 -

EXSYSExpert System Development Software

Technical Overview

What is a Knowledge-Based Expert SystemExpert knowledge of how to solve a problem is often scarce and valuable. Knowledge-basedexpert systems are programs that capture some of that knowledge and allow its dissemination toothers.

A knowledge-based expert system is a program that emulates the interaction a user might havewith a human expert or specialist to solve a problem. The rules used in a knowledge-based expertsystem contain some of the knowledge of a human specialist(s) in a particular field. Theinference engine makes use of these rules to solve the problem.

The end user provides interactive input by selecting one or more answers from a list or byentering data. The system will ask questions until it has reached a conclusion. The conclusionmay be a single answer or a list of possible recommendations, arranged in order of likelihood.The program can explain, in English, why it is asking specific questions, how it arrived at itsconclusion and why.

Expert systems are often thought of as large projects to solve big problems. While they can beused that way, the most effective use of EXSYS 's expert system technology is to capture theknowledge needed to solve small, specific problems and make it accessible to people needing tomake decisions via an intranet/Internet. Most of the individual decisions people make everydayonly require knowledge of a specific area and this is where expert systems work best.

Using Exsys tools, building knowledge-based expert systems need not be complex or difficult tobuild. In a very simple case, consider the path of a decision tree diagram you might draw onpaper describing how to solve a problem. By making a selection at each branch point, the treediagram can help someone make a decision. In a sense, it is a very simple expert system. Thistype of tree structured logic can easily be converted into a computerized system that is easy touse, faster and automated. More elaborate systems may include confidence (weighting) factorsallowing several possible solutions to be selected with different degrees of certainty.A system may be highly interactive (directly asking the user questions) or embedded where allinput comes from another program.

The range of problems that can be handled by knowledge-based expert systems is vast.Applications can be developed with EXSYS software for any problem that involves a selectionfrom among a definable group of choices where the decision is based on logical steps. Expertsystems can help automate anything from complex regulations to aiding customers in selecting

Page 2: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 2 -

from among a group of products, or diagnosis of problems with a piece of equipment – any areawhere a person or group has special expertise needed by others.

Historically, one of the biggest problems in expert system development has been distribution.Expert systems are knowledge dissemination tools - they are effective solutions only if they canbe accessed. Distribution of disks or CDs is cumbersome and there is usually a maintenanceproblem to make sure users are working with the latest version. Networks are a solution, butuntil fairly recently, they were usually limited to within a company.

The World Wide Web solves that. Now a web site can be accessed from anywhere in the world.EXSYS 's breakthrough technology is the ability to run knowledge-based expert systems whichprovide answers, not just information, on an Intranet/Internet environment. Now expertknowledge can be accessed by anyone that needs it 24 hours a day. Since only the server needsto be updated, maintenance of the application becomes far easier. Systems and solutions builtwith EXSYS 's software can be used to their full potential for sites providing customer support,maintenance, pre-sales selection assistance, configuration or interpretation of complexregulations. The ability to deliver knowledge on the web, not just data, will become the newstandard for advanced web sites.

When to Use Knowledge-Based Expert SystemsThe first question in considering the development of an expert system is "Why build an expertsystem?" Expert systems are extremely useful, but they can not solve all problems.Understanding when and why to use an expert system is important.

Knowledge-based expert systems are ideal to:

Disseminate problem-solving knowledge, not just facts, with minimal training of end users.

Most organizations have ways to disseminate data through databases and intranets. Knowledge-based expert systems provide a way to disseminate knowledge through those same intranets andthe Web. Once an application is built and put on-line, the problem-solving skill it contains isavailable to everyone. On an intranet, staff with minimal training can immediately perform at amuch higher level by using expert systems. On the web, anyone can access the systems. Theycan assist potential customers in selecting your products, or reduce the load on support staff.

Standardize the conclusions for a given set of data.

For situations where there are many people answering the same types of questions, it is highlydesirable that everyone give the same, consistent answer for the same input data. Expert systemsguarantee that this will happen.

Page 3: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 3 -

Free a human expert from repetitive, routine jobs and interruptions in order to doactivities an expert system cannot do.

Expert systems are very powerful tools, but they do not think. Expert systems can not come tonovel or innovative solutions - only people can. However, most experts spend most of their timeanswering routine, well-understood, questions. These are the best areas to convert to an expertsystem. This frees the human expert to concentrate on the complex problems that can not bedone by an expert system.

Codify a problem-solving technique for future users.

Most organizations have people that are experts on some subject, but the expert has neverdocumented how they make their decisions. Having the expert build an expert system,documents and preserves the steps they use to make their decisions.

Allow the problem-solving skills of several people to be combined.

In addition to documenting the steps a single expert may use, having a group of experts build asystem separate the consensus opinion from individual views. This can be very informative andis a great way to establish consistent policy and regulatory compliance.

The goal of a particular knowledge-based expert system project may be a combination of severalof the above. The best problems to attack with expert systems are those that are well understood– the type of problem the human specialist is frequently asked. Typically these problems can berapidly converted into expert systems with immediate payback. Building such systems frees theexpert from the routine questions, allowing them to concentrate on the problems that can not behandled by an expert system, and enables less skilled staff to quickly work at a higher level.

Companies effectively using expert systems have found that “experts” are much more commonin a company than it seems at first. The “expert” is the person who knows the answers in aspecific or specialized domain. Many people in a company have specialized information neededby others. It can be the person(s) knowing the best product for a customer, how to fix a complexmachine, provide answers at a Help Desk, ship a package, or comply with regulations - usuallythere is an “expert” that everyone turns to. A knowledge-based expert system takes the expert’sknowledge and enables it to be preserved and disseminated.

EXSYS 's Approach to Knowledge-Based Expert SystemDevelopmentTraditionally, with most expert system vendors, development has been a major expense both intime and money. Getting even a single system built was a big project. The cost of systemdevelopment prohibited building expert systems on more than a few projects. EXSYS software

Page 4: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 4 -

tools and solutions change that. The key to implementing expert systems widely, effectively andat low cost is to make expert system development tools easy-to-use and readily available to thedomain experts. EXSYS provides a multi-level approach to expert system development byproviding a suite of tools and solutions for development and delivery of knowledge-based expertsystems, combining many advanced features with the proven ease of the development interface.

EXSYS tools are designed to meet the increasingly sophisticated development and distributionneeds of experts building complex expert systems. The goal of EXSYS is to balance theconflicting requirements of flexible power and ease-of-use. To do this, we provide developmenttools that can represent the specialists' knowledge in multiple ways, allowing developers to usethe easiest technique that will meet their needs.

As more power is needed for certain applications, higher level tool functions can be used withadvanced features to give the developer complete control over the inference engine,modularization of the knowledge base, flow of execution, user interface and integration withother programs.

Once the system is built there are two ways to deliver it to end users, standalone and on-line viathe Web. The Web Runtime Engine allows systems to be easily and rapidly moved to a Web siteand run on standard web browsers.

EXSYS Software Tools

EXSYS - Development Tool

The current EXSYS software reflects extensive feedback from developers and end users on whattool features are needed to solve real-world problems. EXSYS development tools and itspredecessors have been used to build tens of thousands of expert systems.

EXSYS provides two ways to represent and store knowledge. Applications can be built bysimply creating tree diagrams of decision-making logic. The tree diagram approach requires onlya short learning curve, because the system converts the trees to rules, enabling developers torapidly build applications, . The trees are automatically checked, by the system, for completenessand for a variety of logic errors. The tree diagram approach makes it easy for developers tounderstand the logic without having to learn complex syntax. Tree-based applications are oftenbuilt in just a few days.

EXSYS also includes a rule editor where individual rules can be built and fine tuned one at atime, allowing logic that can not be diagrammed as trees to be represented. This greatly expandsthe number of problems that can be solved. Since the trees and individual rules can be mixed ina system, the best representation technique can be used for each part of a problem. Rulerepresentation is a little more complex to use than trees, but novice developers are able toprototype their application by taking a 3-day training class. The "Getting Started" tutorial is alsoa great training tool for those new to expert systems.

Page 5: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 5 -

EXSYS supports a variety of ways of handling uncertain data, ranging from a simple yes/noconfidence to complex fuzzy logic systems. A procedural command language, frames and a widevariety of interfaces give the developer flexibility in control of system execution, access to dataand integration to other programs.

The ease of getting started, combined with the proven ability to handle complex problems hasmade EXSYS the tool of choice by both beginners and professional knowledge engineers.

Runtime Delivery Tools

EXSYS provides flexibility in delivery of the completed expert system applications. The WebRuntime Engine enables applications to be run from a web server using standard browsers. Thescreens used to ask questions, present results and explain the basis for the logic can be customtailored to match the look-and-feel of a site. The development environment has special featuresfor associating custom HTML screens with applications. These screens can be edited directlyfrom the development environment using your favorite HTML editor.

A stand-alone runtime is also provided for applications that are not practical for web-baseddistribution due to: sensitive information, inability to access the web, need to run on laptops,applications embedded in non-web systems, monitoring applications or systems that are run sofrequently it is better to run locally than remotely. All applications can be run either stand-aloneor on the Web.

Page 6: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 6 -

EXSYS Software Terminology and Inference EngineEXSYS software is rule-based with many enhancements such as Frames, SQL and the ProceduralCommand Language. IF-THEN-ELSE rules are used to describe the logic of the system. Therules may be built one at a time in a rule editor or built by converting a tree-diagramrepresentation of the logic.

Some key terminology to be familiar with:

Goals - Expert systems usually are designed to arrive at a conclusion or recommendation. InEXSYS , these possible recommendations are called Goals. These might be a recommendedproduct or action to take, an equipment diagnosis, or a way to implement a policy.

Questions - This allows the user to select one (or more) values from a pre-defined list of choices.

Some examples:

The weather is1 Sunny2 Cloudy3 Raining4 Snowing

The light is1 On2 Off

Variables - EXSYS supports both numeric and string variables. Variables can have up to 18character names and are indicted by [ ]. When building a system, expressions, parenthesis,Boolean operators, trig functions and exponential functions are supported. An IF part testexpression might be:

IF (([X] < [Z]) AND (SIN([X] / 2) > .4))

In addition to the more standard mathematical operators, EXSYS also supports, MIN, MAX, theC language conditional assignment operator (__?__:__) and an approximately equal operator tohandle round-off error problems.

String variables can be tested for alphabetical order and can be concatenated.

Page 7: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 7 -

Rules

Expert systems deal with knowledge rather than data and the files they use are often referred to asknowledge bases. This knowledge is represented as rules. A rule is made up of a list of IFconditions (normal English sentences or algebraic expressions that can be tested to be TRUE orFALSE), and a list of THEN conditions (more sentences) or statements about the probability of aparticular data or Goal being the appropriate solution to the problem. If the computer determinesthat all IF conditions in a rule are true it adds the rule's THEN conditions to what it knows to betrue. The computer determines what additional information it needs and how best to get theinformation. If possible, the program will derive information rather than asking the user. Thisability to derive information allows the program to combine many small pieces of knowledge toarrive at logical conclusions about complex problems.

A EXSYS rule is divided into five parts: an IF part, a THEN part, an optional ELSE part, anoptional NOTE, and an optional REFERENCE.

IFConditions

THENConditions

and Goals

ELSEConditions

and Goals

NOTE: --------------------REFERENCE: ---------------

The IF part is simply a series of tests, expressed as English sentences or algebraic expressions.The test conditions are statements which may be true or false. For example, THE COLOR ISRED or [X]>1. The first statement will be true only when an item is red, the second will be trueonly if the value of the variable X is greater than 1. The IF conditions are tested against the dataprovided by the user, information that can be derived from other rules, and data obtained fromother sources.

The IF part, THEN part and ELSE part can each have up to 128 conditions. In the IF part, thetests can be combined with either AND or OR. Boolean operators can also be used to buildcomplex logical tests.

The THEN part can contain conditions similar to the IF part, but in the THEN part, they are nottests, but statements of fact. In the IF part we could have TODAY IS WEDNESDAY and itwould be a test that might be true or false. The same statement in the THEN part would beconsidered to be a valid fact, if the IF conditions in the rule were true. When the IF conditions in

Page 8: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 8 -

a rule are determined to be true, EXSYS assumes the THEN part is true and adds any facts in theTHEN conditions to what it knows.

The THEN part can also contain the possible goals that the expert system will decide amongalong with their assigned probability values. EXSYS keeps track of the value each goal receivesand calculates a final confidence value for each of the choices. The THEN conditions may alsoinclude statements that assign a value to a numeric or string variable. This allows values to becalculated during a run and, optionally, displayed at the end.

The ELSE part is the same as the THEN part and is applied if any of the IF conditions areFALSE. The ELSE part is optional and not needed in most rules. (Rules built in tree structuredsystems have only IF and THEN parts.)

In some cases it is desirable to add a Note to a rule to provide some special information to theuser. If there is a note added, it will be displayed with the rule. The note does not affect thelogical operation of the program, and is very useful to provide information to the end user. Thenotes, from rules that fired, can also be output using the report generator.

The developer of the expert system knowledge-base may also add a reference for a rule. This isintended to help the end user find the source of the knowledge contained within a rule or formore information if they should need it. As with the note, the reference is optional and only forthe end user's information. It has no affect on the running of the program. The differencebetween the note and the reference is that the note is displayed whenever the rule is displayed.The reference is displayed only if the user requests the reference. The references, from rules thatfired, can also be output using the report generator.

Both Note and Reference elements can contain links to other pages in web sites. This isespecially useful for product descriptions, specific requirements or to display a part of a complexregulation or policy.

Backward Chaining

Backward chaining is a term used to describe running the rules in a "goal driven" way. Inbackward chaining, if a piece of information is needed, the system will automatically check all ofthe rules to see if there is a rule that could provide the needed information. The system will then"chain" to this new rule before completing the first rule. This new rule may require informationthat can be found in yet another rule. The system will then again automatically test this new rule.The logic of why the information is needed goes backwards through the chain of rules. Forexample, suppose we have a rule that we are testing:

Rule 1IF

The day is hot

THENGo to the beach

Page 9: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 9 -

The system needs to know if the day is hot. EXSYS would automatically check all rules to see ifthere is a rule that would help determine if the day is hot. Suppose it finds Rule 35:

Rule 35IF

It is summer and It is sunny

THENThe day is hot

The program will automatically test Rule 35 and wait to finish testing Rule 1 until Rule 35 isdone. Rule 1 is now in the chain. If there are any other rules that tell the program if it is summeror if it is sunny, these rules would be automatically called and tested before Rule 35. And so on,until there are no rules that can add needed information. Then the chain will unwind back to thestarting rule. In EXSYS software backward chaining is used as the default (Forward chaining isalso available). The called rules can be anywhere in the expert system. It is NOT necessary tospecify which rules apply to which information.

Backward chaining simplifies the development of the expert system. Each rule can simply statean individual fact. Unlike some expert system tools, you do not have to explicitly assign therelationships between rules. EXSYS will automatically find the relevant rules and use them. Ina backward chaining system, the rules can be in any order. As new facts are added to the system,rules are simply added and EXSYS will automatically determine when and how to use the newpieces of information.

Forward Chaining

Forward chaining is the alternative to backward chaining. Forward chaining is a "data driven"way to run the rules (unlike the goal driven approach of backward chaining). In backwardchaining, there is always a goal to be satisfied and a specific reason why rules are tested. In pureforward chaining, rules are simply tested in the order they occur based on available data. Ifinformation is needed, other rules are not invoked - instead, the user is asked for the information.Consequently, forward chaining systems are more dependent on rule order. However, since timeis not spent determining if information can be derived from other rules, forward chaining is muchfaster.

EXSYS also provides a hybrid between backward and forward chaining where the basicapproach is data driven, but information needed by rules is derived through backward chaining.This system combines the best of both worlds. Another technique is to divide an expert systeminto subsets of rules and run some in forward chaining and some in backward chaining with theProcedural Command Language. This enables the you to fine tune the chaining methods for thesystem.

Page 10: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 10 -

Procedural Command Language

The EXSYS Procedural Command Language was developed to solve a major problemencountered in rule-based systems. When procedural control of a system is closely coupled withthe logic of the rules, it often becomes necessary to use artificial logical structures to forceprocedural operations to be performed. Such systems are difficult to develop and maintain andcan be very confusing to the end user. To solve this problem, EXSYS separates the logic andprocedural operations. The Command portion of a system defines the procedural operation. Thisremoves procedural commands from the rules and allows the rules to represent only the logic ofthe system. The procedural and logical operations can communicate, but they do not get in eachother's way. Complex systems are easier to build, maintain and understand. EXSYS is the onlyexpert system development tool that uses this powerful approach to solve the problem of logicaland procedural control.

The Procedural Command Language syntax is somewhat like DOS batch language plus a littleBASIC. The commands use syntax that is easy to follow and maintain.

The Procedural Command Language provides control mechanisms for the input of data,execution of rule subsets, looping, and display of results, and it can change most of the EXSYSdefault operations. The Command Language is used in conjunction with the Report Generatorspecifications for even greater control. The Procedural Command Language program is a textfile that can be created and edited with any text editor, or with the built-in Command File editor.If the command file is present, it is used. If it is not found, EXSYS reverts to the standarddefaults. Like many advanced functions, the Command File need only be created when it isneeded.

The Procedural Command Language includes commands for:

• Controlling command flow: (WHILE, IF, GOTO, ...).• Running rules or subsets of rules in forward or backward chaining mode.• Calling report specification files.• Displaying results or intermediate results.• Instantiating facts or data.• Screen control to ask questions.• Calls to database or spread sheet files.• Calls to external programs.

While only a small part of the commands in the language can be described here, this shortexample gives some idea of the power and flexibility that can be achieved. This is not an actualexpert system command file, it is simply a collection of commands for illustration purposes.(The line numbers are added only for reference, they are not part of the Command Language.)1 SET [Z] 02 :START_LOOP3 RULES [X] /F

Page 11: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 11 -

4 IF ([X] > 5)5 RULES "PART 1:*"6 REPORT "FIRST.RPT"7 ELSE8 RULES "PART 2:*"9 REPORT "SECOND.RPT"10 ENDIF11 RESULTS12 CLEAR ALL13 WHILE ([Y] > 0)14 RULES 100-200 /C15 WEND16 IF ([ABC] < 0)17 SET [Z] ([Z]+1)18 GOTO START_LOOP19 ENDIF

This program would first set variable [Z] to 0 (line 1).

Line 2 is a loop branch point.

Line 3 would run all of the rules that derive a value for variable [X] in a forwardchaining mode.

It would then test the value obtained for [X] (line 4).

If [X] is greater than 5, the set of rules whose name begins with "PART 1:" would be runin backward chaining mode (line 5)

The results printed using the report specification "FIRST.RPT" (line 6).

If [X] was not greater than 5, the subset of rules whose names begin with "PART 2:"would be run in backward chaining mode (line 8) and the report "SECOND.RPT" used(line 9).

In either case the results would be displayed to the user (line 11),

All rules, qualifiers, variables and choices are reset to unknown (line 12).

The program will then determine the value of variable [Y] by running the relevant rulesand test the WHILE condition.

Page 12: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 12 -

As long as the value of [Y] was greater than 0, the program would continue to run rules100-200, clearing all data before each run, (line 14).

If the variable [ABC] is less than 0 (line 16), the program would increment [Z] (line 17)and loop back to the start (line 18).

To create a similar execution sequence in other programs would require several separateknowledge-bases, a blackboard file and some technique to control the order in which programswere called. In EXSYS, only a single knowledge-base is needed and the steps in the executioncan be clearly defined.

There are great advantages to using a Procedural Command Language operating over a structuredset of rules for complex applications.

Confidence Modes

EXSYS provides 6 ways to handle uncertain data, the confidence or probability factors withinyour expert system. The different systems are designed to provide a range from simple andintuitive confidence systems, through customized systems that enable the developer to implementcomplex ways of handling confidence. The confidence methods provided are:

YES / NO SystemIf the system does not require any estimate of probability, the YES/NO (0/1) system is best. Thisconfidence system is very easy to use since the first rule that fires for a choice, sets the value to 1for Yes, or 0 for No. No intermediate values are assigned. This confidence system is good forselecting choices from a list, an automated questionnaire, or other systems where the choicesused by the system are definitely "yes" or "no".

0-10 SystemThe 0-10 System provides confidence values on a scale of 0-10. This is often quite compatiblewith the intuitive knowledge used in the development of an expert system. A value of 0 locksthe value for the goal at 0 (No - not possible) and a value of 10 locks the value at 10 (Yes -definitely selected). Confidence values between 1 and 9 are averaged to give a relativelikelihood. This system can positively select or reject a goal (with a value of 10 or 0) but canalso allow intermediate values to indicate goals that may also be appropriate.

When obtaining a human expert's intuitive recommendation in an event, a 0-10 scale is oftencomfortable and easy to use. Unless valid statistical data is available, precision higher than 0-10is difficult to obtain from intuitive human knowledge.

Despite its simplistic calculations, the 0-10 System is quite suitable for many expert systems and hasbeen used to build thousands of real-world applications.

Page 13: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 13 -

-100 to 100 SystemValues can be assigned to goals in the range of -100 to 100. This provides greater resolution thanthe 0-10 system. However, there is no value that locks the value at "yes" or "no", values of 0,100 and -100 are treated like any other value. Also there are three methods of combining theconfidence values - average, dependent probabilities or independent probabilities.

The -100 to 100 System is effective if statistical data, accurate to two significant figures, isavailable or if the nature of the problem requires that the confidence factors be combined asdependent or independent probabilities.

Increment/Decrement SystemPoints are added to or subtracted from the total score for a goal. A rule can add or subtract asmuch as 100 points from the total for a goal. At the end, the total value for each goal isdisplayed. This system differentiates among possible solutions that would provide similar oridentical scores using other systems. This system is intuitive and easy to use and particularlygood for problems that select among a group of items based on conflicting requirements orindicators.

Custom Formula SystemIn this system, you can write your own formulas for the combination of confidence values. Thisprovides enormous flexibility. One method of combining confidence values can be used in onepart of an expert system and another method in the rest of the system. This is a more complexsystem, but it can be used when a problem cannot be solved by one of the other systems. Thisflexibility allows very complex systems of confidence factors to be built.

Fuzzy LogicFuzzy logic is a very powerful technique that enables you to build expert systems that can handleimprecise data (i.e.: The temperature is a little hot) and more closely reflect the real world. In theFuzzy Logic confidence mode, fuzzy membership functions are defined which assign confidenceto items based on the value of a variable. These confidence values are propagated through therules to the confidence assigned to goals. Specific values can be defuzzified out of the results tohave the system give precise recommendations.

EXSYS Frames

FRAMES provide a way to efficiently represent certain types of data that have a hierarchicalstructure. Frames allow multiple columns and complex search criteria with Boolean operators.The data in a frame can be read or updated by the expert system. Frames provide inheritancewhich allows a hierarchical set of frames to be created with data in "parent" frames available tolower level frames. The use of frames provides a way for EXSYS applications to handle datathat is portable and maintainable. Frame data is accessed by a FRAME command that can beused in rules, associated with data items, or called from the Command Language or reportgenerator.

Page 14: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 14 -

EXSYS Blackboards

Blackboards provide a flexible means for EXSYS systems, and other applications, to store andretrieve data. The data is typically shared among multiple expert systems and other programs in aknowledge-based application. A set of blackboard commands enable you to read or write data tothe blackboard and to maintain the blackboard. The blackboard files are simply text files and canbe easily read or created by other programs.

Parameter Replacement

Data dynamically set by the expert system can be inserted in any text string, formula orcommand. In EXSYS, variables are designated by including them in square brackets. Forexample, [X] would be the variable X. If a string contains the variable in double square brackets[[X]], the value/text for the variable will be inserted into the string before the string or commandis executed. Similarly, question text and choices can also be embedded in a text string.

This simple feature enables you to write dynamic commands that are modified and set by thesystem and user input. Notes can easily contain the actual data provided by the end user, orobtained from an external program. Complex meta-rules can be developed to step through arraysof data. Self-modifying command files can be generated. The use of parameter replacement is adeceptively simple function that allows the building of very complex systems.

A simple example of parameter replacement is the development of user interfaces that reflectdata input. You might have a string variable [NAME] that is obtained from the user or adatabase which contains the name of the user. We could make the prompt to ask a question:

[[NAME]], please tell me...

EXSYS will automatically replace [[NAME]] with the actual user name at the start of theprompt.

This is a very simple use of parameter replacement, but it shows how easily such customizationcan be added in a system. In other expert system development tools embedding the name wouldbe difficult or impossible.

The EXSYS Developer Interface

EXSYS introduces a new approach to building knowledge-based expert systems rapidly througha combination of a tree-structured representation of the knowledge and the ability to addindividual rules to enhance the logic where tree-based representation is inappropriate - a unique

Page 15: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 15 -

tool that can be learned in a very short time, but with growth potential to handle complexproblems. Systems developed with EXSYS can run on the Web using NetRunner or serve asstand-alone applications. The Procedural Command Language can be used to control theexecution of the expert system and interface to other programs and data sources.

Tree representation can be used for any problem that involves a selection from among a definablegroup of goals, where the decision is based on logical steps that can be described as a set of treediagrams. The trees can involve relative probabilities of a goal being correct. Trees can also beused to derive data needed by other trees or rules. Individual rules are added to represent specificfacts that can not be represented as trees (usually rules requiring an ELSE part, or specific factsthat are not part of an overall structure of information)

EXSYS is easy to use, no special languages are needed and all input is in the form of Englishtext, algebraic expression or menu selection. It is not necessary to memorize complex rulesyntax.

The systems produced by EXSYS can be run on the Web with The Web Runtime or stand-alone.Essentially all of the instruction necessary for an end user to run a fielded application is providedby the program and all output is in English. Little or no training is required to run an alreadydeveloped knowledge-based system. The end user of the system can ask HOW conclusions werereached or WHY information is needed. The program will respond with a full explanation of thelogic used to arrive at the conclusion, including backward chaining. The developer cancustomize screens and decide what options are available to the end user.

EXSYS is designed to look like a notebook. Sections are divided with page tabs. Clicking on apage tab will bring you to the specified section.

Building trees in EXSYS is very similar to drawing tree diagrams on paper. EXSYS provides avariety of data items to use in the trees and ways to edit the trees.

EXSYS DEVELOPER

Page 16: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 16 -

TreesA tree is a branched decision-tree that represents all, or a portion, of the decision-makinginstructions. In EXSYS trees look like:

NodesA tree is made up of nodes that represent decision branch points, and those that are assignmentsof value. These correspond to IF and THEN conditions in a rule.

The IF nodes always have at least 2 values - and may have as many as 30. The various values arejoined together in a block. In the example, Test 1, Test 2 and Test 3 are all IF nodes. The nodevalues can be multiple choice text items, ranges of a numeric variable or true/false tests of amathematical expression.

THEN Nodes have a single value and assign a value to the goal of the expert system, assign textor numeric data, display a message to the end user, or annotate the tree.

FactorsFactors are text or numeric data items that are used to define the nodes. There are two types offactors: Questions and Variables.

Questions are multiple choice lists. These are typically text and can contain up to 30 values.For example, if the day of the week is relevant in reaching the application's conclusions, wecould have a question of "Today is", with possible choices:

Page 17: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 17 -

MondayTuesdayWednesdayThursdayFridaySaturdaySunday

A question condition is a statement in the tree (or rule) made up of the starting question text andone or more of the associated choices.

Questions can be used in the IF part of a tree branch to test a value or in the THEN part to assign avalue.

Variables are numeric or string variables. A numeric variable value may be any value betweenits upper and lower bounds. For the purposes of building the tree, the value of the variable isdivided into ranges defined by the logical break points in the decision making process.

GoalsGoals are the things that the expert system will decide among. A system to recommend productswould have the various products as goals. A system to determine the cause for a failure in amachine would have the possible items that could breakdown as goals. Depending on theConfidence Mode used, a goal may be assigned a confidence value to determine its relativelikelihood. Goals can only be used in the THEN part of trees.

Page 18: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 18 -

Take a very small example that identifies items on the desk:

Makes noise?

YES

NO

Color?Black

White

Color?Black

White

ShapeFlat

Cylindrical

TELEPHONE

COMPUTER

FLOPPY DISK

PAPER

PENCIL

When converted to EXSYS form this will look like:

It is easy to draw the tree logic on paper. It is just as easy to draw a tree in EXSYS once theediting commands are learned.

Balloon Display

EXSYS automatically converts each branch of the tree to an IF-THEN rule. To see the rule thatis associated with any branch, click on a node. A balloon will be displayed showing the rule upto that node. For example, a click on the box labeled Computer would display:

Page 19: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 19 -

Adding Nodes to a TreeWhen a new tree is created, it will only have a terminal node that says "Double Click to AddFactor".

Page 20: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 20 -

To add an element to the tree, double click on the terminal node. This will bring up a dialog boxfor adding factors.

A question condition on "The color of the light", could be added by clicking on the Questionbutton in the Add Element IF: Factor box.

This would display a dialog box with all of the Questions:

In this case the statement that "The color of the light is Red" has been selected. This will beadded to the tree.

Page 21: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 21 -

The node that was added takes into account all possible answers that the end user might providefor the question. The choice we selected, "The color of the light is red", is in the top line, butbranches were automatically created for the other possible answers. The result is four branches,each with a terminal node. In this way EXSYS automatically creates branches and guaranteesthat the tree will be complete.

The ability to add nodes rapidly with a point-and-click interface, plus EXSYS 's feature ofautomatically expanding the tree to consider all possible combinations of input, allows rules tobe built very rapidly. The developer is prompted to consider all possible cases, which can be anexcellent way to extract knowledge from the expert and guarantees system completeness.

In some cases, it is not desirable to add a separate branch for each of the other possible values ofthe question. EXSYS provides three options. At the bottom of the dialog box where thequestion and choice was selected, is a set of radio buttons that control how the other choices aregrouped.

In the example, the default of "One branch per other choice" was selected. This causes each ofthe other choices to be given an individual branch.

The second option is "All other choices in one branch". This causes all of the other values to beput in a single branch. If this had been selected, the tree would look like:

Page 22: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 22 -

There would only be two branches from the node.

The third option is to do custom grouping of the other choices. This provides custom control forthe number of branches created and what choices are associated with them. Selecting the"Custom" option displays the dialog:

This dialog would allow selection of the following custom groups:

Group Values 1 Red 2 Yellow, Green 3 None - light off

This would build the node:

Page 23: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 23 -

In this case four branches were created. The Custom option gives total control on the number ofbranches and choices associated with them.

The ability to add nodes rapidly with a point-and-click interface, plus EXSYS 's feature ofautomatically expanding the tree to consider all possible combinations of input, allows rules tobe built very rapidly. The developer is prompted to consider all possible cases, which can be anexcellent way to extract knowledge from the expert and guarantees system completeness.

In most applications there would be multiple trees each representing a different aspect of thedecision-making problem. Trees can assign values in their THEN part. IF other tree nodesrequire these choices, the appropriate rules will automatically be called through backwardchaining.

The trees built with EXSYS can be printed and reviewed with other experts. Since the trees areeasy to read, this facilitates group consensus on the application and is especially helpful whensomeone other than the expert is building the system.T

Individual Rules

Trees are an ideal way to rapidly develop most systems. However, the logic of some systems cannot be described as trees. These systems require that individual rules be built. EXSYS providesa Rule Editor for this ability.

Rules are entered in an editor window that looks like:

Page 24: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 24 -

Clicking on the Question button brings up a list of the questions in the system and theirassociated value lists. To build a rule condition, simply click on the desired question and thedesired choice(s). The condition will appear in the rule window. You only have to type thequalifier text when it is first created or if it needs to be edited. Mathematical expressions andchoice conditions are just as easy to input.

If you want to add a custom command or access data from another program, click on theCommand button. Just fill in data in a few of the dialog boxes and EXSYS will buildsyntactically correct commands for you. You don't have to memorize the command syntax.

Frequently the first few conditions in a rule will be identical to the previous rule. Just click theRepeat button once for each condition and they will be copied into this rule.

Rule editing is just as easy. Simply, select a rule to edit and change, delete or add. Conditionscan be deleted or changed. Conditions may also be cut or copied from other rules.

The EXSYS Rule Editor is a powerful and flexible tool for knowledge-based expert systemdevelopment. It enables you to rapidly write rules using the same data elements as the trees.When you want to test the rules, select "RUN" from a menu and you are running. If you want tocancel a run and return to edit mode, just make another menu selection and you are back in theedit mode.

This rapid edit-test-edit cycle speeds expert system development. It is made possible byEXSYS 's incremental compiling of the rules as they are entered. As each rule is input, it iscompiled to EXSYS 's internal representation. This means that the rule editor has access to thelogic of the rules already entered. If you enter a rule that is potentially in conflict with anexisting rule, the editor will immediately tell you and give you the opportunity to correct it.

Page 25: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 25 -

Debugging

Whenever you are writing down the logic of a process, either in programming or in building aknowledge-based expert system, errors will occur. Tracking down the errors can take time andeffort. EXSYS provides a variety of tools to assist you in debugging your systems. A tracewindow displays the history of the session – the order in which the rules fired, what data was set,etc. This allows you to follow exactly what happened and find the error. This trace can also bedirected to a file for later reference.

During a run, whenever EXSYS asks for data, you can ask "WHY" it is asking. EXSYS willdisplay the logic that required that item of data. Also you can display any rule, the data known tothe system and the status of the choices. In all cases, you can ask how a particular item of datawas derived to trace back the logic and find any errors.

EXSYS can also generate cross reference listings to show you where data items are used andwhat rules assign values to variables, etc.

Automatic System Validation

Testing and validating a knowledge-based expert system must be a major part of any expertsystem development project. It is important to make sure end users will get valid answers to anyinput. EXSYS 's automatic validation function greatly simplifies and automates this process.EXSYS will automatically test your application, unattended, for a variety of errors. Yourapplications may be tested overnight or while you are on vacation.

EXSYS supports two methods of validation testing; systematic and random. Systematic testingallows all possible combinations of input to be tested for a variety of possible errors. If theexpert system is very large and systematic testing of the entire system would take too long,testing of portions of the system or random testing of the entire system can be performed.

EXSYS has built-in functions to automatically validate your application and check for a varietyof common errors. This function is run by clicking on the Validation tab.

To validate a system, click on the Check System button.

Page 26: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 26 -

Two different types of validation are performed on the system. The first looks for errors that canbe found rapidly. The second part actually runs the system with all of the possiblecombinations of input data. Sets of input are systematically generated, and used to test the rules.During each run, validation looks for various types of errors.

EXSYS will automatically setup the validation parameters, or you can fine-tune the testing to alimited part of the system through the "Advanced Options" setup. Report files can also begenerated by the testing, reporting special information on the tests.

Three files are produced during validation - two types of tree diagrams, and an error report file.The tree diagram shows all of the possible combinations of input and the resulting output of thesystem. Regardless of the complexity of the logic of the system, the input and output can alwaysbe diagrammed as a tree. The trees can be examined with a special display routine in EXSYSthat enables you to scroll through the tree diagram. The nodes on the diagram are written in anabbreviated form, e.g. "Q3:2", means Question number 3 choice 2. When the tree diagram isdisplayed, a mouse click on the node expands the abbreviated form to the full text form of thequestion or variable.

The two types of tree diagrams produced are linear and branched tree diagrams. They areequivalent in information content, but are diagrammed differently. The branched tree diagramgraphically shows the branching in the system.

Page 27: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 27 -

This is convenient for seeing the overall structure. In a large tree, if a particular set of inputproduces an error, it may take some scrolling to read all of the information on the input.

In a linear tree diagram, all of the node values for a branch are displayed on a single line. A treewould be displayed as:

In the linear tree, it is easier to follow the data that lead to the conclusion, since all of the data ison a single line. When random testing is selected, only a linear diagram will be created. Due tothe random nature of the testing, the data will not be tree structured.

Page 28: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 28 -

The error file contains reports of any detected errors which were detected and the input whichproduced the error.

The validation function will detect and report combinations of input that:

• Produced no conclusions.• Failed to derive needed data that should be derived.• Created loop errors.• Assigned a value which is outside of the limits specified.• Assigned more choices than the maximum number allowed.• Failed special custom tests designed with the report generator.

In addition, the system is checked for:

• Incomplete tree Branches• Questions Not Used• Variables Not Used• Goals Not Used• Inconsistent use of an item in a tree

EXSYS also provides statistics on rule utilization, especially rules not used, and statistics on theassignment of confidence factors for conclusions. You can examine these statistics to see if theyare what you would expect.

In most knowledge-based expert systems, some questions will only be asked when the useranswers preceding questions in a particular way. In EXSYS 's validation mode, only thecombinations of input that might actually be supplied by an end user are considered. This usuallyreduces the number of tests that must be run to far less than the total number of all possiblecombinations of data.

You can either test the entire system, or limit the testing to part of the system by reducing thenumber of parameters that EXSYS tests. Once the parameters are set, EXSYS takes over andruns unattended.

Most validation tests run quickly. Depending on the size of the application and speed of thecomputer, tens of thousands, to hundreds of thousands of tests can be run overnight or over aweekend. Just start the EXSYS Validation and you will have a report of any errors it finds whenyou return.

Validation testing is also a very valuable system maintenance tool. If you make some changes inyour computing environment and want to make sure your applications are still performing

Page 29: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 29 -

correctly, create a validation test file, change the environment and create a new validation testfile. The two files should be identical. If they are not, you can compare them to see whereproblems have developed.

EXSYS Report GeneratorEXSYS includes a Report Generator language that allows you to specify exactly whatinformation is to be output and in what format. The Report Generator language is easy to learnwith very simple commands. For example, the command "V" outputs all variables with theirvalues. The command "G" outputs all Goals. However, each command has many optionalparameters that can be added to the basic command. For example G3 >6 /"XXXXX" will printthe string XXXXX if goal 3 has a value greater than 6. There are many options for formattingreports.

The report generator output can go to a file or printer. A single command will display the textfile created by the report generator and allow the end user to scroll through it.

EXSYS Custom ScreensEnd user acceptance is the key to successfully fielding expert systems. Systems fielded on theWeb via The Web Runtime can use custom HTML screens to ask questions, present results andexplain the basis for a decision. These screens are based on standard HTML and have the fullflexibility of graphics, fonts, controls, animation. etc., supported by HTML. The screens arecreated from templates provided with EXSYS and can be edited or customized using yourfavorite HTML editor.

When systems are run, the custom HTML screens are automatically used to give the system thedesired look and feel. Also, since all of HTML is supported, hypertext links to other web pagescan be easily implemented.

The EXSYS End User Interface

EXSYS gives you the tools to design and control the end user interface. Custom screens (bothstand-alone and HTML) control the way questions are asked. The Configuration options and theReport Generator give you complete control of how the results are presented to the end user.Hypertext enables you to provide multilevel, context sensitive help to your users.

Customized ScreensWhen the end user runs the system with The Web Runtime, the look and feel of the system iscontrolled by the HTML screens associated with the system. This enables you to blend thesystem into your existing site and add special features that your users need.

Page 30: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 30 -

Why and HowWhile the end user is running the system, they can ask questions, just as if they were working witha human expert. They can ask why a question is being asked. EXSYS will display the rules it iscurrently testing, that require the information. Because EXSYS rules use English statements andalgebraic expressions, without complex syntax, it is easy for even novice users to read andunderstand the rules. At any time during the run, the end user can display the facts known to thesystem and ask how a fact was derived. EXSYS will explain the source of the data.

When the conclusions of the system are displayed, the user can ask how a conclusion wasreached and EXSYS will display the rules used.

Change and RerunAt the end of a session, when the results are displayed, the end user may choose to display all ofthe data they input. They can then change one or a few of the answers and rerun the system withthe new data. EXSYS will display the old and new results side-by-side for comparison. Thistype of "WHAT-IF" testing is very useful when the end user was not sure of a particular answer.By comparing the affect of an answer on the results, they can determine whether a particularquestion is critical to conclusions. They can examine the sensitivity of the conclusions to thatanswer. This change and rerun process can be repeated as often as needed.

Text ExplanationIn many knowledge-based expert systems, it is desirable to give the end user a text explanation ofwhat the system did. This is easily implemented in EXSYS. Each rule can have an associatedNote or Reference. Notes can be used to explain the meaning of the rule, and references can beused to give the source of the fact represented by the rule. The notes in all of the rules that firedduring a session can be put into a report with a single command. The notes may have the actualvalues for variables or choices included with parameter replacement. The report file producedwill be an English text explanation of what the system did, and can be displayed to the end useror saved with the system's recommendations.

UndoIf the end user makes a mistake answering a question, they can select "Undo" and backup andcorrect error. When running with The Web Runtime on the web, they can simply click the"Back" button on their browser to go back to an earlier question.

Report GeneratorEXSYS has a flexible report generator to output the results of a run to files or other programs.With some applications, it is desirable to keep a history of user input and interaction with thesystem. This can easily be done using the report generator.

Page 31: EXSYS Expert System Development Software Technical Overvie › ~pattarachai › ES › class › EXSYStech.pdf · EXSYS 's Approach to Knowledge-Based Expert System Development Traditionally,

Technical Overview- 31 -

Context Sensitive HelpThe built-in hypertext system and custom screen language make it easy to add multi-level helpsystems to an application. If the end user does not understand a term, help is a mouse click away.

IntegrationEXSYS has a very open architecture. It can be integrated with your existing applications.EXSYS can be front ended by programs to provide data. EXSYS can provide the results of a runto other programs, and call other programs during a run for data acquisition or other functions.

For more information contact:

EXSYS , Inc.8400 Menaul Blvd. NESuite 124Albuquerque, NM 87112-2200