- From: Uschold, Michael F <michael.f.uschold@Boeing.com>
- Date: Fri, 9 Apr 2004 18:53:10 -0700
- To: "Natasha Noy" <noy@SMI.Stanford.EDU>, "Bernard Vatant" <bernard.vatant@mondeca.com>, "SWBPD" <public-swbp-wg@w3.org>
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. Mike -----Original Message----- From: public-swbp-wg-request@w3.org [mailto:public-swbp-wg-request@w3.org] 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 Bernard, 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 >them. 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? Natasha
Received on Friday, 9 April 2004 21:54:22 UTC