5 minutos de lectura ( 974 palabras)

Semántica en Joomla (Microdata, RDFa)

Semántica en Joomla (Microdata, RDFa)

El objetivo es implementar semántica de microdata en el CMS usando la librería Jmicrodata, y crear una librería RDFa, de tal manera que se pueda elegir el tipo de semántica a mostrar: microdata o RDFa

El proyecto en detalle


Este tipo de proyecto involucra una considerable investigación en el área de estándares web y debe contener HTML válido. Durante la edición del Google Summer of Code 2013, con el proyecto Improve Joomla! Frontend semantics and Accessibility (Mejorar la semántica en el Frontend de Joomla y accesibilidad), se creó la librería JMicrodata que muestra microdata semántica. Esa librería fue integrada en las librerías del CMS de Joomla y ha estado disponible desde la versión 3.2.
En aquel momento la librería no era utilizada para implementar semántica de microdata en el CMS, pero la versión 3.3 introdujo semántica de microdata en dos de las capas del componente core. Esta implementación, es, sin embargo, una versión simple de semántica de microdata en HTML de codificación fija (hard code).


Esa solución fue muy debatida, desafortunadamente el foco y los comentarios sobre microdata y la librería JMicrodata llegaron después de que la librería fuese creada, y no durante el diseño y desarrollo. Afortunadamente, ahora hay un montón de retroalimentación y sabemos lo que se necesita. Resumiendo, la decisión de implementar una versión de codificación fija (hard code) de microdata en la versión 3.3 fue tomada debido a que la librería JMicrodata no es tan fácil e intuitiva como hubiéramos deseado. La implementación de la librería JMicrodata fue un tanto demasiado compleja ya que requería un conocimiento profundo de técnicas de programación.


Por el momento no hay una solución ideal sobre cómo implementar la librería JMicrodata en el CMS. Como resultado de las discusiones alrededor de las pull request se han planteado varias ideas y soluciones propuestas de solución. Incluso aunque parezca sencillo mostrar unas simples etiquetas HTML, se vuelve complejo si se quiere tener la posibilidad de variar entre los 558 tipos diferentes de microdata; en ese caso el problema se vuelve complejo.
Veamos porqué está implementada por el momento la modelo de codificación fija en la versión 3.3:

Lo que hace JMicrodata:

 

  1. Tener la posibilidad de elegir el tipo de microdata dinámicamente, sólo se selecciona el tipo, (hay disponibles 558 tipos diferentes)
  2. Mostrar semántica validada, la librería se ocupa de mostrar los datos en el formato correcto (p.e. todas las fechas en el estándar ISO).
  3. Activar/desactivar la semántica de microdata, dentro de Joomla, con un simple interruptor, en vez de tener que hacer cambios a las modificaciones de las plantillas.
  4. Fallbacks, nunca se debe perder ninguna semántica significativa, (p.e. si se modifica el tipo de página y ésta no contiene propiedad autor, alternará al tipo Persona con la propiedad Nombre.

Incluso teniendo algunas características interesantes, hay un pequeño problema, por ejemplo:

Written by <?php echo $microdata->content('P.Alex')->property('author')->fallback('Person', 'name')->display();?>


muestra esto:

Written by

    
        P.Alex
    

Como se puede ver, sólo para mostrar la palabra P.Alex hay mucho código PHP que no es sencillo ni intuitivo. Así que el objetivo de este proyecto es simplificar y crear una solución para implementar esa librería en el CMS. Una implementación que necesita ser sencilla e intuitiva de usar, de forma que el trabajo complejo sea realizado ‘bajo el capó’ por la librería JMicrodata. Dicho esto, el nuevo mapa de ruta es el siguiente:

  1. Tener la posibilidad de seleccionar el tipo de microdata dinámicamente, solo cambiando el tipo (hay 558 diferentes tipos disponibles)
  2. Mostrar semántica validada, haciéndose cargo la librería de mostrar los datos en el formato correcto (p.e. todas las fechas en el estándar ISO).
  3. Activar/desactivar la semántica de microdata, dentro de Joomla, con un simple interruptor, en vez de tener que hacer cambios a las modificaciones de las plantillas.
  4. Fallbacks, nunca se debe perder ninguna semántica significativa, (p.e. si se modifica el tipo de página y ésta no contiene propiedad autor, alternará al tipo Persona con la propiedad Nombre. Una manera simple e intuitiva de implementar y usar la librería en el CMS
  5. Posibilidad de seleccionar entre semántica de microdata o de RDFa.

Como queda claro en el actual mapa de ruta, se deberá crear una librería RDFa, para poder tener la posibilidad de seleccionar entre semántica de microdata o de RDFa. La librería necesita ser reutilizable incluso desde fuera del CMS de Joomla.

Para implementar estas características hay que cambiar la interface de usuario en las opciones de configuración y la salida de varios componentes tales como el com_content. com_contact y también las plantillas por defecto.

Si se desea colaborar, contribuir, o se tiene una posible solución o idea sobre cómo solucionar estos problemas, podemos debatir sobre ello (@PAlexcom). Sobre mi He participado en la edición previa del Google Summer of Code 2013 con el proyecto Improve Joomla! Frontend Semantics & Accessibility (Mejorar la semántica en el Frontend de Joomla! y accesibilidad) para la organización Joomla. Durante el programa GSoC he creado la librería JMicrodata que está disponible en el CMS desde la versión 3.2.

Construyo mis sitios web con Joomla! desde la versión 1.5 Mi nombre es Alexandru Pruteanu (P.Alex), tengo 23 años y creedme, amo la web. Ahora estoy viviendo en Italia y estudio Tecnología Web y Multimedia en la Universidad de Udine. Me levanto cada mañana con el deseo de aprender algo nuevo y siempre intento ampliar mi conocimiento.

Conclusión

Resumiendo, al final de este proyecto se creará una nueva librería RDFa, y tanto microdata como RDFa será implementados de una forma fácil de usar en el CMS Joomla. Deseo agradecer a la organización Joomla por darme la oportunidad de trabajar en este gran proyecto. También deseo agradecer especialmente a Ruth Cheesley y a Matt Thomas por ser mis mentores y a Google Inc. por el asombroso programa ‘Google Summer of Code’ que ayuda a las organizaciones de código abierto.

 

Original Inglés

Autor : Alexandru Pruteanu

0
Sé freelancer decían. 10 Retos que debes vencer.
Cómo dividir un artículo largo en varias páginas v...
 

Comentarios

¿Ya està registrado? Ingresa Aquí
No hay comentarios por el momento. Sé el primero en enviar un comentario.

By accepting you will be accessing a service provided by a third-party external to https://magazine.joomla.org/