- From: Gary Hallmark <gary.hallmark@oracle.com>
- Date: Mon, 23 Jun 2008 15:33:00 -0700
- To: Christian de Sainte Marie <csma@ilog.fr>
- CC: Adrian Paschke <adrian.paschke@biotec.tu-dresden.de>, kifer@cs.sunysb.edu, "'Paul Vincent'" <pvincent@tibco.com>, "'RIF WG'" <public-rif-wg@w3.org>
Christian de Sainte Marie wrote: > > Adrian Paschke wrote: > >> Typical examples are business rules, such as >> >> If customer is premium customer then discount 10% >> If customer is silver customer then discount 5% >> >> It would make sense to present them independent from a particular >> dialect >> such as PRD or BLD as they can be formalized in both dialects. > > I mention this kind of rules as a PR in example 1.1. But they cannot > be generally expressed in BLD, because the RHS is really an Assign > (changing the value of the discount). this isn't really an assign because there is no reference to a prior discount. you could write the RHS as a frame and it would be legal BLD. You can even axiomatize (in BLD) that a frame cannot have more than 1 discount: ?x = ?y :- ?customer[discount->?x discount->?y] > > I used the "Gold custmoer status" rule, instead, in examples 1.1 and > 1.2, because that one, which is also one of the paradigmatic examples > of a business rule, can be expressed as the Assert of a > "Gold(?customer)" predicate (and is, thus, equally expressible in BLD > and PRD). I don't see this as much different from above. If you reference any prior customer status, as in "if the customer is a silver customer and the customer blah blah blah then gold customer" then you have an assign (or retract/assert) of the customer status, whether it is a frame or a relation.
Received on Monday, 23 June 2008 22:36:08 UTC