Hi, I think I prefer option four, although I am worried that this is an uncommon syntax and that if our error parser isn't good that things could easily get confusing.
Oh well. Shane. Andrew Miller wrote: > 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 > > _______________________________________________ > cellml-discussion mailing list > [email protected] > http://www.cellml.org/mailman/listinfo/cellml-discussion _______________________________________________ cellml-discussion mailing list [email protected] http://www.cellml.org/mailman/listinfo/cellml-discussion
