Courteous LP’s: the What
Updating/merging of rules sets: is crucial, often generates conflict.
Courteous LP’s feature prioritized handling of conflicts.
Specify scope of conflict via a set of mutual exclusion constraints.
- E.g., ? ? discount(?product,5%) ? discount(?product,10%) .
- E.g., ? ? loyalCustomer(?c,?s) ? premiereCustomer(?c,?s) .
- Permit classical-negation of atoms: ¬p means p has truth value false
- implicitly, ? ? p ? ¬p for every atom p.
Priorities between rules: partially-ordered.
- Represent priorities via reserved predicate that compares rule labels:
- overrides(rule1,rule2) means rule1 is higher-priority than rule2.
- Each rule optionally has a rule label whose form is a logical constant.
- overrides can be reasoned about, just like any other predicate.