Društvo LJUDMILA
Rozmanova ulica 12
1000 Ljubljana
Slovenia
Prostori: osmo/za

M3C Agregator/Calendar

< M3C Agregator

Opis posebnih M3C specifičnih atributov najdete na strani M3C XML namespace.

Stanje posameznih feedov si lahko ogledate na M3C stanje feedov

Podatkovni model

Polja za koledarske podatke definira standard iCalendar. Tista bistvena so:

  • uid - unikatna oznaka dogodka
  • dtstart - začetek dogodka
  • summary - kratek enovrstični opis ali naslov (omejiti količino znakov = 160 kot SMS)
  • dtend - konec dogodka
  • categories - kategorija, glej Kategorije dogodkov
  • description - daljši opis, POZOR!!! Besedilo mora biti XML-escapano!
  • location - lokacija, glej Lokacije
    • odpiralni čas bi bilo mogoče fino imeti na lokacijo
  • url - spletni naslov
  • status - TENTATIVE (default), CONFIRMED ali CANCELLED (to ni zares važno za napovedi, pač pa za sestanke itd.)
  • class - PUBLIC (default) ali PRIVATE. Za javne vire je to PUBLIC :-).
  • organizer - oseba ali organizacija, ki pripravlja dogodek, lahko url na domačo stran.
  • contact - kontaktna oseba ali organizacija, lahko url če ni to že jasno iz lokacije oziroma prireditelja ?? (npr. mailto:, skype:, itd...)
  • created - čas, ko je bil ustvarjen originalen zapis
  • lastModified - čas, ko je bil zapis nazadnje spremenjen
  • attach - priponke (predvsem slike, lahko pa tudi druge datoteke: pdf, doc, zip ...)

Krepko napisana polja so obvezna. Velikost črk je pomembna (po XML standardu).

Dogodke spreminjamo tako, da v RDF viru objavimo zapis z novejšo vrednostjo polja lastModified.

Dogodkov ne moremo brisati. Podoben učinek dosežemo tako, da nastavimo status na CANCELLED. Če hočemo dogodek tudi skriti, potem nastavimo še class na PRIVATE.

Predlagana polja, ki jih (še) ni:

  • tab - linki (več kot samo en url - recimo link prireditelja, link nastopajočih ipd)
  • kljukica za "ni vstopnine", če pa je, se vklopi polje za vpis cene vstopnice
  • še eno polje za txt v smislu opis-kratek (summary limitiramo max SMS kolicina znakov + nekoc narocanje na SMS obvestila ?), opis-dolg (description), article (prispevek)
  • ponavljanje dogodkov po raznih ključih ... (recurrence)

Morda ni odveč zraven primer oz. tekst o tem, kako in kaj, pod link "pomoč" ali "kako prijavim dogodek". To bo eno od pogostih vprašanj.


RDF Calendar

Preprost zapis v RDF/XML, izveden iz standarda iCalendar.

Primer:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE RDF [
<!ENTITY timestamp   "http://www.w3.org/2001/XMLSchema#dateTime"> 
<!ENTITY timestamplj "http://www.w3.org/2002/12/cal/tzd/Europe/Ljubljana#tz"> 
]>
<rdf:RDF
 xmlns="http://www.m3c.si/xmlns/m3c/2006-06#"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:ical="http://www.w3.org/2002/12/cal/icaltzd#"
 xmlns:m3c="http://www.m3c.si/xmlns/m3c/2006-06#"
 xmlns:xhtml="http://www.w3.org/1999/xhtml"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:dcterms="http://purl.org/dc/terms/"
 xmlns:cc="http://web.resource.org/cc/"
 xmlns:skos="http://www.w3.org/2004/02/skos/core#" 
 xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#"
 xmlns:foaf="http://xmlns.com/foaf/0.1/"
 xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
>
 <Vcalendar rdf:about="http://www.kiberpipa.org/mvrata/m3c_events_rdf.php">
  <version>2.0</version>
  <component>
   <Vevent rdf:about="#kiberpipa-0007">
    <uid>kiberpipa-0007</uid>
    <dtstart rdf:datatype="&timestamplj;">2002-07-03T120000</dtstart>
    <dtend rdf:datatype="&timestamplj;">2002-07-06T130000</dtend>
    <lastModified rdf:datatype="&timestamp;">2003-01-01T123456Z</lastModified>
    <created rdf:datatype="&timestamp;">2003-01-01T123456Z</created>
    <summary>Predavanje Linux</summary>
    <status>CONFIRMED</status>
    <description>Pokazali bomo, kako odličen je Linux OS</description>
    <location>Kiberpipa, Kersnikova 6</location>
    <m3c:location rdf:resource="http://www.kiberpipa.org/placi/kino_dvorana/" />
    <categories>izobraževanje,linux</categories>
    <url rdf:resource="http://www.kiberpipa.org/linux/"/>
    <attach rdf:resource="DSC00411.thumb.jpg" />
   </Vevent>
  </component>
  <component>
   ...
  </component>
 </Vcalendar>
</rdf:RDF>

Datumi naj bodo v ISO formatu s črko T pred časovno vrednostjo. Format: YYYY-MM-DDThh:mm:ss

  • SQL: to_char('YYYY-MM-DDTHH24:MI:SS',dtstart)
  • MySQL: date_format(dtstart,'%Y-%m-%dT%H:%i:%s')

Polji dtstart in dtend, za kateri podatke vnese uporabnik, naj bosta podani v lokalnem časovnem pasu - Europe/Ljubljana. Polji lastModified in created, za kateri vrednosti skrbi program, ki zapisuje podatke, naj bosta podani v časovnem pasu UTC. V zgornji format je ob tem potrebno na konec dodati še črko Z.

Opis posebnih M3C specifičnih atributov najdete na strani M3C XML namespace.

Polje description lahko vsebuje HTML, vendar naj bo ta tak, da izpade v redu tudi v tekstovni obliki, če mu odstranimo vse oznake. (TODO: HTML je potrebno escape-at, preverit kako)

Na w3.org je zbranih več testnih datotek v tem formatu.

Programerjem za delo z RDF priporočamo Redland.

iCalendar

Datoteke .ics - nekoliko zastarel a precej razširjen standard.

[Dokumentacija za pomembna polja]

Podpira ga mnogo programov. Podatki so zapisani v tekstovni obliki, vendar ne v XML. Posebej nerodna je obdelava datumov in večvrstičnih besedil.

Primer:

BEGIN:VEVENT
UID:20020630T230445Z-3895-69-1-7@jammer
DTSTART;VALUE=DATE:20020703
DTEND;VALUE=DATE:20020706
SUMMARY:Scooby Conference
LOCATION:San Francisco
END:VEVENT

RDFa

Relativno nov standard za splošno "vlaganje" RDF podatkov v HTML dokumente.

RDFa Wiki

Primer za RDF Calendar


hCalendar

Zanimiva možnost je vlaganje koledarskih podatkov v navadne HTML dokumente (kot npr. viri RSS).

Tu pride prav specifikacija hCalendar, ki določa, kako icalendar podatke zapišemo v HTML. Pri uporabi hCalendar standarda je precej pomembno, da so podatki pravilen XML, saj to močno poenostavi obdelavo dogodkov.