Agregacja treści w praktyce

Oto jak zostałem hydraulikiem...W związku z pomysłami na nowe przedsięwzięcie w czasie minionego długiego weekendu postanowiłem przyjrzeć się dokładniej możliwościom narzędzi do agregacji informacji rozsianej w sieci. Nie, nie, nie mam tu na myśli zwykłych agregatorów RSS, mówię tu o narzędziach nazwijmy je drugiej generacji, które umożliwiają bardziej aktywne pobranie, przetworzenie i agregowanie informacji.
Traktowanie Internetu jak bazy danych (web as a database) nie jest koncepcją zupełnie nową, jest o niej jednak coraz głośniej od czasu premiery Yahoo Pipes i moim zdaniem ma ona prawdziwe szanse aby stać się nowym megatrendem w Internecie (oczywiście gdy zblednie blask bańki web2.0). Myślę tu o zjawisku które doprowadzi nie tylko do ewolucji sposobów funkcjonowania aplikacji webowych ale także spowoduje ewolucję modeli biznesowych stojących za tymi aplikacjami. Problemów do rozwiązania oczywiście nadal jest sporo, ale mam wrażenie że coraz mniej z nich ma charakter techniczny, raczej są to już kwestie regulacji prawnych związanych z prawami własności intelektualnej dla agregowanych informacji.

To tyle tytułem wstępu czas przejść do części praktycznej…

Yahoo Pipes

