O co chodzi w SW?

Zobowiązałem się (pod koniec poprzedniego wpisu) przybliżyć pojęcie Sieci Semantycznej i szczerze mówiąc bardzo szybko pożałowałem tej deklaracji. O takiej idei nie da się powiedzieć w konwencji bloga, czyli krótko, interesująco i wyczerpująco jednocześnie. Można wybrać albo drogę wizjonerską:

wyobraź sobie kuchenkę mikrofalową, która sama wie jak co podgrzać, wystarczy, że wkładając do niej jedzenie skanujesz identyfikator produktu (również lokalny, nadany np. przez Twoją lodówkę) a kuchenka już sama dowie się od lodówki co to za produkt i pobierze z serwera producenta żywności instrukcje przygotowania

albo pseudotechniczną:

uzupełnienie danych (w RDF) o ontologię (w OWL, czyli również RDF) umożliwia agentowi rozpoznanie ich semantyki, nawet wtedy, gdy agent nigdy wcześniej nie miał do czynienia z pojęciami opisywanymi w tych danych.

Oba sposoby mają swoje zalety i pewien potencjał poznawczy ale niestety żadna nie wyjaśnia o co tak naprawdę chodzi. Spróbuję więc może jakoś bardziej beletrystycznie...

problem

W Internecie jest mnóstwo informacji, z tym się chyba zgodzi każdy. A przynajmniej każdy inteligentny człowiek. Z punktu widzenia maszyny/programu/„agenta” okazuje się, że Internet jest pełen śmieci, wśród których informacji jest zaskakująco mało. Właściwie to prawie wcale nie ma tu nic interesującego. Niemal wszystko, co znajduje w Sieci człowiek, jest dla maszyny szczelnie ukryte pod warstwami języka ludzkiego, grafiki, multimediów i dokumentów w formatach najróżniejszych. Nawet taki wydawałoby się sprytny twór jak Google jest całkowicie bezradny w sytuacjach oczywistych i prostych dla człowieka. Np.:

  • Jak wyszukać książki o pisarzu, a nie jego autorstwa?
  • Czy dana substancja jest lekarstwem na jakąś dolegliwość, czy powoduje ją jako skutek uboczny?
  • Zakładając, że Ambroży jest ojcem Barnaby. Skąd wiadomo, że Barnaba jest synem Ambrożego? A może jest córką?

We współczesnym Internecie nie istnieje maszyna/program/„agent” potrafiący odpowiadać na takie pytania bez wspomagania i serii podpowiedzi ze strony człowieka. To wręcz żałosne, że po tylu latach rozwoju cywilizacji, przy tak gwałtownym i wydawałoby się spektakularnym rozwoju informatyki, przy takim rozkwicie znaczenia Internetu, nie potrafimy zrobić prostego programu odpowiadającego na proste pytania...

A dlaczego tak jest? Dlatego, że maszyna nie rozumie znaczenia danych czy tekstów, które znajduje w Sieci.

pomysł

Leaving aside the artificial intelligence problem of training machines to behave like people, the Semantic Web approach instead develops languages for expressing information in a machine processable form.

Tim Berners-Lee

Semantic Web Road map

Otóż to. Pomysł jest bardzo prosty — skoro agent nie potrafi zrozumieć informacji zawartej w danych publikowanych aktualnymi metodami, to trzeba wymyślić taki sposób opisu tych danych, żeby potrafił je zrozumieć. A przy okazji opis ten powinien być również zrozumiały i „strawny” dla człowieka, który przecież nadal będzie głównym konsumentem Internetu.

Zauważmy też jeden szczegół, który osobiście uważam za ważny — pomysł Sieci Semantycznej wyszedł od Tima B-L, tego samego, który wymyślił WWW. Stąd można przypuszczać (nie badałem czy faktycznie tak jest, ale lubię tak myśleć), że od początku tak właśnie miał wyglądać Internet — sieć danych (zrozumiałych zarówno dla człowieka jak i maszyny) a nie sieć dokumentów (zrozumiałych wyłącznie dla człowieka, a i to nie zawsze).

The Web was designed as an information space, with the goal that it should be useful not only for human-human communication, but also that machines would be able to participate and help.

tamże

sposób rozwiązania

