我已經得到了以下事實成立:序言:說法是正確的IFF它是所有結果
fact_dataIsUsedFor(searchQueries, targetedAds).
fact_dataIsUsedFor(searchQueries, sendJunkMail).
fact_dataUsageIsUnfair(sendJunkMail).
fact_dataUsageIsFair(targetedAds).
fact_appStatesHowDataIsUsed(app, true).
我這裏有一個查詢:
query_policyDataUseIsFair(App):-
fact_dataIsUsedFor(_, DataUsePurpose),
fact_dataUsageIsFair(DataUsePurpose),
\+ fact_dataUsageIsUnfair(DataUsePurpose),
fact_appStatesHowDataIsUsed(App, true).
我想要做的是實現邏輯,如果對上述查詢的所有答案都返回true,則語句爲true,否則單個false將使該語句返回false。
目前,這對targetedAds返回true,對sendJunkMail返回false。
我將如何去評估所有結果後,只返回1個真/假答案?
謝謝!
編輯:意識到我並不需要在query_policyDataUseIsFair(應用程序)的布爾標誌: - ...
編輯2:爲清楚起見重組問題。
能否請您包括一個運行示例查詢實現它?準確顯示您得到的結果,並準確描述您所期望的結果。當你說,* ...這對第一個陳述返回真,... *你指的是什麼「陳述」? – lurker
當然可以。因此,當運行query_policyDataUseIsFair(App)/ 1時,它將針對targetedAds返回true,因爲它應該如此,並且下一個結果對於sendJunkMail將爲false。我想要的是它爲兩者(以及更多,如果稍後添加更多條目)做爲批處理進行評估,並且如果評估的所有結果均爲真,則輸出爲單個真;如果甚至是單一結果是錯誤的。希望清除它!謝謝。 –