No description, website, or topics provided.
JavaScript Python CSS
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Author: David Stalnaker:


Tangent is a Math search engine created by David Stalknaker as part of his Master's degree in Computer Science at RIT

Tangent allows the indexing and retrieval of math expressions using Symbol Pairs in Layout Trees.

Details about the implementation can be found in his thesis:

D. Stalnaker (2013) Math Expression Retrieval Using Symbol Pairs in Layout Trees. Master's Thesis, Rochester Institute of Technology (Computer Science), NY, USA (August 2013)


Below are the external components used by Tangent

  • Latexml: a library to covert a Text expression to MathMl
  • MathJax: a javascript library used in displaying the math expressions in the results page
  • Redis: A Memory KeyValue store that is used as the index
  • python 2.7

Python Modules:

  • Redis: Module to connect from python to a redis datastorre
  • werkzeug:WSGI Utility Library
  • flask: Microframework for Python

The above python modules can be installed using the command:

pip install werkzeug redis flask

Running Tangent

To index a collection:

python {index|flush} <directory> [<directory2> ..]
    index: index the formulas in the collection
    flush: empty the current index
    <directory>: directory or file containing tex and mathml documents containing formulas to index

To retrieve formulas:

python config_object query [query2, ...]
    config_object: class name of Config object; ex: config.FMeasureConfig
    query: query expression in latex or mathml

    *config_object are defined in and determine the host,port and score ranking

To run the webserver:

python config_object
    config_object: class name of Config object; ex: config.FMeasureConfig

The server will launch and be available on the port defined in the config object

  • Visit the DPRL page for more information about the lab and projects.

  • This material is based upon work supported by the National Science Foundation under Grant No. IIS-1016815. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.