W3C w ciągu ostatnich kilku lat zdołało opracować i opublikować kilka rekomendacji mających umożliwić realizację powyższego pomysłu. Pomijając różne stadia pośrednie i ewolucje (np. historia DAML, OIL, DAML+OIL) stos rekomendacji na dzień dzisiejszy przedstawia się następująco:

  • XML i XML Schema — składnia, struktura dokumentów i cały ten bajzel znany i kochany przez wszystkich,
  • RDF (Resource Description Framework)
    • RDF Model and Syntax — wyrażenia trójkowe (podmiot, predykat, obiekt) lub (zasób, cecha, wartość) opisujące zasoby lub obiekty identyfikowalne za pomocą URI,
    • RDF Vocabulary Description Language (aka RDF Schema) — zapis informacji o klasach obiektów, relacjach między nimi, zbiorach wartości, kolekcjach itp.,
  • OWL Web Ontology Language — zapis ontologii — definiowanie złożonych klas (poprzez opis zależności od innych klas) oraz właściwości obiektów; mechanizmy wnioskowania o klasach i obiektach,
  • SPARQL Protocol And RDF Query Language — język zapytań dla danych w RDF oraz protokół przesyłania wyników przez HTTP.

O każdym z powyższych można by się rozpisywać bardzo długo i namiętnie. Tym razem jednak nie o to chodzi, wiec zainteresowanych szczegółami odsyłam do tekstów rekomendacji...

W dwóch słowach tylko: RDF jest grafem (przede wszystkim grafem, nie XML-em!) umożliwiającym przedstawienie dowolnego wyrażenia o dowolnym zasobie. RDFS a jeszcze bardziej OWL nadaje tym danym znaczenie, czyli definiuje klasy pojęć i zależności między nimi. Język OWL umożliwia stworzenie reprezentacji wiedzy o tym czym jest dany obiekt i jak wyglądają jego relacje z innymi pojęciami zarówno w danej ontologii jak i poza nią. To może głupio brzmieć w takim skrócie, ale faktycznie jest tak, że ontologie OWL opisują semantykę pojęć, czyli dają agentowi możliwość „zrozumienia” o czym naprawdę jest mowa w danych, które analizuje.

Wszystkie (nie anonimowe) identyfikatory w RDF są zapisane za pomocą URI. URI to konstrukcja o dobrze zdefiniowanej składni, niepowtarzalna z założenia, wiec dlaczego nie miałaby być stosowana zarówno jako identyfikator zasobów jak i nazwa relacji między nimi? Nie oznacza to jednak, że zasoby, o których mowa, są lub kiedykolwiek będą dostępne w Sieci. Nawet jeśli dany URI to jest faktycznie URL. Równie dobrze można się za pomocą RDF wypowiadać o zasobach Sieci (np. specyfikacja RSS 1.0) jak i o żywych ludziach. Prosty przykład: plik przedstawiający parę słów o mnie (RDF po zserializowaniu do RDF/XML, wykorzystuje ontologię FOAF). Podobnie o Maurycym, jednym z moich kotów (RDF/XML, z wykorzystaniem ontologii FOAF i Pet).

konsekwencje i braki

Konsekwencje powyższego podejścia są dosyć poważne i niejednokrotnie zaskakujące. Generalnie chodzi o to, że odpowiednia reprezentacja danych i wiedzy umożliwia stworzenie mechanizmów wnioskowania, dla których przedstawione powyżej pytania nie są już tak strasznie trudne jak dla współczesnego przysłowiowego Google'a. Istnieje już sporo oprogramowania realizującego zadania Sieci Semantycznej i ma ono, jak każde oprogramowanie, mnóstwo problemów ze sobą samym i resztą świata. Problemy z oprogramowaniem to sedno Grzęzawiska, więc pewnie będę o tym wspominał jeszcze wielokrotnie...

Braków w całej idei SW jest oczywiście również sporo. Aktualnie najciekawsze to chyba przede wszystkim: zapis reguł (niezależnie od wnioskowania na podstawie OWL) oraz przekazywanie zaufania do źródeł danych, ontologii i samych mechanizmów wnioskujących.

i jeszcze słowo dla zdezorientowanych

Jak widać z powyższego pojęcie Semantic Web ma się nijak do pojęcia Web 2.0. Wbrew komentarzom na tym i innych blogach nie należy tych pojęć mylić. Uważam, że obie idee mogą i powinny współpracować, jednak meandry relacji między nimi to temat na zupełnie inny wpis. Albo i kilka wpisów. Jednym zdaniem można chyba powiedzieć tak: Web 2.0 to traktowanie Internetu jako platformy; Sieć Semantyczna skupia się na reprezentacji wiedzy i stworzeniu sieci danych mających znaczenie. I tyle.

