LANG: number range expressions

I was recently looking through some DAML+OIL documentation and I noticed
that in order to, for example, constrain the property 'age' of a class
Adult to being 17 or over, one needs the following syntax.

<daml:Class rdf:ID="Adult">
 <daml:intersectionOf rdf:parseType="daml:collection">
 <daml:Class rdf:about="#Person"/>
    <daml:Restriction>
      <daml:onProperty rdf:resource="#age"/>
      <daml:hasClass 
	
rdf:resource="http://www.daml.org/2001/03/daml+oil-ex-dt#over17"/>
    </daml:Restriction>
  </daml:intersectionOf>
</daml:Class>

<xsd:simpleType name="over17">
  <!-- over17 is an XMLS datatype based on decimal -->
  <!-- with the added restriction that values must be >= 17 -->
  <xsd:restriction base="xsd:decimal">
  <xsd:minInclusive value="17"/>
  </xsd:restriction>
</xsd:simpleType>

In other words, limiting the range of a property to being greater than N
requires referencing a URI -- and indeed, for each N this involves
referencing a separate URI. Some of the fellow members of the working
group explained to me that this is a consequence of the following:
1. we use XML Schema datatypes only
2. in order to mention a datatype, it must have a URI
   (ie no complex XML Schema constructions allowed nested in DAML+OIL
expressions)

XML Schema simply doesn't contain a URI for "integers over 17", so we
must first define this, so that it has a URL, so that we can use the URL
in a DAML+OIL expression. It's the cost of interfacing with XML
Schema...

Now, I happen to work at a commercially-oriented company that amongst
other activities is involved in building tools for using ontologies in
large enterprise settings. I explained the above regarding how DAML+OIL
handles this issue to some of my co-workers, and they found it bizarre
-- especially the product managers, who said that if this were suggested
within any company in which they work they would reject it out of hand
due to frightening usability and scalability problems. 

If stating of a property that it has values between 3 and 25, or 3.14159
and 24.996436, requires each time referencing a separate URI -- so in
full generality there might be an uncountable(!) cardinality of URIs --
and every time a user wishes to edit a range restriction this again
requires locating the correct URI or creating one, it seems positively
mind boggling. And this is only with reference to the simplest of value
restrictions with respect to ranges -- how extensible would this be to
more complicated constraints and business-rules?

Will OWL inherit this type of behaviout from DAML+OIL?

Received on Thursday, 2 May 2002 13:46:55 UTC