On Monday 07 November 2005 03:15 am, Jirka Kosek wrote:
> Steven T. Hatton wrote:
> > It seems the
> > expressiveness of XML should make providing that functionality easier.
> > In the case of MathML, it makes a lot of sens to use named characters
> > entities. To some (significant) extent working with MathML by hand,
>
> I'm not MathML expert, but I don't suppose that MathML was designed to
> be crafted by hand.
It is designed to be "human legible". I'm finding that in many cases it's
easier to work with the expressions in XML rather than creating them with
Mathematica. Mathematica is good for generating examples, but when it comes
to writing several expressions of similar form, it's easier to copy and
paste, then replace the symbols as needed. Or to simply examine the generated
expression and emulate it. Even within Mathematica it's often usefull to
look at the underlying expression layout which looks like LaTeX. The
structure of mathematical expressions witten in MathML is both nontrivial
and significant. Two expressions can look the same but have semantically
distinct meanings.
> It is just too verbose for this purpose. You can
> write math very fastly in some compact syntax like TeX, but MathML
> should be produced by equation editor or by some transliteration tool
> that turns TeX (or something similar) to MathML.
These tools have significant limitations. Furthermore, presentation MathML
is only one side of MathML. There is content MathML which is not intended
primarily for display. It is intended for communicating exact semantics
between automated systems. It's fine to use higher a level tool when it
works as expected, but when your results aren't what you expect them to be,
looking at the raw code is invaluable. I find that complex expressions
written in MathML are often easier to read than their equivalent Mathematica
internal form. Trying to match up the zillionth ending }]]}}]]]]}]] with the
related head in a deeply nested structure can cause brain damage. With
MathML and Emacs, I can look at the same thing, and easily see the structure.
Adding the mm: to every tag doesn't help matters, however.
> Why? Once MathML is read through XML parser by some mathematical
> symbolic application this distinction is loss.
Not really. \[NotExists] is ∄, \[Implies] is ⇒, etc.
> If the human is supposed
> to read MathML directly, be sure that for 99% percent of people seeing
> > will be much better then seeing ⇔ or &biconditional;. There is
> no need to lookup symbol in an entity table stored in your head.
There are also problems such as whether what you see is a Greek omicron or a
Latin (English) 'O'. These things matter in terms of querying presentational
XML, and in terms of interpreting content XML.
> In the link you citet above there is presented solution which allow you
> to use any entity even if you are working with RELAX NG or W3C XML Schema.
In MathML there are twenty tables of symbols similar to the table shown here:
http://www.w3.org/TR/MathML2/isoamsa.html
There are about 150 unique characters listed in that table. Perhaps there is a
way to represent the entire collection in a single symbol to be added to a
document, but simply adding the particular entities of interest is not an
option.
> The problem is not in schema languages. Schema language should not
> modify content of a document. Many of problems you are describing can be
> quite easily solved directly in an editor. It should be aim of editing
> application to allow you use symbolic names instead of raw characters if
> this is convenient for you.
How is the editor supposed to know what entities are intended to represent a
particular character? The Emacs mode I'm using what written by one of the
creators of RelaxNG. Without a DTD, it can't find the character entities;
that is, unless I tell it explicitly how to find them, using DTD expressions.
> I don't think that we can expect fix at the XML core level. Such fix
> would break compatibility, so fixing it on application level is way to
> go for now.
Traditionally it has been the task of the DTD and SGML DOCTYPE to communicate
this informmation to the applications. If RelaxNG is intended to rplace
DTDs, then it needs to provide a solution for this problem
Steven
