[
Lists Home |
Date Index |
Thread Index
]
unibase did this over 20 years ago and can walk the data table
structures resolving rules over multiple tables etc.
basically if you replace the rdbms table structures and associations
with a dom you have what we already have (patents anyone?)
it works but:
1. in a general sense we discovered there is no unique solution to some
problems and the nature of the relationship between nodes is critical to
a correct calculation (a full descending dom approach would probably
avoid this problem, but it is not really general and when you factor in
xquery you will run into very major problems)
2. to work well you need to build in a calculus, and then programmers
tend to fail as the system takes over (ref perma thread on recursion etc)
3. depth of calculation becomes a real issue
4. and at any rate the original question was really about publishing the
business rules, not using them. to work, the rules will need to exist
in the context of a schema. personally i think an extension of xsd is
probably the correct way to do this.
rick
David Lyon wrote:
>Hi Waleed,
>
>Excellent idea... I really *really* like it.....
>
>On Thu, 10 Mar 2005 5:16 am, Waleed Abdulla wrote:
>
>
>><xr:ruleset context="/PurchaseOrder/Item">
>> <xr:calculate target="ItemTotal" value="UnitPrice * Quantity" />
>> <xr:bind target=".">
>> <xr:property name="OverLimit" dvalue="boolean(. > ../MaxPerItem)" />
>> </xr:bind>
>></xr:ruleset>
>>
>>And, this is a sample purchase order:
>>
>><PurchaseOrder>
>> <MaxPerItem>300</MaxPerItem>
>> <Item>
>> <Quantity>2</Quantity>
>> <UnitPrice>30</UnitPrice>
>> <ItemTotal>60</ItemTotal>
>> </Item>
>></PurchaseOrder>
>>
>>
>
>Maybe I could use it in my markup?
>
>I would embed the calculations directly in the xml.. Here I've
>added an explanation mark to denote a formula, and keeping
>the # to denote that the field return type will be a number or
>a ? in the case of a boolean. This would give me something
>a little more compact that would look like this:
>
> <PurchaseOrder>
> MaxPerItem#=300
> <Item>
> Quantity#=2
> UnitPrice#=30
> ItemTotal#!="UnitPrice# * Quantity#"
> OverLimit?!="Quantity# > ../MaxPerItem"
> </Item>
> </PurchaseOrder>
>
>There are a number of applications in real life business
>documents for this:
>
> - US sales tax calculations
> - Intercountry tax/GST/VAT issues
> - (the afformentioned) shipping costs
> - the ability to incorporate events..
>
>Actually this whole idea is not dissimilar to linking
>and calculations within spreadsheets. Providing the
>scope stays within the document... I think that it is
>quite a good idea.
>
>It's definitely something worth pursuing further !
>
>Best Regards
>
>David
>
>
>
begin:vcard
fn:Rick Marshall
n:Marshall;Rick
email;internet:rjm@zenucom.com
tel;cell:+61 411 287 530
x-mozilla-html:TRUE
version:2.1
end:vcard
|