- DICT
-
DICT
El DICTionary Network Protocol (DICT) es una transacción TCP basada en petición/respuesta que permite a un cliente acceder a definiciones de diccionario, por medio de bases de datos de lenguajes naturales.
Contenido
Introducción
El Protocolo DICT fue creado por el DICT Development Group, y está descrito en el RFC 2229 (Request For Comments). Su meta es sobrepasar el protocolo Webster y permitir a los clientes acceder a más diccionarios al mismo tiempo. Habitualmente escucha en el puerto 2628.
Tokens Utilizados
Los Comandos y las Respuestas están compuestos por caracteres del UCS ISO 10646 utilizando la codificación UTF-8 RFC 2044. Más concretamente, usando las convenciones gramaticales de RFC 822:
(Extraído del RFC 2229)
; ( Octal, Decimal.) CHAR = <any UTF-8 character (1 to 6 octets)> CTL = <any ASCII control ; ( 0- 37, 0.- 31.) character and DEL> ; ( 177, 127.) CR = <ASCII CR, carriage return> ; ( 15, 13.) LF = <ASCII LF, linefeed> ; ( 12, 10.) SPACE = <ASCII SP, space> ; ( 40, 32.) HTAB = <ASCII HT, horizontal-tab> ; ( 11, 9.) <"> = <ASCII quote mark> ; ( 42, 34.) <'> = <ASCII single quote mark> ; ( 47, 39.) CRLF = CR LF WS = 1*(SPACE / HTAB) dqstring = <"> *(dqtext/quoted-pair) <"> dqtext = <any CHAR except <">, "\", and CTLs> sqstring = <'> *(dqtext/quoted-pair) <'> sqtext = <any CHAR except <'>, "\", and CTLs> quoted-pair = "\" CHAR atom = 1*<any CHAR except SPACE, CTLs, <'>, <">, and "\"> string = *<dqstring / sqstring / quoted-pair> word = *<atom / string> description = *<word / WS> text = *<word / WS>
Comandos
La forma de ejecutar los comandos es la siguiente:
- Se utiliza una Palabra Comando, seguida de cero o más parámetros.
- Los comandos con parámetros deben separar los parámetros entre sí y con el propio comando mediante espacios o caracteres TAB.
- Las lineas de comando deben estar completas con todos los parámetros requeridos, y solamente puede haber un comando en cada linea.
- Cada línea de comando debe terminar con CRLF.
La gramática para los comandos es la siguiente:
command = cmd-word *<WS cmd-param> cmd-word = atom cmd-param = database / strategy / word database = atom strategy = atom
- No hay diferenciación entre mayúsculas y minúsculas.
- Las lineas de comandos no pueden exceder los 1024 caracteres, incluyendo espacios, separadores, caracteres de puntuación y el CRLF.
Respuestas
Hay 2 tipos de respuesta a los comandos anteriores: de Estado, y de Texto.
- Estado:
Las respuestas de estado indica la réplica del servidor al último comando recibido del cliente. Las lineas de respuesta de estado comienzan con 3 elementos de código alfanumérico, el cual es suficiente para distinguir todas las respuestas. El primer digito de la respuesta indica el éxito, fracaso o proceso del anterior comando (basado generalmente en RFC 640,RFC 821).
1yz - Positive Preliminary reply 2yz - Positive Completion reply 3yz - Positive Intermediate reply 4yz - Transient Negative Completion reply 5yz - Permanent Negative Completion reply
El siguiente digito en el código indica la categoría de la respuesta:
x0z - Syntax x1z - Information (e.g., help) x2z - Connections x3z - Authentication x4z - Unspecified as yet x5z - DICT System (These replies indicate the status of the receiver DICT system vis-a-vis the requested transfer or other DICT system action.) x8z - Nonstandard (private implementation) extensions
La respuesta esperada por cada comando está detallada en la propia especificación del comando. Algunas repsuestas de estado pueden contener parámetros como números o cadenas de caracteres
- Texto:
Antes que el texto, se envía una línea de respuesta de estado, usando un código 1yz, para indicar que el texto vendrá a continuación. El texto se envía como una serie de sucesivas lineas de texto, cada una terminada por CRLF. Para indicar el final del texto, se envía una línea con el código decimal 46 ó ("."). Después de una respuesta de texto, se envía otra respuesta de estado de código 2yz. Las líneas siguen sin poder exceder los 1024 caracteres, contando espacios, separadores, etc. como se apuntó anteriormente.
Ejemplo de un Cliente DICT
Buscando la palabra widget.
Más información
Consultando el RFC 2229 (inglés).
Enlaces externos
- Free On-line Dictionary of Computing
- CIA World Factbook
Web del DICT Development Group
Bases de datos de diccionarios:
Categoría: Protocolos de Internet
Wikimedia foundation. 2010.