Wrapper Suite Programmable Internet Information Retrieval based on HTML structure & contents Igor Berta, Andrej Janžo, Michal Jemala, Peter Kasan, Peter Sýkora, Vojtech Szöcs Vedúci projektu: Mgr. György Frivolt Názov projektu: Analýza textov pracovných ponúk z prostredia webu Kontakt: TeamProject10@yahoogroups.com Fakulta Informatiky a Informačných Technológií, STU 13. jún, 2006
Obsah Motivácia a úvod Architektúra Implementácia Reprezentácia programu Akcie a interpretácia Zápis do cieľových prostredí Implementované nástroje Hlavné vlastnosti produktu Námety na ďalší rozvoj
Motivácia a úvod Získavanie dát z Webu Vývoj Webu a potreba efektívnej práce s informáciami Neštruktúrované vs Štruktúrované dáta Automatizácia procesu
Motivácia a úvod Hlavné problémy Prakticky neexistujúci popis prezentovaných informácií prostredníctvom metadát Tvorcovia Web IR nástrojov sú zatiaľ odkázaní na HTML štruktúru a obsah web stránok Potreba transformácie nesprávne štruktúrovaných stránok
Motivácia a úvod Web IR nástroje Obaľovače (wrappers) Programovateľné automatizované zberače informácií z Webu Statické vs Adaptívne obaľovače Hlavné problémové oblasti Navigácia Extrakcia Uloženie do cieľového prostredia
Architektúra
Architektúra
Architektúra Parser programu obaľovača Obaľovač je opísaný ako XML súbor Transformácia XML súboru obaľovača do vnútornej reprezentácie (programu) Akcie a ich atribúty Prechody medzi akciami (tok riadenia) Premenné a vstupné parametre
Architektúra Parser: príklad <Wrapper> <Actions> <Action name="" type=""> <Attribute name="" type="">value</Attribute> ... </Action> </Actions> <Transitions> <Transition src="" dst=""/> ... </Transitions> <Variables> <Property name="" type="">value</Property> ... </Variables>
Architektúra
Architektúra Výkonná časť (interpret) Možnosť nastaviť externé vstupné parametre Definícia cieľových prostredí pre zápis údajov Spustenie prvej akcie Štartovacia akcia prevezme kontrolu nad tokom riadenia a volá svoje detské akcie Stav obaľovača reprezentovaný kontextom Úložisko dokumentov, premenných, cookies ... Dynamická zmena kontextu počas vykonávania akciami obaľovača
Reprezentácia programu Koncepcia programu obaľovača Akcie → elementárne výkonné jednotky, ktoré pracujú nad kontextom obaľovača Kontext → aktuálny stav, v ktorom sa nachádza vykonávanie daného obaľovača Strom akcií Koreň reprezentuje štartovaciu akciu programu (začiatok toku riadenia) Každá akcia má 0 až N priamych nasledovníkov (konkrétny počet závisí od typu akcie) Typ akcie definuje parametre (atribúty) akcie
Reprezentácia programu Obsah kontextu Dokumenty (W3C DOM štruktúra) Premenné Výstupné objekty Zvyšné potrebné údaje Prihlasovacie údaje Cookies
Reprezentácia programu DOM dokumenty Zoznam dokumentov, z ktorých každý je identifikovaný svojím unikátnym menom Lokalizácia uzlov pomocou XPath a regulárnych výrazov
Reprezentácia programu Premenné Slúžia na parametrizáciu akcií Každá premenná má unikátne meno Príklad: Parameter navigačnej akcie: URL: http://www.searchengine.tld/search?q=${ProductName} Premenné v kontexte: $Variable1 = value1 $ProductName = Processor $Variable2 = Value of Var1 is ${Variable1}
Reprezentácia programu Výstupné objekty Vytvárajú ich extrakčné akcie Sú priebežne posielané modulu pre tvorbu výstupu (akcia typu WriteObject) Charakter stromovej štruktúry (DOM) Každý výstupný objekt má unikátne meno Príklad: Nasledujúci výstupný objekt bol vytvorený tromi extrakciami do objektu JobOffer, s cestami: /@date, /Title, /Industry
Akcie a interpretácia Kategórie akcií Navigačné akcie Extrakčné akcie LoadPage FollowLink Extrakčné akcie ExtractData Iteračné akcie ForEachTag DoWhileNextLink DoAllBranches Pomocné akcie WriteObject Jednoduché (simple) akcie, ktoré vykonajú jediného svojho nasledovníka a skončia
Akcie
Akcie a interpretácia Príklad: Akcia A (typu DoAllBranches) vykoná všetky vychádzajúce vetvy sekvenčne. Akcie F,G,H budú vykonané pre každý nájdený uzol v dokumente akciou E (typu ForEachTag).
Akcie a interpretácia Spracovanie chýb Chyby vzniknuté zlyhaním akcie (napr. pri extrakcii sa nenájdu požadované dáta) Akcia má 2 handlery pre obsluhu chybových stavov Spracovanie vlastnej chyby Spracovanie dodanej chyby od nasledujúcej akcie
Akcie a interpretácia Príklad spracovania vzniknutej chyby 8. Akcia A dodanú chybu ignoruje, pretože gotErrorHandler je typu IgnoreContinue 1. Úspešne sa načíta požadovaná stránka 7. B vráti dodanú chybu akcii A 2. Akcia A spustí akciu B 3. Úspešne sa extrahujú požadované údaje 6. C vráti chybu akcii B 4. B spustí C 5. Akcia C zlyhá, pretože na stránke sa nenachádzajú požadované údaje. Kvôli ownErrorHandler-u typu ReturnBack vráti chybu predchádzajúcej akcii.
Zápis do cieľ. prostredí
Zápis do cieľ. prostredí Tvorba výstupu Doménovo nezávislé štruktúrované výstupné objekty Výstup podľa definície cieľových prostredí (parameter výkonnej časti) Transformácia naplnených výstupných objektov do formy vhodnej pre definované prostredia Aktuálne podporované cieľové prostredia Konzola (ladenie) XML súbor Ontologické úložisko Sesame
Zápis do cieľ. prostredí Oddelenie obaľovača od cieľového prostredia Zapisovače do cieľových prostredí implementujú generické rozhranie
Zápis do cieľ. prostredí XML dokument Serializácia výstupných objektov (DOM) do XML Ontologické úložisko Transformácia výstupného objektu pomocou RDF/XML šablóny Využitie objektovo-ontologického mapovača pre danú doménu
Implementované nástroje WrapperDesigner Grafické rozhranie (GUI) pre vytváranie obaľovačov s podporou interpretácie a ladenia Wrap Nástroj pre interpretáciu obaľovačov z príkazového riadku Vhodný pre dávkové spracovanie Pokročilý ladiaci mód (body zastavenia)
Hlavné vlastnosti produktu Robustnosť a rozšíriteľnosť architektúry Akcie obaľovača kopírujú akcie používateľa Podpora ladenia na úrovni API aj nástrojov Flexibilná architektúra zápisu do cieľových prostredí (XML, ontológia) Väčšie možnosti spracovania chýb Podstatne menšie pamäťové nároky Slabšia vizuálna podpora pri vytváraní obaľovača
Námety na ďalší rozvoj Rozšírenie možností navigácie Akcie pre podporu formulárov Implementácia interpreta nad platformou Mozilla Firefox (podpora JavaScript, ...) Grafické používateľské rozhranie Integrácia s webovým prehliadačom pre zjednodušenie vytvárania XPath výrazov Automatizácia vytvárania akcií na základe navigačných krokov používateľa v prehliadači