Skip to content

AliaumeL/acm-classifications

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ACM Classifications

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

It currently works with the following classifications from the ACM:

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.

Contributing

All contributions are welcomed. The current code is split in three separate phases

  1. A python based extractor, that parses classification sources "as found online" (HTML, XML, or anything else), and produces normalized classifications in a JSON format.
  2. A rust based search engine, that simply imports these sources, creates a big transducer/automaton with it, and provides one search endpoint for every classification file. This rust library is intended to be compiled to webassembly and loaded in the frontend.
  3. An HTML+CSS+Javascript minimal frontend that loads the rust code as a wasm file, and simply interacts with the user in a minimalistic fashion.

Good first issues

  • There are currently no tests regarding the outputs of the extractor, in particular one would like to ensure that: it produces valid classifications, it does not duplicate items, etc.
  • The current extractor works on pre-downloaded files that are stored in this repository. It would be nice to allow users to re-download them.
  • The rust search engine does not try to highlight matches in the results. It would be nicer for users to have feedback on what is currently being matched. We currently are using nucleo matcher that should allow for this.
  • The frontend could probably benefit from a more accessible (keyboard driven) UI/UX.
  • Translations are always welcome, although there is currently no support for them in the frontend code.

About

Stop being sad about the arxiv `MSC` and `ACM 1998` classification fields.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •