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.