DICT

Last updated
DICT
Communication protocol
PurposeAllow clients access to remote dictionaries
Developer(s)DICT Development Group
IntroductionJanuary 1, 1997;27 years ago (1997-01-01)
OSI layer Application layer (7)
Port(s) 2628 (TCP)
RFC(s) RFC   2229 A Dictionary Server Protocol

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.

Contents

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>

Resources for free dictionaries from DICT protocol servers

A repository of source files for the DICT Development group's dict protocol server (with a few sample dictionaries) is available online. [3]

Dictionaries of English

Bilingual dictionaries

DICT servers

DICT clients

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, [20] 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.

Dict file format

The standard dictd [7] 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"-jmydict<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

Format converters

dictzip

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.

See also

Related Research Articles

In computing, the Internet Message Access Protocol (IMAP) is an Internet standard protocol used by email clients to retrieve email messages from a mail server over a TCP/IP connection. IMAP is defined by RFC 9051.

The Lightweight Directory Access Protocol is an open, vendor-neutral, industry standard application protocol for accessing and maintaining distributed directory information services over an Internet Protocol (IP) network. Directory services play an important role in developing intranet and Internet applications by allowing the sharing of information about users, systems, networks, services, and applications throughout the network. As examples, directory services may provide any organized set of records, often with a hierarchical structure, such as a corporate email directory. Similarly, a telephone directory is a list of subscribers with an address and a phone number.

In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space, which is written as if it were a normal (local) procedure call, without the programmer explicitly writing the details for the remote interaction. That is, the programmer writes essentially the same code whether the subroutine is local to the executing program, or remote. This is a form of client–server interaction, typically implemented via a request–response message-passing system. In the object-oriented programming paradigm, RPCs are represented by remote method invocation (RMI). The RPC model implies a level of location transparency, namely that calling procedures are largely the same whether they are local or remote, but usually, they are not identical, so local calls can be distinguished from remote calls. Remote calls are usually orders of magnitude slower and less reliable than local calls, so distinguishing them is important.

The Simple Mail Transfer Protocol (SMTP) is an Internet standard communication protocol for electronic mail transmission. Mail servers and other message transfer agents use SMTP to send and receive mail messages. User-level email clients typically use SMTP only for sending messages to a mail server for relaying, and typically submit outgoing email to the mail server on port 587 or 465 per RFC 8314. For retrieving messages, IMAP is standard, but proprietary servers also often implement proprietary protocols, e.g., Exchange ActiveSync.

A Uniform Resource Identifier (URI) is a unique sequence of characters that identifies a logical or physical resource used by web technologies. URIs may be used to identify anything, including real-world objects, such as people and places, concepts, or information resources such as web pages and books. Some URIs provide a means of locating and retrieving information resources on a network ; these are Uniform Resource Locators (URLs). A URL provides the location of the resource. A URI identifies the resource by name at the specified location or URL. Other URIs provide only a unique name, without a means of locating or retrieving the resource or information about it; these are Uniform Resource Names (URNs). The web technologies that use URIs are not limited to web browsers. URIs are used to identify anything described using the Resource Description Framework (RDF), for example, concepts that are part of an ontology defined using the Web Ontology Language (OWL), and people who are described using the Friend of a Friend vocabulary would each have an individual URI.

The File Transfer Protocol (FTP) is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network. FTP is built on a client–server model architecture using separate control and data connections between the client and the server. FTP users may authenticate themselves with a plain-text sign-in protocol, normally in the form of a username and password, but can connect anonymously if the server is configured to allow it. For secure transmission that protects the username and password, and encrypts the content, FTP is often secured with SSL/TLS (FTPS) or replaced with SSH File Transfer Protocol (SFTP).

WebDAV is a set of extensions to the Hypertext Transfer Protocol (HTTP), which allows user agents to collaboratively author contents directly in an HTTP web server by providing facilities for concurrency control and namespace operations, thus allowing Web to be viewed as a writeable, collaborative medium and not just a read-only medium. WebDAV is defined in RFC 4918 by a working group of the Internet Engineering Task Force (IETF).

<span class="mw-page-title-main">XMPP</span> Communications protocol for message-oriented middleware

Extensible Messaging and Presence Protocol is an open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML, it enables the near-real-time exchange of structured data between two or more network entities. Designed to be extensible, the protocol offers a multitude of applications beyond traditional IM in the broader realm of message-oriented middleware, including signalling for VoIP, video, file transfer, gaming and other uses.

The Berkeley r-commands are a suite of computer programs designed to enable users of one Unix system to log in or issue commands to another Unix computer via TCP/IP computer network. The r-commands were developed in 1982 by the Computer Systems Research Group at the University of California, Berkeley, based on an early implementation of TCP/IP.

The Extensible Provisioning Protocol (EPP) is a flexible protocol designed for allocating objects within registries over the Internet. The motivation for the creation of EPP was to create a robust and flexible protocol that could provide communication between domain name registries and domain name registrars. These transactions are required whenever a domain name is registered or renewed, thereby also preventing domain hijacking. Prior to its introduction, registries had no uniform approach, and many different proprietary interfaces existed. While its use for domain names was the initial driver, the protocol is designed to be usable for any kind of ordering and fulfilment system.

In the X Window System, an X session manager is a session management program, a program that can save and restore the current state of a set of running applications, including window manager.

<span class="mw-page-title-main">HTTP compression</span> Capability that can be built into web servers and web clients

HTTP compression is a capability that can be built into web servers and web clients to improve transfer speed and bandwidth utilization.

<span class="mw-page-title-main">Metalink</span> File format that describes one or more computer files available for download

Metalink is an extensible metadata file format that describes one or more computer files available for download. It specifies files appropriate for the user's language and operating system; facilitates file verification and recovery from data corruption; and lists alternate download sources.

XDXF is a project to unite all existing open dictionaries and provide both users and developers with a universal XML-based format, convertible from and to other popular formats like Mova, PtkDic, and StarDict.

The Microsoft Open Specification Promise is a promise by Microsoft, published in September 2006, to not assert its patents, in certain conditions, against implementations of a certain list of specifications.

In programming, a file uniform resource identifier (URI) scheme is a specific format of URI, used to specifically identify a file on a host computer. While URIs can be used to identify anything, there is specific syntax associated with identifying files.

In the BitTorrent file distribution system, a torrent file or meta-info file is a computer file that contains metadata about files and folders to be distributed, and usually also a list of the network locations of trackers, which are computers that help participants in the system find each other and form efficient distribution groups called swarms. Torrent files are normally named with the extension .torrent.

<span class="mw-page-title-main">PATCH (HTTP)</span> Request method in the HTTP protocol

In computing, the PATCH method is a request method in HTTP for making partial changes to an existing resource. The PATCH method provides an entity containing a list of changes to be applied to the resource requested using the HTTP Uniform Resource Identifier (URI). The list of changes are supplied in the form of a PATCH document. If the requested resource does not exist then the server may create the resource depending on the PATCH document media type and permissions. The changes described in the PATCH document must be semantically well defined but can have a different media type than the resource being patched. Languages such as XML or JSON can be used in describing the changes in the PATCH document.

References

  1. 1 2 "dict.org". Dict.org. Retrieved 16 October 2014.
  2. 1 2 Faith, Rickard E.; Martin, Bret (October 1997). "rfc2229". datatracker.ietf.org. Retrieved 2021-09-11.
  3. "dict.org: Resources". Dict.org. Archived from the original on 30 August 2020. Retrieved 11 September 2021.
  4. "U.S. Gazetteer". www.census.gov. Archived from the original on 1 January 1997. Retrieved 13 January 2022.
  5. "delorie.com". Delorie.com. Retrieved 16 October 2014.
  6. "freedict.org". FreeDict Project. Retrieved 28 October 2017.
  7. 1 2 3 "DICT Development Group". SourceForge. Retrieved 2021-09-11.
  8. "ndl.kie.ua". Ndl.kiev.ua. 26 March 2010. Retrieved 16 October 2014.
  9. "gnu.org". Gnu.org. Retrieved 16 October 2014.
  10. Ho Ngoc Duc. "informatik.uni-leipzig.de". Informatik.uni-leipzig.de. Retrieved 16 October 2014.
  11. "DICT Client". SourceForge. Archived from the original on 5 May 2013. Retrieved 11 September 2021.
  12. "DictEm - Dictionary client for Emacs download". SourceForge. Archived from the original on 1 October 2015.
  13. "garage: MaemoDict: Project Info". Garage.maemo.org. Retrieved 2015-03-07.
  14. "mozdev.org - dict: index". Dict.mozdev.org. Archived from the original on 2009-12-26. Retrieved 2015-03-07.
  15. "OKDict". Kilargo. Retrieved 2015-03-07.
  16. "Presentation". Pentila. Archived from the original on 22 October 2008.
  17. "Start —". Zope.org. Retrieved 2015-03-07.
  18. "Pentila Néro". Pentila.com. Archived from the original on 2007-02-05. Retrieved 2015-03-07.
  19. "apps:xfce4-dict:start [Xfce Docs]". docs.xfce.org. Retrieved 2022-01-27.
  20. Giannakakis, Kostas. "S60Dict". Archived from the original on 11 June 2013.
  21. "Linguae, gestionnaire de dictionnaires". Linguae.stalikez.info. Retrieved 2015-03-07.
  22. "soshial/xdxf_makedict · GitHub". Github.com. Retrieved 2015-03-07.