recap: MathML2 2nd WD (long)

Hi,

here's a re-submission of a long message I sent to this list in January,
with issues that have been addressed in the current draft removed from the
message, and the comments shortened somewhat (since everybody can refer
back to the original post in January). I've also added a couple
clarifications.

Some of these issues I believe to be very important, in particular my
proposal (in synch with OpenMath) to allow the bvar (and condition)
qualifiers to appear in any <apply>, with a default semantics which is
already specified in the Working Draft, plus the proposal to have the
names of basic sets (empty set, N, Z, Q, R, C) part of MathML.

Since this is a final draft, I really recommend that these problems be
addressed before a final MathML 2.0.  I would be glad to help work out
concrete phrasing and tracking of consequences of proposed improvements
through the document.

Best regards,

   Andreas Strotmann

================================================================


> 4.2.3.2 int:, it is not an error if the interval schema has two
> children; hence rephrase the final sentence. 
> 
> -- 4.4.2.1     csymbols and fns can denote operators: are such operators
> allowed to take "named" arguments, too, such as <bvars> and <conditions>? 
> 
> "Some operators such as diff and int make use of `named' arguments. These
> special arguments are elements that
> appear as children of the apply element and identify `parameters' such as the variable of differentiation or the
> domain of integration. These elements are discussed further in section ???
> Operators taking qualifiers"
> 
> I think I argued earlier that it would be a very good idea to allow at
> least the bvars (with the general notion of variables bound by the
> operator).  With the general meaning of conditions as representing a type
> for the bvars, I'd also prefer to have these available for user-defined
> operators or other operators or quantifiers not available in MathML.

Examples: 

1) quantifiers such as "exists uniquely" (rendered as an "exists"
with a dot above) and "almost every" (rendered as a "for all" with a dot
above) I have personally encountered in undergrad calculus and linear
algebra courses, or in functional analysis, resp.  [the latter means "the
assertion is true except on a subset with measure zero", if I recall
correctly).

2) operators such as  "the intersection of the family of sets A_i indexed
by variable i ranging over the odd integers" -- constructed similarly to
the product and sum operators -- are ubiquitous in math, as they
generalize immediately from any binary associative operator to an operator
that requires a variable.

Allowing <bvar> elements in any <apply> would also increase compatibility
with OpenMath, where this capability is achieved using a BIND element.
Currently, MathML does not directly support the introduction of
quantifiers or operators that are consistently used in the same way that
their analogues in MathML ("forall" or "sum") are used.  That is a bad
design choice.

Note also that any MathML application that already handles "exists" and
handles "sum" would easily be extended to handle a generalized version of
"apply" that always allows bvar and condition qualifiers, regardless of
the concrete operator applied.

> -- 4.4.2.7     Shouldn't we have the basic sets in MathML (N,Z,Q,R,C)???
> As it stands, the default rendering for examples as given in the
> recommendation is incorrect since nothing allows the renderer to infer
> that R stands for the reals. 
> 
> 
> -- 4.4.2.9  should lambda allow <condition> to specify the ranges of
> bound variables?  (cf. my comment on 4.4.2.7 above)
> 
> -- 4.4.2.11  the identity function is often annotated by its domain as a 
>     subscript.  <condition>?
> 
> -- 4.4.6.1  It's useful to mix condition elements and arguments in sets,
> as in {x\in N | x < 5}  where x\in N is best seen as a <condition> and  
> x<5 best seen as an <apply> argument.   (The same is true for lists, 4.4.6.2.)
> 
> 
> -- 4.4.10  Why is there no <bvar> vector or matrix constructor like a set
> or a list constructor?  Example use: (for i=0..n-1,j=0..m-1, A_i= x_i^j)   
> 
> 
> -- Appendix C still uses lots of <reln>s, e.g.:
> 
> "<property> <reln><identity/>
>   <cn>&ImaginaryI; </cn>
>   <apply><root><cn>-1</cn><cn>2</cn></apply>
> </reln>
> </property>"
> 
> 
> -- literature references:
> 
> you may be interested in our papers,
> 
> Ladislav J. Kohout, Andreas Strotmann: "Understanding and Improving
> Content Markup for the Web: from the Perspectives of Formal Linguistics,
> Algebraic Logics, and Cognitive Science."  in ISIC/CIRA/ISAS 98 Joint
> Conference on the Science and Technology of Intelligent Systems,
> Gaithersburg, MD, 1998.   [[This was also presented at the Tallahassee
  OpenMath workshop, and I'd like to present something like it at the
  MathML workshop.]]
> 
> John A. Abbott, Andre van Leeuwen, Andreas Strotmann: "OpenMath:
> Communicating Mathematical Information between Co-operating Agents in a
> Knowledge Network". Journal of Intelligent Systems no. 3/4, 1998. [aka the
> "OpenMath Objectives" paper.]   
> 

Received on Thursday, 30 March 2000 13:58:51 UTC