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áze | v 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í)
- (23.2.2004 - 27.2.2004) Seznámení s nástroji - JEdit, XML Mind, Xerces, Ant.
- (01.3.2004 - 05.3.2004) Správně utvořené (well formed) a
validní (valid) XML dokumenty, DTD. Zadání úlohy
číslo 1.
- (08.3.2004 - 12.3.2004) Používání API pro zpracování XML
dokumentů (SAX,DOM,DOM4J). Zadání úlohy číslo
2.
- (15.3.2004 - 19.3.2004) Jak používat JAXP.
- (22.3.2004 - 26.3.2004) XML Schema. Zadání úlohy číslo 3.
- (29.3.2004 - 02.4.2004) XPath. Zadání projektu.
- (05.4.2004 - 09.4.2004) XSLT. Zadání úlohy
číslo 4. Konzultace k projektům.
- (12.4.2004 - 16.4.2004) Psaní skriptů pro nástroj Ant.
Konzultace k projektům.
- (19.4.2004 - 23.4.2004) XQuery. Zadání úlohy
číslo 5. Konzultace k projektům.
- (26.4.2004 - 30.4.2004) Konzultace k projektům.
- (03.5.2004 - 07.5.2004) Konzultace k projektům.
- (10.5.2004 - 14.5.2004) Konzultace k projektům.
- (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).
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:
- 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.
- 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.
- 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).
- 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").
- 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.
Ú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.
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ů
- Zadání jsou vystavena na ISu pod balíkem témat předmětu PB138
"Projekty" v období jaro 2004.
- Pokud máte zájem o své vlastní téma, můžete jej navrhnout svému
cvičícímu, aby Vám jej vypsal. Téma musí odpovídat zaměření kurzu,
tj. jedním z klíčových nástrojů musí být XML a související
technologie.
- Zadání na IS jsou pouze rámcová. Je možné je upřesňovat či
doplňovat, ale veškeré změny musí schválit autor příslušného zadání
(je u zadání uveden jako vedoucí).
- Práce je týmová, projekty jsou řešeny ve čtyřčlenných
týmech.
- Každý tým si určí vedoucího, který bude práci koordinovat.
- Studenti, kteří hodlají předmět ukončit pouze zápočtem, mohou řešit
individuální projekt za 35 bodů. Tyto projekty jsou také vypsány
prostřednictvím IS.
- Pozor na dodržení zadání! Každou změnu v zadání
musí schválit autor zadání! Veškeré změny v zadání musí být
zaznamenány v IS. Pokud Váš projekt nebude odpovídat danému zadání
nebo nebude splňovat některé z pokynů uvedených na této stránce
(např. programovací jazyk, formát dokumentace apod.), projekt bude
hodnocen nízkým počtem bodů (případně nebude hodnocen vůbec).
Zahájení práce na projektu
- Na projekty máte čas počínaje Po 5. 4. 2004 až do obhajoby (ta
bude začátkem zkouškového období - bude vypsáno na IS jako
zkouškový termín.)
- Nejpozději do 30.4.2004 vystavíte na počítači kore.fi.muni.cz
stránku projektu se zadáním, složením týmu, rozdělením práce a
jménem vedoucího týmu.
Tuto stránku budete průběžně aktualizovat. Účty na tomto stroji
zpřístupní Tomáš Pitner na základě žádosti vedoucího týmu (pomocí
elektronické pošty) s uvedením:
- názvu projektu,
- akronymu (zkratky) názvu projektu (max. osm znaků, podle
akronymu se bude tvořit adresář a URL projektu),
- jména vedoucího a
- množiny čtyř loginů (v síti FI, v obvyklém tvaru např.
xnovak32) osob pracujících na projektu.
Pozn: Najde-li dobrovolník, který napíše skript na jednoduchý
management těchto projektů na stroji kore.fi.muni.cz (Linux RH
8.0), může mu toto být uznáno jako individuálně řešený projekt -
pro zájemce o zápočet z tohoto předmětu.
- Pozor! Na stroji kore se jako váš domovský adresář připojuje Váš domovský
adresář ze stroje anxur (to je ten, co máte např. na serveru aisa). Aby to
fungovalo musíte si na adrese
https://thetis1.fi.muni.cz/auth/sit/export_home.mpl
povolit export domovského adresáře pro stroj kore.fi.muni.cz pomocí protokolu nfs.
Realizace projektu
- Primárním realizačním jazykem bude Java. Použití jiného jazyka
(JavaScript, Perl, Python, Smalltalk, C/C++) je možné po schválení
autorem příslušného zadání. Použítí jazyka PHP je předem
vyloučeno.
- Kdykoli je v projektu použit XML formát, musí k němu být
vytvořeno (a dostupné) DTD, Relax NG nebo XML Schema, případně jiný
formální model (Schematron, Examplotron, DSD...).
- Všechny projekty musí mít webové nebo GUI rozhraní (nebo obě),
případně ještě rozhraní na příkazovém řádku.
- Pokud je někde požadováno generování tiskového výstupu, postačí
vytvoření souboru ve formátu PDF nebo XHTML (nejlépe pomocí
příslušné XSLT šablony).
Použité prostředky
- V projektu by měly být maximálně využity adekvátní XML
prostředky - dotazovací jazyky (XPath, XQL,...), nativní XML
databáze, rozhraní JAXP, JAXM, JAXB, SOAP, XSLT transformace,
...
- Hodnocení bude závislé i na tom, jak šikovně využijete možností
XML technologií a volně dostupných nástrojů.
- Můžete využívat libovolný volně dostupný (alespoň pro výukové
účely) software.
- Ve finále musí nakonec vše na kore.fi.muni.cz běžet.
Konfigurace stroje - Linux RH 8.0, MySQL 3.23.52, Apache 2.0.40,
Jakarta Tomcat 4.1.18, Sun JDK 1.4.1_01 for Linux a další
standardní software.
- Jsou-li pro instalaci nějakého, pro vás nezbytného, software na
kore.fi.muni.cz potřeba práva administrátora, pošlete požadavek
přednášejícímu.
- Upozornění: Data na kore.fi.muni.cz nejsou zálohována (na pásku
apod) - z přirozených důvodů si proto uchovávejte kopie všeho, co
je na kore vystaveno!
Výstupy projektu
- K projektům založte na kore.fi.muni.cz webovou stránku s (bude
mít primární jednoznačné URL
http://kore.fi.muni.cz/projects/xml2004/akronym_nazvu_projektu)
průběžně aktualizovanými informacemi o vývoji (vč. složení týmu a
rozdělení práce v týmu + časový plán řešení).
- Na URL projektu budou průběžně udržovány také odkazy na
vyvíjený software.
- Nejpozději k datu obhajoby musejí být veškeré materiály (texty,
web, software, vzorová data) vypracované v souvislosti s řešení
projektu na serveru kore.fi.muni.cz ve formě webové nebo jiné
aplikace, dostupné i dalším uživatelům stroje.
- Výstupem k obhajobě bude stručná zpráva (2 stránky A4) shrnující
výsledky projektu. Zpráva bude ve formátu DocBook a vypracuje ji každý
člen týmu zvlášť. Zpráva se odevzdává nejpozději 48 hodin
před termínem objahoby formou elektronické pošty na adresu cvičícího
a na adresu autora zadání. Kromě vlastní zprávy ve formátu DocBook
přiložte i verzi v PDF, vygenerovanou z verze v DocBook.
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:
- Na obhajobu jednoho projektu je celkem 20 min včetně dotazů a
diskuse.
- Vedoucí týmu na začátku představí zadání projektu, řešitelský
tým a stručně shrne dosažené výsledky.
- Poté každý vystoupí s představením své části projektu, uvede
použité technologie a nastíní architekturu své části systému
- Na závěr proběhne diskuse.
- Součástí obhajoby by měla být elektronická prezentace výsledků
(slidy, ukázky přístupné na síti, notebooku...).
Hodnocení projektů
- Hodnocení týmových projektů bude tvořit 50 bodů z celkového
hodnocení předmětu.
- Hodnocení individuálních projektů (pro ukončení zápočtem) bude
tvořit 35 bodů z celkového hodnocení předmětu.
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.