Komentarze

#1 | 2005.12.05 18:47 | Marcin Sieńko

A czy mógłbyś krótko napisać, co w tej chwili może z tego mieć przeciętny użytkownik, posiadacz strony domowej, bloga? Jakie narzędzia już istnieją? Jakie technologie już teraz warto wykorzystać? Słowem -- czy w jakimś stopniu sieć semantyczna wyszła już poza piaskownice informatyków?

#2 | 2005.12.05 23:48 | Domel

Genialny tekst. Wreszcie przeczytałem wypowiedz człowieka, który rozumie o czym pisze. I to chyba jedynego w Polsce jeśli chodzi o standardy...
Tylko mam kilka uwag:
1. Nie od Tima wyszedl pomysł SW ale faktycznie on to mocno wspiera. (w zasadzie to nie istotna uwaga ale skoro juz pisze to i o tym wspomnę :) )
2. Wspomniałes o XML Schema, ja bym to uszczegółowił i napisał XML Schema Part 2: Datatypes, to bardzo istotne bo Ci bardziej zaawansowani mogli by dojść do wniosku, że można to zrealizować np za pomocą RELAX NG co nie jest prawdą.
3. Wspomniałeś o tym ze jest grafem i nie koniecznie XML-em. To prawda ale myśle, że tutaj trzeba to rozwinać bo ktoś niezorientowany może sie lekko zdziwić. Nie należy przeciwstawiać grafu z XML-em. Poprostu RDF jest to koncepcja grafu realizowana za pomocą róznych metod. Jedna z nich jest postac RDF/XML (i właśnie ona jest najbardziej istosta w ogóle i w kontekście SW). Ale oczywisie są inne np N-Triples.
4. Do "stosu rekomendacji" warto dodać jeszcze SOAP. Oczywisie nie zawsze musi wystąpić (tak jak z resztą te wymienione przez Ciebie) ale są dwa duże bardzo zaawansowane projekty ktore właśnie koncepcje SW realizują przez SOAP, który idealnie sie do tego nadaje (bo przy projektowaniu był położony na to nacisk).
5. Napisałeś "RDFS [...] nadaje tym danym znaczenie, czyli definiuje klasy pojęć i zależności między nimi." Tutaj jednak troche się mylisz. Prawdziwe założenie RDFS to uzupełnienie RDF o własności i kontenery (mimo, że niektore z nich są dostępne z poziomy RDF). RDFS poprostu to krok do stworzenia definicji słownika. To oczym napisałes pasuje do ontologii.
6. Piszesz o brakach w ideii SW ale w zasadze, żadnych nie podajesz. W sumie to się nie dziwie bo chyba ich poprostu nie ma :) . Jedyna rzeczy, która może nieść jakieś negatywne cechy to chyba tylko "zaspamowanie" słowników (ale jak dotąd nikt nie wymyślił jak taki problem rozwiazać jeśli wogóle sie da).
7. Wspomniał, bym również o tym jakie wsparcie WS i ogólnie cała rodzina aplikacji RDF ma w XHTML 2.0. To bardzo istotne szczególnie w kontekście tego, że masz nadzieje na rozpowszechnienie się tej ideii. To jest bardzo ważna nitka w XHTML 2.0, nad którą spędzilismy bardzo dużo czasu i wygląda na to, że wspardzie jest już niemal 100%. I warto wspomnieć, że to nie tylko współpraca ale to już ociera sie o definicje - czyli raczej koegzystencja.
8. Nie napisałeś również nic ze SW ma badzo wielu przeciwników, konkurentów w postaci innych formatów takich jak: RSS 2.0 (zamiast RSS 1.0), czy całe ten chory projekt Microformats (najbardziej znane "wynalazki" tego to XFN, nie tak groźny jednak nic dobrego też nie wnosi lub geo lub hCard, który jest już jawnie pogwałceniem wszelkich zasad).

#3 | 2005.12.06 08:14 | MiMaS

Domel, po kolei, nie wszystko na raz — wpis jest zatytułowany „o co chodzi” i jako taki jest wstępem, tak?

Nie od Tima wyszedl pomysł SW

A od kogo?

Nie należy przeciwstawiać grafu z XML-em.

