Ayuda de Idiomak
Por Pablo Barenbaum, v.3.00

  1. Introducción
  2. Léxicos
  3. Lenguajes
  4. Raíces
  5. Lenguas
  6. Cambios de Sonido
  7. Tablas
  8. Comandos
  9. Gramática
  1. Introducción: Cuando se construye un lenguaje, se suelen seguir ciertos pasos que no voy a detallar aquí, pero voy a mencionar a rasgos generales. Este programa no intenta reemplazar todas las funciones que un verdadero constructor de lenguajes hace; se limita a facilitar algunas que pueden resultar las más tediosas o mecánicas.
    Quede claro que llamo "idiomas" al conjunto de todos los componentes que aparecen en el programa. Aunque la definición de idioma no sea exactamente esta, lo hago para diferenciarlo bien de los "lenguajes" y las "lenguas" (y estas palabras tampoco están bien utilizadas) a falta de mejores sinónimos.
    Para construir un lenguaje, suele establecerse primero el sistema fonológico, esto es cuáles son los sonidos que sus hablantes pronuncian y distinguen y cómo se organiza la estructura de sus sílabas. Se puede inventar o no también un sistema de escritura distinto al nuestro, pero eso es un paso que no se contempla en el programa. Tras crear el sistema fonológico se debe construir una gramática. Esto es decidir (al menos a grandes rasgos) qué tipo de lengua será y luego definir las clases de palabras existentes, las flexiones de éstas, el orden de los compuestos y otros detalles menores (menores pero sin embargo importantes). Una vez hecha la base, se comienza a construir el léxico, que podría ser simplemente una serie de palabras al azar (siempre respetando el sistema fonológico definido), pero es conveniente consista en cierta cantidad de raíces derivadas para formar el léxico propiamente dicho. Para esto hay que inventar una palabra madre de la que surgen las posteriores (para un ejemplo claro, mover > moción, promover, promoción, remover, etc.) preferiblemente (para mi gusto) con afijos regulares (no necesariamente regulares en cuanto a su forma sino en cuanto a su uso).
    Un último paso es construir una familia de lenguas (como el español y el francés derivan del latín, el inglés y el alemán del germánico y a su vez el latín y el germánico del proto-indoeuropeo, al menos según las actuales teorías).
  2. Léxicos: Los primeros componentes de los idiomas en el programa son los léxicos, consistentes simplemente en una palabra por línea (separadas por "enters"). Las líneas se pueden editar a mano o resultar de otros procesos. Se pueden importar léxicos (y todos los otros componentes) desde el menú.
  3. Lenguajes: Los segundos componentes de los idiomas son los lenguajes. Un lenguaje sirve para crear un léxico al azar basado en un sistema fonológico determinado. Al abrir un lenguaje se despliega un diálogo en el que hay dieciséis cuadros similares. En estos, el cuadro que permite seleccionar una letra o número es el identificador. Dentro del cuadro de texto se deben escribir las letras que corresponden a esa categoría separadas por comas ",".
    Una vez definidos los identificadores y contenidos (tantos como sean necesarios), se define la estructura silábica (en el cuadro de texto abajo), que consiste en series de identificadores ordenados como correspondan separados por comas ",". El programa selecciona una de estas estructuras al azar y una letra al azar dentro de cada categoría presente.
    Se pueden determinar caracteres literales incluyendo en la estructura de la sílaba el caracter.
    Se define la cantidad mínima y máxima de sílabas que forman una palabra (puede ser una sola), la cantidad de palabras que se quieren crear y el léxico donde quedarán las palabras construídas. Se presiona generar léxico para obtener el resultado (para verlo, se debe ir a "Léxicos" y allí abrir el que fue elegido como destino).
  4. Raíces: Los terceros componentes de los idiomas son las raíces. Las raíces sirven para crear un léxico estructurado y no elaborado simplemente en forma azarosa. Cuando se abre una raíz se despliega un cuadro. Sobre los cuatro cuadros de texto se deben escribir respectivamente la primera clave, la segunda clave, la palabra y el nivel. Las primera y segunda claves consisten en cualquier palabra o cadena. Es conveniente que la segunda clave sea la palabra en español (o al que se quiera traducir). La primera clave puede ser un número ordinal, una palabra en otro idioma o cualquier cadena deseada. La palabra consiste en una serie de componentes que indican cómo se forma la palabra. Para seleccionar una palabra al azar se pone un cero "0". Si se quiere poner una cadena literal se escribe directamente. Para sumar componentes, se escribe un más "+" entre ellos (por ejemplo "duk+0" indicará que la palabra será "duk" y un componente al azar). Las palabras formadas sólo por componentes al azar y cadenas literales son de nivel 1.
    Si se quieren formar compuestos de raíces ya existentes, se usan dos símbolos especiales. Lo explicaré con un ejemplo: creo la raíz "belleza" con clave 1 = "1", clave 2 = "belleza", palabra = "0", nivel = "1"; creo la raíz "negativo" con clave 1 = "2", clave 2 = "negativo", palabra = "0", nivel = "1". Si deseo crear la palabra fealdad, podría crear una nueva raíz (cosa no tan extraña en el caso particular) o componer la palabra. Para esto pondría clave 1 = "3", clave 2 = "fealdad" y en palabra ubico primero una raíz y luego la otra (en el orden deseado). Para remitirme a la raíz "belleza" puedo poner el signo cardinal "#" antes que su clave primera "#1" o el signo de dólar "$" antes que su clave segunda "$belleza". Para remitirme a la raíz "negativo" puedo poner el signo cardinal "#" antes que su clave primera "#2" o el signo de dólar "$" antes que su clave segunda "$negativo". Quedaría entonces la palabra formada como "$belleza+$negativo" o "#1+#2" o sus combinaciones. En cuanto al nivel, debe ser mayor a la palabra que lo compone de mayor nivel. En este caso, las palabras que lo componen de mayor nivel, son de nivel 1, por lo tanto el nivel sería "2".
    Una vez creadas las raíces, se especifica el léxico de origen de las palabras al azar que se usarán (preferentemente de una sílaba para que los compuestos no sean muy largos) y la lengua de destino. El orden de los modificadores puede ser "AM" (queda igual) o "MA" (se invierte). De esta manera podrían crearse varias lenguas basadas en las mismas raíces pero en distintos léxicos.
  5. Lenguas: Los cuartos componentes de los idiomas son las lenguas. Las lenguas son muy similares a las raíces. Consisten en una clave primera (igual a la de las raíces), una clave segunda (igual a la de las raíces) y una palabra que consiste en la palabra directamente en el lenguaje construído. Las lenguas son el resultado de generar lenguas a partir de raíces, pero pueden modificarse a mano en este estado. Personalmente, no las uso mucho.
  6. Cambios de Sonido: Los quintos componentes de los idiomas son los cambios de sonido. Las lenguas evolucionan y se diversifican. Sus sistemas fonológicos cambian surgiendo dialectos distintos y si esto no se controla, se transforman en distintas lenguas. Los cambios de sonido consiten en reglas que permiten alterar en forma regular los léxicos. Cuando se abre un cambio de sonido se despliega un diálogo. En el cuadro de texto principal se deben escribir las reglas, separadas por comas ",". Las reglas simples respetan el formato original>destino, en el que original es el sonido original y destino el sonido cambiado. Por ejemplo si toda "p" cambia a "b" se debe escribir "p>b". Pueden escribirse grupos de sonidos. Por ejemplo, toda "p" cambia a "b" antes de "a", se escribe "pa>ba". Puede haber sonidos que desaparezcan. Para indicar el comienzo y el fin de una palabra se utiliza el cardinal "#". Si todo "fa" se transforma a "ha" al principio de la palabra, se escribe "#fa/#ha". Si todo "os" se transforma en "us" al final de la palabra, se escribe "os#/us#".
    Existen otras reglas, las reglas complejas, que permiten otros dos implementos. Se pueden definir variables y determinar el ambiente o fonemas que lo rodean. Las variables son una letra que funciona como identificador de otras y respeta la forma identificador=definición. Por ejemplo, si se desea definir una variable que contenga a todas las consonantes labiales en español, llamada B, se hará "B=pbm". Nótese que los identificadores constan de un único caracter.
    Los cambios de sonido complejos se determinan de modo distinto a los simples, respetando la forma original/destino/ambiente, que pueden poseer variables. El ambiente debe tener un subrayado "_" reemplazando al lugar que corresponde al original. Notar que tanto el original como el destino deben tener una única letra.
    Por ejemplo, para "cambiar toda p intervocálica por b", se escribe "V=aeiou,p/b/V_V", en el que se incluye la definición de la variable V "V=", que consta de las vocales "aeiou", y el cambio complejo de p "p", por b "b" cuando se encuentre entre dos vocales "V_V". Para "cambiar toda consonante sorda por sonora cuando se encuentre entre dos vocales" se escribiría "S=ptks,Z=bdgz,S/Z/V_V". Notar que la matriz de origen (S) debe tener la misma cantidad de letras que la de destino (Z), para evitar errores. Es importante que las definiciones de variables estén antes que los cambios. Pueden indicarse al igual que en los cambios simples, los comienzos y finales de palabra con el signo cardinal "#".
    Además de cambios de sonido simples y complejos, puede añadirse en todo cambio un sufijo o prefijo con el símbolo más "+". Por ejemplo, para que a toda palabra se agregue como prefijo ak- y como sufijo -til, se escribirá "ak+til". Pueden también restarse sufijos y prefijos (para restar los del ejemplo anterior, "ak-til").
    Las formas del cambio de sonido pueden combinarse entre sí. Por ejemplo "V=aeiou,W=áéíóú,V/W/_#,pe>be,+i". Una vez determinadas las reglas de cambio de sonido, se especifica el léxico que contiene las palabras de la lengua madre y el léxico que contendrá las palabras de la lengua hija y se presiona "Aplicar".
  7. Tablas: Los sextos componentes de los idiomas son las tablas. Las tablas son simples archivos de texto, en las que se pueden almacenar distintas cosas, como diccionarios, notas y textos planos. También sirven como lugares para almacenar información transitoria o cualquier información que el usuario desee.
  8. Comandos: Los comandos son ciertas acciones que se pueden ejecutar para afectar la información de léxicos y tablas.
    1. Redistribución de datos: sirve para cambiar de lugar la información. Las uniones/separaciones sirven para unir dos léxicos en una tabla o para separar una tabla en dos léxicos por medio de una cadena separadora como puede ser " = ", " > " o "%". Se puede usar para crear diccionarios o tablas de léxicos (usadas en las traducciones). Las exportaciones sirven para transformar un léxico en una tabla o viceversa, para el caso en que esto sea necesario (por ejemplo, si se quieren unir tres léxicos en una tabla, primero se debe exportar una tabla de dos léxicos como si fuera un léxico y luego unirla con otro). Las adiciones sirven para unir dos léxicos en una tabla; es útil para crear importaciones de otros lenguajes construídos (como el español recibió del árabe palabras que no existían). Las transformaciones sirven para transformar una tabla a una raíz o a una lengua o viceversa.
    2. Modificación de datos: sirve para cambiar la información propiamente dicha. Las transformaciones pasan un léxico de mayúsculas a minúsculas o viceversa y quitan los espacios laterales. Los ordenamientos ordenan una tabla por orden alfabético línea por línea.
    3. Combinación de datos: sirve para crear una tabla a partir de léxicos seleccionados en base a porcentajes (por ejemplo, si se elige un léxico de 10 líneas y se establece un porcentaje de 30% y otro léxico de 10 líneas y se establece un porcentaje de 70%, podría generarse una tabla con 3 líneas del primero y 7 del segundo; las combinaciones pueden no respetar exactamente el porcentaje ya que se basan en cálculos con números al azar). Es útil para mezclar lenguajes que conviven en determinada zona y ponerle un porcentaje bajo al del pueblo menos culto o sometido.
    4. Traducción de datos: sirve para traducir una tabla a otra con las correspondientes flexiones y vocabulario. En gramática de origen se debe poner una clave de tres letras y en gramática de destino otra clave de tres letras; representan a la gramática que se usará al traducir los textos. La tabla de léxicos corresponde al nombre de la tabla en la que está el diccionario de los términos. La tabla debe tener tres partes separadas por el símbolo de porcentaje "%", correspondientes a clase de palabra (un sólo caracter), palabra en lenguaje de origen y palabra en lenguaje de destino. Por ejemplo: "n%flor%toulthoupia": "nombre sustantivo", "flor", "toulthoupia". En tabla de origen se debe poner el nombre de la tabla donde está el texto a traducir y en tabla de destino el nombre de la tabla donde quedará el texto traducido.
  9. Gramática:
    1. Morfología: es un texto en el que se deben ubicar las flexiones de los idiomas que se desea participen en las traducciones. En el texto puede haber comentarios (líneas precedidas por una comilla simple "'") y líneas en blanco. Las líneas restantes son cabeceras o definiciones. Las cabeceras son líneas que se ubican entre corchetes "[]" y en las que se escribe en primer lugar la clase de palabra afectada (un único caracter) y un identificador de la flexión. Por ejemplo, [nPl] implicaría que las palabras afectadas son los nombres sustantivos ("n"), y la flexión es el plural ("Pl"); obviamente los identificadores pueden ser cualquier cadena, tenga o no que ver con la clase de palabra o la flexión. Otro ejemplo sería "[vIFs1]", que implica a los verbos y la flexión es "indicativo futuro simple primera persona".
      Las definiciones son una línea con dos partes, separadas por un igual "=". Las partes son el identificador de la gramática de tres letras (utilizado en las traducciones) y la forma de las flexiones, en el mismo formato que los cambios de sonido (sólo se pueden utilizar las reglas simples, las reglas complejas quedan limitadas a los cambios de sonido). Además se pueden agregar prefijos y sufijos en la forma "prefijo+sufijo", o restar prefijos y sufijos en la forma "prefijo-sufijo", además los cambios son estructurados, de modo que hay grupos separados por punto y coma ";" y dentro de éstos, grupos separados por coma ",". Si se cumple la primera condición del grupo se realiza toda la serie de cambios. En caso contrario se continúa. Por ejemplo:

      [vIFs1]
      esp=ar#>aré#;er#>eré#;ir#>iré
      eng=I will +

      Este ejemplo muestra la conjugación de los verbos en indicativo, futuro, primera persona, en español e inglés. Por supuesto, habría que incluir abajo otra definición del lenguaje construído correspondiente (o incluso de otro idioma real si se quiere traducir de español a inglés y viceversa, por ejemplo). El sistema de traducción es incompleto y complejo, especialmente con las lenguas naturales debido a las irregularidades, pero puede servir.
    2. Sintaxis: se escribe de manera similar a la morfología. Consiste en un texto con cabeceras y definiciones. Las cabeceras son líneas entre corchetes "[]" con la descripción de la regla de sintaxis definida (en este caso sin especificar el tipo de palabra a la que afecta). Las definiciones tienen dos partes separadas por igual "=", que corresponden a la gramática (clave de tres letras) la primera y a la regla propiamente dicha la segunda. La regla propiamente dicha es el orden de los compuestos que se desea. Al igual que en la morfología, se obvian aquellas líneas en blanco y aquellas precedidas por punto y coma ";".
      Por ejemplo:

      [Modificadores]
      esp=na
      eng=an

      Indicando que mientras en español los adjetivos se encuentran tras los nombres y en inglés, éstos se encuentran antes de los nombres.
    3. Notas: son simples anotaciones y aclaraciones en forma de texto plano.