a.css

esbudellant estàndards


Definició de períodes de temps amb Dublin Core

01/04/07

L'especificació de Dublin Core presta una especial atenció a les dates. Té elements genèrics com el date o el coverage i elements específics com l'issued, el created, el dateAccepted entre d'altres.

Sempre que s'ha d'escriure una data el Dublin Core recomana usar el format que normalitza l'ISO 8601 però en els casos on es pot especificar un interval de dates et remet al DCMI Period Encoding Scheme on, a parer meu, ho explica de forma confusa.

Tal i com ho explica s'hauria de declarar quelcom tipus:


start=v1; end=v2; scheme=v3; name=v4;

On v1 és l'instant inicial, v2 és l'instant final, v3 és l'esquema usat per codificar les dates i v4 el nom de l'esdeveniment.

Un exemple aplicat a XHTML seria:


<meta name="DCTERMS.temporal" 
   scheme="DCTERMS.Period" 
   content="name=Esdeveniment; 
            start=2007-04-01T09:00+01:00; 
            end=2007-04-01T10:00+01:00;" 
/>

El mateix exemple aplicat a RDF/XML:


<dc:date>
  name=Esdeveniment;
  start=2007-04-01T09:00+01:00;
  end=2007-04-01T10:00+01:00;
  scheme=W3C-DTF
</dc:date>

El problema és que aquest darrer exemple és poc formal des del punt de vista d'un XML. Després de donar-li algunes voltes crec que es podria reformular per quelcom tipus:


<dc:title>
   Esdeveniment
</dc:title>
<dc:date>
   <rdfs:label>start</rdfs:label>
   <dcterms:W3CDTF>
      <rdf:value>2007-04-01T09:00+01:00</rdf:value>
   </dcterms:W3CDTF>
</dc:date>
<dc:date>
   <rdfs:label>end</rdfs:label>
   <dcterms:W3CDTF>
       <rdf:value>2007-04-01T09:00+01:00</rdf:value>
   </dcterms:W3CDTF>
</dc:date> 

Tot i ser molt més verbós que el cas anterior és molt més estructurat i és més proper a la resta de solucions emprades en RDF.

Recursos relacionats

Comentaris

  1. Comentat per Gonzalo el 10/04/07

    He estado revisando documentación anterior sobre periodos temporales en Dublin Core y he visto algunos ejemplos interesantes para codificarlos en XML (ver Examples of DCMI Period Encoding Scheme (2000/07/28)), pero los ejemplos consisten en crear un DTD específica para periodos. De todas formas un par de detalles más: La opción que propones, en intachable, y formalmente es muy correcta (correctísima, que diría un amigo). El "problema" o más bien el "detalle" que puede llevar a confusión es el uso del elemento label de rdfs, porque suponemos que los agentes web son capaces de conocer correctamente su significado ¿y si son, digamos no muy inteligentes? :)

    Por otro lado, creo que la opción recomendable, sería la usada en el microformato hCalendar para eventos, basado en el estándar iCalendar, donde define claramente la fecha de inicio y finalización de un periodo.

    Sólo haría falta encontrar este éstandar formalmente definido para poder ser utilizado como namespace (para los interesados, pueden dar un vistazo al documento del W3C RDF Calendar - an application of the Resource Description Framework to iCalendar Data)... Y ese documento existe! y se puede encontrar en Ontología de iCalendar. Creo que estoy satisfecho con mi investigación :) Gracias por todo Artnau ;)

  2. Comentat per ricardo el 10/04/07

    Qué gran comentario, Gonzalo. Vivan los blogs!

  3. Comentat per are el 18/04/07

    M'he estat mirant l'RDF Calendar i em sembla molt encertat per alguns casos de definició de períodes de temps.
    En alguns casos però em costa més de fer-lo casar. Encara li dono voltes.

Afegir un comentari


© Arnau Siches. a.css està sota Llicència Creative Commons.