Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web servers, web development, networking and security services. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Zašto nam je potrebna XML reprezentacija za iCalendar

Postavljeno od strane Jon Udell-a, pod Nekategorizovano | Tags: azure, elmcity, icalendar, icalvalid, xml

[26] Komentara

U ovonedeljnoj Inovatorskoj predstavi sastao sam se sa dvojicom autora nove ponude za reprezentovanje iCalendar-a u XML-u. Mike Douglass je glavni programer Bedework Calendar System-a, a Steven Lees je Microsoft-ov program menadžer za FeedSync i predsedavajući XML tehničkog komiteta u CalConnect-u, konzorcijumu za izradu kalendara i rasporeda obaveza.

Ono što je ponuđeno je, ni manje ni više, nego dobro definisano dvosmerno mapiranje između aktuelnog formata iCalendar-a, nezasnovanog na XML-u, i ekvivalentnog XML formata. Tako, na primer, evo jednog događaja — prva oseka 2009-e, na plaži Myrtle, SC — u iCalendar formatu:

BEGIN:VEVENT
SUMMARY:Low Tide 0.39 ft
DTSTART:20090101T090000Z
UID:2009.0
DTSTAMP:20080527T000001Z
END:VEVENT

A evo i XML ekvivalenta:

<vevent>
  <properties>
    <dtstamp>
      <date-time utc='yes'>
        <year>2008</year><month>5</month><day>27</day>
        <hour>0</hour><minute>0</minute><second>1</second>
      </date-time>
    </dtstamp>
    <dtstart>
      <date-time utc='yes'>
        <year>2009</year><month>1</month><day>1</day>
        <hour>9</hour><minute>0</minute><second>0</second>
      </date>
    </dtstart>
    <summary>
      <text>Low Tide 0.39 ft</text>
    </summary>
    <uid>
      <text>2009.0</text>
    </uid>
  </properties>
</vevent>

Mapiranje je prilično određeno, kao što možete videti. Na prvi pogled, XML verzija samo izgleda uznemirujuće. Zašto se onda mučiti? Zato što iCalendar format može biti nezgodan za čitanje i pisanje, bilo direktno (upotrebom očiju i ruku), ili indirektno (upotrebom softvera). To se pokazuje naročito tačnim, onda, kada po običaju, događaji uključuju veći obim teksta od onoga koji možete videti ovde.

Napravio sam analogiju sa RSS okruženjem. Kada sam objavio svoj prvi RSS izvor podataka, pre jedne decenije, napisao sam ga rukom. Tačnije, kopirao sam postojeći tekst, kao šablon i objavio ga koristeći cut-i-paste. Ubrzo zatim, napisao sam prvu, od nebrojeno mnogo, skripti, koja je provlačila podatke kroz slične šablone, kako bi proizvela različite vrste RSS izvora podataka.

Velik broj drugih ljudi je uradio isto, i delom je to razlog zašto mi danas imamo robusnu mrežu RSS i Atom izvora podataka,koje nose, ne samo blogove, već i razne druge vrste paketa podataka.

Još jedan od razloga je Feed Validator(validator izvora podataka) koji je, zahvaljujući herojskim naporima Mark Pilgrim-a i Sam Ruby-a, postao i ostao glavna sanitarna provera za svakoga ko postavlja ad-hoc RSS, ili Atom izvor podataka.

Ne postoji nijedno takvo okruženje, za iCalendar. Naporno sam radio da pokažem, zašto nam je potreban jedan, ali je najbolji dokaz proizašo iz eseja Scott Adams-a, koji sam citirao u uvodu ovog bloga. Dilber-ov creator je napisao:

    Ja mislim da će najveća softverska revolucija, u budućnosti, biti to, što će calendar postati organizujući filter za većinu podataka koji uplovljavaju u vaš život. Mislite da ste bombardovani sa previše informacija, svakoga dana, ali u stvarnosti je samo tajming informacija pogrešan. Jednom kada kalendar postane organizujuća paradigma i filter, neće vam delovati kao da ih je previše.

Ako prihvatate argument, onda će nam trebati više od nekoliko aplikacija koje mogu pouzdano kreirati i razmenjivati podatke u kalendaru. Želimo da svako može da istakne izvor podataka kalendara, jednako lako kao što bilo ko može da istakne neki RSS/Atom izvor podataka.

Takođe će nam trebati više od samo nekoliko parsera, koji mogu pouzdano čitati kalendar, tako da će hiljade ad-hoc aplikacija, servisa i skripti biti u mogućnosti da koriste nove tokove informacija orijentisanih na vreme i datum.

Mislim da će standardno XML reprezentovanje iCalendar-a omogućiti velikom broju ad-hoc proizvođača i konzumera da uđu u igru, i kolektivno usklađuju ovo novo okruženje. I to će ispuniti viziju Scott Adams-a.

Evo malog, ali pokaznog primera. Juče sam započeo novu instancu elmcity aggregator-a za plažu Myrtle, SC. Kurator, Dave Slusher, pronašao je tabelu nivoa mora za njegovu lokaciju, i ona je ponudila jedan iCalendar izvor podataka. Dakle, kalendar plaže Myrtle za današnji dan, započinje ovako:

Čet Jul 23 2009

WeeHours

Thu 03:07 AM Low Tide -0.58 ft (Tide Table for Myrtle Beach, SC)

Jutro

Thu 06:21 AM Sunrise 6:21 AM EDT (Tide Table for Myrtle Beach, SC)
Thu 09:09 AM High Tide 5.99 ft (Tide Table for Myrtle Beach, SC)
Thu 10:00 AM Free Coffee Fridays (eventful: )
Thu 10:00 AM Summer Arts Project at The Market Common (eventful: )
Thu 10:00 AM E.B. Lewis: Story Painter (eventful: )

Zamislite da se ovako nešto desi na skali okruženja RSS/Atom izvora podataka. Nedostatak usaglašenosti XML reprezentacije za iCalendar nije jedini razlog zašto nemamo jednako vibrantno okruženje izvora podataka kalendara. Ali, u pitanju je neugodnost koja se može prevazići i nadam se da će ovaj predlog to konačno i učiniti.





Published (Last edited): 02-06-2013 , source: http://blog.jonudell.net/2009/07/23/why-we-need-an-xml-representation-for-icalendar/