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