Po co komu RDF?

Spotykam się od czasu do czasu z zarzutem, że przedstawianie informacji w postaci grafów RDF nie ma wiele sensu. A przenoszenie informacji z relacyjnej bazy danych do modelu RDF to już w ogóle jest jakimś nieporozumieniem. Faktycznie jeżeli chcemy korzystać z jakiegoś zasobu informacji wyłącznie jako ze zbioru danych o określonej strukturze i ustalonym przeznaczeniu to nie ma sensu zapisywać ich w RDF — do tego służą bazy danych i od lat radzą sobie doskonale. Jednak przedstawienie danych w postaci grafu RDF otwiera drogę do wielu ciekawych zastosowań, które w przypadku klasycznej bazy danych są trudne lub wręcz niemożliwe do zrealizowania, np.:

  • Dane zapisane w postaci RDF można połączyć z danymi pochodzącymi z zupełnie innych zbiorów i posiadającymi zupełnie inną (może wręcz nieznaną) strukturę wewnętrzną. Na przykład łączyłem kiedyś dane o osobach z plików FOAF, z zakładkami del.icio.us i kanałem RSS bloga. A innym razem dane teleadresowe z komórki i programu pocztowego łączyłem z kalendarzem.
  • Do grafu RDF można dodawać dowolne informacje i dane o dowolnej semantyce. Wystarczy tylko opisać je trójkami (podmiot, predykat, obiekt). A przecież w ten sposób da się powiedzieć praktycznie cokolwiek o czymkolwiek.
  • Skoro struktura RDF jest tak prosta niezależnie od danych jakie przechowuje, to wymiana informacji między dowolnymi aplikacjami operującymi na RDF jest wręcz banalna. W przedstawianych tutaj od jakiegoś czasu przykładach używam zamiennie różnych narzędzi (cwm, Jena, ARQ) czy różnych edytorów operując właściwie stale na tych samych lub zupełnie podobnych danych. Z tego samego powodu np. programu IsaViz nie interesowało, że obrabiam nim akurat kanał RSS 1.0 tego bloga, mimo iż teoretycznie są to dane przeznaczone dla zupełnie innego typu programów.
  • Dane w modelu RDF mogą być uzupełniane automatyczne w procesie wnioskowania na podstawie wiedzy zapisanej w wykorzystywanych ontologiach. Dzięki temu w danych jest faktycznie więcej informacji niż zostało tam powiedziane wprost.
  • RDF to format z definicji „sieciowy” i rozproszony — wyrażenia w jednym modelu mogą dotyczyć zarówno danych lokalnych, jak i zasobów umieszczonych lub opisanych gdziekolwiek w Sieci, a odwołanie do nich odbywa się w ten sam sposób niezależnie od tego czy graf jest lokalny czy zdalny.

I pewnie jest jeszcze parę innych możliwości, które mi w tej chwili nie przyszły do głowy. ;-) A przy tym wszystkim nadal można RDF stosować jako lokalny zbiór zasobów o ustalonych klasach i relacjach, czyli analogicznie jak relacyjną bazę danych (zapewne o nieszczególnie wydajnej strukturze, ale jednak).

Można też na problem spojrzeć tak: graf trójek jest uniwersalnym schematem danych. Tym bardziej, że serializacja RDF-a jest rzeczą wtórną, a przechowywanie zupełnie osobną — RDF może być przechowywany w relacyjnej bazie danych i jak najbardziej ma to sens. Byleby graf pozostał grafem...

Komentarze

Brak komentarzy do tego wpisu.

 

Uwaga: Ze względu na bardzo intensywną działalność spambotów komentowanie zostało wyłączone po 60 dniach od opublikowania wpisu. Jeżeli faktycznie chcesz jeszcze skomentować skorzystaj ze strony kontaktowej.