- From: Andrew Miller <ak.miller@auckland.ac.nz>
- Date: Mon, 20 Nov 2006 12:31:21 +1300
- To: "For those interested in contributing to the development of CellML." <cellml-discussion@cellml.org>
- Cc: www-math@w3.org
Hi all, I have been developing a plain-text input language for the content MathML in CellML documents (so that it can be efficiently edited by users). I am seeking opinions on the best way to represent derivatives (including partials) in the input language. I have discussed this with the CellML team at the meeting today, and several options were suggested. I would welcome opinions on which of these options is the best, and I would also be keen to hear if you can think of another different but better representation in input languages. All examples refer to the representation of the following content MathML: <apply><eq/> <apply><diff/> <bvar><ci>t</ci></bvar> <ci>x</ci> </apply> <ci>y</ci> </apply> Option one: Representation: diff(x, t) = y. Advantages: * Succinct. * Follows the same syntax as functions in the rest of the language, so makes it less complex and easier to understand. * Easily generalises to partial differentials by replacing diff with partialdiff or pdiff. Disadvantages: * Non-obvious to new users: does diff mean differential, difference, ...? * It is unclear to the user what the ordering of x after t means, i.e. which is the bound variable, so you just have to remember that the second 'argument' is the bound variable. Option two: Representation: deriv(x, t) = y Similar advantages as option one, but also: Advantages: * Slightly less potential for confusion. Disadvantages: * Slightly longer. Option three: Representation: differential(x, t) or derivative(x, y) Similar advantages as option one, but also: Advantages: * Clearer meaning. Disadvantages: * Longer. UIs could simplify input of this by tab-expansion or type-ahead features. Option four: Representation: d(x)/d(t) Advantages: * Similarity to Leibniz notation (arguably more clear meaning) * Clear distinction between the bound variable and the expression that the differential is being applied to. Disadvantages: * Syntax is inconsistent with the rest of the grammar. * It incorrectly suggests that differentials could be moved around, while in reality it is a limited syntax for derivatives. * Extending it to partial differentials could look messy and confusing, e.g. del(x)/del(t) . Any opinions are welcome. Best regards, Andrew Miller
Received on Sunday, 19 November 2006 23:31:37 UTC