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.
- Spletna stran - W3 Workspace
- Poročilo W3 - specifikacija
- Shema v OWL/RDF formatu.
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="×tamplj;">2002-07-03T120000</dtstart> <dtend rdf:datatype="×tamplj;">2002-07-06T130000</dtend> <lastModified rdf:datatype="×tamp;">2003-01-01T123456Z</lastModified> <created rdf:datatype="×tamp;">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="" /> </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.
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.