Lección 3 – Explicando la Tabla Document - livrasand/Reviw GitHub Wiki

En esta lección aprenderás a fondo el contenido almacenado en la tabla Document y de que forma lo interpreta JW Library a fin de que lo tomes en cuenta al hacer tus propios archivos en JWPUB. Quizás la tabla Document de nuestra base de datos sea la que más llama la atención pues aquí tenemos el cuerpo de la publicación. Las páginas electrónicas de nuestro documento, los títulos y otros datos que repercuten en cómo debe desplegarse la información en la aplicación están organizados en esta tabla.

Así que vayamos explicando cada columna de la tabla y como lo interpreta la aplicación

DocumentId

Como te imaginarás este campo/columna se encarga de asignar un número de identificación a cada documento, el cual servirá para ubicarlo a la hora de consultar la información almacenada o al hacer referencia a este por otras tablas. Los números identificadores se despliega ordenadamente y en secuencia empezando desde “0”, por lo que no es necesario explicar demasiado sobre este campo/columna. Respetando el orden de cada nueva fila que agregues no deberá haber ningún problema.

PublicationId

Esta columna es de tipo númerica (interger) y se encarga de identificar a qué tipo de publicación corresponde el documento de esa fila o registro. Habiendo al menos dos valores.

  • Número 1: Se trata de un JWPUB ordinario en un lenguaje escrito.
  • Número 2: Se trata de un SLJWPUB es decir un Sign Language JWPUB. Lo que significa es que se trata de una publicación en lenguaje de señas. Agregar este valor hará que la aplicación consulte otros campos que sincronizarán archivos de vídeo junto con la publicación escrita.

Por lo general el valor número 1 estará en este campo, pues serán los más solicitados y en los que se centrarán estos tutoriales. Aunque más adelante podremos tratar las bondades de un JWPUB en lengua de señas si es que sirves en una congregación en esta faceta.

MepsDocumentId

