Tired of finding the correct ACM codes when publishing or pushing to the arXiv? Say no more, here is a simple website that will ease the pain: the acm classification finder.
Below is a lame copy-paste of the README.md file of the
official acm classification tool repository,
hosted on the evil GitHub.
It currently works with the following classifications from the ACM:
- The MCS classification from 2010, used by arXiv
- The ACM classification from 1998, also used by arXiv
- The ACM classification from 2012, used by most computer science conferences (for instance, used in the LIPIcs style)
By default, the ACM 2012 classification is used, but they can be combined easily.
How to Use
Simply type your keywords in the search area, and suggestions of categories
will be displayed below for you to select. Clicking on suggestions will add
them to your âshopping cartâ of categories, which appears below or on the right
of the suggestions depending on your screen size. You can remove items from
your cart by clicking on them again. To export your current selection, simply
click on the âexport selectionâ button, that will put your cart inside your
systemâs clipboard. By default, the export format is LaTeX code, but you can
also decide to export into plaintext (ideal for arxiv forms), or paper-meta
for a YAML output compatible with the paper-meta specification.
Related Software
This repository is deeply inspired by the amazing work of Drops Daghstuhl, namely their acm classification tool. It improves over it by adding other classifications, and by being storable as a single webpage app (for instance on phones), whilist their tool performs a request on every keystrokes, and therefore requires constant internet connection.
There is also a âvisual toolâ from the ACM itself, but it is extremely painful to use, and again, only works for the 2012 classification, which is not yet used by the arXiv.
The Inner Workings
The current code is split in three separate components, in 5 languages:
- A
pythonbased extractor, that parses classification sources âas found onlineâ (HTML, XML, or anything else), and produces normalized classifications in aJSONformat. - A
rustbased search engine, that simply imports these sources, creates a big transducer/automaton with it, and provides onesearchendpoint for every classification file. This rust library is intended to be compiled to webassembly and loaded in the frontend. - An
HTML+CSS+Javascriptminimal frontend that loads the rust code as a wasm file, and simply interacts with the user in a minimalistic fashion.