W tradycyjnym dokumencie WWW formatowanie opisuje wygląd strony, a tylko w nieznacznym stopniu jej treść. Ta przeznaczona jest wyłącznie dla człowieka. Mikroformaty to rodzina standardów pozwalająca na dodanie do dokumentu HTML atrybutów opisujących znaczenie treści. Są one rozpoznawane przez nową generację wyszukiwarek, przeglądarek internetowych i aplikacji internetowych. Pozostają przy tym w pełni zgodne ze starszym oprogramowaniem, a ich wprowadzenie wymaga znikomego nakładu pracy.
Od kilku lat coraz głośniej słychać o idei
sieci semantycznej, tj. opisującej nie tylko
wygląd, ale również znaczenie danych,
w sposób właściwy do automatycznego przetwarzania.
Entuzjaści twierdzą, że wkrótce sieć
stanie się jedną wielką bazą danych, dzięki czemu
wyszukiwarki odnajdą właściwą informację o wiele
skuteczniej niż teraz, a oprogramowanie nabierze
bardziej \”ludzkich\” cech.
Wyobraźmy sobie, że instruujemy komputer,
by zamówił telewizor o określonych parametrach
za jak najniższą cenę, uwzględniając również
sklepy zagraniczne i bieżący kurs wymiany walut
oraz koszt wysyłki, a ten wykonuje zadanie bez
udziału człowieka. Dlaczego obecnie jest to
niemożliwe?
Najlepiej istotę problemu zilustrować przykładem.
Odwiedźmy serwis internetowy dowolnej firmy.
Prawie zawsze znajdziemy w nim podstronę zatytułowaną
\”Kontakt\”, a na niej adresy, e-maile i numery
telefonów do różnych działów lub wybranych osób.
Przykładowy fragment jest widoczny na ilustracji.
W jaki sposób przenieść te informacje do osobistej
książki adresowej w programie pocztowym?
Zwykle jedynym sposobem jest ręczne przepisanie
lub też – niewiele szybsze – zastosowanie metody
kopiuj/wklej. Jedynie człowiek, rozumiejąc treść
i analizując kontekst potrafi ustalić, że 0-11 2223333
to numer telefonu do pani Katarzyny Kowalskiej, asystenta
do spraw marketingu danej organizacji. Komputer
nie jest w stanie wydobyć takiej informacji.
Naszym drugim przykładem będzie sklep
internetowy. Użytkownicy bez problemu odnajdują
w tego typu aplikacjach spis kategorii, a na stronie
produktu – cenę, nazwę i producenta towaru. Co
jednak zrobić, jeśli dane muszą być przetwarzane
automatycznie, np. przez porównywarkę cen?
Niekiedy stosuje się programy zwane robotami
lub spiderami, które wydobywają informacje
bezpośrednio ze strony WWW. Są to zwykle prymitywne
skrypty, kierujące się prostymi regułami
w rodzaju: druga komórka w trzeciej tabeli zawiera
cenę. Oznacza to, że trzeba je dostosowywać
indywidualnie do każdej badanej strony i nawet
niewielka zmiana struktury powoduje, że program
odczyta błędne informacje.
Najczęściej więc publikuje się te same dane
w dwóch formatach: czytelnym dla człowieka i dla
maszyny. Ten pierwszy to zwykle HTML wraz ze
wszystkimi dodatkami poprawiającymi estetykę
strony, a drugi – XML o strukturze zdefiniowanej
przez operatora porównywarki.
Tradycyjny ruch Semantic Web, rozpoczęty
przez Tima Bernersa-Lee, twórcę WWW, propaguje
właśnie to drugie podejście, wspierając nowy
język opisujący różnego rodzaju dane i meta-dane.
Jednak takie rozwiązanie ma liczne wady.
Osoba przygotowująca witrynę musi kontrolować
informacje w dwóch miejscach i uczyć się
nowych, skomplikowanych formatów. W dodatku
Semantic Web podchodzi do problemu kompleksowo,
co w tym przypadku jest wadą: trudno
wymagać od całego świata, by nagle przebudował
strony internetowe na nowy format.
Autorzy stron być może zdecydują się poświęcić
swój czas na obsługę dodatkowych dokumentów,
jeśli będą się spodziewać pewnych profitów – jak
w przykładzie z porównywarką. Ale na pewno nie
opublikują w ten sposób wszystkich możliwych
informacji.
Szczególnie, że istnieje prostsze rozwiązanie.
Zauważmy, że w obu przykładach wszystkie
potrzebne informacje są już obecne w pliku HTML.
Pozostaje tylko poinformować parser, w którym
miejscu ma ich szukać. Zamiast wprowadzać nowe
znaczniki, jak w XML, wystarczy wykorzystać
atrybuty istniejących znaczników.
Pierwsze spotkanie z mikroformatami
Webmasterzy od lat stosują atrybuty class
oraz id, by przypisać elementom odpowiedni styl.
A gdyby wykorzystać je do opisu semantyki dokumentu?
Dokładnie tak wygląda jeden z pierwszych
i najprostszych mikroformatów: geo, opisujący
współrzędne geograficzne:
37.408183 -122.13855
Nie ma znaczenia, czy zamkniemy tekst
w znacznikach DIV, SPAN, P czy jeszcze innych – liczy
się wyłącznie wartość atrybutu. Najkrótsza forma
wymaga jednak podawania współrzędnych w mało
estetycznej i czytelnej dla człowieka postaci.
Autorzy mikroformatów przewidzieli to: wszędzie,
gdzie informacja jest zapisywana w treści
dokumentu, alternatywnie możemy zastosować
tag HTML abbr:
N 37° 24.491 W 122° 08.313
Wówczas program odczyta zawartość atrybutu
title i zignoruje treść. Warto poznać ten zapis,
mimo iż jest trochę bardziej skomplikowany. Nie
zawsze możemy przecież użyć w treści strony słów
wymaganych przez standard, zwłaszcza jeśli tworzymy
dokument w języku innym niż angielski.
Mikroformaty społecznościowe
Ruch promujący mikroformaty, skupiony wokół
strony microformats.org, miał początkowo charakter
pospolitego ruszenia zrzeszającego autorów
blogów, wikipedystów oraz entuzjastów serwisów
społecznościowych. Dopiero później uzyskał
poparcie firm takich jak Google, Yahoo czy O\’Reilly.
Dlatego pierwsze mikroformaty mają związek
z opisywaniem ludzi i relacji między nimi.
Bardzo ciekawym rozwiązaniem jest XFN:
XHTML Friends Network. Autorzy blogów, a przede
wszystkim użytkownicy serwisów społecznościowych,
często zamieszczają na stronach listy przyjaciół,
cytaty z blogów znajomych, odnośniki do stron
swoich krewnych itp. XFN korzysta z atrybutu REL
do opisania zależności, jakie łączą autora z \”linkowaną\”
osobą. I tak, jeżeli zamieszczamy odnośnik
do bloga kolegi, odpowiednią formą jest:
.
Zdefiniowano kilka atrybutów opisujących
relacje:
- rodzinne: child, parent, sibling, spouse, kin
(odpowiednio: dziecko, rodzic, rodzeństwo, małżonek,
krewny), - społeczne: friend, acquaintance, contact
(przyjaciel, znajomy oraz osoba z którą jesteśmy
w stanie się skontaktować), - uczuciowe: muse, crush, date, sweetheart (kolejno:
osoba będąca inspiracją, obiekt nieodwzajemnionego
uczucia, osoba z którą umawiamy
się na randki oraz osoba z którą jesteśmy
w naprawdę bliskim związku), - zawodowe: co-worker, colleague (współpracownik
oraz osoba pracująca w tej samej branży, ale
w innej organizacji),
geograficzne: co-resident, neighbour (współlokator
i sąsiad).
Dodatkowe kategorie to met – osoba którą
spotkaliśmy (w odróżnieniu od znajomości wirtualnych)
oraz me – link do własnej strony. Atrybuty
można ze sobą łączyć, standard dokładnie opisuje
które kombinacje są dopuszczalne, choć oczywiście
wystarczy odrobina zdrowego rozsądku by
zauważyć, że \”child parent sweetheart\” nie ma
dużego sensu.
W serwisach typu social bookmarking popularne
są tzw. tagi, czyli słowa kluczowe opisujące
dany odnośnik lub artykuł. Jak zaznaczyć, że określony
link prowadzi do listy stron opisanych tagiemfotografia? Wyjątkowo łatwo:
.
Podobnie oznacza się strony zawierające
licencję do aktualnie przeglądanego dokumentu
(rel=\”license\”) czy katalogi WWW (rel=\”directory\”).
Osoby zajmujące się marketingiem sieciowym,
a zwłaszcza optymalizacją stron dla wyszukiwarek,
znają zapewne jeden z atrybutów rel, nawet
jeżeli nigdy nie słyszały o mikroformatach, czyli
rel=\”nofollow\”, który informuje wyszukiwarkę, by
zignorowała link.
Tzw. permalinki, czyli odnośniki które na pewno
nie ulegną zmianie, oznacza się przez rel=\”bookmark\”.
Link z atrybutem \”help\” to pomoc dla
bieżącej strony, zaś \”copyright\” zawiera informację
o autorach.
Kolejny zestaw atrybutów rel jest przeznaczony
dla dokumentów o strukturze przypominającej
książkę. Są to odpowiednio:
- next – prowadzi do następnej strony,
- prev – oznacza stronę poprzedzającą,
- start – wskazana strona jest początkiem ciągudokumentów (np. rozdziału),
- contents – spis treści,
- index – spis terminów użytych na tej stronie.
Zapisujemy dane kontaktowe
Wróćmy do naszego przykładu z danymi
kontaktowymi. Fragment kodu zawierający te informacje
mógł początkowo wyglądać następująco:
imię i nazwisko Katarzyna Kowalska
dział Marketing
stanowisko Asystent ds. reklamy
telefon 0-11 2223333
Dopisując w odpowiednich miejscach atrybuty
class, otrzymujemy hCard, czyli vCard zapisany
w HTML. Nasz przykład przyjmuje więc postać:
imię i nazwisko Katarzyna Kowalska
dział Marketing
stanowisko Asystent ds. reklamy
telefon 0-11 2223333
Atrybuty mogą być zapisywane małymi lub
wielkimi literami. Tylko dwa spośród nich są wymagane.
Całość musi być zamknięta w bloku klasy
vcard, natomiast wewnątrz konieczne jest pole fn,
zawierające podstawowy identyfikator – nazwisko
lub pseudonim, a w przypadku kontaktu do organizacji
– nazwę.
Przykładowo, gdyby ten artykuł opublikować
w postaci HTML z zastosowaniem hCard, podpis
autora wyglądałby następująco:
Igor Wawrzyniak.
Standard hCardłatwo wprowadzić na istniejących stronach.
Wystarczy w tym celu dodać odpowiednie atrybuty
class, nie trzeba nawet usuwać istniejących. Jeżeli
wcześniej informacje kontaktowe były umieszczone
w bloku DIV klasy adresy, wystarczy zamienić go
na
.
hCard może zawierać następujące opcjonalne
pola:
- n – nazwisko,
- nickname – pseudonim,
- url – odnośnik do strony domowej,
- tel, adr, email – telefon, adres, e-mail,
- geo – współrzędne geograficzne, według standardu opisanego we wcześniejszym przykładzie,
- tz – oznaczenie strefy czasowej, photo, logo, sound – odpowiednio zdjęcie, logo organizacji i plik dźwiękowy z dodatkowymi informacjami (zwykle z nagranym nazwiskiem lub nazwą organizacji),
- title – tytuł lub stanowisko,
- role – zadanie wykonywane w firmie lub organizacji,
- org – organizacja,
- category – kategoria, np. obszar działalności
firmy (finanse, IT) lub powiązania organizacyjne,
- note – wszelkie dodatkowe informacje i komentarze,
- rev – data i czas utworzenia,
- uid – jednoznaczny, globalny identyfikator, zwykle w standardzie IANA,
- class – określa ograniczenia dostępu: public (publiczny), private (prywatny) lub confidential (poufny),
- key – klucz publiczny PGP, GPG lub S/MIME.
Część pól może zawierać złożone wartości.
Najbardziej skomplikowanym jest adr, na który
składają się:
- street-address – ulica wraz z numerem,
- locality – miejscowość,
- region – stan, land, województwo itp.,
- postal-code – kod pocztowy,
- country-name – kraj,
- postal-office-box – skrytka pocztowa.
Sam adres zaś przyjmuje jeden lub więcej
typów z poniższej listy. Wielkie litery oznaczają
wartości domyślne: INTL (międzynarodowy, czyli
zawierający nazwę kraju), dom (krajowy), POSTAL,
PARCEL (odpowiedni do dostarczania listów
i paczek), WORK, home (służbowy lub prywatny),
pref (domyślny – w przypadku kilku adresów jeden
z nich powinien nosić to oznaczenie).
Podobne oznaczenia stosujemy dla numeru
telefonu: fax, isdn, pcs (amerykański standard
komórkowy), video, pager, msg (poczta głosowa
lub inny system automatyczny), VOICE (głosowy),
bbs, modem, home (domowy), cell (komórkowy),
car (samochodowy), pref (domyślny). A także dla
adresu email: INTERNET, x400, pref.
Nawet nazwisko może być zapisane na różne
sposoby. Jeżeli pierwsze słowo jest zakończone
przecinkiem, zapis zostanie zinterpretowany jako
\”nazwisko, imiona\”. W przeciwnym razie, pierwsze
słowo oznacza imię, ostatnie – nazwisko, a wszystkie
pozostałe – ewentualne kolejne imiona.
Jak widać, hCard potrafi być całkiem złożony.
Pamiętajmy jednak, że większość pól jest opcjonalna,
do tego wiele z nich ma sensowne wartości
domyślne. Do napisania typowej wizytówki
umieszczonej na stronie lub w sygnaturce e-maila
wystarczy znajomość niewielkiej części specyfikacji
hCard. Zawsze można też posłużyć się jednym
z wielu generatorów.
Opisujemy zdarzenia
Komputerowa książka adresowa jest często
powiązana z kalendarzem. Programy typu PIM wymieniają
informacje o zaplanowanych zdarzeniach
w standardzie iCalendar, który również ma swój
HTML-owy odpowiednik: hCalendar.
Podobnie jak hCard, jest to bardzo złożony
format, ale do codziennego użytku wystarczy jego
niewielki podzbiór. Specyfikacja nie jest jeszcze
ukończona, dlatego niektóre rzadziej używane pola
iCalendar nie zostały nadal opisane.
Podstawowym elementem hCalendar jest zdarzenie,
czyli obiekt klasy vevent. Musi on zawierać
przynajmniej dwa pola:
- dtstart – początek zdarzenia,
- summary – krótki opis.
Opcjonalne pola to:
- dtend, duration – koniec zdarzenia lub czas
trwania,
- location – miejsce zdarzenia opisane słownie lub lepiej za pomocą hCard,
- organizer, contact, attendee – organizator, osoba kontaktowa, uczestnik (tu również jest zalecany format hCard),
- url – strona z dalszym opisem,
- geo – współrzędne geograficzne,
- category, uid – analogicznie jak w hCard.
O formacie zapisu daty i czasu w mikroformatach
przeczytasz w ramce.
Data i czas w mikroformatach
Data i czas we wszystkich mikroformatach są zapisywane zgodnie z ISO 8601. Specyfikacja, która to
określa jest długim i trudnym dokumentem. Jej główne założenia łatwo jednak da się streścić w kilku
punktach:
- Standard służy do zapisu daty, czasu lub obu wartości jednocześnie, w tym wypadku datę od czasu
oddziela litera T.
- Czas zawsze podajemy od najdłuższego przedziału (roku) do najkrótszego (ułamków sekundy), przy
czym dozwolone jest pominięcie dowolnej ilości przedziałów, ale zawsze od końca: 2008-03-23T12
lub 2007-11, ale nie 11-28.
- Liczba cyfr jest stała, w przypadku dat, godzin i minut jednocyfrowych dodajemy 0.
Separatorem daty jest myślnik, a czasu dwukropek, dozwolone jest ich pominięcie i zapis typu:
20051204T1208.
- Inny sposób zapisu daty wykorzystuje numer tygodnia w roku i numer dnia tygodnia: 2006-W03-5
(1 oznacza poniedziałek, 7 – niedzielę) lub numer dnia w roku: 2006-123.
-
Zaleca się dodanie na końcu oznaczenia strefy czasowej. Dla czasu uniwersalnego jest to „Z”, a dla
przesunięć w strefach czasowych „+” lub „–”.
Przykładowe zdarzenie wygląda więc następująco:
Spotkanie Grupy Użytkowników Mikroformatów
15 lutego 2008, 18:00
Kawiarnia Literacka
ul. Zielona 23,
Poznań
Więcej informacji
Inne zastosowania
A co z naszym przykładem sklepowym? Niestety,
obecnie nie ma jeszcze standardu opisującego
dane tego rodzaju. Celowo rozpoczęto od
formatów prostych w implementacji i najlepiej
pasujących do stron uznawanych za nowoczesne,
jak np. serwisy społecznościowe.
Jeżeli jednak mikroformaty się przyjmą –
a wszystko wskazuje na to, że stanie się tak
wkrótce – z pewnością zostaną wprowadzone
nowe, bardziej złożone standardy. Istnieją już
szkice mikroformatów opisujących takie dokumenty
jak recenzje produktów czy dokumenty CV.
Oczywiście stosowanie dodatkowych atrybutów
ma sens tylko wówczas, jeśli oprogramowanie
będzie w stanie je wykorzystać. Już dzisiaj
wiele nowych programów automatycznie dodaje
mikroformaty do generowanych stron, zaś do
tych, które są rozwijane od kilku lat (jak Drupal
czy WordPress), powstały odpowiednie wtyczki.
Sztandarowym przykładem jest Wikipedia, która
w ten właśnie sposób oznacza informacje.
Dodatki do przeglądarek, takie jak firefoksowy
Operator (http://www.kaply.com/weblog/operator),
rozpoznają nowe atrybuty i wywołują zdefiniowane
przez użytkownika akcje. Domyślne ustawienia
mikroformatów bardzo ułatwiają korzystanie z sieci,
np. po wykryciu rel-tag łatwo wyszukamy tak samo
opisane zdjęcia w serwisie flickr czy zakładki del.
icio.us. Z kolei hCalendar integruje się z sieciowymi
i tradycyjnymi programami typu PIM, a znaczniki
adresowe i geograficzne odsyłają do Google Maps.
Na tym jednak nie koniec. Obsługę mikroformatów
zapowiadają twórcy Internet Explorera 8, a na
początku marca obsługę nowych standardów zapowiedziało
Yahoo. Co prawda na temat wykorzystania
mikroformatów w swojej wyszukiwarce milczy
póki co Google, ale w powszechnej opinii jest to
tylko kwestia czasu. Szczególnie, że już od kilku
miesięcy odnośniki w programie Google Maps
oznaczane są za pomocą hCard.
Wszystko wskazuje więc na to, że mikroformaty
mają przed sobą wielką przyszłość. Szkoda byłoby
to przegapić.
Zobacz w sieci
http://microformats.org
Z tej strony dowiesz się wszystkiego
o mikroformatach i postępach prac nad
tym formatem
http://www.kaply.com/weblog/operator
Strona domowa wtyczki Operator dla
przeglądarki Firefox, która usprawnia obsługę
mikroformatów
http://tantek.com/microformats
hcard-creator.html
Generatory, takie jak hcard-o-matic,
ułatwiają wstawienie mikroformatów na swoją
stronę