Náplň PB138

Předmět PB138 Moderní značkovací jazyky a jejich aplikace je prakticky zaměřeným bakalářským předmětem seznamujícím se základními principy, standardy a technologiemi souvisejícími s moderními značkovacími jazyky na bázi XML. Vzhledem k potřebě určité jednotící platformy pro demonstraci diskutovaných technologií se vyžaduje předběžná znalost jazyka Java zhruba na úrovni kurzu PB162 - Programování v jazyce Java.

Na tomto místě budete nacházet aktualizované informace k průběhu výuky. Měnit se mohou zejména technické záležitosti, jako jsou seznamy dostupného software, upřesnění pokynů k úlohám, projektům, termíny atd.


Novinky

V IS zveřejněny zkušební termíny PB138 a termíny obhajob - i na ně je třeba se přihlašovat - za tým tak učiní vždy jeden zástupce.

20.4.2004 - Bylo zveřejněno zadání úlohy č. 5. [pa]

23.3.2004 - Bylo zveřejněno zadání úlohy č. 3 a úlohy č. 4. [pa]

22.3.2004 - Dne 13. května 2004 bude mít v rámci tohoto předmětu přednášku Jirka Kosek, známý český popularizátor jazyka XML, aktivní člen vývojového týmu jazyka DocBook (má na svědomí např. českou lokalizaci příslušných šablon) a autor několika knih a mnoha článků o internetu, XML, HTML a PHP. Takže si poznamenejte do kalendáře, že nesmíte zmeškat předposlední přednášku v tomto semestru. [pa]

21.3.2004 - Byly upřesněny pokyny pro odevzdávání úloh. Pozor, tyto pokyny můžou být vaším cvičící změněny nebo upraveny, věnujte proto pozornost tomu, co vám bývá sděleno na cvičeních. [pa]

9.3.2004 - Bylo zveřejněno zadání úlohy č. 2 a přehled loňských projektů (pro inspiraci zájemců o vlastní zadání projektu na letošní rok). [pa]


Celkový průběh a hodnocení PB138

Nedílnou součástí výuky předmětu jsou přednášky a cvičení, jakož i samostatná práce na dílčích úlohách a projektu.

Přednáška

Je dvouhodinová a koná se vždy ve čtvrtek od 14.00 v D3.

datum slidy v jednom souboru pro tisk
Čt 26.2.Úvod do značkovacích jazyků, základní pojmy, logická a fyzická struktura dokumentu...v jednom souboru pro tisk
Čt 4.3.Základní standardy (DTD, Namespaces, XML Base, XInclude, ...)v jednom souboru pro tisk
Čt 11.3.Rozhrani pro praci s XML (SAX, DOM, pull)v jednom souboru pro tisk
Čt 18.3.Schemata XML dat (DTD, XML Schema, Relax NG, Schematron...)v jednom souboru pro tisk
Čt 25.3.Navigace v XML datech (XPath), Odkazovani a adresace (XLink, XPointer) pro tisk (navig), pro tisk (linking)
Čt 1.4., 8.4.Transformace (XSLT podrobne, STX)v jednom souboru pro tisk
Čt 15.4.XML databázev jednom souboru pro tisk
Čt 22.4. SAXON 7.9.1: Using XQuery (web), XML Tutorial: XQuery [BRICS] (web), XQuery Tutorial [IPEDO] (web), XQuery Tutorial [w3schools.com] (web) XML databáze (PDF), Dotazovací jazyky pro XML (PDF), Indexování XML dat (PDF)
Čt 29.4.Webové aplikace v Javě: úvod pro řešitele projektů
Čt 6.5.Metadata, RDF, RDFS, Dublin Core, Sémantický web, RSS
Čt 13.5.Významné aplikace XML: Značkování DocBook (přednášku vedl Jiří Kosek)videozáznam přednášky
Čt 20.5.Opakování - diskuse k písemkovým zadání, projektům, úlohám

Cvičení

Jsou (bohužel) jen hodinová, konaná v různou dobu, blíže viz rozvrh na IS.

Vzhledem k omezenému času na cvičení se snažte pravidelně docházet i na přednášky a věnujte pozornost průběžně aktualizovaným materiálům na webu - i u cvičících.

Vynikajícím aktuálních zdrojem informací jsou weby a elektronické časopisy, jejich seznam najdete průběžně ve výukových materiálech k přednáškám (slidech).

Více informací dále. Najdete tam také informace o software, který budete používat.

Hodnocení

Hodnocení předmětu je trojsložkové, zahrnující:

Celkové bodování se počítá jako součet výše uvedených složek - pozor, úlohy mohou přispět až +10, ale také až -25 body do celkového hodnocení.

Výsledná známka: standardní ukončení je zkouška, na získání hodnocení E postačí 70 bodů, jemnější rozlišení (v souladu s loňským, jen s jinou stupnicí -- bylo 1-3, nyní bude A-E):

