MINSE: [index]
design - syntax - usage - notations - styles - contexts - why? - demo


The MINSE content type

HTML is a markup language. Ostensibly, this means that it is for taking text (which contains the human-readable information), and marking it up with tags (which provide machine-readable information that can be used to direct rendering). Stability and standardization are important to HTML because it is to be used as a worldwide medium for communication. Thus, as an application of SGML, it has a formal specification in the HTML Document Type Definition.

Mathematics is not best described as a markup language. The expressions and their hierarchical structure are the information; the structure is not auxiliary. Moreover, mathematics is a very large body of concepts, and methods of conveying mathematical concepts are always changing and evolving. This makes anything more than the simplest mathematics impractical to hammer into the framework of HTML. Thus, i believe that expressions for science and mathematics, which i together refer to as structured expressions, belong in their own content type.

Previously this would have meant creating lots of separate and separately-typed files for each structured expression; now, however, a simple URL scheme for providing inline data makes it feasible to include MINSE directly within HTML documents. For convenience, it is also reasonable to insert this content type directly into the HTML source using the new tag <SE> for "structured expression" (justification is given).


HTML is a platform-independent language: that is, you can expect your documents to render on many different types of computers. This expression notation system goes a step further by trying to be medium-independent. Expressions specified in MINSE are an example of what i call polymedia: information which adapts to the type of media available.

(HTML was originally designed to be independent of both platform and medium, but alas, WWW authors and browser makers have mercilessly endeavoured to make the language more and more medium-dependent, i.e. "designed for an interactive graphical display to be shown in a two-dimensional window with size on the order of one thousand by one thousand pixels" or somesuch.)

In order to be renderable on a variety of media, then, polymedia must be based on content, not presentation. Thus the system is designed so that expressions as entered yield the conceptual information being expressed, leaving the rendering decisions to another level.

Notation and Style

The processing model of this system, designed for easy extensibility to other notations and renderings, consists of two layers of transformations: a higher medium-independent layer and a lower medium-dependent layer. It is important that both layers be extensible, to support a variety of possible applications.

The medium-independent layer accepts the MINSE notation which you enter in your documents and interprets it according to the selected set of notation definitions to yield a fully-expanded semantic tree. The medium-dependent layer takes this semantic tree and renders it according to the selected set of style definitions which describe how to turn the semantic tree into a rendering for a specific medium.

 entered    notation   semantic    style       media or   
expression ---------->   tree   ----------> rendering info

Everything is perceived as a hierarchical structure of elements and sub-elements in MINSE. More specifically, the media-independent layer processes compounds which are identified by a quote character and have their sub-elements given in parentheses, separated by commas. The style definitions either directly produce the media, or produce media-specific rendering information in a similar syntax where primitives are identified with an at-symbol, and their arguments are given in parentheses, separated by commas.

When the style definition produces media-specific rendering information rather than the media directly, it turns the tree into a string that gives the rendering information using a set of rendering primitives specific to the media, and then a renderer program produces the actual media from from this string. This extra layer of separation allows one to quickly define new stylistic renderings in terms of these basic rendering primitives.

By selecting appropriate notation definitions we get the ability to choose a concise form for entering expressions that can better resemble more familiar human notations (such as "x + y" to represent a compound "sum" containing two sub-elements, "x" and "y"), even where different applications represent the same concept in different ways. By selecting appropriate style definitions we get the ability to produce output for a variety of media and/or for a variety of personal tastes.

The parsing and transformation is implemented in the Python language, and augments the Grail browser directly as a plug-in (but the implementation is accessible to all browsers via the mediation mechanism). Notation definition files and style files are simply Python modules. It should be feasible for users to create both notation and style files and to make them available on the Web along with their other documents.


To have interpretable meaning the semantic tree must be associated with a set of definitions for what the various nodes mean; these are concepts that are, effectively, only describable to humans (such as the fact that the "sum" compound means the concept of addition). However, since all compounds must be renderable in some fashion to be of any use, these definitions can be packaged with a set of default style definitions for a few basic media types. This package is called a context.

In this prototype implementation, there is only one renderer, so its personal customizability is limited. The default style definition is chosen to try to follow common practices for communicating expressions. But it should be clear now that the chosen style set is completely independent of the context definition, and has no bearing on the meaning of a MINSE expression: the verbiage of the context definition is sufficient to completely describe what any MINSE expression in that context means, regardless of the default or any other style.

Contexts may be combined; for instance, the set of basic mathematical compounds may be augmented by adding some other concepts specific to physics. Similarly, notations may be combined; for example, by adding new operators to an existing precedence list. The information in the semantic tree is captured by the entered expression together with a list of references to the associated notation definitions. Likewise, the meaning of any given expression is captured by the semantic tree together with a list of references to the associated context definitions.


A mediator service acts as both a WWW client and a WWW server, retrieving documents for you and doing the processing between these two layers as it goes. This is what makes the polymedia accessible to everyone on the Internet, regardless of what software they are using to browse the Web. (A similar concept was used in the implementation of Shodouka, a mediator for rendering Japanese text on the Web.)

Mediators can be used to convert any kind of information to a backward-compatible form, and are therefore an ideal vehicle for rapid prototyping and deployment of new types of information. In this case, this mediator processes the polymedia and attempts to provide you with the appropriate media-dependent information for your situation in a form that your browser can understand (e.g. text, an inlined image, or a hyperlink to another media type). Because of its special nature, i combine the two terms and call it a polymediator.

copyright © by Ping (e-mail) updated Mon 17 Jun 1996 at 10:19 JST
since Sun 16 Jun 1996