Chodziło mi o to, żeby nie myśleć o RDF jako o XML i to jest ważne. RDF/XML, mimo ze to oficjalny standard, to tylko jedna z wielu możliwych form zserializowanych. Zresztą forma nie najlepsza, niektórzy wręcz twierdzą, że beznadziejna. Natomiast oglądając pobieżnie różne przykłady można wyciągnąć wniosek, że RDF to kolejne zastosowanie XML-a. To jest zbyt duży skrót myślowy... Stąd ta uwaga w nawiasie.

"RDFS [...] nadaje tym danym znaczenie, czyli definiuje klasy pojęć i zależności między nimi." Tutaj jednak troche się mylisz. [...] To oczym napisałes pasuje do ontologii.

I dlatego właśnie napisałem „a jeszcze bardziej OWL”. Oczywiście zgadzam się z tym co mówisz o RDFS, ale jeśli pozostawisz w moim zdaniu OWL (ontologie właśnie!) to będzie ono poprawne. Nawiasem mówiąc — wycinasz ze zdania sedno sprawy, a potem mówisz, że to, co zostało, nie ma sensu. Ładnie to tak? ;-)

Piszesz o brakach w ideii SW ale w zasadze, żadnych nie podajesz. W sumie to się nie dziwie bo chyba ich poprostu nie ma

Chodziło mi raczej o braki implementacji, nie idei jako takiej. Źle to wyraziłem. Te ”braki” to oczywiście problem zdefiniowania i przekazania między agentami zaufania do źródeł danych i ontologii, oraz problem z regułami. Pierwsza z tych spraw jest nierozwiązana w ogóle, a druga spowoduje najprawdopodobniej rozpad „stosu” rekomendacji na „dwie wieże”. Wydaje mi się to poważne i dlatego właśnie ośmielam się to nazywać „brakami”.

Nie napisałeś również nic ze SW ma badzo wielu przeciwników, konkurentów

To prawda. Tyle, że nie nazywałbym tego przeciwnikami ani konkurencją. Niektóre z tych pomysłów to próbowanie wymyślenia na nowo czegoś, co już zostało wymyślone, inne to po prostu nieporozumienia. Myślę, że najczęściej pomysły tego typu wynikają z niecierpliwości ludzi i równocześnie względnie powolnego postępu Sieci Semantycznej... Zresztą to temat na całkiem osobne rozważania.

#4 | 2005.12.06 08:54 | MiMaS

A czy mógłbyś krótko napisać, co w tej chwili może z tego mieć przeciętny użytkownik, posiadacz strony domowej, bloga?

Jeżeli dobrze rozumiem słowo „przeciętny”, to obawiam się, że w tej chwili niewiele. Dopóki Sieć Semantyczna nie zacznie działać na szerszą skalę, dopóki nie rozpowszechnią się agenci korzystający z jej zasobów, pozostaje to nadal zabawka programistów. Istnienia SW na razie nie odczuje przeciętny autor bloga. Zresztą w ogóle nie o to chodzi żeby odczuł...

Nie zmienia to jednak faktu, że pomysły stworzone na potrzeby Sieci Semantycznej są używane w najróżniejszych programach już dziś. Przykład: RDF w Mozilli, Adobe XMP, licencje CC w postaci RDF, ... itd. itp. No i oczywiście należy pamiętać o najróżniejszych zastosowaniach, które wyrosły na podstawie pomysłów SW choć się później wyłamały z jej ram — najbardziej spektakularny przykład to oczywiście RSS.

Zresztą to też temat na osobny wpis...

#5 | 2005.12.06 09:02 | MiMaS

A jeszcze jedno — można oczywiście powiedzieć, że zyskiem z istnienia SW dla przeciętnego internauty jest np. FOAF — informacje o ludziach i ich znajomościach w postaci strawnej dla agentów SW. Tylko szczerze mówiąc podobny efekt można uzyskać bez wielkich mechanizmów SW, więc jako poważny przykład wydaje mi się to trochę naciągane...

#6 | 2005.12.06 09:14 | Domel

"A od kogo?"
Od Dave'a Becketta, wiesz w zasadzie to ja nie jestem zwolennikiem stawiania tak sprawy ze cos wyszło od kogoś. Bo na dobra sprawe to prace nad tym były prowadzone na róznych uniwersytetach równocześnie.
"Nawiasem mówiąc — wycinasz ze zdania sedno sprawy, a potem mówisz, że to, co zostało, nie ma sensu. Ładnie to tak? ;-)"
:-D no tak. Ale wiesz w zdaniu, w którym opisujesz ontologie zaplątał się niechcący RDFS ;-) . Oczywisie zdanie gdyby dotyczylo _tylko_ ontologii bylo by calkowicie poprawne. Ale myśle, że należy się czytelnikom którtkie zdanie wyjaśniające co to jest RDFS.
"Te ”braki” to oczywiście problem zdefiniowania i przekazania między agentami zaufania do źródeł danych i ontologii"
CO do pierwszego braku to sie zgadzam. O tym właśnie mowiłem pisząc "zaspamowanie słowników". Drugi absolutnie nie. Właśnie kończe prace jesli sie uda to kiedys Ci ją podeśle.