Po premierze Yahoo Pipes Tima O’Reilly na swoim blogu nazwał tę usługę krokiem milowym w rozwoju Internetu. Czy ta euforia jest uzasadniona? Częściowo chyba tak, ergonomia tego narzędzia jest miażdżąca. Oto mamy możliwość programowania wizualnego zrealizowaną całkowicie w przeglądarce, żadnych pluginów tylko stary dobry (i ostro zaawansowany) JavaScript. Przyznam, że zaglądając w trzewia YP po raz pierwszy od dłuższego czasu dopadła mnie myśl ‘kurcze jak oni TO zrobili’. Bądź co bądź połączenia miedzy operacjami są kreślone Bezierami całkowicie za pomocą JS - Kudos!
Jak wyglądają możliwości Yahoo Pipes w starciu z realnym problemem? Za pomocą kilku kliknięc zbudowałem rurkę, która pobiera newsy dotyczącego Rubego z serwisu dzone.com i rubyinside.com łączy je razem i porządkuje. Dodatkowo tytuły newsów są rozszerzane o informację z jakiego serwisu pochodzi dany news. Chciałem jeszcze dodatkowo pobierać informację o popularności danego newsa z del.icio.us ale niestety tu poległem. Aby pobrać informacje o linku delicious trzeba posłużyć się wartością MD5 wyliczoną dla URLa, a nie udało mi się znaleźć serwisu liczącego hasha i zwracającego wynik jako RSS czy JSON :(
Rurka jest dostępna pod adresem: http://pipes.yahoo.com/pipes/pipe.info?_id=ZFz9kPT82xG8wSR3YEsBXw

Zalety

  • wszystko działa w przeglądarce
  • bardzo intuicyjny interfejs użytkownika
  • spore możliwości przetwarzania danych: filtrowanie, zamiana, dodawanie
    atrybutów, regexp itd

Wady

  • brak wsparcia dla ekstrakcji danych ze stron html
  • brak możliwości zabezpieczenia utworzonej rurki (czyli nie można np zbudować
    bezpiecznej rurki tworzącej RSS z maili jakie przyszły na nasze konto)
  • czasem występują błędy uniemożliwiające np zapisanie rurki!
  • brak obsługi kanałów RSS które zabezpieczone są hasłem

Podsumowanie
Interfejs za pomocą którego tworzy się rurki jest niemal perfekcyjny tu nie ma się do czego przyczepić. Po poznaniu bliżej dostępnych możliwości, przyszło mi do głowy, że gdyby BabelFish (dostępny rzecz jasna w YP) dawał możliwość tłumaczenia na język polski część z tuzów naszej blogosfery miała by znacznie więcej wolnego czasu do dyspozycji ;> W samym narzędziu brak mi natomiast większych możliwości korzystania ze źródeł informacji, która nie jest w postaci już ustrukturalizowanej. Samo dodanie prostej ekstrakcji zawartości za pomocą XPath byłoby już świetnym rozszerzeniem. Inna przydatną funkcją byłaby możliwość parametryzowania rurki za pomocą parametrów przekazywanych w URL (choć można to dosyć prosto zasymulować).
Podsumowując Yahoo Pipes to super narzędzie do agregowania informacji w dosłownym rozumieniu - zbieram informacje z wielu kanałów RSS filtruję, łączę i przedstawiam jako publicznie dostępny kanał RSS.  Więcej o planach rozwoju Yahoo Pipes mówi jeden z autorów Pasha Sadri w tym wywiadzie

Dapper

Dapper jest nastawiony na analizę i ekstrakcję danych z treści stron WW. Serwis sporo się zmienił od czasu swej premiery, mam wrażenie że na lepsze. Tworzenie modelu danych z zawartości strony jest teraz całkiem przyjemne i efektywne. Całość odbywa się w kilku krokach, zaczynamy od podania kilku stron do analizy, następnie wskazujemy które miejsca na stronie zawierają potrzebne dane i tworzymy z nich pola naszego modelu. Tak w ciągu kilku chwil strona www zamienia się w ustrukturalizowane dane. Jednym słowem web as a database comes true. Krążące po sieci plotki sugerują, że właśnie dapper chce być pierwszą firmą która stworzy i wdroży model biznesowy oparty na pośrednictwie w udostępnianiu treści ze stron jako czystych danych np. jako API.
Wyniki mojej zabawy z dapperem są poniżej. Jest to widget zawierający newsy wyciągnięte ze strony news.ycombinator.com. Strona ta nie posiada RSS więc dopiero zdapperowanie jej zawartości dało możliwość korzystania z niej jak z kanału RSS. Cała operacja zajęła może z 5 minut.
Aktualizacja: news.ycombinator.com posiada klasyczny kanał RSS. Opierałem się na swoich spostrzeżeniach sprzed kilku miesięcy wówczas RSS byl na TODO list tylko…

 Add to your site   powered by Dapper 

Zalety

  • dopracowany website,
  • przejrzyste i ergonomiczne UI narzędzia do ekstrakcji treści,
  • spore możliwości modelowania danych tworzonych z wyciągniętej zawartości,
  • duża liczba wyjściowych formatów.

Wady

  • brak możliwości dodania np. logowania przed dostępem do zawartości która ma
    być przetworzona

Podsumowanie
Dapper świetnie nadaje się do rozbudowy możliwości Yahoo Pipes. Dane wyciągnięte za pomocą dappera można z powodzeniem wrzucić do zaprojektowanej rurki obchodząc ograniczenia YP o których już wspominałem.

Open Kapow

Open Kapow to ostatnie narzędzie którego możliwości sprawdzałem. Pozwala zarówno na analizę zawartości
stron jak i danych w formacie RSS. Jednocześnie jako jedyne wymaga wcześniejszego pobrania i zainstalowania programu w którym tworzy się ‘roboty’ wykonujące analizę i agregację danych.
Czy to jest wada? Moim zdaniem nie, możliwości jakie daje takie podejście są nieporównywalnie większe od podejścia opartego tylko na wykorzystaniu przeglądarki jako narzędzia projektanta. Program do tworzenia i testowania robotów to właściwie całe kompletne IDE (wyposażone m.in. w debugger!) pozwala w spokoju lokalnie przetestować tworzonego robota aby po zakończeniu opublikować go na serwerze.
Tym razem moje zabawy ograniczyły się do psucia robotów innych autorów. Szczególnie pastwiłem się nad tym robotem - realizuje dokładnie to co chciałem sam osiągnąć. Loguje się do konta Gmail i przegląda zawartość skrzynki pocztowej zwracając maile w postaci XML. W komentarzach inni użytkownicy piszą, że Google blokował im konta z powodu naruszania regulaminu - ja testowałem działanie robota w IDE i nie było żadnych problemów. Poniżej snapshot prezentujący IDE w akcji.

OpenKapow IDE

Zalety

  • praktycznie nieograniczone możliwości (w tym np ekstrakcja danych z PDF,
    CSV, Excela),
  • możliwość wykupienia całego rozwiązania serverside które służy jako
    środowisko do uruchamiania robotów,
  • rozwiązanie rodem z Europy (jak widać innowacje rodzą się nie tylko w słońcu
    Kalifornii :)

Wady

  • roboty tworzy się w zewnętrznej aplikacji,
  • website sprawia wrażenie niedopracowanego,
  • rozwiązanie rodem z Europy ;)
  • serwer uruchamiający roboty działa wooolno,
  • korzystanie z RobotMakera wymaga już pewnego technicznego zacięcia - ale
    jako osobie z drugiej strony trudno mi to ocenić precyzyjnie.

