====== XTTviewer ====== XTTviewer is a simple plugin that allows display of XTT2 rule trees within the wiki pages as presented below. \\ To know more about XTT2 representation see: [[http://ai.ia.agh.edu.pl/wiki/hekate:xtt2]]. \\ To present XTT2 trees on the wiki pages, simply put the HMR file inside the '''' tags ([[http://loki.ia.agh.edu.pl/wiki/docs:xttviewer?do=edit|observe the source of this page]]). ===== XTT2 model ===== % % $Id: vasProlog.cpp,v 1.7.8.4 2011-09-29 09:18:04 kkr Exp $ % % File generated by HeKatE Qt Editor ver. M6_10_1 % % HeaRT case % % % Copyright (C) 2006-9 by the HeKatE Project % % HeaRT has been develped by the HeKatE Project, % see http://hekate.ia.agh.edu.pl % % This file is part of HeaRT. % % HeaRT is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. % % HeaRT is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with HeaRT. If not, see . % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% :- ensure_loaded('heart.pl'). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TYPES DEFINITIONS %%%%%%%%%%%%%%%%%%%%%%%%%% xtype [name: boolean, base: numeric, length: 1, scale: 0, desc: boolean, domain: [0,1] ]. xtype [name: integer, base: numeric, length: 10, scale: 0, desc: integer, domain: [-2147483648 to 2147483647] ]. xtype [name: ard_default_type, base: symbolic, domain: [none/1], ordered: yes ]. xtype [name: carConvertible, base: numeric, domain: [0,1] ]. xtype [name: carPrice, base: numeric, domain: [0 to 1000000] ]. xtype [name: carType, base: symbolic, domain: ['Luxury','Sedan','Compact'] ]. xtype [name: carOnList, base: numeric, domain: [0,1] ]. xtype [name: potentialTheftRating, base: symbolic, domain: ['Low','Moderate','High'] ]. xtype [name: carAirbags, base: numeric, domain: [0 to 4] ]. xtype [name: carRollBar, base: numeric, domain: [0,1] ]. xtype [name: potentialOccupantInjuryRating, base: symbolic, domain: ['Low','Moderate','High','ExtremelyHigh'] ]. xtype [name: driverSex, base: symbolic, domain: ['Male','Female'] ]. xtype [name: driverAge, base: numeric, domain: [16 to 99] ]. xtype [name: trainingCertificate, base: symbolic, domain: ['None','RefresherCourse','School'] ]. xtype [name: driverAgeRating, base: symbolic, domain: ['Eligible','Senior','Young'] ]. xtype [name: accidentsNumber, base: numeric, domain: [0 to 100] ]. xtype [name: violationsNumber, base: numeric, domain: [0 to 100] ]. xtype [name: convictedDUI, base: numeric, domain: [0,1] ]. xtype [name: driverQualification, base: symbolic, domain: ['HighRiskDriver','NoRiskDriver'] ]. xtype [name: theAutoEligibilityScore, base: symbolic, domain: ['Eligible','NotEligible','Provisional'] ]. xtype [name: theDriverEligibilityScore, base: numeric, domain: [0 to 1000] ]. xtype [name: thePremium, base: numeric, length: 7, scale: 2, domain: [0 to 10000] ]. xtype [name: theEligibilityScore, base: numeric, domain: [0 to 1000] ]. xtype [name: carAge, base: numeric, domain: [0 to 10] ]. xtype [name: carModelYear, base: numeric, domain: [2004 to 2015] ]. xtype [name: carHasAlarm, base: numeric, domain: [0,1] ]. xtype [name: driverMaritalStatus, base: symbolic, domain: ['Married','Single'] ]. xtype [name: driverLocation, base: symbolic, domain: ['NY','CA','VA','WA'] ]. xtype [name: driverCoverage, base: numeric, domain: [0,1] ]. xtype [name: clientClass, base: symbolic, domain: ['EliteClient','PrefferedClient','Client'] ]. xtype [name: clientRevenue, base: symbolic, domain: ['Top','NoTop'] ]. xtype [name: clientPortfolio, base: numeric, domain: [0 to 100] ]. xtype [name: theAutoPremiums, base: numeric, domain: [0 to 10000] ]. xtype [name: theDriverPremiums, base: numeric, domain: [0 to 10000] ]. xtype [name: theAutoDiscounts, base: numeric, length: 7, scale: 2, domain: [0 to 10000] ]. xtype [name: theMarketSegmentDiscounts, base: numeric, domain: [500,250,0] ]. xtype [name: thePolicy, base: numeric, length: 7, scale: 2, domain: [0 to 10000] ]. xtype [name: theEligibilityDecision, base: symbolic, domain: ['Eligible','NotEligible','ManualDecision'] ]. xtype [name: carTypePremium, base: numeric, domain: [0 to 500] ]. xtype [name: carAgePremium, base: numeric, domain: [0 to 500] ]. xtype [name: driverCoveragePremium, base: numeric, domain: [0 to 1000] ]. xtype [name: potentialTheftRatingPremium, base: numeric, domain: [0 to 1000] ]. xtype [name: potentialOccupantInjuryRatingPremium, base: numeric, domain: [0 to 1000] ]. xtype [name: medicalCoverage, base: numeric, domain: [0 to 1000] ]. xtype [name: medicalCoveragePremium, base: numeric, domain: [0 to 1000] ]. %%%%%%%%%%%%%%%%%%%%%%%%% ATTRIBUTES DEFINITIONS %%%%%%%%%%%%%%%%%%%%%%%%%% xattr [name: accidentsNumber, abbrev: acci, class: simple, type: accidentsNumber, comm: in ]. xattr [name: carAge, abbrev: carA1, class: simple, type: carAge, comm: inter ]. xattr [name: carAgePremium, abbrev: carA3, class: simple, type: carAgePremium, comm: inter ]. xattr [name: carAirbags, abbrev: carA2, class: simple, type: carAirbags, comm: in ]. xattr [name: carConvertible, abbrev: carC1, class: simple, type: carConvertible, comm: in ]. xattr [name: carHasAlarm, abbrev: carH1, class: simple, type: carHasAlarm, comm: in ]. xattr [name: carModelYear, abbrev: carM1, class: simple, type: carModelYear, comm: in ]. xattr [name: carOnList, abbrev: carO1, class: simple, type: carOnList, comm: in ]. xattr [name: carPrice, abbrev: carP1, class: simple, type: carPrice, comm: in ]. xattr [name: carRollBar, abbrev: carR1, class: simple, type: carRollBar, comm: in ]. xattr [name: carType, abbrev: carT1, class: simple, type: carType, comm: in ]. xattr [name: carTypePremium, abbrev: carT2, class: simple, type: carTypePremium, comm: inter ]. xattr [name: clientClass, abbrev: clie1, class: simple, type: clientClass, comm: inter ]. xattr [name: clientPortfolio, abbrev: clie2, class: simple, type: clientPortfolio, comm: in ]. xattr [name: clientRevenue, abbrev: clie3, class: simple, type: clientRevenue, comm: in ]. xattr [name: convictedDUI, abbrev: conv1, class: simple, type: convictedDUI, comm: in ]. xattr [name: driverAge, abbrev: driv1, class: simple, type: driverAge, comm: in ]. xattr [name: driverAgeRating, abbrev: driv2, class: simple, type: driverAgeRating, comm: inter ]. xattr [name: driverCoverage, abbrev: driv3, class: simple, type: driverCoverage, comm: in ]. xattr [name: driverCoveragePremium, abbrev: driv8, class: simple, type: driverCoveragePremium, comm: inter ]. xattr [name: driverLocation, abbrev: driv4, class: simple, type: driverLocation, comm: in ]. xattr [name: driverMaritalStatus, abbrev: driv5, class: simple, type: driverMaritalStatus, comm: in ]. xattr [name: driverQualification, abbrev: driv6, class: simple, type: driverQualification, comm: inter ]. xattr [name: driverSex, abbrev: driv7, class: simple, type: driverSex, comm: in ]. xattr [name: medicalCoverage, abbrev: medi1, class: simple, type: medicalCoverage, comm: in ]. xattr [name: medicalCoveragePremium, abbrev: medi2, class: simple, type: medicalCoveragePremium, comm: inter ]. xattr [name: potentialOccupantInjuryRating, abbrev: pote1, class: simple, type: potentialOccupantInjuryRating, comm: inter ]. xattr [name: potentialOccupantInjuryRatingPremium, abbrev: pote4, class: simple, type: potentialOccupantInjuryRatingPremium, comm: inter ]. xattr [name: potentialTheftRating, abbrev: pote2, class: simple, type: potentialTheftRating, comm: inter ]. xattr [name: potentialTheftRatingPremium, abbrev: pote3, class: simple, type: potentialTheftRatingPremium, comm: inter ]. xattr [name: theAutoDiscounts, abbrev: theA1, class: simple, type: theAutoDiscounts, comm: inter ]. xattr [name: theAutoEligibilityScore, abbrev: theA2, class: simple, type: theAutoEligibilityScore, comm: inter ]. xattr [name: theAutoPremiums, abbrev: theA3, class: simple, type: theAutoPremiums, comm: inter ]. xattr [name: theDriverEligibilityScore, abbrev: theD1, class: simple, type: theDriverEligibilityScore, comm: inter ]. xattr [name: theDriverPremiums, abbrev: theD2, class: simple, type: theDriverPremiums, comm: inter ]. xattr [name: theEgibilityDecision, abbrev: ted1, class: simple, type: theEligibilityDecision, comm: inter ]. xattr [name: theEligibilityScore, abbrev: theE1, class: simple, type: theEligibilityScore, comm: inter ]. xattr [name: theMarketSegmentDiscounts, abbrev: theM1, class: simple, type: theMarketSegmentDiscounts, comm: inter ]. xattr [name: thePolicy, abbrev: theP1, class: simple, type: thePolicy, comm: out ]. xattr [name: thePremium, abbrev: theP2, class: simple, type: thePremium, comm: inter ]. xattr [name: trainingCertificate, abbrev: trai1, class: simple, type: trainingCertificate, comm: in ]. xattr [name: violationsNumber, abbrev: viol1, class: simple, type: violationsNumber, comm: in ]. %%%%%%%%%%%%%%%%%%%%%%%% TABLE SCHEMAS DEFINITIONS %%%%%%%%%%%%%%%%%%%%%%%% xschm 1: [potentialTheftRating,potentialOccupantInjuryRating] ==> [theAutoEligibilityScore]. xschm 2: [driverAgeRating,driverQualification] ==> [theDriverEligibilityScore]. xschm 3: [carConvertible,carPrice,carType,carOnList] ==> [potentialTheftRating]. xschm 4: [carAirbags,carRollBar,carConvertible] ==> [potentialOccupantInjuryRating]. xschm 5: [driverSex,driverAge,trainingCertificate] ==> [driverAgeRating]. xschm 6: [accidentsNumber,violationsNumber,convictedDUI] ==> [driverQualification]. xschm 7: [theAutoEligibilityScore,theDriverEligibilityScore] ==> [theEligibilityScore]. xschm 8: [clientRevenue,clientPortfolio] ==> [clientClass]. xschm 10: [driverQualification,driverAgeRating,driverMaritalStatus,driverLocation,accidentsNumber] ==> [theDriverPremiums]. xschm 11: [theDriverPremiums,theAutoDiscounts,theMarketSegmentDiscounts] ==> [thePremium]. xschm 12: [carAirbags,potentialTheftRating,carHasAlarm,theAutoPremiums] ==> [theAutoDiscounts]. xschm 13: [clientClass] ==> [theMarketSegmentDiscounts]. xschm 14: [theEligibilityScore,thePremium] ==> [thePolicy]. xschm 'Table1': [theEligibilityScore] ==> [theEgibilityDecision]. xschm 'Table2': [carType] ==> [carTypePremium]. xschm 'Table3': [carModelYear,carAge] ==> [carAgePremium]. xschm 'Table4': [driverCoverage] ==> [driverCoveragePremium]. xschm 'Table5': [medicalCoverage] ==> [medicalCoveragePremium]. xschm 'Table6': [potentialTheftRating] ==> [potentialTheftRatingPremium]. xschm 'Table7': [potentialOccupantInjuryRating] ==> [potentialOccupantInjuryRatingPremium]. xschm 'Table8': [carTypePremium,carAgePremium,driverCoveragePremium,medicalCoveragePremium,potentialTheftRatingPremium,potentialOccupantInjuryRatingPremium] ==> [theAutoPremiums]. %%%%%%%%%%%%%%%%%%%%%%%%%%%% RULES DEFINITIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%% xrule 1/1: [potentialTheftRating neq 'High', potentialOccupantInjuryRating notin ['ExtremelyHigh','High']] ==> [theAutoEligibilityScore set 'Eligible'] :7. xrule 1/2: [potentialTheftRating eq any, potentialOccupantInjuryRating eq 'ExtremelyHigh'] ==> [theAutoEligibilityScore set 'NotEligible'] :7. xrule 1/3: [potentialTheftRating eq any, potentialOccupantInjuryRating eq 'High'] ==> [theAutoEligibilityScore set 'Provisional'] :7. xrule 1/4: [potentialTheftRating eq 'High', potentialOccupantInjuryRating neq 'ExtremelyHigh'] ==> [theAutoEligibilityScore set 'Provisional'] :7. xrule 2/1: [driverAgeRating eq 'Eligible', driverQualification neq 'HighRiskDriver'] ==> [theDriverEligibilityScore set 0] :3. xrule 2/2: [driverAgeRating eq 'Eligible', driverQualification eq 'HighRiskDriver'] ==> [theDriverEligibilityScore set 100] :3. xrule 2/3: [driverAgeRating eq 'Senior', driverQualification eq 'HighRiskDriver'] ==> [theDriverEligibilityScore set 120] :3. xrule 2/4: [driverAgeRating eq 'Young', driverQualification eq 'HighRiskDriver'] ==> [theDriverEligibilityScore set 130] :3. xrule 2/5: [driverAgeRating eq 'Senior', driverQualification neq 'HighRiskDriver'] ==> [theDriverEligibilityScore set 20] :3. xrule 2/6: [driverAgeRating eq 'Young', driverQualification neq 'HighRiskDriver'] ==> [theDriverEligibilityScore set 30] :3. xrule 3/1: [carConvertible eq 1, carPrice eq any, carType eq any, carOnList eq any] ==> [potentialTheftRating set 'High'] :4. xrule 3/2: [carConvertible eq any, carPrice gt 45000, carType eq any, carOnList eq any] ==> [potentialTheftRating set 'High'] :4. xrule 3/3: [carConvertible eq any, carPrice eq any, carType eq any, carOnList eq 1] ==> [potentialTheftRating set 'High'] :4. xrule 3/4: [carConvertible eq 0, carPrice in [20000 to 45000], carType eq any, carOnList eq 0] ==> [potentialTheftRating set 'Moderate'] :4. xrule 3/5: [carConvertible eq 0, carPrice lt 20000, carType eq any, carOnList eq 0] ==> [potentialTheftRating set 'Low'] :4. xrule 4/1: [carAirbags eq any, carRollBar eq 0, carConvertible eq 1] ==> [potentialOccupantInjuryRating set 'ExtremelyHigh'] :1. xrule 4/2: [carAirbags eq 0, carRollBar eq any, carConvertible eq any] ==> [potentialOccupantInjuryRating set 'ExtremelyHigh'] :1. xrule 4/3: [carAirbags eq 1, carRollBar eq any, carConvertible eq any] ==> [potentialOccupantInjuryRating set 'High'] :1. xrule 4/4: [carAirbags eq 2, carRollBar eq any, carConvertible eq any] ==> [potentialOccupantInjuryRating set 'Moderate'] :1. xrule 4/5: [carAirbags eq 3, carRollBar eq any, carConvertible eq any] ==> [potentialOccupantInjuryRating set 'Low'] :1. xrule 5/1: [driverSex eq 'Male', driverAge lt 25, trainingCertificate eq 'None'] ==> [driverAgeRating set 'Young'] :6. xrule 5/2: [driverSex eq 'Female', driverAge lt 20, trainingCertificate eq 'None'] ==> [driverAgeRating set 'Young'] :6. xrule 5/3: [driverSex eq any, driverAge gt 70, trainingCertificate neq 'RefresherCourse'] ==> [driverAgeRating set 'Senior'] :6. xrule 5/4: [driverSex eq 'Male', driverAge lt 25, trainingCertificate eq 'School'] ==> [driverAgeRating set 'Eligible'] :6. xrule 5/5: [driverSex eq 'Female', driverAge lt 20, trainingCertificate eq 'School'] ==> [driverAgeRating set 'Eligible'] :6. xrule 5/6: [driverSex eq any, driverAge gt 70, trainingCertificate eq 'RefresherCourse'] ==> [driverAgeRating set 'Eligible'] :6. xrule 5/7: [driverSex eq any, driverAge eq any, trainingCertificate neq 'None'] ==> [driverAgeRating set 'Eligible'] :6. xrule 5/8: [driverSex eq any, driverAge eq any, trainingCertificate eq 'None'] ==> [driverAgeRating set 'Eligible'] :6. xrule 6/1: [accidentsNumber eq any, violationsNumber eq any, convictedDUI eq 1] ==> [driverQualification set 'HighRiskDriver'] :2. xrule 6/2: [accidentsNumber gt 2, violationsNumber eq any, convictedDUI eq any] ==> [driverQualification set 'HighRiskDriver'] :2. xrule 6/3: [accidentsNumber eq any, violationsNumber gt 3, convictedDUI eq any] ==> [driverQualification set 'HighRiskDriver'] :2. xrule 6/4: [accidentsNumber lte 2, violationsNumber lte 3, convictedDUI eq 0] ==> [driverQualification set 'NoRiskDriver'] :2. xrule 7/1: [theAutoEligibilityScore eq 'NotEligible', theDriverEligibilityScore eq any] ==> [theEligibilityScore set (theDriverEligibilityScore+100)] :'Table1'. xrule 7/2: [theAutoEligibilityScore eq 'Provisional', theDriverEligibilityScore eq any] ==> [theEligibilityScore set (theDriverEligibilityScore+50)] :'Table1'. xrule 7/3: [theAutoEligibilityScore eq 'Eligible', theDriverEligibilityScore eq any] ==> [theEligibilityScore set theDriverEligibilityScore] :'Table1'. xrule 8/1: [clientRevenue eq 'Top', clientPortfolio eq any] ==> [clientClass set 'EliteClient'] :13. xrule 8/2: [clientRevenue neq 'Top', clientPortfolio gte 3] ==> [clientClass set 'PrefferedClient'] :13. xrule 8/3: [clientRevenue neq 'Top', clientPortfolio lt 3] ==> [clientClass set 'Client'] :13. xrule 10/1: [driverQualification eq 'HighRiskDriver', driverAgeRating eq 'Young', driverMaritalStatus eq 'Married', driverLocation in ['CA','NY','VA'], accidentsNumber eq any] ==> [theDriverPremiums set (1700+(150*accidentsNumber))] :11. xrule 10/2: [driverQualification eq 'HighRiskDriver', driverAgeRating eq 'Young', driverMaritalStatus eq 'Single', driverLocation in ['CA','NY','VA'], accidentsNumber eq any] ==> [theDriverPremiums set (1720+(150*accidentsNumber))] :11. xrule 10/3: [driverQualification eq 'NoRiskDriver', driverAgeRating eq 'Young', driverMaritalStatus eq 'Married', driverLocation in ['CA','NY','VA'], accidentsNumber eq any] ==> [theDriverPremiums set (700+(150*accidentsNumber))] :11. xrule 10/4: [driverQualification eq 'NoRiskDriver', driverAgeRating eq 'Young', driverMaritalStatus eq 'Single', driverLocation in ['CA','NY','VA'], accidentsNumber eq any] ==> [theDriverPremiums set (720+(150*accidentsNumber))] :11. xrule 10/5: [driverQualification eq 'HighRiskDriver', driverAgeRating eq 'Senior', driverMaritalStatus eq any, driverLocation in ['CA','NY','VA'], accidentsNumber eq any] ==> [theDriverPremiums set (1500+(150*accidentsNumber))] :11. xrule 10/6: [driverQualification eq 'NoRiskDriver', driverAgeRating eq 'Senior', driverMaritalStatus eq any, driverLocation in ['CA','NY','VA'], accidentsNumber eq any] ==> [theDriverPremiums set (500+(150*accidentsNumber))] :11. xrule 10/7: [driverQualification eq 'HighRiskDriver', driverAgeRating eq 'Young', driverMaritalStatus eq 'Married', driverLocation notin ['CA','NY','VA'], accidentsNumber eq any] ==> [theDriverPremiums set (1300+(150*accidentsNumber))] :11. xrule 10/8: [driverQualification eq 'HighRiskDriver', driverAgeRating eq 'Young', driverMaritalStatus eq 'Single', driverLocation notin ['CA','NY','VA'], accidentsNumber eq any] ==> [theDriverPremiums set (1320+(150*accidentsNumber))] :11. xrule 10/9: [driverQualification eq 'NoRiskDriver', driverAgeRating eq 'Young', driverMaritalStatus eq 'Married', driverLocation notin ['CA','NY','VA'], accidentsNumber eq any] ==> [theDriverPremiums set (300+(150*accidentsNumber))] :11. xrule 10/10: [driverQualification eq 'NoRiskDriver', driverAgeRating eq 'Young', driverMaritalStatus eq 'Single', driverLocation notin ['CA','NY','VA'], accidentsNumber eq any] ==> [theDriverPremiums set (320+(150*accidentsNumber))] :11. xrule 10/11: [driverQualification eq 'HighRiskDriver', driverAgeRating eq 'Senior', driverMaritalStatus eq any, driverLocation notin ['CA','NY','VA'], accidentsNumber eq any] ==> [theDriverPremiums set (1200+(150*accidentsNumber))] :11. xrule 10/12: [driverQualification eq 'NoRiskDriver', driverAgeRating eq 'Senior', driverMaritalStatus eq any, driverLocation notin ['CA','NY','VA'], accidentsNumber eq any] ==> [theDriverPremiums set (200+(150*accidentsNumber))] :11. xrule 10/13: [driverQualification eq 'HighRiskDriver', driverAgeRating eq 'Eligible', driverMaritalStatus eq any, driverLocation eq any, accidentsNumber eq any] ==> [theDriverPremiums set (1000+(150*accidentsNumber))] :11. xrule 10/14: [driverQualification eq 'NoRiskDriver', driverAgeRating eq 'Eligible', driverMaritalStatus eq any, driverLocation eq any, accidentsNumber eq any] ==> [theDriverPremiums set (0+(150*accidentsNumber))] :11. xrule 11/1: [theDriverPremiums eq any, theAutoDiscounts eq any, theMarketSegmentDiscounts eq any] ==> [thePremium set ((theDriverPremiums+theAutoDiscounts)-theMarketSegmentDiscounts)] :14. xrule 12/1: [carAirbags eq 3, potentialTheftRating eq any, carHasAlarm eq 0, theAutoPremiums eq any] ==> [theAutoDiscounts set ((1-0.18)*theAutoPremiums)] :8. xrule 12/2: [carAirbags eq 2, potentialTheftRating eq any, carHasAlarm eq 0, theAutoPremiums eq any] ==> [theAutoDiscounts set ((1-0.15)*theAutoPremiums)] :8. xrule 12/3: [carAirbags eq 1, potentialTheftRating eq any, carHasAlarm eq 0, theAutoPremiums eq any] ==> [theAutoDiscounts set ((1-0.12)*theAutoPremiums)] :8. xrule 12/4: [carAirbags eq 0, potentialTheftRating eq any, carHasAlarm eq 0, theAutoPremiums eq any] ==> [theAutoDiscounts set ((1-0)*theAutoPremiums)] :8. xrule 12/5: [carAirbags eq 3, potentialTheftRating eq 'High', carHasAlarm eq 1, theAutoPremiums eq any] ==> [theAutoDiscounts set ((1-0.28)*theAutoPremiums)] :8. xrule 12/6: [carAirbags eq 2, potentialTheftRating eq 'High', carHasAlarm eq 1, theAutoPremiums eq any] ==> [theAutoDiscounts set ((1-0.25)*theAutoPremiums)] :8. xrule 12/7: [carAirbags eq 1, potentialTheftRating eq 'High', carHasAlarm eq 1, theAutoPremiums eq any] ==> [theAutoDiscounts set ((1-0.22)*theAutoPremiums)] :8. xrule 12/8: [carAirbags eq 0, potentialTheftRating eq 'High', carHasAlarm eq 1, theAutoPremiums eq any] ==> [theAutoDiscounts set ((1-0.1)*theAutoPremiums)] :8. xrule 13/1: [clientClass eq 'EliteClient'] ==> [theMarketSegmentDiscounts set 500] :10. xrule 13/2: [clientClass eq 'PrefferedClient'] ==> [theMarketSegmentDiscounts set 250] :10. xrule 13/3: [clientClass eq 'Client'] ==> [theMarketSegmentDiscounts set 0] :10. xrule 14/1: [theEligibilityScore eq any, thePremium eq any] ==> [thePolicy set thePremium]. xrule 'Table1'/1: [theEligibilityScore lt 100] ==> [theEgibilityDecision set 'Eligible'] :'Table2'. xrule 'Table1'/2: [theEligibilityScore in [100 to 250]] ==> [theEgibilityDecision set 'ManualDecision']. xrule 'Table1'/3: [theEligibilityScore gt 250] ==> [theEgibilityDecision set 'NotEligible']. xrule 'Table2'/1: [carType eq 'Luxury'] ==> [carTypePremium set 500] :'Table3'. xrule 'Table2'/2: [carType eq 'Sedan'] ==> [carTypePremium set 400] :'Table3'. xrule 'Table2'/3: [carType eq 'Compact'] ==> [carTypePremium set 250] :'Table3'. xrule 'Table3'/1: [carModelYear in [2014 to 2015], carAge eq 0] ==> [carAgePremium set 400] :'Table4'. xrule 'Table3'/2: [carModelYear in [2009 to 2013], carAge lte 5] ==> [carAgePremium set 300] :'Table4'. xrule 'Table3'/3: [carModelYear in [2004 to 2008], carAge lte 10] ==> [carAgePremium set 250] :'Table4'. xrule 'Table4'/1: [driverCoverage eq 1] ==> [driverCoveragePremium set 300] :'Table5'. xrule 'Table4'/2: [driverCoverage eq 0] ==> [driverCoveragePremium set 0] :'Table5'. xrule 'Table5'/1: [medicalCoverage eq 1] ==> [medicalCoveragePremium set 600] :'Table6'. xrule 'Table5'/2: [medicalCoverage eq 0] ==> [medicalCoveragePremium set 0] :'Table6'. xrule 'Table6'/1: [potentialTheftRating eq 'High'] ==> [potentialTheftRatingPremium set 500] :'Table7'. xrule 'Table6'/2: [potentialTheftRating neq 'High'] ==> [potentialTheftRatingPremium set 0] :'Table7'. xrule 'Table7'/1: [potentialOccupantInjuryRating eq 'ExtremelyHigh'] ==> [potentialOccupantInjuryRatingPremium set 1000] :'Table8'. xrule 'Table7'/2: [potentialOccupantInjuryRating eq 'High'] ==> [potentialOccupantInjuryRatingPremium set 500] :'Table8'. xrule 'Table7'/3: [potentialOccupantInjuryRating in ['Moderate','Low']] ==> [potentialOccupantInjuryRatingPremium set 0] :'Table8'. xrule 'Table8'/1: [carTypePremium eq any, carAgePremium eq any, driverCoveragePremium eq any, medicalCoveragePremium eq any, potentialTheftRatingPremium eq any, potentialOccupantInjuryRatingPremium eq any] ==> [theAutoPremiums set (((((carTypePremium+carAgePremium)+driverCoveragePremium)+medicalCoveragePremium)+potentialTheftRatingPremium)+potentialOccupantInjuryRatingPremium)] :12. %%%%%%%%%%%%%%%%%%%%%%%%% STATES DEFINITIONS %%%%%%%%%%%%%%%%%%%%%%%%%% xstat init/1: [carAirbags,2]. xstat init/1: [carPrice,30000]. xstat init/1: [driverAge,19]. xstat init/1: [carOnList,1]. xstat init/1: [carRollBar,0]. xstat init/1: [carAge,3]. xstat init/1: [carHasAlarm,1]. xstat init/1: [carConvertible,0]. xstat init/1: [driverSex,'Male']. xstat init/1: [convictedDUI,0]. xstat init/1: [accidentsNumber,2]. xstat init/1: [clientRevenue,'NoTop']. xstat init/1: [driverLocation,'NY']. xstat init/1: [medicalCoverage,0]. xstat init/1: [clientPortfolio,3]. xstat init/1: [violationsNumber,2]. xstat init/1: [carType,'Compact']. xstat init/1: [trainingCertificate,'None']. xstat init/1: [carModelYear,2011]. xstat init/1: [driverMaritalStatus,'Married']. xstat init/1: [driverCoverage,0]. xstat init/2: [carAirbags,2]. xstat init/2: [carPrice,30000]. xstat init/2: [driverAge,29]. xstat init/2: [carOnList,1]. xstat init/2: [carRollBar,0]. xstat init/2: [carAge,3]. xstat init/2: [carHasAlarm,1]. xstat init/2: [carConvertible,0]. xstat init/2: [driverSex,'Male']. xstat init/2: [convictedDUI,0]. xstat init/2: [accidentsNumber,0]. xstat init/2: [clientRevenue,'Top']. xstat init/2: [driverLocation,'NY']. xstat init/2: [medicalCoverage,0]. xstat init/2: [clientPortfolio,1]. xstat init/2: [violationsNumber,2]. xstat init/2: [carType,'Compact']. xstat init/2: [trainingCertificate,'None']. xstat init/2: [carModelYear,2011]. xstat init/2: [driverMaritalStatus,'Married']. xstat init/2: [driverCoverage,0]. %%%%%%%%%%%%%%%%%%%%%%%%% CALLBACKS DEFINITIONS %%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % File generated by HeKatE Qt Editor ver. M6_10_1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%