- From: Graves, Henson <henson.graves@lmco.com>
- Date: Wed, 09 Jul 2008 11:04:42 -0500
- To: public-xg-w3pm@w3.org
All, The weights and units discussion implicitly brings up a lot of issues that have to do with syntax, expressiveness of the language needed for product development modeling and whether our effort should be restricted to OWL 2. Expressiveness for product modeling includes both class definition constructions and integration with type systems. I am not sure that DL currently has what is needed, more on this later. Reading XML is like reading machine language. I think that we ought to adopt some Manchester style syntax and should make use of UML style graphical syntax. I would be interested in any comments on what follows. The following illustrates how I think about quantities and units with some suggestions for notation. I will use a pseudo Manchester OWL syntax for a weight example. First two relations: Hasweight : PhysicalObject -> Weight Inpounds : Weight -> Numbers The composition is written in infix notation from right to left as: Inpounds o hasweight : PhysicalObject -> Numbers and one has: <p, k> : Inpounds o hasweight IFF exists w : Weight, <p,w> : hasweight AND <w,k> : inpounds One wants to be able to define the class of all physical objects with a specific weigh k1 in pounds and needs a class construction for this. I believe this class construction is a DL universal restriction. The class construction is written in pseudo Manchester OWL syntax with its FOL semantics below. hasweight inpounds value k1 which translates into FOL. Here, I use an infix notation <a,b> : X rather than X(a,b) as concrete syntax. Any p. (any w. <p,w> : hasWeight AND exists k <w, k> : inpound and k = k1) One could also use a 'set constructor' notation { p | any w. <p,w> : hasWeight AND exists k <w, k> : inpound and k = k1 } Conrad suggests that this could be written in CLIF as: (forall (p) (iff (your-class-construction p) (exists (w) (and (hasWeight p w) (inpounds w k1))))) The issues for product development expressiveness include both class definition constructions and integration with type systems. Further, one could express relations such as Inpounds (a + b) = inpounds (a) + inpounds(b) where a, b are variables or universally quantified statements and "+" is an operation with + <Weight,Weight> -> Numbers. I am using a tuple notation for the product type/class. Expressing an additive property for inpounds is much weaker than identifying inpounds with "+". Also, the expression "a + b" requires a lot of discussion. It is not obvious what it means. I think that what I am suggesting is consistent with viewing Weight as having a manifold structure with operations on the manifold and with functions such as "inpounds" that take data values.
Received on Wednesday, 9 July 2008 16:05:29 UTC