Implementing Mathematical DataBases

If our list of databases has inspired you to create your own, you’ve come to the right place. We’ve collected articles and documentation aimed at helping mathematicians create their own databases for inclusion in the index. In addition to these written resources, you can find other people interested in mathematical databases on the MathBases Zulip chat server. Attending a conference or workshop is also a good way to find people to talk to about your project.

Planning

  1. Decide what kind of data you want to compute or collect: consult our list of ideas, talk to other mathematicians, and think about what database you wish existed.

  2. Decide how you want to distribute your data: as a webpage, within a computer algebra system, as an appendix to a paper, within an existing database, or as plain-text files.

  3. Decide how you want to collaborate: is this a solo project or are you building a team?

  4. Decide how you want to host your data and what back-end and front-end tools best suit your needs. We are working on creating templates to make getting started even easier.

  5. Pick licenses for your data and code, as well as a name and URL for your project.

Getting Started

  1. Create a schema, a detailed description of the quantities to be computed and how they relate to each other.

  2. Write code to compute the quantities specified in the schema.

  3. Begin creating the website or user interface, using the interface to refine the schema and code.

  4. Devise consistency checks to ensure the reliability of your data and find bugs before running the computation at scale.

  5. Execute the code at scale to create the underlying dataset.

Searching and User interface

  1. Create a search interface that is appopriate for your dataset.

  2. If making a website, refine your design using CSS, a logo, user logins, connections to the mathematical literature, and interactive features.

  3. Create documentation and tutorials for using your data.

Maintenance

  1. If your project continues to grow, it is very helpful to add continuous integration testing to catch interface errors.

  2. If you are hosting a website, you may eventually need to implement strategies for fighting bots.

  3. Make a plan for the long term preservation of your data so that it is still available after you have retired and are no longer paying for website hosting.

Help others

  1. Now that you are an expert on databases, contribute an article here, create a template or join the MathBases Zulip chat server and help others realize their data dreams!