or 演算子を使用してルールを定義しましたが、複数の true または false を返します。
isloanaccept(Name,Guarantor,LoanType,LoanAmount,LoanTenure)
:- customer(Name,bank(_),customertype(_),
citizen(Ci),age(Age),credit(C),
income(I),property(_),bankemployee(_)),
Ci == 'malaysian',
Age >= 18,
C > 500,
I > (LoanAmount / LoanTenure) / 12,
isguarantor(Guarantor,Name),
ispersonalloan(LoanType,LoanAmount,LoanTenure);
ishouseloan(LoanType,LoanAmount,LoanTenure);
isbusinessloan(LoanType,LoanAmount,LoanTenure);
iscarloan(LoanType,LoanAmount,LoanTenure).
実際には、ローンの種類が特定のローン要件を満たしているかどうかを確認し、一般的なルールと組み合わせる必要があります。
つまり、上記のルールをこのように定義する必要があります。
Ci == 'malaysian', Age >= 18,C > 500,
I > (LoanAmount / LoanTenure) / 12,
isguarantor(Guarantor,Name)
Or with (ispersonalloan(LoanType,LoanAmount,LoanTenure);
ishouseloan(LoanType,LoanAmount,LoanTenure);
isbusinessloan(LoanType,LoanAmount,LoanTenure);
iscarloan(LoanType,LoanAmount,LoanTenur)
コマンドラインで複数のステートメントではなく、1 つの true/false を返す必要があります。
またはルールのそれぞれは、コマンドラインでルールをチェックした後、必要ではない1つのブール値を返します。私はこのようにする必要があります (General Rule & (Multiple Or Rule) )。
1つのブール値を返すいくつかまたはルールを組み合わせる方法は?
助けてください。
ありがとう。