RE: [UNITS, OEP] FAQ : Constraints on data values range

Note that this issue is not UNITS-specific, it will come up in many contexts, and thus may be more appropriate for the Ontology engineering and patterns group.


 -----Original Message-----
From: []  On Behalf Of Natasha Noy
Sent:	Friday, April 09, 2004 3:42 PM
To:	Bernard Vatant; SWBPD
Subject:	Re: [UNITS] FAQ : Constraints on data values range


Thanks for bringing up the issue. It really is an FAQ, at least for 
protege-owl mailing list (non-owl Protege supports min and max 
restrictions). And confusion for many people comes from trying to use 
cardinality to represent these value restrictions, which of course 
doesn't do what they want (explaining why it is not a solution should 
probably also be part of the answer that we produce, if we do).

In fact, perhaps someone who was a member of the webont WG could give 
some historical perspective on why numeric min and max are not part 
of OWL (at least OWL Full). It seems to be an enormously useful and 
simple modeling concept and there doesn't seem to be any good 
workaround given the current language constructs (see below). I would 
be curious to know what was the argument against including it.

>"I have defined a class 'Wheel'
>and a DatatypeProperty 'diameterValue'
>on Domain 'Wheel'
>and Range 'Integer'
>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.

(to re-cap from the protege-owl list, Bernard suggested that "you can 
define properties minDiameter and maxDiameter and define subclasses 
of Wheel by hasValue restrictions on those.").

I think there are at least two practical problems with this solution. 
First, there is no explicit relation between minDiameter, 
maxDiameter, and Diameter properties, whereas logically, there should 
be some sort of relation. Given that an ontology is supposed to be an 
"explicit specification", making this type of relation implicit seems 
really like a "fake" solution. I suppose one could specify a rule 
(say, in SWRL) to specify the relation and that would address the 
problem at least in part. Of course you will have to specify a 
similar rule for the relationship between minWeight, maxWeight and 
Weight to represent 'LightWheel' (is there a design pattern emerging?)

>[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

And this is the second problem: applications will have to hard-code a 
lot of information that really belongs in the ontology and not in the 
application: the application will have to hard-code the relationship 
between minDiameter and Diameter, but also a seemingly unrelated (but 
of course, below the surface an extremely similar) relationship 
between minWeight and Weight for LightWheel. Isn't that exactly what 
we were trying to avoid by separating knowledge in the form of 
ontologies from the procedures that operate on the knowledge?

That said, I don't have an alternative solution, or any solution to 
this problem. We'll certainly have to document it somehow in the BP 
documents (the question will come up again and again), but it almost 
seems like the documentation would be "there is no good way to do 
it". Am I missing something?


Received on Friday, 9 April 2004 21:54:22 UTC