Volume 9, Issue 4

Articles
Tricks of the Trade
In and Out
Trott's Corner
New Products
New Publications
Calendar
News Bulletins
New Resources
Classifieds

Editorial Policy
Staff and Contributors
Submissions
Subscriptions
Back Issues
Contact Information

T R O T T ' S C O R N E R

# Hierarchical Menus versus Mathematica Patterns

How should a mathematical search be specified? On the one hand, we are all used to a Google-style search box that specifies words or phrases to occur or to not occur. But specifying a mathematical formula through text is not standardized. Too few people are fluent enough to specify MathML-based searches. In addition, many of the more complicated special functions are not immediately available in the MathML markup language. Similar remarks hold for -based searches. Mathematica patterns are a natural way to specify semantic mathematics programmatically. While the deployed search page allows specifying a Mathematica pattern, even this turns out not to be optimal. While in principle one could specify any formula present on the Wolfram Functions site in this way, in practice there are two main disadvantages.

1. Mathematica patterns are primarily used for representing structural content. While for many functions there is a canonical isomorphism between the structure (say Sin) and the mathematical meaning (the function sin), for more complicated expressions the two worlds are no longer isomorphic.

There are typically many structurally inequivalent ways to encode the same expression (Sqrt[x] versus Power[x, 1/2], Exp[x] versus E^x, or D versus Derivative). Putting the burden of specifying all mathematically equivalent expressions on the searcher is inconvenient.

2. Specifying that a certain expression should (or should not) appear on one side of an equation, asymptotic expansion, or inequality leads to relatively large patterns.

To make searching convenient (without assuming prior knowledge of any computer language), we decided to construct a pull-down menu-driven interface. It allows users to specify functions that occur (or do not), constants, numbers, and operations on equations, which can appear on the left-hand side, right-hand side, or both sides. Functions are grouped according to the scheme already in use on the site, such as Elementary Functions, Bessel and Airy Functions, and so on.

Presently the following operations can be specified. About half of these operations are currently not represented as built-in functions in Mathematica.

Differentiation  Series expansion  Indefinite integration  Definite integration  Summation  Product  Limit  Continued fractions  Singularities  Branch cuts  Branch points  Analyticity boundary  Discontinuity sets  Ramification indices  Wronskian  Fourier transform  Inverse Fourier transform  Fourier cos transform  Fourier sin transform  Laplace transform  Inverse Laplace transform  Mellin transform  Inverse Mellin transform  Hilbert transform  Hankel transform