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

Reply via email to