Lists Home |
Date Index |
Thanks to XML and Web services, we're on the verge of an explosive
growth in the amounts of data that our software applications exchange with
each other. Some might argue that we're already drowning in it, but I think
we've only seen the tip of the iceberg.
With that it becomes more important to be able to exchange business
rules between applications. So if I'm a service provider, I want to let my
user's software agent know what my business rules are so it can provide a
better experience to the user. For example, I want my user's software agent
to know that I charge $7 for ground shipping and $20 for overnight if the
order is under $50, and that ground shipping is free if the order is over
$50. And, I want the user's software to be able to dynamically calculate the
shipping cost locally as the user is editing the order. Basically, I want to
be able to give my business rules to someone else's software and have it
understand them (or, at least, behave as if it understands them).
I've done a lot of work in this area and I'm looking to find out if
anyone is interested in participating in the ongoing design and development
of this effort. It involves two components:
1. XRules, which is an XML rules language that expresses constraints,
calculations, interdependencies, and properties that exist among nodes of an
2. The Dynamic DOM, which is an extension of the DOM that dynamically
executes and validates XRules rules. For example, you change the ItemPrice
node and the ItemTotal node recalculates automatically.
This is a fragment of a simple XRules document that shows how the total
price per item is calculated in a purchase order, and highlights (through
metadata properties) the items that exceed the allowed limit (a tutorial is
available at www.xrules.org):
<xr:calculate target="ItemTotal" value="UnitPrice * Quantity" />
<xr:property name="OverLimit" dvalue="boolean(. > ../MaxPerItem)" />
And, this is a sample purchase order:
You can also download examples and tools from http://www.xrules.org.
So, if you're interested in the idea, or have suggestions or comments,
I'd like to hear it. And, if you think this is the worst thing since
chocolate bacon, then, well, I'd like to hear it too.
And, what's the best way to propose something like this to W3C for their
consideration? Or does it have to be submitted by a W3C member?