[OEP] a Quantity pattern? [was: Re: [UNITS] FAQ : Constraints on data values range]

Bernard Vatant wrote:

> 
> I have not noticed any activity under [UNITS] so far ... this is a first bait :))
> 
> A FAQ in Protégé-OWL list, I'll give here the latest variant sent yesterday (summed up)
> 
> "I have defined a class 'Wheel'
> and a DatatypeProperty 'diameterValue'
> on Domain 'Wheel'
> and Range 'Integer'


Is this an opportunity for a modelling pattern?

   Guideline: for numeric values, always use the "quantity" pattern
              [Fowler, Gruber]

For example (in a sloppy fashion, other have done this better)

ObjectProperty(diameterValue
   domain(Wheel)
   range(LengthQuantity))

Class(Quantity)
DatatypeProperty(value
   domain(Quantity)
   range(xsd:decimal))
DatatypeProperty(unit
   domain(Quantity)
   range(Unit))
Class(LenthQuantity
   subClassOf(Quantity)
   Retriction(unit, allValuesFrom(LengthQuantity))

Individual(myWheel
   type(Wheel)
   diameterValue(type(LengthQuantity) value(15) unit(cm)))

[the middle part is general and could come out of some 
units-and-dimensions ontology]

Guus

> 
> I want to create a class 'BigWheel' with a restriction on the property
> 'diameterValue', for instance 'diameterValue => 10'.
> 
> How do I do that in OWL?"
> 
> I had answered that basically you can't express that kind of 'quantitative restriction' in
> OWL, although there are workarounds, like using a 'minDiameterValue' property and so on.
> 
> I guess every other user wanting to include units in one's ontology will hit that kind of
> wall.
> 
> It figures we should come out with clear explanations why OWL does not support
> quantitative restrictions on DatatypeProperty with numerical Range, and more generally
> restrictions linked to the very nature of data themselves, like defining the class
> 'WellDescribedThing' by restriction on a 'description' value to 'over 1000 words'.
> 
> [Seems to me that there are many ways to work around declaration of those kinds of
> restrictions, but that OWL internally makes no provision to check their consistency, but
> can be used to pass them as black boxes to external applications that can make sense of
> them. IOW, I can declare an instance of 'BigWheel' with 'diameterValue' set to 9.7, no
> inconsistency will be detected by pure logical tools with 'minDiameterValue = 10', but
> external applications able to deal with quantities will make sense of it.]
> 
> Bernard Vatant
> Senior Consultant
> Knowledge Engineering
> Mondeca - www.mondeca.com
> bernard.vatant@mondeca.com
> 
> 
> 

-- 
Free University Amsterdam, Computer Science
De Boelelaan 1081a, 1081 HV Amsterdam, The Netherlands
Tel: +31 20 444 7739/7718
E-mail: schreiber@cs.vu.nl
Home page: http://www.cs.vu.nl/~guus/

Received on Wednesday, 14 April 2004 10:40:31 UTC