Opoznámkovanie sprístupňovaných webových stránok počas sprístupňovania Diplomová práca Martin Adam vedúci: prof. Ing. Pavol Návrat, PhD. http://pannda.atrip.sk/
Obsah prezentácie Motivácia a ciele práce Architektúra a funkcie navrhovaného systému HTML Parser Generovanie poznámok Obohatenie poznámok Interaktívne funkcie Ukážka systému Pannda Zhodnotenie a možné rozšírenia
Motivácia Sémanticky obohatené browsovanie (Rozšíriť ontológiu) Uľahčiť vyhľadanie užitočnej stránky Urýchlenie orientácie na stránke Napomôcť pri pochopení problematiky (Rozšíriť ontológiu) Ciele projektu Poznámkovať automaticky Zohľadniť preferencie používateľa Poznámky online, počas prehliadania stránky Výsledok v bežnom prehliadači
Poznámkovanie Spôsob uloženia poznámok („značiek“) do/mimo dokumentu Kde (online) poznámkovať Vlastný prehliadač (resp. tučný plugin) Proxy server Webový prehliadač webu Tenký plugin Potreba ďalšej (tučnej) aplikácie (napr. server)
Pannda – Architektúra systému Rozšírený Annotea protokol
Architektúra servera – poznámky
Parser HTML → text Reklamy, menu a spol. Je nám to jedno – nehodnotíme celú stránku Prečo nezvýrazniť obsah aj tam?.. Spracúvať iba viditeľné časti dokumentu Na rozdiel od prípadu, keď analyzujeme celú stránku Predsa len nezahodiť všetko „neviditeľné“ Dvojaký výstup parsera
Generovanie poznámok Vyhľadávanie indivíduí v texte – 5 krokov Podľa regulárnych výrazov pri konceptoch Podľa regulárnych výrazov pri inštanciách Podľa popisiek indivídua v ontológii Podľa popisiek konceptu / označenia class v HTML Podľa jazykových vzorov
Generovanie poznámok Krok 1, 2 Podľa regulárnych výrazov pri konceptoch Podľa regulárnych výrazov pri inštanciách Regulárne výrazy pre konkrétny koncept (inštanciu) Rozšírenie ontológie Odhalíme inštancie konceptov Príklady “location: ([a-zA-Z]+[ ]*[-A-Za-z0-9]*)” “the city of ([A-Z][-A-Za-z0-9]+[ ]+[-A-Za-z0-9]+)”
Generovanie poznámok Krok 3 Postup Podľa popisiek indivídua v ontológii Postup Normalizácia vstupného textu (Apache Lucene) Kľúčové slová z popisiek indivíduí (rovnaký postup) V texte sa slovám pridelí príslušnosť k indivíduám Ak všetky kľúčové slová indivídua pri sebe... Nevýznamové slová sú odstránené v prvom kroku
Generovanie poznámok Krok 4 Použitie druhého výstupu parsera (triedy) Podľa popisiek konceptu / označenia class v HTML Použitie druhého výstupu parsera (triedy) Normalizovanie popisiek konceptov a HTML tried Porovnanie popisiek konceptov k HTML triedam CosineSimilarity (SimMetrics) Celý HTML element je prehlásený za inštanciu
Generovanie poznámok Krok 5 Danube is a river in Europe Postup Podľa jazykových vzorov Danube is a river in Europe <INSTANCE> is a <CONCEPT> <INSTANCE:noun> is a <CONCEPT:noun> POS tagger Postup Nájdu sa vyhovujúce výrazy Porovnajú sa názvy konceptov (Lucene + SimMetrics)
Obohatenie a duplicity Dodatočné informácie Komentáre „Zaujímavé“ vlastnosti konceptu Potreba doplnenia ontológie Akcie Definované pre daný koncept V podobe hyperlinky Odstránenie duplicít (prekrývania) Spojenie obsahu poznámok (rovnaký koncept)
Architektúra servera – ontológie
Interaktívne funkcie Rozšírenie Annotea protokolu Správa ontológie Zoznam dostupných ontológií Vkladanie nových indivíduí Nové informácie k indivíduám (komentáre) Štatistiky (ne)správna poznámka Vyhodnocovanie poznámkovania
Opoznámkovanie sprístupňovaných webových stránok počas sprístupňovania Ukážka softvéru Martin ADAM
Zhodnotenie Dokáže pracovať aj na „nerozšírenej“ ontológii Rozšírenie ontológie pre špecifické prípady regulárne, „zobrazenia-hodné“ vlastnosti, akcie Využitie existujúcej koncepcie Annotea Experimenty Texty z wikipédie (Európa, Ázia, krajiny...) 80% správne; 5,5% navyše; 14,5% menej „očistené“ výsledky (Slovak republic) Parsovanie <1s do 150KB (potom > 4-10) (!!) Poznámkovanie <1,5s do 250 (~ 1,8 – 2)
Záver „Vidím to, čo Pannda server?“ problém Možné rozšírenia Rôzne jazyky (rozoznanie dokumentu, správne popisky) Parsovanie HTML – nie len class, napr. tabuľky Parsovanie iných ako HTML / TXT dokumentov Implementácia: Java, Tomcat, Sesame, SimMetrics, Apache Lucene, Annotea protokol
Záver „Vidím to, čo Pannda server?“ problém Možné rozšírenia Rôzne jazyky (rozoznanie dokumentu, správne popisky) Parsovanie HTML – nie len class, napr. tabuľky Parsovanie iných ako HTML / TXT dokumentov Implementácia: Java, Tomcat, Sesame, SimMetrics, Apache Lucene, Annotea protokol
Posudok oponenta OntoMat SemTag Hodnotenie Hodnotenie úspešnosti Poznámkovanie (áno/nie) Zobrazovanie
Procesy vývoja softvéru a typické modely životného cyklu softvéru Téma z jadra znalostí študijného odboru Martin Adam
Softvérový proces abstraktná množina činností pri vývoji softvérového výrobku z požiadaviek používateľa Softvérový proces Procesy tvorby softvéru Procesy manažmentu procesu Procesy vývoja softvéru Procesy manažmentu softvéru Procesy manažmentu projektu
Proces vývoja softvéru Činnosti priamo spojené s vývojom softvéru špecifikácia, realizácia, validácia a evolúcia Potreby používateľa → požiadavky na SW → → návrh → implementácia → testovanie → → odovzdanie používateľovi Kto, čo, kedy robí a ako dosiahnuť cieľ Životný cyklus softvéru definuje jednotlivé etapy a pre každú z nich činnosti, ktoré sa majú vykonať, rovnako ako vstupy a výstupy etapy.
Modely životného cyklu softvéru Vodopádový model V-model Model evolučného vývoja Špirálový model Komponentový model (vývoj so znovupoužitím) Formálne transformácie Hybridný model Agilné metódy tvorby softvéru
Modely životného cyklu softvéru Vodopádový model V-model Model evolučného vývoja Špirálový model Komponentový model (vývoj so znovupoužitím) Formálne transformácie Hybridný model Agilné metódy tvorby softvéru
Vodopádový model Dobrá viditeľnosť Nízke riziko pre známe postupy Definovanie požiadaviek návrh systému a softvéru implementovanie a testovanie zložiek integrovanie a testovanie systému prevádzka a údržba Dobrá viditeľnosť Nízke riziko pre známe postupy Zmeny počas procesu Vývoj nových druhov aplikácií
V – model Analýza a špecifikácia požiadaviek Architektonický návrh Podrobný návrh Testovanie súčiastok Integrácia a testovanie systému Akceptačné testovanie a inštalácia Implementácia Dokument špecifikácie požiadaviek Dokument návrhu architektúry Dokument návrhu súčiastok Implementované súčiastky Odladené súčiastky Otestovaný systém
Evolučný model Prieskumné prototypovanie Prototypovanie na zahodenie Cieľ – vyvíjať systém v spolupráci so zákazníkom Prototypovanie na zahodenie Cieľ – dospieť k porozumeniu požiadaviek na systém Náčrt špecifikácie Špecifikácia Implementácia Validácia Prvá verzia Finálna Priebežné verzie Nízke riziko pre nové aplikácie Zlá viditeľnosť Systémy sú často slabo štruktúrované
Špirálový model Skoré odstraňovanie chýb Pozornosť na možnosti znovupoužitia Zvýrazňuje požiadavky na akosť Integruje vývoj a údržbu Dobrá viditeľnosť zhodnocovanie rizík treba vedieť robiť je všeobecný a treba ho pre daný projekt rozpracovať
Agilné metódy Rodina procesov vývoja softvéru Uspokojenie zákazníka rýchlymi, neustálymi dodávkami SW Fungujúci SW sa dodáva často (skôr týždne ako mesiace) Fungujúci SW je principiálna metrika progresu Aj neskoršie zmeny v požiadavkách sú vítané Denná úzka spolupráca medzi zadávateľmi a programátormi Konverzácia tvárou v tvár je najlepšou formou komunikácie Projekty sú stavané na motivovaných jedincoch, ktorým by sa malo dôverovať Neustála pozornosť technickej kvalite a dobrému dizajnu Jednoduchosť Samo-organizovaný tím Pravidelné prispôsobovanie zmenám podmienok