From HandWiki - Reading time: 6 min
DICT is a dictionary network protocol created by the DICT Development Group[1] in 1997, described by RFC 2229.[2] Its goal is to surpass the Webster protocol to allow clients to access a variety of dictionaries via a uniform interface.
In section 3.2 of the DICT protocol RFC, queries and definitions are sent in clear-text, meaning that there is no encryption. Nevertheless, according to section 3.1 of the RFC, various forms of authentication (sans encryption) are supported, including Kerberos version 4.[2]
The protocol consists of a few commands a server must recognize so a client can access the available data and lookup word definitions. DICT servers and clients use TCP port 2628 by default. Queries are captured in the following URL scheme:
dict://⟨user⟩;⟨auth⟩@⟨host⟩:⟨port⟩/⟨c⟩:⟨word⟩:⟨database⟩:⟨strategy⟩:⟨n⟩
Repositories of source files for the DICT Development group's dict protocol server (with a few sample dictionaries) are available online.[3][4][5]
A dictd server can be used from Telnet. For example, to connect to the DICT server on localhost, on a Unix system one can normally type:
telnet localhost dict
and then enter the command "help" to see the available commands. The standard dictd package also provides a "dict" command for command-line use.
More sophisticated DICT clients include:
There are also programs that read the DICT file format directly. For example, S60Dict,[23] is a dictionary program for Symbian Series 60 that uses DICT dictionaries. Additionally, some DICT clients, such as Fantasdic, are also capable of reading the DICT format directly.
The standard dictd[10] server made by the DICT Development Group[1] uses a special dict file format. It comprises two files, a .index file and a .dict file (or .dict.dz if compressed). These files are usually generated by a program called dictfmt. For example, the Unix command:
$ dictfmt --utf8 --allchars -s "My Dictionary" -j mydict < mydict.txt
will compile a Unicode-compatible DICT file called mydict, with heading My Dictionary, from mydict.txt which is in Jargon File format i.e.:
:word1:definition 1 :word2:definition 2 etc.
Once the dictionary file has been produced, it can be easily installed on a server with commands similar to this:
# mv mydict.dict mydict.index /usr/share/dictd/
# /usr/sbin/dictdconfig—write
# /etc/init.d/dictd restart
In order to efficiently store dictionary data, dictzip, an extension to the gzip compression format (also the name of the utility), can be used to compress a .dict file. Dictzip compresses file in chunks and stores the chunk index in the gzip file header, thus allowing random access to the data.