En los años 80 un grupo de Testigos de Jehová elaboró un sistema completo de sotfware y hardware que permitía el procesamiento de texto en centenares de idiomas conocida como MEPS (siglas en inglés para Multilanguage Electronic Phototypesetting System [Sistema electrónico de fotocomposición plurilingüe) el cual se sigue usando y actualizando hasta nuestros días. (Nota: Hoy se le conoce como Sistema Electrónico de Edición Plurilingüe) Desde ese entonces cada archivo creado gracias a este sistema y guardado en ordenador recibió un número de identificación numérica a fin de organizarlo y consultarlo posteriormente.

Así que cada entrada (Llámese capítulo, sección, portada, índice, etc.) tiene un número de identificación interno asignado conocido como MepsDocumentId. El cual varía dependiendo del tipo de publicación y la regularidad con la que ésta se edita. Es importante indicar el MepsdocumentId correcto en cada entrada de un JWPUB, pues los enlaces internos y externos que usa JW Library se basan en este dato.

Para generar un ID único, puedes utilizar la herramienta timestampgenerator.com, ya que el ID se basa en una marca temporal (timestamp). Al generar uno, obtendrás un valor como 1725567725, el cual es único porque refleja la fecha y el tiempo exacto (hora, minutos, segundos, milisegundos, etc.). Para los documentos subsecuentes, simplemente incrementa este valor en 1 de manera secuencial; por ejemplo, el segundo documento tendría el ID 1725567726, el tercero 1725567727, y así sucesivamente. Esto garantiza la unicidad de los IDs sin riesgo de duplicación.

MepsLanguageIndex

También se ha creado un número identificador de idiomas administrado por el sistema MEPS y este campo nos indica en qué idioma está editada la publicación. Empezando por el idioma inglés, se le ha asignado el número 0, al español el número 1, el alemán el número 2, Francés el número 3 y una gran cantidad de idiomas hasta llegar al número 1253, incluyendo lenguajes de señas. Para ver que número de idioma le corresponde a todos los que están disponibles puedes visitar esta entrada: https://github.com/livrasand/Reviw/wiki/Anexo-2:-N%C3%BAmero-de-%C3%ADndice-de-idioma-en-la-tabla-MepsLanguage.

Class

Internamente JW Library consulta este campo de tipo texto (aunque solo hay valores numéricos), para saber cómo debe desplegar un documento de acuerdo a su contenido. Dependiendo de la clase de publicación este puede cambiar la orientación del texto, su formato, interpretar las etiquetas o imágenes de un documento de forma distinta.

Por ejemplo si el documento que va a desplegarse es la portada de la publicación, el número 39 es el que corresponde a esta clase de documento centrando una imagen única para que aparezca correctamente. Pero hará algo diferente si se trata de un “Apéndice” (número 14), un “Programa de Asamblea” (número 37) o un “Bosquejo” (número 34).

Para saber qué valores son válidos en este campo visita: https://github.com/livrasand/Reviw/wiki/Anexo-3:-Categor%C3%ADas-de-las-publicaciones.

Estos números clasifican cada tipo de documento que JW Library reconoce y deben colocarse en este campo dependiendo del material de la publicación, que aplica a secciones de La Atalaya y Despertad así como de otras publicaciones antiguas o de uso interno por la sucursal.

Type

Este campo de tipo numérico no parece presentar más que el mismo parámetro (un cero) en cada registro, por lo que al crear nuestro propio documento simplemente añadiremos este cero en cada una de nuestras entradas.

SectionNumber

Tal como lo indica el nombre de este campo de tipo numérico, aquí se almacena el número de sección. En nuestras publicaciones una sección suele presentarse como un apartado introductorio de lo que se abarcará en los capítulos siguientes. De manera que si se da el caso debe indicarse en este campo el número correspondiente a la sección de la publicación que vayamos a editar. En caso de no aplicar debe rellenarse este campo con un cero siempre.

ChapterNumber

Similar al campo anterior, aquí colocaremos el número del capítulo en caso de que aplique. En caso de no aplicar puede dejarse este campo vacío.

Title

Título de nuestro documento, el cual aparecerá en la parte superior de la pantalla en nuestra publicación.

TocTitle

Por lo general es lo mismo que Title, y el título del documento vuelve a repetirse en la mayoría de las publicaciones, salvo algunas excepciones como Nuestro Ministerio del Reino que despliega la fecha en formato mes/año antes del título, tal y como aparece en la tabla de contenidos de la publicación electrónica en Watchtower Library.

ContextTitle

Título adicional que se despliega antes que el Título principal en el documento. Este campo puede editarse para resaltar el número del Capítulo o Lección del documento vigente.

FeatureTitle, Subtitle, Feature Subtitle

Estos tres campos permanecen vacíos y al parecer todavía no se han activado para alguna función específica. Por lo que es mejor dejarlos en null o en blanco.

Content

Campo de tipo binario o BLOB, que almacena el documento electrónico de la publicación. Es necesario tener herramientas externas para ver, editar y recrear el contenido de este campo de manera que sea comprensible para JW Library. En la próxima lección aprenderemos como realizar esto.

Los siguientes campos contienen datos almacenados sin embargo parecen ser ignorados por la aplicación, por lo que da lo mismo si se editan o no estos parámetros, convirtiéndose en algo meramente informativo. Aunque lo más probable es que en un futuro la aplicación pueda utilizarlos para funciones de sincronización de idiomas como en la Biblioteca en línea y Watchtower Library.

FirstFootNoteID & LastFootnoteID

Campos que almacenan el número identificador de la primera y la última nota a pie de página de un documento en concreto y de la Tabla en general. (Informativos – Ignorados por la Aplicación).

FirstBibleCitationId & LastBibleCitationId

Similar al anterior, campos que almacenan un número identificador de la primera y la última cita bíblica de un documento en concreto y de la Tabla en general. (Informativos – Ignorados por la Aplicación).

ParagraphCount

Cantidad de párrafos en el documento. (Informativo – Ignorado por la Aplicación).

FirstPageNumber, LastPageNumber & ContentLenght

Números de la página inicial y final que abarca el documento de esa entrada. El último campo indica el tamaño del documento almacenado en “contents” en bytes. (Informativos – Ignorados por la Aplicación). Los siguientes campos si son tomados en cuenta por la aplicación.

HasMediaLinks & HasLinks

Campos de tipo Boolean, es decir informan si una condición es verdadera o falsa. El nombre de los campos consulta si hay enlaces o links a imágenes en el documento “HasMediaLinks” (Traducción ¿Hay enlaces multimedia?). La aplicación consulta la respuesta con un “0” (Falso, no hay enlaces multimedia) o con un “1” (Verdadero, si los hay) así que dependiendo del contenido del documento debe de editarse este parámetro para indicar si los hay o no. Si no prestamos atención a este campo, por ejemplo al estar en 0 (Falso) cuando si hay enlaces a imágenes el programa ignorará cualquiera de estos elementos en el documento aunque si existan y no se desplegarán. Lo mismo aplica con el campo HasLinks (¿Hay enlaces?) pero esta vez tratándose de enlaces en general, los cuales trataremos más adelante.

Bien ya te has enterado prácticamente de la estructura básica de esta importante Tabla, pero ahora pasemos a la lección. ¡Continúa leyendo que ya viene lo bueno!