ASN.1

(thing) by Omnidirectional Halo Wed May 23 2001 at 1:30:41

Officially:
Abstract Syntax Notation number One

A standard formal notation for the specification of abstract data types, independent of language implementation, physical data representation or data complexity--in other words, a means of efficient communication between heterogeneous systems. ASN.1 provides a high level description of data that frees communication protocol designers from having to focus on bitwise layout and binary encoding, but it is not a programming language. It was initially designed to describe e-mail messages within the Open Systems Interconnection (OSI) model (specifically between the Application and Presentation layers), but has since been adopted in a wide range of fields, from cellular telephony to air traffic control.

Perhaps the most interesting application of ASN.1 (and the one I have the most personal experience with) is in the field of bioinformatics, which deals with the representation and organisation of biological data (the human genome, biomolecular interactions, taxonomy, etc). The U.S. National Center for Biotechnology Information (NCBI), which currently manages the largest biological databases in the world, uses ASN.1 to represent its scientific data due to the standard's incredible space efficiency, robustness, and verifiability. Best of all, over the last decade NCBI has maintained a C/C++ ASN.1 library (AsnLib) as part of its bioinformatics toolkit and continues to provide all source code freely in the public domain.

For those interested, the ASN.1 Information Site is probably the best place to start:
http://asn1.elibel.tm.fr/en/index.htm

An ASN.1 mode for Emacs (The One True Editor) can even be downloaded from the same place:
http://asn1.elibel.tm.fr/en/tools/emacs/index.htm

The impressive NCBI C/C++ Toolkit can be downloaded from the NCBI Information Engineering Branch at:
http://www.ncbi.nlm.nih.gov/IEB/
(Which does not seem to be linked from the NCBI main site at all--ooh, top secret government project!)

Y'know, if you log in, you can write something here, or contact authors directly on the site. Create a New User if you don't already have an account.