CellML Discussion List

Text archives Help


[cellml-discussion] Representing derivatives in plain-text content MathML input languages


Chronological Thread 
  • From: ak.miller at auckland.ac.nz (Andrew Miller)
  • Subject: [cellml-discussion] Representing derivatives in plain-text content MathML input languages
  • Date: Mon, 20 Nov 2006 12:31:21 +1300

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





Archive powered by MHonArc 2.6.18.

Top of page