The Mathematica Journal
Download This Issue
Feature Articles
Graphics Gallery
Tricks of the Trade
In and Out
The Mathematica Programmer
New Products
New Publications
News Bulletins
Editor's Pick
Write Us
About the Journal
Staff and Contributors
Back Issues


This paper has introduced the concept of a semantic pattern in the context of the Mathematica language. Through examples, it was demonstrated that Semantica comprehensively extends the pattern matching capabilities of Mathematica to include semantic patterns. We explored the more advanced features of Semantica, including its options for optimization and multiple solutions as well as its dual behavior with semantic and structural symbols. The techniques behind compiling semantic patterns into syntactic patterns were explained. Finally, we described how the syntactic translations of semantic patterns are actually generated by Semantica.

It is a major undertaking to create a package that comprehensively changes the way Mathematica functions, and any such system must have its design restrictions. Mathematica currently has no uniform mechanism for making assumptions about variables. I believe this factor has had the most impact on the design and implementation of Semantica. However, I also believe that this limitation in Mathematica will be rectified in a future release, and at that time Semantica will be able to be easily updated. Also, as Solve, Reduce, and Eliminate get progressively more powerful, so will Semantica.

Semantica is a full semantic pattern matcher. It efficiently handles complex semantic patterns in an attractive manner. Ideally, such a language modification would be integrated tightly into the underlying pattern matching language to utilize the full potential of semantic matching.

In closing, I would like to thank the visiting scholar program at Wolfram Research, and the hospitality of Bruno Buchberger and the other members of the Research Institute of Symbolic Computation at Linz, Austria.

Converted by Mathematica      September 30, 1999

[Prev Page][Next Page]