A  94 - 100 bodů
B  88 -  93 bodů
C  82 -  87 bodů
D  76 -  81 bodů
E  70 -  75 bodů
-----------------
F   0 -  69 bodů

Na zápočet bude stačit 50 bodů - pozor: za individuální projekt k zápočtu lze získat max 35 bodů.

Konzultace

Primárním kontaktním bodem jsou vaši cvičící; každý z nich má vypsány konzultační hodiny.

Zde budu uvádět odkazy na jejich weby k PB138, zatím jsou zde odkazy na jejich fakultní weby:

Kontakty přímo na mě jsou k nalezení např. na mé domovské stránce.

Nyní již konkrétně ke cvičením a projektům...

Cvičení a projekty

Úspěšné absolvování předmětu PB138 vyžaduje aktivní účast na cvičení. Tato aktivita se prokazuje řešením a odevzdáváním úloh, které jsou na cvičeních zadávány. V druhé polovině semestru se řeší projekt. Cvičení mají převážně charakter kontrolní (zadávání a hodnocení úloh) a konzultační (konzultace nad projektem a dalšími záležitostmi).

Plán cvičení (předběžný, orientační)

  1. (23.2.2004 - 27.2.2004) Seznámení s nástroji - JEdit, XML Mind, Xerces, Ant.
  2. (01.3.2004 - 05.3.2004) Správně utvořené (well formed) a validní (valid) XML dokumenty, DTD. Zadání úlohy číslo 1.
  3. (08.3.2004 - 12.3.2004) Používání API pro zpracování XML dokumentů (SAX,DOM,DOM4J). Zadání úlohy číslo 2.
  4. (15.3.2004 - 19.3.2004) Jak používat JAXP.
  5. (22.3.2004 - 26.3.2004) XML Schema. Zadání úlohy číslo 3.
  6. (29.3.2004 - 02.4.2004) XPath. Zadání projektu.
  7. (05.4.2004 - 09.4.2004) XSLT. Zadání úlohy číslo 4. Konzultace k projektům.
  8. (12.4.2004 - 16.4.2004) Psaní skriptů pro nástroj Ant. Konzultace k projektům.
  9. (19.4.2004 - 23.4.2004) XQuery. Zadání úlohy číslo 5. Konzultace k projektům.
  10. (26.4.2004 - 30.4.2004) Konzultace k projektům.
  11. (03.5.2004 - 07.5.2004) Konzultace k projektům.
  12. (10.5.2004 - 14.5.2004) Konzultace k projektům.
  13. (17.5.2004 - 21.5.2004) Konzultace k projektům.

Pozor! Tento plán se může změnit a posunout v důsledku odpadnutí cvičení Vaší seminární skupiny nebo z důvodu synchronizace s přednáškou. Sledujte pokyny Vašeho cvičícího (týká se to zejména termínů pro zadávání a odevzdávání úloh).


Úlohy

Cílem úloh je seznámení s jednotlivými technologiemi a jejich řešením odevzdáním se prokazuje aktivní účast na cvičeních. Za každou správně vyřešenou a včas odevzdanou úlohu získáte 2 body. Pokud bude úloha vykazovat nějaké nedostatky, cvičící Vám ji vrátí a musíte tyto nedostatky odstranit. Po jejím opětovném odevzdání můžete získat 1 bod. Pokud úlohu odevzdáte pozdě nebo bude i po opakovaném odevzdání obsahovat nedostatky, získáte 0 bodů. Pokud úlohu neodevzdáte vůbec, neopravíte nalezené chyby, nebo půjde o plagiát, bude vám z celkového hodnocení odečteno 5 bodů. Řešením úloh tedy můžete získat 10 bodů, jejich neřešením naopak až 25 bodů ztratit.

Termín pro odevzdání úloh je zpravidla za čtrnáct dní od jejího zadání. Tento termín však může Váš cvičící změnit, věnujte tedy pozornost pokynům, které Vám dá při zadávání úlohy. Pokud váš cvičící neurčí jinak, úlohy se odevzdávájí prostřednictvím elektronické pošty. Obsah adresáře s úlohou zabalte do archivu ve formátu zip se jménem <učo>-uloha?.zip, kde učo je vaše UČO a ? je číslo úlohy. Tento soubor pošlete jako přílohu zprávy s předmětem PB138: uloha? na adresu vašeho cvičícího. Archiv bude obsahovat výhradně vámi změněné nebo upravené soubory - vše ostatní (zejména několikasetkilobajtové knihovny jako dom4j.jar) do něj nezahrnujte. Pozor, váš cvičící může tyto pokyny změnit nebo upřesnit! Nedodržení pokynů k odevzdávání úloh může mít za následek odmítnutí úlohy a jejímu označení za neodevzdanou!

Budou zadány následující úlohy:

  1. Pořizování XML dat v předepsaném značkování - v adresáři /nlp/ri na serveru aurora.fi.muni.cz se nacházeji podadresáře obsahující odborné clanky. Aby je bylo možné přidat do plnotextové databáze, je potřeba vytvořit XML soubory, které budou obsahovat jejich metadata. Vaším úkolem bude získat metadata k článkům ze zadných podadresářů a uložit je v dialektu jazyka XML popsaného pomocí DTD v souboru articles.dtd. Výsledkem Vaší práce bude jeden XML soubor s metadaty na každý podadresář (respektive jeden zdroj článků -- například sborník konference). V rámci řešení této úlohy bude adresář exportován na stroj aisa.fi.muni.cz na později upřesněnou lokaci. Více informací na adrese http://nlp.fi.muni.cz/projekty/floret/zadani_uloha_pb138.html.
  2. Používání API pro zpracování dokumentů - v adresáři uloha2 nalezenete soubor Uloha2.java ve kterém chybí implementace metod adjustSalary, changeName a getWageCosts. Doplňte kód těchto metod podle požadavků v komentáři a ověřte jejich funkci. Pro překlad a spuštění úlohy máte k dispozici soubor build.xml pro nástroj ant. Pokud jej nainstalujete, stačí v adresáři s úlohou spustit příkaz ant. Pro zpracování xml dokumentu se používá knihovna dom4j, projděte si její dokumentaci (zejména příručku Quick Start, JavaDoc API a případně kuchařku). Obsah celého adresáře s úlohou je dispozici také v archivu uloha2.zip.
  3. XML Schema - Vytvořte XML schéma pro soubor people2.xml a uložte jej do souboru people.xsd. Nezapomeňte ověřit jeho správnost pomocí nějakého validujícího parseru (např. xerces).
  4. XSLT - Vytvořte XSLT šablonu, která soubor ve formátu popsaném v úloze č. 3 (viz people2.xml) transformuje do formátu XHTML. Vhodný formát výstupního souboru si zvolte sami, ale nezapomeňte do něj zahrnout všechny informace uvedené ve vstupním souboru. Výstupní soubor by měl alespoň trochu využívat formátovacích možností XHTML či CSS (případný soubor s kaskádovým stylem nezapomeňte při odevzdávání přiložit). Výstupní soubor musí být validní dle příslušného DTD (buď "-//W3C//DTD XHTML 1.0 Strict//EN" nebo "-//W3C//DTD XHTML 1.0 Transitional//EN").
  5. XQuery - vytvořte XQuery dotaz s parametry min_salary a min_car_year, který ze souboru people3.xml vybere osoby, které mají plat alespoň min_salary a buď vlastní alespoň jedno auto starší než je min_car_year nebo nevlastní žádné auto. Výstup bude obsahovat kořenový element no-or-some-old-car-owners, jehož potomky budou elementy person reprezentující vybrané osoby. Každá osoba bude obsahovat element name, surname a salary. Vzorový výstup pro hodnoty min_car_year=1996 a min_salary=10000 naleznete v souboru output.xml. Soubor s XQuery dotazem se bude jmenovat no_car_owners.xq.

Software

Úlohy, případně i projekty, budete řešit s pomocí nejrůznějších softwarových nástrojů. Na unixových systémech fakulty jsou dostupné po zavedení příslušného "modulu", např. volání module add java zpřístupní vývojové prostředí J2SDK aktuální verze. Místo "java" je možné podobně zavést xmlmind (výborný wysiwyg editor XML dokumentů), jedit (univerzální editor), xerces validující parser XML, xalan (XSLT procesor), saxon7 (XSLT a XQuery procesor) a další .

Uživatelé Windows najdou některé z výše uvedených programů buďto instalované přímo na počítačích lokálně nebo na Win-serveru, případně v adresáři \\afrodita\home\tomp\pb138\soft. Zbývající věci si mohou stáhnout z příslušných webů, případně od cvičícího.


Projekt

Cílem projektu je prokázat znalost probíraných technologií a schopnost jejich vhodného uplatnění.

Zadání projektů a složení týmů

Zahájení práce na projektu

Realizace projektu

Použité prostředky

Výstupy projektu

Obhajoby

Obhajoby se budou konat v jednom dni začátkem zkouškového období po nebo před písemnou částí zkoušky (po/před testem). Datum bude zveřejněno na IS (jako zkouškový termín). Průběh obhajoby:

Hodnocení projektů


Závěrečná písemka

Má podobu písemné práce psané na papír, přihlašuje se na ni přes IS jako na zkoušku. Část otázek je spíše testového charakteru (výběr odpovědi nebo jednoduché doplňování), na část otázek se očekává tvořená odpověď rozsáhlejší, např. fragment DTD, XSLT stylu... apod.
Příklad zadání z minulých let lze najít na
loňském webu PB138.