#7 | 2005.12.06 09:18 | Domel

MiMaS:
"Tylko szczerze mówiąc podobny efekt można uzyskać bez wielkich mechanizmów SW, więc jako poważny przykład wydaje mi się to trochę naciągane..."
Z tym się nie moge zgodzić. Na dzień dzisiejszy nie istnieje nic co by mogło doruwnać RDF-owi chociażby w zastosowaniu FOAF. Poczawszy od semantyki, poprzez strukture aż po zapytania.

#8 | 2005.12.06 09:33 | MiMaS

Nie istnieje, fakt. I ta sytuacja się pogłębia, ponieważ FOAF idealnie wręcz nadaje się do demonstrowania innych związanych z SW technologii, np. zapytania via SPARQL. ;-)

Ale serio uważasz, że nie dało by się, tak teoretycznie, wymyślić FOAF-a inaczej, jako nie-RDF? Chodzi mi o coś analogicznego jak się stało z RSS 2.0, który w przeciwieństwie do RSS 1.0 nie jest RDF-em. Wydaje mi się, że trudno się upierać, że FOAF jako pomysł, jest możliwy tylko i wyłącznie dlatego, że istnieje SW...

#9 | 2005.12.06 17:15 | Domel

MiMaS: Znaczy wiesz, wszytko można tylko pytanie kiedy, jakim kosztem i po co? Sam wcześniej napisałeś, że jedynym z powodów dla którego powstały takie gnioty jak Microformatsy było to, że ludzie gładni są SW juz teraz. A skoro tak po po co wymyślać nowy jezyk a'la RDF, do niego być może nowe typowanie, ontologie, jezyk zapytań, może jakiś zespół protokołów? Przecież to jest robota na 5 lat (przy sprzyjających wiatrach) a i tak efektem bedzie jezyk, który nie bedzie miał wsparcia w aplikacjach w biblotekach i pewnie przez przez kolejne długie lata by nie miał jako coś nie XML-owego. A tak juz na marginesie to FOAF wcale nie jest takim dobrym kontererem.
Co do RSS 2.0 to juz nie raz sie na temat gego badziejstwa wypowiadałem więc nie będę się powtarzał :-) Powiem tylko jedno, tak to też jest XML (nie mylić z aplikacja XML-a bo nią nie jest) ale co z tego? OK z automatu mamy parsowanie, ale o reszte trzeba zadbać samemu. Pytanie po co? Skoro możemy to uszczegółowić przy jednoczesnym nie pozbawianiu możliwości do aplikacji (XML/)RDF-a.

#10 | 2005.12.06 19:49 | Marcin Sieńko

Przez przeciętnych rozumiem takich, którzy używają sieci i oprogramowania, a niekoniecznie je tworzą. A zastosowania rodzą się jak widzę powoli.

Swoją drogą CC jest dobrym przykładem tego, jak jak wprowadzać takie rozwiązania. Od samego początku zakładali trzy wersje licencji: dla prawników, dla normalnych ludzi i dla maszyn. I dzięki temu udostępniając swoje teksty na licencji CC, współtworzę sieć semantyczną, nawet o tym nie wiedząc. ;) I o to właśnie chodzi. Wystarczy odrobina dobrej woli, przeklejenie fragmentu kodu ze strony CC, ewentualnie plugin do Firefoxa wyświetlający informację o wykorzystywanych licencjach -- i wszystko działa.

Cóż, ja szary człowieczek czekam na dalsze konkretne zastosowania. Na przykład z chęcią zobaczyłbym możliwość precyzyjniejszego tagowania tekstów -- takiego, które pozwoliłoby wyszukiwarkom na przykład na odróżnienie publikacji naukowej od publicystyki. Albo taki powszechnie uznawany, w pełni przenośny format zapisywania danych z książki adresowej...

Dzięki za te wpisy. Czekam na więcej, bo bardzo sympatyzuję z ideą SW.

 

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.