Пролог или (;) Возврат правила несколько заканчиваются

я имею, определяют правило с или оператор, но он возвращает несколько 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, а не несколько оператор в командной строке.

Каждый из или правило возвращает 1 булево значение, которое не является, я хочу, после проверили правило в командную строку. Я должен иметь как это (Общее правило и (Несколько Или Правило)).

Как объединить несколько или правило, которые возвращают 1 булево значение?

Помогите.

Спасибо.

5
задан nicholas 28 July 2010 в 03:49
поделиться