- From: Ian Horrocks <horrocks@cs.man.ac.uk>
- Date: Sat, 9 Feb 2002 17:36:55 +0000
- To: Steven Gollery <sgollery@cadrc.calpoly.edu>
- Cc: www-rdf-logic@w3.org
On February 6, Steven Gollery writes: > I'm working on an ontology in DAML that includes some geometric > concepts. I would like to be able to somehow define a property Vertices > whose domain is the Polygon class and whose range is ordered collections > of instances of the Point class, where the length of the ordered > collection is at least three. > > It would be fairly straightforward to say that each Polygon must have at > least three values of a Vertex property which is restricted to class > Point, but that would lose the idea the vertices have an order -- the > order is obviously a fundamental part of the semantics for the polygon. > > Does DAML provide any way to restrict the number of elements in a list? > Or is there some other way to do what I need here? There is no language construct that supports this - properties of a DAML class are always unordered. One possible solution is to make the range of Vertex a more complex structure that describes both the point and its place in the list. This is not completely satisfactory as it is difficult to ensure that the list values are sensibly ordered. Another solution is to define subproperties of Vertex called Vertex1, Vertex2 etc., each being a unique property (i.e., functional). The main disadvantage with this method is that the maximum number of vertices must be decided a priori. Ensuring that values are sensibly ordered is a little easier in this case because the functionality already precludes the case where there is more than one vertex with the same number. Simply asserting, for each n from 2 to the max vertex number, that the existence of the property Vertexn implies the existence of the property Vertexn-1 should be enough to ensure that there are no "gaps" in the list of vertices. Hope this helps. Ian Horrocks > > Thanks in advance, > > Steve Gollery > sgollery@cadrc.calpoly.edu > >
Received on Saturday, 9 February 2002 12:38:36 UTC