Hi Folks,
XProc can be a great way to express business rules.
On the xml-dev list we had an illuminating discussion that revealed the difference between structural rules and business rules.
Here are a few examples of business rules:
A Level 1 manager has a maximum signature
authority of $10K.
An auto loan applicant, living in Ohio, is
underage if he/she is under 18 years of age.
If a customer has no outstanding invoices,
then the customer is of preferred status.
An underage applicant for an auto loan on a
high-powered sports cars is not eligible.
Consider that last one. That rule depends on a rule to determine if the applicant is underage, and a rule to determine if the car is a high-powered sports car:
Is-underage ---> Is-Eligible
^
|
Is-high-powered-sports-car --|
XProc can do this! An Is-underage step can be created, and an Is-high-powered-sports-car step can be created, and they can be fed into an Is-Eligible step.
Analyzing business rules requires checking dependencies, consistency, and completeness.
Checking dependencies is easy in XProc: just check the connections between the steps.
I'm not sure how to check consistency and completeness.
I think that XProc could be used as the basis for an XML-based Business Rules Management System (BRMS) by providing along with an XProc processor a WYSIWYG tool, a test harness, and maybe a couple other things.
What do you think?
/Roger