Estoy en Microformatos Dublin Core > Cómo codificar microformatos Dublin Core

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

Dirección: Página de ejemplo

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:

AutorGonzalo
TítuloPá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

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:

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:

  1. Escribimos le fecha en un formato legible para los humanos, por ejemplo 17 de Noviembre del 2006.
  2. Esa fecha la metemos dentro de una etiqueta de abbreviatura: <abbr>17 de Noviembre del 2006<abbr>
  3. 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:

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
webposible
Madrid 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: