- From: Jimmy Cerra <jimbofc@yahoo.com>
- Date: Tue, 16 Apr 2002 23:40:29 -0400
- To: <www-math@w3.org>
Hey, I'm finally reading up on the Content-Markup section of the Spec (MathML2.0, Chapter 4) now. This trek through the spec is hard to follow, as my mind is racing at 88mph, while my eyes can only go at nearly 3mph. Oh well. :) One thing I don't like about MathML-Content (MMLC) is that there are a great many of built-in operators and constants. I don't like this since it limits the extensibility. Therefore, taking a page from HTML, why can't MathML be modularized as well? Before I answer why, here's how I think MathML should be modularized: 1) Modules should be "declared" into the spec through namespaces. Furthermore, a "prefix:" namespace scheme should be used (what is this called again?). This prevents conflicts between modules (for instance, so that the <plus/> operator of a algebra module can be differentiated from the <plus/> of a vector module, as in the example prefixes <a:plus/> vs. <v:plus/>). 2) Each module should have a style-sheet (CSS or XSL or some type of Math-Style-Sheet-Language) that specifies how to transform the content markup into presentation markup for a specific media, language, culture, user, user agent (UA) and etcetera. There can also be a style sheets to transform the content markup of one module into content markup of another, already content module that known by the processor. However, as a security precaution, a custom module can only be transformed using the standard modules (see standard set of modules below). This prevents recursion of two modules being translated into each other (causing an infinite loop in the processor). 3) Each module should have documentation, which may be accessed by the UA, to provide a meaning for each element. 4) There should be a core module which contains the root element, MathML-Presentation elements, MathML-Content elements of tokens, basic content elements and semantic elements. There can be a "strict" version (of MathML-2.0 non-depreciated elements), a "transitional" version (of MathML-2.0 + older depreciated MathML-1.01 elements) and whatnot. These modules should not be declared with a prefix (unless embedded in another document, though). 5) There should be a standard set of modules that the W3C (or another self-appointed body ;-) creates (containing the rest of MathML-2.0, for instance). These UAs should accept a public identifier for the namespace's URI for these modules and the standard versions as well as an URL or other generic URI (the choice of a public identifier or URI should be up to the author of the MathML document). These modules can be periodically extended by the W3C or another standards-body. Here are the advantages of using this scheme: 1) Authors can use those parts of MathML that they need. Examples: An elementary-level teacher might markup documents using an "arithmetic module." A professor of Vector Calculus may use both that module in addition to a trig module and a vector module. A philosophy teacher would probably use a sets-and-logic module. And so on... 2) This scheme is extensible. People who need their own modules can create them from scratch without using "heavy markup" or waiting for the W3C to approve their submission for recommendation to the MathML standard. In a practical example a CS (computer science) major could create a logic-gate markup for his senior project. In another example, an electronics-analysis software package could create an electronics-mathematics markup to analyze electrical circuits (this markup is then transferred to a MathML processor for analysis). 3) This method is compatible with other mathematics language initiatives. I don't know much about OpenMath except that it is either an SGML or XML application. OpenMath markup could be implemented in MathML as external modules. Another standard that could be implemented is MathSpeak. I am unsure if TeX can be translated (surely there is an XML or SGML version of TeX or LaTex) since I never used it. You like? --- Jimmy Cerra
Received on Tuesday, 16 April 2002 23:40:18 UTC