Cómo codificar microformatos de Dublin Core
Tabla de contenidos
Aprovechar las características semánticas de HTML
Hay muchas formas de codificar un microformato un documento HTML ó XHTML, y que cumplan los estándares. Basta con comprobar el código en un validador, como por ejemplo W3C Markup Validation Service. Sin embargo, no todas esas formas de codificarlo, aprovechan al máximo las capacidades semánticas del HTML. Veamos algunos ejemplos:
Formas de codificar microformatos
Veamos un ejemplo muy sencillo, y a la vez completo: un microformato que describe dos elementos, usando un texto y un vínculo.
Usando listas de definición
Esta es la opción más correcta, en mi opinión, para codificar microformatos de Dublin Core. Puedes leer Contenido semántico de los microformatos, para ver un ejemplo donde lo argumento. Veamos ejemplos:
- Autor
- Gonzalo
- Título
- Página de ejemplo
- Dirección
- http://www.example.org/
Para cada metadato incluido en el microformato (creator, title e identifier), utilizamos un elemento de la lista de definición (elemento a definir dt y elemento definido dd). Aquí podemos ver el código fuente:
<dl class="dublincore">
<dt>Autor</dt>
<dd class="creator">Gonzalo</dd>
<dt>Título</dt>
<dd class="title">Página de ejemplo</dd>
<dt>Dirección</dt>
<dd><a href="http://www.example.org/"
class="identifier">http://www.example.org/</a></dd>
</dl>
Usando listas de definición, agrupando términos
En el ejemplo anterior, Suponiendo que el título se refiere a la URL (el caso más habitual), también podríamos "fusionar" ambos elementos en uno sólo:
- Autor
- Gonzalo
- Título
- Página de ejemplo
Aquí podemos ver el código fuente:
<dl class="dublincore">
<dt>Autor</dt>
<dd class="creator">Gonzalo</dd>
<dt>Título</dt>
<dd><a href="http://www.example.org/
class="title identifier">Página de ejemplo</a></dd>
</dl>
Como podemos ver, en un mismo elemento de la lista, usamos dos clases distintas (que se corresponden a dos elementos de Dublin Core): class="title identifier". La explicación es muy sencilla: el vínculo indica a la vez el título (title) y la dirección del recurso (identifier). Es igual de correcto que el caso anterior, pero algo más breve.
usando otro tipo de elementos de HTML
En los ejemplos anteriores, hemos usado listas de definición, porque semánticamente es mucho más correcto. Pero también puedes usar otras etiquetas de HTML para codificar microformatos. Personalmente, no lo recomiendo.
Autor: Gonzalo
Aquí puedes ver el código, se han usado los elementos div, span y p.
<div class="dublincore">
<p>Autor: <span class="creator">Gonzalo</span></p>
<div>Dirección: <a class="identifier title"
href="http://www.example.org/">Página de ejemplo</a></div>
</div>
En el siguiente ejemplo, se utilizan tablas:
Autor | Gonzalo |
---|---|
Título | Página de ejemplo |
Dirección: | http://www.example.org/ |
Y éste es el código fuente:
<table class="dublincore">
<tr>
<th>Autor</th>
<td class="creator">Gonzalo</td>
</tr>
<tr>
<th>Título</th>
<td class="title">Página de ejemplo</td>
</tr>
<tr>
<th>Dirección:</th>
<td class="identifier">http://www.example.org/</td>
</tr>
</table>
¿Qué forma de codificar microformatos elijo?
En estos documentos sobre microformatos de Dublin Core, no se establecen una reglas para codificar, tan sólo unas recomendaciones, pero tu decides cómo quieres codificarlo. Puedes emplear listas de definición (dl), tablas (table), capas (div),... pero ten presente que el objetivo principal de los microformatos, es que el código que le muestra un navegador a una persona, debe ser fácil de comprender. Por supuesto, no olvides usar apropiadamente valores para los elementos class ó id.
Recomedaciones generales para codificar microformatos
Recordatorio previo: id y class
Para codificar los microformatos, usamos los nombres de elementos de Dublin Core, como valores para los atributos class (clase) ó id (identificador). Recuerda que en una página no puede haber más de una etiqueta con el mismo id. La explicación es sencilla: el identificador, identifica a un sólo elemento. Si quieres usar los términos de Dublin Core con identificadores, recuerda que no se pueden repetir dos o más identificadores con el mismo valor. Por ejemplo no puede haber dos o más id="title" en una página. Sí que podría haber un id="title" y uno o más class="title"). Para más información puedes consultar Identificadores de elementos: los elementos id y class en la traducción de la especificación HTML 4.01
¿Cuántos valores puede contener el atributo class?
Supongamos que una etiqueta de HTML puede usarse con más de un elemento de Dublin Core, por ejemplo title (título) e identifier (identificador); o también autor (creator) y editor (editor). En vez de utilizar dos etiquetas con unico valor para el atributo class ó id, podemos usar una etiequeta con dos valores para el atributo class.
En el siguiente ejemplo, una etiqueta a tiene dos valores para el atributo class, el título (title) y el identificador (identifier). Es decir, esa etiqueta nos identifica el recurso (en este caso mediante una URL: http://www.example.org/), a la vez que nos dice su título (Título de ejemplo). Aquí puedes ver el código:
<dl class="dublincore">
<dt>Título:</dt>
<dd><a href="http://www.example.org/"
class="title identifier">Título de ejemplo</a></dd>
</dl>
En el siguiente ejemplo, una misma persona es el autor (creator), editor (editor) y el propietario de los derechos (rightsHolder) de la ofra ficticia "Mi vida contada para mí mismo" (entre nosotros, no parece muy divertida, je je). Aquí puedes ver el código fuente:
<dl class="dublincore">
<dt>Autor-Editor-Propietario:</dt>
<dd class="creator editor rightsHolder">Daniel Capitán Sánchez</dd>
<dt>Título:</dt>
<dd class="title">Mi vida contada para mí mismo</dd>
</dl>
Cómo codificar un texto
Cuando tenemos que codificar un texto como valor para un microformato de Dublin Core debemos tener en cuenta los siguientes casos:
- Texto largo: formado por varios elementos, por ejemplo párrafo, listas,...
- Texto corto: formado por una o varias palabras, nunca mayor que una frase.
Texto largo
Hay que colocar el identificador (id) ó clase (class) en el ultimo elemento en la jeraquía de etiquetas que engloba contiene todo el microformato. Veamos un ejemplo:
<dl class="dublincore">
<dt>Tabla de Contenidos</dt>
<dd>
<ul class="tableOfContents">
<li>Primer punto</li>
<li>Segundo punto</li>
<li>Tercer punto</li>
</ul>
</dd>
<dt>Resumen</dt>
<dd class="abstract">
<p>Éste párrafo tiene dos frases. Y ésta frase es la segunda.</p>
<p>Segundo párrafo del resumen.</p>
</dd>
</dl>
Texto corto
Es un caso más sencillo. Usando listas de definición, hay que usar el identificador (id) ó clase (class) en la etiqueta <dt>, como podemos ver en el siguiente ejemplo:
<dl class="dublincore">
<dt>Autor<-Editor/dt>
<dd class="creator editor">Gonzalo</dd>
<dt>Título</dt>
<dd class="title">Página de ejemplo</dd>
</dl>
¿Te parece demasiado código y complejo? También puedes codificar como Nanoformatos de Dublin Core, tienes un ejemplo de Nanoformato de texto.
Cómo codificar un vínculo
Lo más apropiado es usar el identificador (id) ó clase (class) como atributos del vínculo ( <a href="http://www.example.org/" class="identificador" id="clase">vínculo</a>), no como atributos de la lista de definición que le corresoponde (<dt>).
En el caso de que tengamos una lista de vínculos, deberíamos codificar una lista con todos los vínculos, y colocar la clase en cada vínculo, o en elemento que contiene a todos los vínculos (como <ul>). Veamos un ejemplo:
<dl class="dublincore">
<dt>Autores</dt>
<dd>
<ul>
<li><a href="http://www.example.org/ruperto/"
class="creator">Ruperto</a></li>
<li><a href="patricia@example.org"
class="creator">Patricia</a></li>
</ul>
</dd>
<dt>Editorial</dt>
<dd><a href="http://www.example.org/ed-rbb"
class="editor">Editorial RBB</a></dd>
</dl>
¿Te parece demasiado código y complejo? También puedes codificar como Nanoformatos de Dublin Core, tienes un ejemplo de Nanoformato de vínculo.
En el caso concreto de vínculos a licencias, lee Añadir más información sobre la licencia usada por un documento web, mediante el microformato rel-license.
Cómo codificar una fecha
Para codificar una fecha, hay que tener en cuenta dos requisitos:
- Utilizar listas de definición, para que nuestro microformato aproveche al máximo el potencial semántico.
- Utilizar el formato de fecha internacional, consistente en colocar primero el año con cuatro dígitos, después el mes con dos dígitos y por ultimo el día, también con dos dígitos. Y separamos años, meses y días con guiones, por ejemplo 2005-07-11, que sería el 11 de Julio del año 2005. Puedes leer el documento Use el formato de fecha internacional (ISO) para tener más información. Por supuesto, no olvides indicar cómo están codificadas las fechas, para que el lector pueda interpretarlas correctamente.
Y ahora puedes un ejemplo:
<dl class="dublincore">
<dt>Fecha de creación (año-mes-día)</dt>
<dd class="created">2005-12-12</dd>
<dt>Fecha de modificación (año-mes-día)</dt>
<dd class="modified">2006-02-13</dd>
<dt>Fecha de publicación (año-mes-día)</dt>
<dd class="avaliable">2005-12-14</dd>
</dl>
¿Te parece demasiado código y complejo? También puedes codificar como Nanoformatos de Dublin Core, tienes un ejemplo de Nanoformato de fecha.
Cómo codificar una fecha como en hCalendar
Otra forma de codificar una fecha en microformatos, es como se hace en hCalendar. Veamos los pasos:
- Escribimos le fecha en un formato legible para los humanos, por ejemplo
17 de Noviembre del 2006
. - Esa fecha la metemos dentro de una etiqueta de abbreviatura:
<abbr>17 de Noviembre del 2006<abbr>
- Y añadimos un título a esa fecha, que se corresponde con el formato año mes y dia, usando numeros y sin separación, es decir:
<abbr title="20061117">17 de Noviembre del 2006<abbr>
Veamos un ejemplo de un evento (la Conferencia Dublin Core 2008 donde se presenta éste proyecto :), codificado siguiendo las recomendaciones de hCalendar (se ha usado hCalendar creator para generar el código). Primero vemos cómo se muestra en un navegador:
Y ahora vemos el código fuente:
<div class="vevent"
id="hcalendar-Conferencia-Internacional-de-Dublin-Core">
<a href="http://dc2008.de/" class="url">
<span class="summary">
Conferencia Internacional de <span xml:lang="en">Dublin Core
</span></span>.
<abbr class="dtstart" title="2008-09-22">22 de Septiembre</abbr> -
<abbr class="dtend" title="2008-09-27">26 de Septiembre del 2008</abbr>,
<span class="location">Berlin</span>.</a>
</div>
El inconveniente de este tipo de codificación para fechas, es que provoca problemas de accesibilidad en los navegadores parlantes y lectores de pantalla (leer el artículo hAccessibility en The Web Standar Project).
Más información sobre este tipo de condificación y su justificación, en hCalendar.
Combinar con otros microformatos
Si los microformatos Dublin Core te parecen limitados, puedes combinar diferentes microformatos y así añadir más información semántica. Por ejemplo, puedes mejorar la información mostrada con los microformatos Dublin Core para:
- Describir una persona (mediante contributor, creator, publisher ó mediator) gracias los extendidos microformatos hCard y XFN (XHTML Friends Network).
- Complementar los elementos de los microformatos Dublin Core relacionados con fechas (date, avaliable, created, dateAccepted, dateCopyrighted, dateSubmited, issued y valid) con hCalendar.
- Añadir más información sobre la licencia usada por un documento web, mediante el microformato rel-license. Para hacerlo, basta con:
- Obligatorio: Añadir en el código fuente del vínculo
rel="license"
. - Opcional: Incluir un perfil en el elemento <head>, indicando la URL de un perfil similar al que aparece en rel="license": XMDP profile. En realidad el perfil debería de estar indicado, pero su uso está muy extendido, y muchos agentes de software reconocen este tipo de vínculo relacional. Además no da ningun error en el W3C QA Markup Validation Service.
- Obligatorio: Añadir en el código fuente del vínculo
Aquí mostramos el código de un ejemplo en el que combinamos microformatos Dublin Core con hCard:
<dl class="dublincore">
<dt>Título</dt>
<dd><a class="title identifier"
href="http://www.webposible.com/microformatos-dublincore/">
Microformatos Dublin Core</a></dd>
<dt>Autor-Editor</dt>
<dd class="vcard creator publisher">
<a class="url fn n" href="http://www.webposible.com/autor.html">
<span class="given-name">Alejandro Gonzalo</span>
<span class="family-name">Bravo García</span>
</a>
<div class="org">webposible</div>
<div class="adr">
<span class="region">Madrid</span>
<span class="country-name">España</span>
</div>
</dd>
</dl>
Y aquí vemos cómo se muestra en un navegador:
- Título
- Microformatos Dublin Core
- Autor
-
Alejandro Gonzalo
Bravo García
webposibleMadrid España
Nota: Para generar el código del microformato hCard, se ha utilizado hCard creator.
Enviar comentarios
Críticas, opiniones y sugerencias son bienvenidas, puedes contactar con el autor.
Licencia de esta documentación
El contenido de este documento está disponible bajo los términos de una Creative Commons (Reconocimiento 3.0 Genérica).
Derechos de Propiedad Intelectual de la DCMI (Dublin Core)
Microformatos Dublin Core no tiene ninguna relación con Dublin Core. Pero pensamos que el conjunto de elementos, pueden ser utilizados en forma de microformatos.
Dublin Core es un servicio registrado de OCLC. En esta documentación se utilizan elementos de Dublin Core para usarse como microformatos. Puedes consultar la referencia oficial de Dublin Core Metadata Element Set, Version 1.1, para conocer los elementos, y unas guías de codificación (Encoding Guidelines), entre las que no se encuentran los microformatos (no se trata de ningun estándar reconocido, como son XHTML/XHTML, RDF ó XML).
Para conocer de primera mano la información legal sobre Dublin Core, consulta en inglés DCMI Intellectual Property Notice and Legal Disclaimers.
Ficha bibliográfica
- Título:
- Cómo codificar microformatos de Dublin Core
- Dirección:
- http://www.webposible.com/microformatos-dublincore/como-codificar-microformatos-dublincore.html
- Descripción:
- Documento que explica cómo codificar los elementos de Dublin Core en forma de microformatos. Hay tres tipos: textos, vínculos y fechas.
- Palabras clave:
- microformatos Dublin Core, microformatos, Dublin Core, Web Semántica, Cómo codificar
- Código de idioma:
- es
- Autor:
- Alejandro Gonzalo Bravo García
- Editor:
- Webposible
- Licencia:
- Creative Commons (Reconocimiento 3.0 Genérica)
- Fecha de creación:
- 2005-12-12
- Fecha de publicación:
- 2005-12-12
- Fecha de modificación:
- 2008-06-19
- Es requerido por:
- Forma parte de:
- Microformatos Dublin Core
- Relacionado con: