- From: Michael Schneider <schneid@fzi.de>
- Date: Wed, 7 May 2008 10:51:38 +0200
- To: "Bijan Parsia" <bparsia@cs.man.ac.uk>
- Cc: "OWL Working Group WG" <public-owl-wg@w3.org>
- Message-ID: <0EF30CAA69519C4CB91D01481AEA06A08BE291@judith.fzi.de>
Hi Bijan! Thanks for the explanation. I like this approach. It is very flexible and generic. Much better than having specific restrictions for each case. Cheers, Michael >-----Original Message----- >From: public-owl-wg-request@w3.org [mailto:public-owl-wg-request@w3.org] >On Behalf Of Bijan Parsia >Sent: Tuesday, May 06, 2008 7:40 PM >To: OWL Working Group WG >Subject: Re: Understanding n-ary data predicates > > >On 6 May 2008, at 16:15, Michael Schneider wrote: > >> Hi! >> >> I haven't attended the last telco, where n-ary predicates were >> discussed. I >> would like to catch up on this topic. However, from looking into >> the proposal >> [1], I do not even understand the basic idea. :-( >> >> The use-cases document [2] provides the following example: >> >> "For humans, the systolic blood pressure is always >> greater or equal than the diastolic blood pressure." >> >> I speculated that the idea was to have a new "GreaterOrEqual" property >> restriction, which is applied on two properties: >> >> SubClassOf( Human >> GreaterOrEqual(systolicBloodPressure >> diastolicBloodPressure) )) >> >> And the value ranges for these two properties can be specified by >> additional >> AllValues restrictions. >> >> But it doesn't look to me that the actual proposal follows this >> approach. > >It's not too far off. The basic point is that we want to specify >arbitrary equations relating data values. In this case where it's >just a comparison, it's easy: > DatarangeExpression(x y geq (x y)) > > >(The first occurrences of x and y declare the variables; geq is a >builting comparison.) > >Now you can use this in an existential or universal restriction: > > AllValuesFrom( ex:hasSystolicBloodPressure >ex:hasDiastolicBloodPressure DatarangeExpression(x y geq (x y))) > >(You can name expressions too.) > >> So, >> can anyone please demonstrate the actual approach for the above >> "systolic/diastolic" example? > >See above. Here's another: > >"Body mass index: the body mass index (BMI) of a patient is defined >as 703 times weight in pounds divided by the square of the height in >inches. The BMI is (among many other things) taken into consideration >for insulin administration regimens. Similar to the examples above, >it is used to derive an envelope within which a standard regimen >should be." > > DatarangeExpression(bmi weight height eq((times bmi (times height >height)) (times(703 weight))) > >(since we don't have an explicit division, I had to mutliply both >sides by the square of the height the equation in infix is: > bmi*height^2 = 703*weight). > >There's a passel of links to helpful literature at the bottom of the >page...no need to speculate! :) > >Cheers, >Bijan.
Received on Wednesday, 7 May 2008 08:52:16 UTC