Podsumowanie
Trudno oprzeć się wrażeniu, że jedyne czego brak temu rozwiązaniu to marketingowy buzz. Ogromne możliwości są trochę ukryte za przeciętnym websitem i barierą wejścia: ‘eee trzeba coś ściągać i instalować’. Warto oddać, że to jedyne z rozwiązań, które jest wprost gotowe do zastosowań na rynku enterprise. Ciekawym jest fakt, że zaprojektowany robot zapisywany jest w postaci pliku XML - teoretycznie więc dałoby się zbudować opensource’owy silnik to uruchamiania robotów projektowanych w RobotMakerze (nie wiem co na to licencja).

Zakończenie

Technologia już jest. Może nie zawsze jest w 100% niezawodna ale bez porównania jest to ogromny postęp od czasów pobierania stron i ich parsowania regexpami w Perlu czy później z użyciem Coocona. Moim zdaniem jest to już grunt do budowania rozwiązań które mają znamiona biznesu, a które oparte będą całkowicie na danych czy usługach oferowanych np. przez opisane tu serwisy. Powoli nadchodzą czasy gdy mashup nie będzie oznaczało niemal wyłącznie aplikacji w której oglądamy punkty rozsiane na Google Maps…
Testowane przeze mnie narzędzia to z pewnością nie wszystko co oferuje sieć, wiem jeszcze o serwisach: Teqlo, Coghead być może w wolnej chwili przetestuję także i ich możliwości.

[]
Spodobało się? Podziel się z innymi: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • Wykop
  • Gwar
  • Digg
  • Technorati

Liczba komentarzy: 5 »

  1. Yelonek said,

    maj 8, 2007 @ 21:27

    Od jakiegoś czasu myślę o tym, żeby zrobić RSSa który wyłapywałby słowa kluczowe z RSSa z Wykopaliska i dodawał tylko te Wykopy, które zawierają te słowa. Próbuję to zrobić przy pomocy Yahoo Pipes, ale chyba jakiś ciemny jestem, bo nie rozumiem jak używać tych modułów. Może mi podpowiesz?

  2. daniel said,

    maj 8, 2007 @ 22:05

    Nie wiem czy dobrze zrozumiałem Twój cel ale wyklikałem takie coś: http://pipes.yahoo.com/pipes/pipe.info?input=pipes&_id=wLyPQp792xGICTDoJhOy0Q&_run=1 to oczywiście skrajnie uproszczony przykład ale chyba daje pojęcie co i jak.

  3. Yelonek said,

    maj 9, 2007 @ 14:09

    Ja też do czegoś takiego doszedłem, ale co dalej? Jak znaleźć wszystkie wiadomości na temat robotów?

  4. daniel said,

    maj 9, 2007 @ 16:32

    Nie będziemy tu mielili o tym, dawaj na priv może dowyjaśnimy sobie problemy (daniel at jarmark)

  5. daniel said,

    maj 10, 2007 @ 13:34

    Po ustaleniach z Yelonkiem okazało się, że Yahoo Pipes nie bardzo sobie radzi pod Operą. Dla mnie to troche zaskakujące…

RSS feed for comments on this post · Adres TrackBack

Dodaj komentarz