- From: Jeff Pan <pan@cs.man.ac.uk>
- Date: Tue, 4 May 2004 09:52:12 +0100
- To: <public-swbp-wg@w3.org>, "Guus Schreiber" <schreiber@cs.vu.nl>
- Cc: "Bernard Vatant" <bernard.vatant@mondeca.com>, "Alan Rector" <rector@cs.man.ac.uk>, "Natasha Noy" <noy@SMI.Stanford.EDU>, "Ian Horrocks" <horrocks@cs.man.ac.uk>, "Ulrike Sattler" <sattler@cs.man.ac.uk>
Hi Guus, Guus Schreiber wrote: [..] > 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) > Restriction(unit, allValuesFrom(LengthQuantity)) >Typo: should have read "allValuesFrom(LengthUnit) >Assume LenghthUnit is defined as a subclass of Unit with instances such >as m, cm, dm, mile, ichn, etc. >Guus This is a reasonable pattern for units, in that it keeps the unit-value pairs separated from each other, although it is not clear to me if it works fine with functional property axioms and datatype constraints. Firstly, I wonder how to handle functional property axioms in this pattern. For example, besides Individual(myWheel type(Wheel) diameterValue(type(LengthQuantity) value(15) unit(cm))), we also have the following individual axiom Individual(myWheel type(Wheel) diameterValue(type(LengthQuantity) value(1.5) unit(m))) in the ontology. Now, I guess it is reasonable to assume that the property diameterValue is functional. Therefore, the two blank nodes (as instances of LengthQuantity) are identical and it (the combined node) has two unit properties and two value properties. Things become complicated as we mix two pairs of unit-value together, and it seems now difficult to tell which unit is used with which value. Secondly, I am trying to understand how we can handle explicit constraints, as Natasha mentioned earlier, in this pattern. We assume that we can represent a unit mapping constraint by a datatype predicate cmPerM, with arity a(cmPerM)=2, and predicate extension E(cmPerM)={<a,b> \in V(real)^2 | a=100*b}, where V(real) is the value space for the datatype real. How is it possible use the predicate cmPerM to detect the inconsistency in the above example, i.e., 15cm is not 1.5m? Greetings, Jeff -- Jeff Z. Pan ( http://DL-Web.man.ac.uk/ ) Computer Science Dept., The University of Manchester [..] -- 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 Tuesday, 4 May 2004 04:54:47 UTC