Análisis [4]: Etiquetas / Tags

Los tags o etiquetas son palabras o frases que permiten adornar semánticamente una página wiki. A diferencia las categorías, donde se especifica a qué jerarquía pertenece una página, las etiquetas permiten especificar simples conceptos relacionados con una página. Aunque pertenezcan a categorías diferentes, puede interesar relacionar conceptualmente algunas páginas si tienen algo en común, por lo que dichas páginas utilizarían la misma etiqueta.

El esquema gráfico de la inserción de tags se muestra en la imagen, donde se muestra un campo de texto extra en la página de edición:

tags

Vía AJAX se pretende cargar todos los tags ya existentes en otras páginas para ofrecer un autocompletado a medida que se escriban las letras de una etiqueta ya existente, al estilo blogger.

El análisis de la implementación del sistema de etiquetas en NWiki es el siguiente:

  • El formato de los tags será el siguiente:
    • En el editor, serán palabras o conjuntos de palabras separados por comas.
    • Para la persistencia, las etiquetas se guardaran al final (justo después de las categorías) de cada página con el siguiente formato:

      {tags: “tag 1”, “tag 2”, “tag 3”, …, “tag n”}

  • En editor/editor.php añadir una nueva función, por ejemplo wiki_print_edit_tags(), que se encargue de añadir el campoextra en el editor para mostrar los tags actuales de la página y poder escribir nuevos.
  • Modificar editor.php::wiki_print_editor() para incluir el fichero JavaScript con las funciones AJAX.
  • Crear el fichero JavaScript con las funciones necesarias a usar por el cliente:
    • Función para inicializar el objeto XMLHttpRequest.
    • Función para enviar el request a la página PHP al escribir alguna letra en el cuadro de texto de los tags.
    • Función para recibir el response con los tags que empiezan por esa/s letra/s enviados desde la página PHP.
    • Función para mostrar los tags en una lista desplegable para poder ser usados por el usuario.
  • Crear la función PHP encargada de recoger todos los tags que existen en todas las páginas en un array y los devuelva. El problema que veo con ésta aproximación es que esta función puede ser bastante costosa debido al formato en que se guardan los tags, por el hecho de que, para cada página, es necesario:
    • Recoger el campo content
    • Filtrar la línea de tags
    • Recoger cada tag

    Habrá que realizar pruebas de rendimiento para ver si hay que aplicar otra solución, como:

    • Añadir una columna tags a la tabla mdl_wiki_pages con las etiquetas separadas por comas, por ejemplo.
    • Crear una función que al guardar la página guarde las nuevas etiquetas en un fichero que servirá de caché
    • Otras que no se me ocurren ahora :)
Anuncios

3 comentarios to “Análisis [4]: Etiquetas / Tags

  1. Llevas especialmente bien el tema del blog!
    Deberias echar una ojeada al tema de los tags en plan SiteWide en Moodle
    http://docs.moodle.org/en/Tags
    Keep it up y nos vemos el lunes

  2. […] pinza y haré algo más simple y intentando aprovechar la infraestructura de tags de Moodle que me indicó Marc en otra […]

  3. I got what you intend, thankyou for putting up.Woh I am glad to find this website through google. It is a very hard undertaking to seek to please everybody. by Publilius Syrus. kcfadkdbbadd

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: