• Nebyly nalezeny žádné výsledky

Hlavní práce5538_xjanp40.pdf, 1 MB Stáhnout

N/A
N/A
Protected

Academic year: 2022

Podíl "Hlavní práce5538_xjanp40.pdf, 1 MB Stáhnout"

Copied!
74
0
0

Načítání.... (zobrazit plný text nyní)

Fulltext

(1)

Vyuzˇitı´ XSLT prˇi zpracova´nı´ Topic Maps

diplomova´ pra´ce

Petr Janecˇek

9. kveˇtna 2007

(2)

Anotace

Diplomova´ pra´ce zkouma´ mozˇnosti vyuzˇitı´ XSLT pro zpracova´nı´ Topic Maps ulozˇeny´ch ve forma´tu XML. Popsa´ny jsou vsˇechny souvisejı´cı´ technolo- gie, zejme´na: Topic Maps, XSLT, XPath, TMAPI a XML forma´t pro ulozˇenı´ map te´mat XTM.

Metodou pro oveˇrˇenı´ vhodnosti XSLT pro pra´ci s mapami te´mat je vy- tvorˇenı´ rozhranı´, ktere´ je obdobou zna´me´ho TMAPI rozhranı´. To ma´ za u´kol ulehcˇit zı´ska´va´nı´ informacı´ ulozˇeny´ch v mapa´ch te´mat a umozˇnit jejich pre- zentaci naprˇı´klad v prostrˇedı´ webu. Na za´kladeˇ poznatku˚ zı´skany´ch beˇhem analy´zy, prˇizpu˚sobenı´m neobjektove´mu programovacı´mu jazyku a samotne´

implementace je mozˇne´ rozhodnout o vhodnosti vyuzˇitı´ XSLT.

Vzhledem k tomu, zˇe XSLT se cˇasto vyuzˇı´va´ v prostrˇedı´ webu pro zı´ska´nı´

dat z XML souboru˚ a jejich reprezentaci pomocı´ HTML stra´nek, je soucˇa´stı´

i uka´zkova´ sˇablona umozˇnˇujı´cı´ prˇevod Topic Maps do HTML. Je tak mozˇne´

prˇehledneˇ reprezentovat data ulozˇena´ v mapa´ch te´mat v prostrˇedı´ webu.

Bylo zjisˇteˇno, zˇe XSLT je pro zpracova´nı´ Topic Maps ulozˇeny´ch ve forma´tu XML velice vhodne´ a vytvorˇene´ rozhranı´ ma´ sˇiroke´ pouzˇitı´.

(3)

Annotation

Diploma paper tries to find what possibilities brings XSLT in conjuction with Topic Maps in XML format. Description will be given for all related technologies like: Topic Maps, XSLT, XPath, TMAPI and format for storing XML Topic Maps – XTM.

In order to verify pertinence of XSLT for managing Topic Maps there will be created an interface similar to TMAPI which should simplify gathering of information from Topic Maps and provide a way to present them on the web.

With the help of results of the analysis, adaptation to non object programm- sing language and implementation itself, it will be possible to decide about suitability of usage of XSLT.

According to the fact that XSLT is often used in the web environment for data mining from XML files and their representation with the use of HTML pages, a template for transformation Topic Map to HTML is included. With the use of the template it is possible to represent well-arranged data stored in Topic Maps.

As a result it was found out that XSLT is very suitable for managing Topic Maps stored in XML and that created interface may be widely utilized.

(4)

Podeˇkova´nı´

Ra´d bych podeˇkoval vsˇem blı´zky´m, kdo se mnou meˇli beˇhem tvorby di- plomove´ pra´ce trpeˇlivost, zejme´na mojı´ prˇı´telkyni Marke´teˇ. Da´le bych chteˇl podeˇkovat vsˇem, kdo mi byli beˇhem zpracova´nı´ oporou nebo neˇjaky´m zpu˚- sobem s pracı´ poma´hali. V neposlednı´ rˇadeˇ bych ra´d podeˇkoval vedoucı´mu diplomove´ pra´ce za podneˇtne´ prˇipomı´nky, ktere´ mi vy´razneˇ pomohly tuto pra´ci dota´hnout do u´speˇsˇne´ho konce.

(5)

Prohla´sˇenı´

Prohlasˇuji, zˇe jsem diplomovou pra´ci vypracoval samostatneˇ a pouzˇil pouze literaturu uvedenou v prˇilozˇene´m seznamu. Nema´m na´mitek proti pu˚jcˇenı´

pra´ce se souhlasem katedry ani proti zverˇejneˇnı´ pra´ce nebo jejı´ cˇa´sti.

V Praze dne 10. kveˇtna 2007 Petr Janecˇek

(6)

Obsah

1 U´ vod 1

2 Topic Maps 4

2.1 Vy´voj Topic Maps . . . 6

2.2 Pouzˇitı´ map te´mat . . . 7

2.3 Popis forma´tu XTM . . . 7

2.4 Prˇı´klad mapy te´mat . . . 11

2.5 Budoucnost Topic Maps . . . 14

3 XSLT a XPath 16 3.1 XSLT . . . 16

3.2 XPath . . . 18

4 TMAPI 19 5 Prˇı´prava implementace 21 5.1 Analy´za a prˇı´prava software . . . 21

5.2 Prˇizpu˚sobenı´ TMAPI pro XSLT . . . 24

6 Implementace funkcı´ 27 6.1 Spolecˇne´ funkce – check . . . 29

6.2 Spolecˇne´ funkce – objectId, objectById . . . 30

6.3 Spolecˇne´ funkce – objectByXLinks . . . 31

6.4 Index – associationRole . . . 34

6.5 Index - associations . . . 36

6.6 Index - variants . . . 36

6.7 Index - occurrences . . . 37

6.8 Index - topicNames . . . 37

6.9 Index - topic . . . 37

6.10 Index - scope . . . 38

6.11 Index - topicMap . . . 39

6.12 Index - za´veˇr . . . 42

6.13 Core - common . . . 42

6.14 Core - association, variant, associationsByTopic . . . 43

6.15 Core - topicNames . . . 44

6.16 Core - ostatnı´ . . . 46

6.17 mergeMap . . . 46

6.18 Funkce pro vy´beˇr prˇedku˚ . . . 47

6.19 Shrnutı´ . . . 47

(7)

OBSAH

7 Uka´zka funkce rozhranı´ 49

7.1 Zpracova´nı´ te´mat . . . 51 7.2 Zpracova´nı´ asociacı´ . . . 55

8 Srovna´nı´ ru˚zny´ch implementacı´ 58

9 Za´veˇr 60

Literatura 64

Rejstrˇı´k 66

Dodatky 67

(8)

Kapitola 1 U ´ vod

V dobeˇ, kdy je prˇes internet dostupne´ obrovske´ mnozˇstvı´ dat, zacˇal by´t ak- tua´lnı´ proble´m, jak pozˇadovane´ informace nale´zt. Pro podporu vyhleda´va´nı´

informacı´ byly navrzˇeny ru˚zne´ technologie. Existuje mnoho firem, ktere´ se mozˇnostmi vyhleda´va´nı´ prˇı´mo zaby´vajı´. Rˇı´ka´ se, zˇe na internetu je publiko- va´no jizˇ te´meˇrˇ vsˇe, co si lze prˇedstavit, ale obrovsky´ proble´m nasta´va´ tehdy, kdyzˇ se k pozˇadovany´m informacı´m potrˇebujete dostat a nevı´te, kde je najı´t.

Pro vyhleda´va´nı´ existujı´ ru˚zne´ prˇı´stupy, veˇtsˇinou zalozˇene´ na indexova´nı´

informacˇnı´ch zdroju˚ pomocı´ klı´cˇovy´ch slov. To obvykle prova´dı´ pocˇı´tacˇ a pro kazˇdou nalezenou stra´nku klı´cˇova´ slova, podle dany´ch pravidel, automaticky vytvorˇı´. Ta se pak zaindexujı´ a vyuzˇijı´ prˇi vyhleda´va´nı´. Tato metoda vsˇak kvu˚li sta´le veˇtsˇı´mu mnozˇstvı´ informacˇnı´ch zdroju˚ prˇesta´va´ by´t bez dalsˇı´ch pomu˚cek vhodna´. Je zapotrˇebı´ zapojit dalsˇı´ technologie jako naprˇı´klad informacˇnı´ a citacˇnı´ analy´zu.

Jiny´ proble´m nasta´va´, kdyzˇ jste jizˇ na stra´nce s hledany´mi informacemi a chcete zna´t souvisejı´cı´ stra´nky. Beˇzˇne´ webove´ prostrˇedky, umozˇnˇujı´cı´ zobra- zit pouze explicitneˇ prova´zane´ stra´nky, zde opeˇt moc nepomohou. Obvykle obsahujı´ pouze odkazy na hlavnı´ stra´nky webu a na reklamu.

Pra´ci programa´toru˚m, tvorˇı´cı´m programy pro indexova´nı´ stra´nek, vy´razneˇ ulehcˇı´ dobrˇe strukturovana´ a popsana´ data. V neˇkolika poslednı´ch letech se velke´ nadeˇje vkla´dajı´ do jazyka XML, ktery´ se v maxima´lnı´ mozˇne´ mı´rˇe snazˇı´

oddeˇlit obsah od konecˇne´ho forma´tova´nı´ a nabı´zı´ ulozˇenı´ dat v pocˇı´tacˇoveˇ dobrˇe zpracovatelne´ formeˇ. Struktura XML je sice volitelna´, ale existujı´ u´speˇsˇne´

snahy o vytvorˇenı´ jednotny´ch forma´tu˚ v ru˚zny´ch oblastech.

Velkou vy´hodou standardizovane´ struktury XML je to, zˇe data jsou snadno prˇenositelna´ mezi organizacemi, a zˇe ru˚zne´ programy s nimi mohou bez pro- ble´mu˚ pracovat tak, zˇe „rozumeˇjı´ “ tomu, co je v XML napsa´no. Vyhleda´vacˇe tak naprˇı´klad mohou nabı´dnout vy´razneˇ kvalitneˇjsˇı´ vy´sledky, pokud „veˇdı´“, kde je v dokumentu ulozˇena informace o ceneˇ apod.

Se vsˇemi teˇmito proble´my je mozˇne´ se vyporˇa´dat pomocı´ neˇjake´ pokrocˇile´

technologie. Takove´ technologie, ktera´ umozˇnı´ uchova´va´nı´ dat, bude obsaho- vat vazby mezi stra´nkami a umozˇnı´ uchovat dalsˇı´ potrˇebne´ informace. Pokud

(9)

KAPITOLA 1. U´ VOD

navı´c takova´ data nevzniknou automatizovaneˇ, ale vytvorˇı´ je expert na danou oblast, nabı´zı´ se pro vylepsˇenı´ navigace na webu obrovske´ mozˇnosti.

Vzhledem k tomu, zˇe ukla´da´nı´ dat v pocˇı´tacˇı´ch se inspirovalo dlouhy´mi zkusˇenostmi s usporˇa´da´nı´m informacı´ v klasicky´ch kniha´ch, je dobre´ prˇipo- menout, jake´ mozˇnosti pro vyhleda´va´nı´ nabı´zejı´ knihy. Pro nalezenı´ pozˇado- vany´ch informacı´ jsou mozˇne´ cˇtyrˇi prˇı´stupy a vzˇdy se vyuzˇije jeden nebo vı´ce teˇchto prˇı´stupu˚ [33]:

• vysledova´nı´ hierarchicke´ struktury z obsahu,

• prˇecˇtenı´ cele´ho textu,

• prolistova´nı´ stra´nek,

• vyhleda´nı´ v rejstrˇı´ku na konci knihy.

Jednou z technologiı´, ktera´ si za vzor vzala vyhleda´va´nı´ podle rejstrˇı´ku na konci knihy, jsou Topic Maps [12]. Ty si daly za u´kol pomoci prˇi orientaci ve sveˇteˇ prˇehlcene´m informacemi („info glut“). V Topic Maps neboli mapa´ch te´- mat je mozˇne´ zachytit informace do te´mat (topics), k teˇmto te´matu˚m prˇideˇlovat vy´skyty (occurrences) a vytva´rˇet vztahy mezi jednotlivy´mi te´maty (associati- ons). Pomocı´ te´to technologie je snadne´ definovat, jak spolu jednotliva´ te´mata souvisejı´ a tı´m naprˇı´klad k jedne´ webove´ stra´nce zobrazit mnoho souvisejı´cı´ch.

Mapy te´mat lze ukla´dat do ru˚zny´ch forma´tu˚, ale mozˇnosti adresova´nı´ ru˚z- ny´ch cˇa´stı´ mapy a editace v obycˇejne´m textove´m editoru jsou velky´m plusem.

Obeˇ tyto vlastnosti a mnoho dalsˇı´ch nabı´zı´ pra´veˇ forma´t XML, respektive jeho standardizovana´ podoba XTM. Navı´c ambice tvu˚rcu˚ tohoto forma´tu ulozˇenı´

nejsou male´: chteˇjı´ vyvinout technologii, ktera´ zajistı´ snadnou nalezitelnost in- formacı´, usnadnı´ pra´ci s mapami te´mat a zajistı´ jejı´ pouzˇitelnost na internetu.

XML Topic Maps se proto zdajı´ by´t vhodny´m kandida´tem na vyrˇesˇenı´ vy´sˇe uvedeny´ch proble´mu˚ [22].

Dalsˇı´ vy´hodou vyuzˇitı´ map te´mat je existence uzna´vane´ho rozhranı´ TMAPI, ktere´ umozˇnˇuje s mapami te´mat pracovat. Na sveˇteˇ je neˇkolik navza´jem za- meˇnitelny´ch implementacı´ TMAPI napsany´ch veˇtsˇinou v Javeˇ [27], ale trˇeba i v PHP nebo Pythonu. Je tak mozˇne´ vyuzˇı´vat ru˚zne´ mapy od ru˚zny´ch tvu˚rcu˚

a nenı´ potrˇeba se jizˇ starat o to, jak jsou data ulozˇena´.

Vzhledem k pouzˇite´mu XML se jako vhodny´ na´stroj pro zpracova´nı´ zda´ by´t mimo jine´ XSLT. Tento transformacˇnı´ jazyk byl pro potrˇeby manipulace s XML vytvorˇen a nabı´zı´ obrovske´ mozˇnosti pro jeho zpracova´nı´. Vytvorˇenı´ rozhranı´

pro pra´ci s mapami te´mat ve forma´tu XTM s jeho vyuzˇitı´m je proto velkou vy´zvou.

Du˚vod procˇ vytvorˇit XSLT rozhranı´ pro pra´ci s Topic Maps je mimo jine´

ten, zˇe XSLT se cˇasto vyuzˇı´va´ k transformacı´m z XML do HTML forma´tu. Pro zı´ska´nı´ konkre´tnı´ch dat z XTM je to velice vhodny´ na´stroj. Takove´to rozhranı´

vy´razneˇ usnadnı´ pra´ci kazˇde´mu, kdo chce do dynamicky´ch HTML stra´nek vlozˇit neˇjakou informaci z mapy te´mat. Pro zı´ska´nı´ pozˇadovany´ch dat stacˇı´

pouzˇı´t neˇkolik funkcı´ XSLT rozhranı´ a nenı´ zapotrˇebı´ se starat o zpu˚sob ulozˇenı´.

(10)

KAPITOLA 1. U´ VOD

Tato pra´ce se bude zaby´vat oveˇrˇenı´m vhodnosti XSLT pro zpracova´nı´ To- pic Maps ulozˇeny´ch ve forma´tu XTM. Po te´to u´vodnı´ cˇa´sti bude na´sledovat cˇa´st teoreticka´, kde budou popsa´ny jednotlive´ zminˇovane´ technologie, tedy Topic Maps, XSLT, XPath, XTM a TMAPI. Da´le bude na´sledovat cˇa´st prak- ticka´, kde bude popsa´na pra´ce na implementaci rozhranı´ TMAPI do prostrˇedı´

XSLT, s uka´zkou vytvorˇene´ aplikace vyuzˇı´vajı´cı´ te´to implementace. Za´veˇrem by meˇlo by´t zjisˇteˇnı´, nakolik je zvolena´ technologie XSLT vhodna´ a pouzˇitelna´

pro zpracova´nı´ map te´mat.

Obra´zek 1.Vznik HTML souboru z mapy te´mat, dalsˇı´ho zdroje a XSLT

(11)

Kapitola 2 Topic Maps

Topic Maps neboli mapy te´mat slouzˇı´ pro reprezentaci a vy´meˇnu znalostı´, s du˚razem na snadnou nalezitelnost informacı´ [14]. Od Topic Maps se ocˇeka´va´, zˇe pomohou v dobeˇ prˇehlcenı´ informacemi (info glut), ke snadne´mu nalezenı´

hledane´ informace a jejı´ho kontextu. Neˇkdy se jim prˇezdı´va´ GPS v informacˇnı´m vesmı´ru [28]. Topic Maps jsou ISO1normou s oznacˇenı´m ISO/IEC 13250:2003.

O te´to normeˇ jesˇteˇ bude zmı´nka da´le v te´to kapitole.

Tvu˚rci map te´mat meˇli prˇi vy´voji na pameˇti rejstrˇı´ky na konci knih (back-of- book index) – jsou proto navrzˇeny pro zvla´dnutı´ prˇemı´ry informacı´, vytvorˇenı´

kvalitnı´ch informacˇnı´ch sı´tı´ pro jaky´koliv informacˇnı´ zdroj a k usporˇa´da´nı´ neu- sporˇa´dany´ch informacı´. Na mapy te´mat je mozˇne´ se dı´vat jako na elektronicky´

super rejstrˇı´k. Mapy te´mat poskytujı´ propojenı´ mezi informacˇnı´m a znalostnı´m inzˇeny´rstvı´m [33].

Vzhledem k tomu, zˇe v cˇeske´m jazyce se toho o Topic Maps jesˇteˇ mnoho nenapsalo, nasta´va´ prˇi psanı´ te´to pra´ce proble´m se spra´vnou terminologiı´.

Z tohoto du˚vodu budou cˇa´stecˇneˇ pouzˇity pu˚vodnı´ neprˇelozˇene´ vy´razy nebo pocˇesˇteˇne´ origina´lnı´ vy´razy. Tam, kde to vy´znam jednoznacˇneˇ dovolı´, bude pouzˇit cˇesky´ prˇelozˇeny´ termı´n.

Standard map te´mat neurcˇuje forma´t ulozˇenı´ dat2. Definuje pouze neˇktere´

pozˇadavky, ktere´ dany´ forma´t ulozˇenı´ musı´ splnˇovat. Tvu˚rci map te´mat tak pro ulozˇenı´ vyuzˇı´vajı´ neˇkolik ru˚zny´ch forma´tu˚ souboru˚. Kazˇda´ mapa te´mat, by vsˇak meˇla by´t ulozˇitelna´ do jake´hokoliv forma´tu, ktere´ jsou proto mezi sebou veˇtsˇinou konvertovatelne´. V pocˇı´tacˇoveˇ zpracova´vany´ch mapa´ch te´mat se nejcˇasteˇji vyuzˇı´va´ forma´t XTM3, tedy Topic Maps ulozˇene´ do XML4. Forma´ty ulozˇenı´ jesˇteˇ budou zmı´neˇny da´le v te´to kapitole.

Topic Maps umozˇnˇujı´ za´pis informacı´ s vyuzˇitı´m te´mat (ktere´ reprezentujı´

jaky´koliv pojem – od lidı´, zemı´, organizacı´ azˇ po cˇa´sti programu˚, jednotlivy´ch

1ISO – International organization for standardizationhttp://www.iso.org/

2Neˇktere´ forma´ty pro ulozˇenı´ map te´mat jsou prˇesto soucˇa´stı´ ISO standardu.

3XTM – XML Topic Maps

4Topic Maps se docˇkaly veˇtsˇı´ pozornosti pra´veˇ azˇ po zverˇejneˇnı´ XML forma´tu ulozˇenı´

(XTM). Ten zı´skal podporu v ru˚zny´ch aplikacı´ch – jen na za´kladeˇ TMAPI vzniklo neˇkolik aplikacı´, ktere´ usnadnˇujı´ pra´ci s XTM, vizhttp://www.tmapi.org/.

(12)

KAPITOLA 2. TOPIC MAPS

souboru˚ a uda´lostı´), asociacı´ (ktere´ reprezentujı´ vztahy mezi te´maty) a vy´skytu˚

(ktere´ odkazujı´ na relevantnı´ zdroje informacı´) [1]. Anglicky se tyto pojmy oznacˇujı´ topics (te´mata), associations (asociace) a occurrences (vy´skyty)5. Mapy te´mat jsou v mnoha ohledech podobne´ se´manticky´m sı´tı´m nebo konceptua´lnı´m a mysˇlenkovy´m mapa´m, jejichzˇ popis je vsˇak mimo rozsah te´to pra´ce.

Zjednodusˇeneˇ by se dalo rˇı´ct, zˇe mapy te´mat poskytujı´ vazbu mezi te´maty a informacˇnı´mi zdroji, ve ktery´ch se tato te´mata vyskytujı´ a umozˇnˇujı´ definovat vztahy mezi ru˚zny´mi te´maty. Je mozˇne´ naprˇı´klad definovat jedno te´ma se jme´nem herce, druhe´ te´ma s na´zvem filmu a asociaci „hraje v“. Informace ulozˇene´ v takove´to mapeˇ je pak mozˇne´ interpretovat jako: herec X (s odkazem na informace o herci) hraje ve filmu Y (informace o filmu). Pokud tedy neˇkdo hleda´ informace o herci, tak se ihned dozvı´ i informace o filmu6, cozˇ mu˚zˇe by´t te´ma, ktere´ ho ve skutecˇnosti zajı´ma´.

Te´mata, vztahy a vy´skyty majı´ typy (types) definova´ny tvu˚rcem mapy te´- mat – ty jsou zna´me´ jako ontologie7 mapy te´mat. Prˇı´klad mu˚zˇe by´t te´ma se jme´nem a k neˇmu nastaven typ, zˇe se jedna´ o herce. Mapy te´mat umozˇnˇujı´

take´ rozsˇirˇujı´cı´ vlastnosti jako je definova´nı´ rozsahu pu˚sobnosti (scope) a jejich slucˇova´nı´ (merge). Koncept slucˇova´nı´ a definova´nı´ rozsahu dovolujı´ automa- tickou integraci map te´mat z ru˚zny´ch zdroju˚ do nove´ souvisle´ mapy bez obav, zˇe se v nove´ mapeˇ vyskytne te´ma se stejny´m na´zvem a rozsahem pu˚sobnosti a dojde tak k nejasnostem.

Prvek obsazˇeny´ v mapa´ch te´mat, ktery´ zatı´m nebyl zmı´neˇn je reifikace8 (zhmotneˇnı´) neˇjake´ho objektu. Dle datove´ho modelu TMDM [30] se reifikacı´

rozumı´ vytvorˇenı´ te´matu, ktere´ reprezentuje prˇedmeˇt jine´ho objektu stejne´

mapy te´mat. V mnoha prˇı´padech je zˇa´doucı´ prˇipojit dalsˇı´ informace k objektu mapy te´mat, naprˇı´klad prˇipojenı´ vy´skytu k asociaci. Model nic takove´ho ne- dovoluje udeˇlat jiny´m zpu˚sobem nezˇ vytvorˇenı´m te´matu, ktery´ reifikuje dany´

objekt – k te´matu pak mohou by´t prˇipojeny dalsˇı´ informace. Tı´mto zpu˚sobem je mozˇne´ reifikovat vsˇechny objekty kromeˇ jine´ho te´matu, cozˇ by odporovalo logice map te´mat.

5Z Topics, Associations a Occurrences pocha´zı´ anglicka´ zkratka TAO of Topic Maps.

6Informace zı´skane´ z Map Te´mat jsou skutecˇneˇ relevantnı´ na rozdı´l od vy´sledku˚ vyhleda´- va´nı´ z plnotextovy´ch vyhledavacˇu˚.

7Ontologie – Ve filosofii se ontologie cha´pe jako nauka (cˇi soubor nauk) o „bytı´“, poprˇı´padeˇ jako univerza´lnı´ soustava znalostı´ popisujı´cı´ objekty, jevy a za´konitosti sveˇta. V informatice je ontologie specifikova´na jako „explicitnı´ specifikace konceptualizace“. Konceptualizace (tj.

syste´m pojmu˚ modelujı´cı´ urcˇitou cˇa´st sveˇta) musı´ by´t specifikova´na explicitneˇ, tj. nikoliv jen

„skryta“ v hlaveˇ sve´ho autora. U´ cˇelem ontologiı´ je podpora porozumeˇnı´ mezi lidmi, pod- pora komunikace mezi pocˇı´tacˇovy´mi syste´my a podpora na´vrhu znalostneˇ orientovany´ch syste´mu˚ [19]

8Reifikace – reification je typicky´m prˇı´kladem zatı´m jesˇteˇ neprˇelozˇene´ho a pravdeˇpodobneˇ neprˇelozˇitelne´ho vy´razu. Pouzˇı´va´ se i v dalsˇı´ch tvarech - reifier, reified, reifies. Vedoucı´ di- plomove´ pra´ce navrhuje jako prˇeklad pouzˇı´vat zhmotnitel nebo se drzˇet prˇepisu „te´ma, ktere´

reifikuje“.

(13)

KAPITOLA 2. TOPIC MAPS 2.1. VY´VOJ TOPIC MAPS

Jeden z prvnı´ch forma´tu˚ pro ukla´da´nı´ dat map te´mat, ktery´ se pouzˇı´val je HyTM9 [16], ktery´ se ukla´dal pomocı´ SGML10. Nicme´neˇ pomeˇrneˇ brzy se k neˇmu zacˇaly vzna´sˇet vy´hrady [20] a to zejme´na proto, zˇe byla popta´vka po forma´tu ulozˇenı´ v XML11. Pro HyTM take´ neexistovalo u´plne´ DTD12 a pro odkazova´nı´ na externı´ zdroje se nepouzˇı´valo URI13. Aby se tato situace napravila, vznikla organizace TopicMaps.org [22] a ta vytvorˇila novy´ standard zalozˇeny´ na XML, XML Topic Maps (XTM). Tento forma´t je podrobneˇ popsa´n da´le v te´to pra´ci.

Existuje i zkra´cena´ verze za´pisu map te´mat nazy´vana´ LTM14[14] – linea´rnı´

mapy te´mat, ktera´ se pouzˇı´va´ pro za´pis map te´mat v obycˇejny´ch textovy´ch editorech cˇloveˇkem. Vyuzˇı´va´ se pro za´pis jednoduchy´ch map te´mat nebo k vy´- meˇneˇ cˇa´stecˇny´ch map te´mat emailem. Tento forma´t lze snadno prˇeve´st do XTM15, ktery´ je pro automatizovane´ zpracova´nı´ vhodneˇjsˇı´.

Dalsˇı´ takovy´ zkra´ceny´ forma´t se nazy´va´ AsTMa, ktery´ se pouzˇı´va´ k po- dobne´mu u´cˇelu – za´pisu dat zkra´cenou formou, kdyzˇ se mapy te´mat vytva´rˇejı´

rucˇneˇ trˇeba i v norma´lnı´m textove´m editoru. Existujı´ i dalsˇı´ forma´ty, ale vzˇdy se jedna´ pouze o variantu jizˇ existujı´cı´ch. Ty cˇasto slouzˇı´ k neˇjake´mu specificke´mu u´cˇelu.

2.1 Vy´voj Topic Maps

Mapy te´mat byly pu˚vodneˇ vytvorˇeny pro reprezentaci rejstrˇı´ku˚ na konci knih a ke zjednodusˇenı´ slucˇova´nı´ teˇchto indexu˚ do jedine´ho [12]. Na pocˇa´tku tohoto projektu sta´l Steven R. Newcomb, ke ktere´mu se pozdeˇji prˇipojil Michel Bie- zunski16. Po neˇjake´m cˇase si vsˇak uveˇdomili, zˇe prˇi trochu sˇirsˇı´m pojetı´ Topic Maps, by se tyto mapy daly pouzˇı´t mnohem obecneˇji. Prˇedlozˇili proto jejich na´- vrh na CApH17ke schva´lenı´ jako ISO standard. Ten byl prˇijat a v roce 2000 tak vznikla prvnı´ verze standardu pro Topic Maps, zalozˇena´ na SGML a HyTime.

Dı´ky dalsˇı´ pra´ci autoru˚ Topic Maps vznikla webova´ stra´nkaTopicMaps.org, kde se pu˚vodnı´ mysˇlenka rozsˇı´rˇila a vznikla specifikace XTM, ktera´ byla v roce 2003 prˇida´na k pu˚vodnı´mu ISO standardu.

Hlavnı´ rozdı´l, kromeˇ zpu˚sobu za´pisu map te´mat, je zpu˚sob adresova´nı´.

Zatı´mco v HyTime je mozˇne´ pouzˇı´t prakticky jaky´koliv zpu˚sob, v XTM je

9HyTime – Hypermedia/Time-based Structuring Language

10SGML – Standard Generalized Markup Language

11XML – Extensible Markup Language

12DTD – Document Type Definition – http://www.w3.org/TR/html401/sgml/dtd.

html

13URI – Uniform Resource Identifier

14LTM – Linear Topic Maps

15Konverze LTM – konverze je mozˇna´ naprˇı´klad pomocı´ programu Ontopia Knowledge Suite, o ktere´m jesˇteˇ bude zmı´nka pozdeˇji.

16Tato dveˇ jme´na dodnes figurujı´ v ru˚zny´ch pracovnı´ch skupina´ch prˇipravujı´cı´ch standardy a doporucˇenı´ ty´kajı´cı´ se map te´mat.

17CaPH – Conventions for the Application of HyTime

(14)

KAPITOLA 2. TOPIC MAPS 2.2. POUZˇITI´ MAP TE´MAT

povinne´ pouzˇı´vat XLink18a adresy URI. Adresova´nı´ tak sice vyznı´va´ le´pe pro HyTime, nicme´neˇ nikde nenı´ rˇecˇeno, zˇe software bude dany´m zpu˚sobem umeˇt pracovat. V XTM bylo zvoleno URI zejme´na proto, zˇe hlavnı´ mı´sto, kde se Topic Maps vyuzˇı´vajı´, je web. A na webu je adresova´nı´ pomocı´ URI nejrozsˇı´rˇeneˇjsˇı´.

2.2 Pouzˇitı´ map te´mat

Mapy te´mat se pouzˇı´vajı´ zejme´na v informacˇnı´m managementu, kde nabı´zejı´

zpu˚sob pro organizaci informacı´, jejich zı´ska´va´nı´ a navigaci v informacˇnı´ch zdrojı´ch. Da´le se pouzˇı´vajı´ v managementu znalostı´, kde jsou formalizmem pro reprezentaci znalostı´. Pouzˇı´t se mohou i v knihovnictvı´, kde jsou zpu˚so- bem, jak zachytit znalosti o libovolne´m prˇedmeˇtu, vcˇetneˇ jeho vztahu˚ k dalsˇı´m prˇedmeˇtu˚m [17].

Mapy te´mat zjednodusˇujı´ navigaci nad staticky´mi weby, kde dı´ky defino- vatelny´m vztahu˚m mezi jednotlivy´mi te´maty, da´vajı´ na´vsˇteˇvnı´kovi mozˇnost, dostat se efektivneˇ k hledane´ informaci. Ke kazˇde´ webove´ stra´nce nebo jejı´

cˇa´sti, je mozˇne´ definovat vazby na ostatnı´ cˇa´sti webu nebo i externı´ zdroje a poskytnout tak maxima´lnı´ mozˇny´ pocˇet prova´zany´ch informacı´.

Dalsˇı´ mı´sto vy´skytu map te´mat je ve vyhleda´vacı´ch na´strojı´ch. Mohou vyu- zˇı´t znalosti ulozˇene´ v mapa´ch a zlepsˇit tak vy´sledky vyhleda´va´nı´. Jsou vsˇak po- uzˇitelne´ pouze v teˇch vyhleda´vacˇı´ch, ktere´ vyuzˇı´vajı´ znalostnı´ prˇı´stup. Naopak ty, ktere´ jsou zalozˇene´ na statisticke´m prˇı´stupu, mapy te´mat vyuzˇı´t nemohou.

Mapy jsou vyuzˇı´va´ny ru˚zny´mi organizacemi. Tı´m, zˇe jsou velice flexibilnı´, expresivnı´ a zˇe jsou schva´leny jako ISO standard, v sobeˇ skry´vajı´ velkou atrak- tivitu. Komercˇnı´ vydavatele´ je vyuzˇı´vajı´ pro prˇida´nı´ hodnoty jejich obsahu – mezi prvnı´mi byli vydavatele´ encyklopediı´ a pra´vnı´ch textu˚, a tvu˚rci e- learningovy´ch kurzu˚. Webove´ porta´ly mapy vyuzˇı´vajı´ pro zlepsˇenı´ navigace nad rozsa´hly´mi weby. Vyuzˇı´vajı´ se i v call-centrech pro rychle´ nalezenı´ odpo- veˇdı´ na dotazy klientu˚ [33].

2.3 Popis forma´tu XTM

Jak jizˇ bylo zmı´neˇno, XTM je forma´t pro za´pis map te´mat pomocı´ XML. Zpu˚sob za´pisu je dobrˇe popsa´n a je soucˇa´stı´ ISO/IEC 13250:2003 v podobeˇ DTD19. Soucˇa´stı´ normy je XTM 1.0. V soucˇasne´ dobeˇ je v procesu prˇı´pravy nova´ verze XTM 2.0, nicme´neˇ zatı´m jen v podobeˇ na´vrhu pro opravy (Final Draft for review).

Je poucˇne´ se podı´vat, jak verze XTM 2.0 meˇnı´ na´zvy neˇktery´ch elementu˚, vyjasnˇuje urcˇite´ veˇci, ktere´ z XTM 1.0 nebyly na prvnı´ pohled zrˇejme´ a celkoveˇ zprˇehlednˇuje za´pis map [10]. Zajı´mavostı´ je, zˇe jesˇteˇ da´le zjednodusˇuje odka- zova´nı´ v mapa´ch te´mat na atribut HREF, ktery´ se pouzˇı´va´ naprˇı´klad v HTML

18XLink – XML Linking Language

(15)

KAPITOLA 2. TOPIC MAPS 2.3. POPIS FORMA´TU XTM

(zmeˇneˇno z odkazova´nı´ pomocı´ XLink). Zmeˇny v na´zvech ru˚zny´ch elementu˚

jsou provedeny tak, aby co nejvı´ce ulehcˇily pochopenı´ forma´tu a programo- va´nı´ aplikacı´ pro pra´ci s mapami te´mat. Prˇevod forma´tu dat mezi jednotlivy´mi verzemi prˇes vsˇechny zmeˇny nenı´ proble´m. Pro potrˇeby te´to pra´ce je pouzˇita verze XTM 1.0 [22], cˇa´stecˇneˇ jsou implementova´ny neˇktere´ funkce z XTM 1.1.

V na´sledujı´cı´ch odstavcı´ch bude zmı´neˇn zpu˚sob za´pisu hlavnı´ch elementu˚

a jejich vza´jemne´ za´vislosti – tedytopic(te´ma),association(asociace) aoccurrence (vy´skyt), jejich parametry a nejdu˚lezˇiteˇjsˇı´ vnorˇene´ elementy. Pro snadneˇjsˇı´ po- chopenı´ je vzˇdy uvedena i cˇa´st DTD, ktera´ se dane´ho elementu ty´ka´. Proble- matika slucˇova´nı´ (merging) neˇkolika map te´mat, pomocı´ elementumergeMap, je kvu˚li sve´ komplexnosti mimo rozsah te´to pra´ce.

<!ELEMENT topicMap

( topic | association | mergeMap )*>

<!ATTLIST topicMap

id ID #IMPLIED

xmlns CDATA #FIXED ’www.topicmaps.org/xtm/1.0/’

xmlns:xlink CDATA #FIXED ’www.w3.org/1999/xlink’

xml:base CDATA #IMPLIED>

Cela´ mapa te´mat ma´ korˇenovy´ element topicMap. Tato mapa mu˚zˇe by´t

„zhmotneˇna“ (reified) pomocı´ atributu ida vybrane´ho te´matu20. Je tak mozˇne´

„vlastnı´mi prostrˇedky“ mapy te´mat definovat jme´no mapy a jejı´ dalsˇı´ vlast- nosti. Soucˇa´stı´ korˇenove´ho elementu je i definice jmenne´ho prostoru, ktery´ se v mapeˇ pouzˇı´va´. Atribut xml:basese mu˚zˇe pouzˇı´t pro urcˇenı´ za´kladnı´ho URL, pomocı´ ktere´ho se budou tvorˇit absolutnı´ odkazy v cele´ mapeˇ.

<!ELEMENT topic

( instanceOf*, subjectIdentity?, ( baseName | occurrence )* )>

<!ATTLIST topic

id ID #REQUIRED>

Jednotliva´ te´mata se zapisujı´ pomocı´ elementutopic (te´ma). Pomocı´ te´mat se definujı´ i prvky, ktere´ se v Topic Maps vyskytujı´ a na prvnı´ pohled te´matem nejsou – typ asociace (v prˇı´kladu uvedene´m da´le Autorstvı´), cˇlen asociace (v prˇı´kladu Tim Bray a Dı´lo), vy´znam jednotlivy´ch te´mat v asociaci (Dı´lo a Autor) atd. To se na prvnı´ pohled mu˚zˇe zda´t matoucı´, nicme´neˇ po pochopenı´

problematiky zjistı´te, zˇe to tvu˚rci mapy da´va´ obrovske´ mozˇnosti.

Pro te´ma je mozˇno urcˇit, jake´ho je typu pomocı´ elementu instanceOf. Tato mozˇnost se cˇasto vyuzˇı´va´ a velice usnadnˇuje pochopenı´, cˇeho se dane´ te´ma ty´ka´. Dalsˇı´ pouzˇı´vany´ podelement jesubjectIdentity, tzv. PSI21. Je snaha, aby PSI byly verˇejneˇ prˇı´stupne´ a pouzˇı´vane´ a pro popis stejny´ch te´mat se vyuzˇı´valy

20Jako je to udeˇla´no naprˇı´klad v da´le vyuzˇı´vane´ mapeˇ te´mat italsky´ch oper.

21PSI – Public Subject Identifier – je adresovatelne´ mı´sto, ktere´ dany´ objekt jednoznacˇneˇ popisuje.

(16)

KAPITOLA 2. TOPIC MAPS 2.3. POPIS FORMA´TU XTM

stejne´ PSI. Vyuzˇı´vajı´ se tak cˇasto bud’ zdroje typu wikipedie nebo i fiktivnı´

URL adresy pro te´mata, ktera´ jesˇteˇ nejsou dobrˇe jednoznacˇneˇ popsa´na. Vyuzˇitı´

stejny´ch PSI je du˚lezˇite´ pro slucˇova´nı´ ru˚zny´ch map te´mat – te´ma, ktere´ odkazuje na stejny´ PSI, je dle definice o tom same´m a meˇlo by tedy by´t sloucˇeno.

<!ELEMENT baseName ( scope?, baseNameString, variant*)>

<!ELEMENT variant ( parameters, variantName?, variant*)>

<!ELEMENT variantName ( resourceRef | resourceData)>

<!ELEMENT occurrence

(instanceOf?, scope?, ( resourceRef | resourceData ))>

Jme´no te´matu je ulozˇeno do elementubaseName, dalsˇı´ jme´na pak pomocı´

elementu variant. Rozsah platnosti nebo pu˚sobnosti scope urcˇuje, kdy se ma´

dane´ jme´no vyuzˇı´t. Scope se vyuzˇı´va´ naprˇı´klad pro informova´nı´ programu, podle jake´ho jme´na ma´ trˇı´dit (prˇı´jmenı´, jme´no bez cˇlenu atd., bude popsa´no da´le). Kde se nacha´zejı´ zdroje souvisejı´cı´ s te´matem, se ukla´da´ do elementu occurrence, a to bud’pomocı´ odkazu na dokument, cˇi jeho cˇa´st. Pokud se nejedna´

o prˇı´mo adresovatelny´ objekt (kniha v knihovneˇ), je mozˇne´ data do elementu zapsat rovnou. Element occurrence ma´ opeˇt mozˇnost definova´nı´ typu pomocı´

elementuinstanceOfa specifikova´nı´ rozsahu pu˚sobnosti s vyuzˇitı´mscope.

<!ELEMENT association

( instanceOf?, scope?, member+ )>

<!ELEMENT member ( roleSpec?,

( topicRef|resourceRef|subjectIndicatorRef)+)>

Vztahy mezi te´maty22se zapisujı´ pomocı´ elementuassociation. U toho je opeˇt mozˇne´ definovat typ asociaceinstanceOf, rozsah pu˚sobnostiscopea cˇleny aso- ciacemember. Pomocı´ elementumembertak vlastneˇ konecˇneˇ vznikajı´ zajı´mave´

informace o vztahu jednotlivy´ch te´mat nebo externı´ch zdroju˚. Cˇleny asociace je mozˇne´ popsat rolı´, kterou hrajı´ (naprˇ. herec) a odkazem na te´ma nebo doku- ment, ktery´ v asociaci vystupuje. Odkazovany´ zdroj by jizˇ meˇl obsahovat dalsˇı´

informace o cˇlenovi asociace, naprˇı´klad jme´no herce, na´zev filmu atd.

Samotne´ odkazova´nı´ mezi jednotlivy´mi te´maty nebo i vneˇ mapy te´mat se deˇje pomocı´ jazyka XLink – v praxi je omezeno na URI23odkazy. V ra´mci jedne´

mapy odkazy vypadajı´ jako #odkaz na id te´matu, odkazy mimo mapu se pak realizujı´ pomocı´ relativnı´ch nebo absolutnı´ch referencı´. Zejme´na z du˚vodu, zˇe se beˇzˇneˇ jine´ nezˇ URI odkazy nepouzˇı´valy, je ve verzi XTM 2.0 odkazova´nı´

zjednodusˇeno na atributHREF, tak jak je zna´my´ z HTML souboru˚.

<!ELEMENT topicRef EMPTY >

<!ELEMENT resourceRef EMPTY >

22Te´mata nemusı´ by´t nutneˇ soucˇa´stı´ stejne´ mapy, ale mu˚zˇe se jednat o odkaz na externı´ zdroj.

23URI –Uniform Resource Identifier

(17)

KAPITOLA 2. TOPIC MAPS 2.3. POPIS FORMA´TU XTM

<!ELEMENT subjectIndicatorRef EMPTY >

<!ATTLIST ’stejne´ k˜vy´sˇe uvedeny´m’

id ID #IMPLIED

xlink:type NMTOKEN #FIXED ’simple’

xlink:href CDATA #REQUIRED

>

Odkazy v elementech mapy te´mat, naprˇı´klad uinstanceOfneboscope, jsou realizova´ny pomocny´mi elementy – topicRef, subjectIndicatorRef a resourceRef.

Prvnı´ dva uvedene´ elementy se pouzˇı´vajı´ pro odkazova´nı´ na te´ma v mapeˇ te´- mat (topicRef) nebo jinak specifikovany´ prˇedmeˇt (subjectIndicatorRef). Poslednı´

uvedeny´ element (resourceRef) se pouzˇı´va´ pro odkazy na zdroj, ktery´ jedno- znacˇneˇ popisuje dany´ prˇedmeˇt. Pokud dveˇ te´mata pouzˇı´vajı´ odkazy na stejne´

mı´sto, jsou o tom same´m a meˇly by proto by´t sjednoceny [22].

V neˇktery´ch prˇı´padech je mozˇne´ data do elementu zapsat prˇı´mo. Tento prˇı´pad nasta´va´ naprˇı´klad u dalsˇı´ho jme´na te´matu ulozˇene´ho uvariantName, cˇi u vy´skytu, ktery´ nenı´ odkazovatelny´. Ve vsˇech prˇı´padech se tak deˇje za pomoci elementuresourceData.

Zajı´mavou mozˇnostı´ je za´pis na´zvu, ktery´ se ma´ u te´matu vyuzˇı´t pro abe- cednı´ trˇı´deˇnı´. Bez neˇj by totizˇ vznikal proble´m, jak trˇı´dit na´zvy te´matu v prˇı´- padeˇ, zˇe je ulozˇeno vı´ce ru˚zny´ch jmen. Tento zvoleny´ na´zev se oznacˇuje pomocı´

elementuscope, ktery´ odkazuje na domluvenou hodnotu. Mı´rneˇ matoucı´ je fakt, zˇe datovy´ model [30] i specifikace XTM 1.0 [22] uva´deˇjı´ odlisˇny´ odkaz.

Oba dva zdroje shodneˇ uva´deˇjı´, zˇe jme´no te´matu, ktere´ se ma´ vyuzˇı´t pro trˇı´deˇnı´, by meˇlo by´t ulozˇeno jako varianta norma´lnı´ho jme´na, tedy v elementu variant. Nastavene´ parametry by pak v prˇı´padeˇ datove´ho mo- delu meˇly mı´t hodnotu http://www.topicmaps.org/xtm/1.0/core.xtm#sort nebo http://psi.topicmaps.org/iso13250/model/sort dle normy XTM 1.0. Je rea´lne´, zˇe si neˇkdo definuje jesˇteˇ dalsˇı´ zdroj, ktery´m bude oznacˇovat jme´na vyuzˇitelna´ pro trˇı´deˇnı´.

Pokud se tvorˇı´ aplikace, ktera´ v sobeˇ zahrnuje trˇı´deˇnı´ te´mat v mapeˇ, zda´

se by´t nejjisteˇjsˇı´ kontrola, zda se odkaz nerovna´ jednomu z vy´sˇe uvedeny´ch zdroju˚ nebo zda dokonce neobsahuje pouze podrˇeteˇzec #sort. Je totizˇ velka´

pravdeˇpodobnost, zˇe pokud se neˇkdo rozhodne jı´t nestandardnı´ cestou, tak zachova´ alesponˇ tuto cˇa´st odkazu.

Vyuzˇitı´ jednoho jme´na pro trˇı´deˇnı´ se jevı´ jako dobry´ zpu˚sob, jak se vyhnout proble´mu˚m se trˇı´deˇnı´m jmen se cˇleny nebo jme´na a prˇı´jmenı´. Realita je vsˇak takova´, zˇe se nevyuzˇı´va´ prˇı´lisˇ cˇasto, a kdyzˇ uzˇ ano, tak ne du˚sledneˇ. Je proto obecneˇ nutno pocˇı´tat s urcˇitou nedokonalostı´. Tyto proble´my se projevily i prˇi zpracova´nı´ mapy te´mat italsky´ch oper v prakticke´ cˇa´sti te´to pra´ce.

(18)

KAPITOLA 2. TOPIC MAPS 2.4. PRˇI´KLAD MAPY TE´MAT

2.4 Prˇı´klad mapy te´mat

Pro lepsˇı´ ilustraci, co je to vlastneˇ mapa te´mat, by meˇl poslouzˇit obra´zek2.Na neˇm je zna´zorneˇn prˇı´klad vazeb mezi jednotlivy´mi cˇa´stmi – te´mata (Topics), asociace (Associations) a vy´skyty (Occurrences).

Obra´zek 2. Graficky zna´zorneˇna´ struktura Topic Maps – zdroj: http://xml.gov/presentations/coolheads/xtm.ppt

Ve spodnı´ cˇa´sti obra´zku jsou sˇediveˇ vyznacˇeny dokumenty. Lze si prˇedsta- vit, zˇe co jeden hranol, to jeden adresovatelny´ dokument v informacˇnı´m zdroji.

V prˇı´padeˇ webu by se jednalo o webove´ stra´nky, dokumenty dostupne´ pomocı´

internetovy´ch protokolu˚ a odkazy na tyto zdroje by byly realizova´ny pomocı´

URI.

Te´mata, ktera´ jsou v obra´zku vyznacˇena koulı´, oznacˇujı´ jakousi nadtrˇı´du nad informacˇnı´m zdrojem a umozˇnˇujı´ navigaci mezi jednotlivy´mi dokumenty.

Pro spojenı´ mezi te´maty a dokumenty se pouzˇı´vajı´ vy´skyty, na obra´zku sˇipky.

Ty vedou z te´matu na jeden nebo vı´ce dokumentu˚ nebo jeho cˇa´sti. Odkazy mo- hou by´t realizova´ny nejen pomocı´ URI, ale mu˚zˇe se jednat i o knihu v knihovneˇ nebo o postavu ve filmu. Lze si prˇedstavit i takovou mapu te´mat, kdy by vy´skyt dane´ho te´matu byl adresa budovy v neˇjake´m meˇsteˇ.

Vztahy mezi te´maty zajisˇt’ujı´ asociace, ktere´ jsou zna´zorneˇny prˇerusˇovanou cˇarou. Ty jsou du˚lezˇite´ pro vyja´drˇenı´ vztahu mezi jednotlivy´mi te´maty. Asoci- ace mohou by´t „anonymnı´ “ tedy bez definovane´ho typu nebo pojmenovane´, kdy se specifikuje, o jakou asociaci se jedna´ (vyuzˇı´va´ se cˇasteˇji). Otypovane´ aso- ciace se cˇasto pouzˇı´vajı´ proto, zˇe je pak takova´ mapa te´mat snadno prˇeveditelna´

do lidsky cˇitelne´ podoby, naprˇı´klad HTML.

S trochou nadsa´zky by se dalo rˇı´ci, zˇe asociace je na cele´ mapeˇ vlastneˇ to nejzajı´maveˇjsˇı´ – da´va´ veˇci do souvislostı´, urcˇuje kontext a tı´m celou mapu te´mat zlidsˇt’uje. V asociacı´ch je pak mozˇne´ si „prˇecˇı´st“, o cˇem cela´ mapa te´mat

(19)

KAPITOLA 2. TOPIC MAPS 2.4. PRˇI´KLAD MAPY TE´MAT

je. Samozrˇejmeˇ se to neobejde bez te´mat, ktera´ jsou asociova´na a vy´skytu˚, ktere´

odkazujı´ na externı´ zdroje.

V XTM syntaxi24by se jednoducha´ mapa te´mat dala zapsat zpu˚sobem uka´- zany´m na na´sledujı´cı´m prˇı´kladu – prˇı´klad je prˇevzat z [9] a drobneˇ upraven:

<topicMap xmlns=”http://www.topicmaps.org/xtm/1.0/”

xmlns:xlink=”http://www.w3.org/1999/xlink”>

<!-- zalozˇenı´ te´matu Osoba -->

<topic id=”person”>

<baseName>

<baseNameString>Osoba</baseNameString>

</baseName>

</topic>

<!-- zalozˇenı´ te´matu Standard -->

<topic id=”standard”>

<baseName>

<baseNameString>Standard</baseNameString>

</baseName>

</topic>

<!-- zalozˇenı´ te´matu Autorstvı´ -->

<topic id=”authorship”>

<baseName>

<baseNameString>Autorstvı´</baseNameString>

</baseName>

</topic>

<!-- zalozˇenı´ te´matu Autor -->

<topic id=”author”>

<baseName>

<baseNameString>Autor</baseNameString>

</baseName>

</topic>

<!-- zalozˇenı´ te´matu Tim Bray typu person -->

<topic id=”tim-bray”>

<instanceOf>

<topicRef xlink:href=”#person”/>

</instanceOf>

<baseName>

<baseNameString>Tim Bray</baseNameString>

</baseName>

</topic>

<!-- zalozˇenı´ te´matu Dı´lo -->

<topic id=”work”>

<baseName>

<baseNameString>Dı´lo</baseNameString>

24XTM syntaxe – kompletnı´ norma je dostupna´ zdarma na internetu.

(20)

KAPITOLA 2. TOPIC MAPS 2.4. PRˇI´KLAD MAPY TE´MAT

</baseName>

</topic>

<!-- zalozˇenı´ te´matu XML doporucˇenı´ -->

<topic id=”xml-rec”>

<instanceOf>

<topicRef xlink:href=”#standard”/>

</instanceOf>

<baseName>

<baseNameString>XML doporucˇenı´</baseNameString>

</baseName>

</topic>

<!-- vytvorˇenı´ asociace mezi autorem a pracı´ -->

<association>

<instanceOf>

<topicRef xlink:href=”#authorship”/>

</instanceOf>

<!-- cˇlen asociace author Tim Bray -->

<member>

<roleSpec>

<topicRef xlink:href=”#author”/>

</roleSpec>

<topicRef xlink:href=”#tim-bray”/>

</member>

<!-- cˇlen asociace Dı´lo -->

<member>

<roleSpec>

<topicRef xlink:href=”#work”/>

</roleSpec>

<topicRef xlink:href=”#xml-rec”/>

</member>

</association>

</topicMap>

Z jednoduche´ mapy v prˇı´kladu je mozˇne´ pomeˇrneˇ snadno vycˇı´st, zˇe je zalozˇeno sedm te´mat a jedna asociace. Ze sedmi te´mat jsou trˇi pouzˇity pro definova´nı´ typu˚ ostatnı´ch objektu˚. V asociaci jsou pak da´ny do kontextu dveˇ te´mata, kdy kazˇdy´ z cˇlenu˚ asociace ma´ specifikovany´ typ, opeˇt s vyuzˇitı´m jine´ho te´matu.

Prˇı´klad je hodneˇ zjednodusˇeny´ a meˇl by slouzˇit pouze pro za´kladnı´ infor- mace o tom, jak vypada´ syntaxe XTM. Cela´ norma ISO 13250 [22] vcˇetneˇ DTD dokumentu, ktery´ popisuje strukturu XTM, je dostupna´ zdarma na internetu.

Kompletnı´ verze ma´ po vytisˇteˇnı´ 100 stran, takzˇe k te´to pra´ci nemohla by´t prˇipojena. Na internetu je navı´c vzˇdy v aktua´lnı´ verzi.

(21)

KAPITOLA 2. TOPIC MAPS 2.5. BUDOUCNOST TOPIC MAPS

2.5 Budoucnost Topic Maps

Vy´voj Map te´mat jde sta´le doprˇedu a v souvislosti s tı´m se vyvı´jejı´ i dalsˇı´ pro- strˇedky pro pra´ci s nimi [20]. Na sveˇt pomalu prˇicha´zı´ nova´ verze specifikace pro za´pis map te´mat XTM 2.0, jejı´zˇ prˇedchu˚dkynı´ je nikdy oficia´lneˇ nevy- dana´ verze XTM 1.1. Zmeˇna v cˇı´slova´nı´ o jednu hlavnı´ verzi ma´ ten du˚vod, zˇe v XTM 2.0 dosˇlo ke zpeˇtneˇ nekompatibilnı´m zmeˇna´m. Uka´zalo se totizˇ, zˇe zmeˇny pla´novane´ pro XTM 1.1, jsou jizˇ nesmı´rneˇ rozsa´hle´ a zmeˇna v na´zvech elementu˚ byla pro zjednodusˇenı´ syntaxe nezbytna´.

Snahou je, aby se kazˇda´ nova´ verze nebo souvisejı´cı´ technologie, jako na- prˇı´klad TMQL25, stala soucˇa´stı´ standardu ISO 13250 a byla tak pro vy´voja´rˇe za´vazna´. Tato aktivita je chva´lyhodna´, protozˇe pouze neusta´vajı´cı´ vy´voj v sou- vislosti s aktua´lnı´mi trendy mu˚zˇe zamezit vytva´rˇenı´ ru˚zny´ch proprieta´rnı´ch rozsˇı´rˇenı´. Nenasta´va´ pak proble´m s nekompatibilnı´mi verzemi programu˚ zpra- cova´vajı´cı´ch mapy te´mat.

Jednou ze soucˇa´stı´ map te´mat, zatı´m sice ne ve fina´lnı´ podobeˇ, ale jizˇ dnes cˇasto citovanou a odkazovanou, je TMDM26– datovy´ model map te´mat – ktery´

definuje interpretaci mimo jine´ i vy´meˇnne´ho forma´tu XTM. TMDM uprˇesnˇuje nejasnosti, ru˚zne´ vy´klady urcˇity´ch cˇa´stı´, ktere´ v souvislosti s XTM 1.0 mohly nastat. Rˇesˇı´ i takove´ malicˇkosti, jako zda a kdy seTopic Mapsma´ psa´t s velky´mi pı´smeny na zacˇa´tku slov. Z du˚lezˇiteˇjsˇı´ch veˇcı´ je mozˇno zmı´nit naprˇı´klad za´- vazne´ vysveˇtlenı´ pojmu˚, ktere´ se v mapa´ch te´mat vyskytujı´, a samotne´ vazby mezi jednotlivy´mi cˇa´stmi.

TMDM da´le slouzˇı´ jako za´klad pro:

• TMQL – Topic Maps Query Language – vysokou´rovnˇovy´ dotazovacı´

jazyk,

• TMCL – Topic Maps Constraint Language – zprˇı´sneˇnı´ gramatiky map, te´mat,

• XTM 2 – nova´ syntaxe XTM pro mapy te´mat,

• CXTM – kanonicky´ forma´t map te´mat (Canonicalization),

• CTM – Compact Topic Maps – kompaktnı´ forma´t pro za´pis map te´mat.

Za pozornost urcˇiteˇ stojı´ i dotazovacı´ jazyk TMQL [31], vytvorˇeny´ specia´lneˇ pro mapy te´mat. Meˇl by vy´razneˇ ulehcˇit vyhleda´va´nı´ v mapeˇ a pomocı´ relativneˇ jednoduche´ho dotazu zprˇı´stupnit potrˇebne´ informace. Vznikl zejme´na proto, zˇe jazyky XPath ani SQL nejsou pro vyhleda´va´nı´ v mapa´ch te´mat vhodne´ a neˇktere´ dotazy jsou pomeˇrneˇ obtı´zˇne´ a musejı´ se skla´dat z neˇkolika kroku˚.

V TMQL by naprˇı´klad pro vy´beˇr vsˇech skladatelu˚, kterˇı´ slozˇili operu, meˇlo stacˇit napsat na´sledujı´cı´ (prˇı´klad prˇevzaty´ z TMQL working draft [31]):

25TMQL – Topic Maps Query Language, novy´ dotazovacı´ jazyk pro mapy te´mat

26TMDM – Topic Maps Data Model

(22)

KAPITOLA 2. TOPIC MAPS 2.5. BUDOUCNOST TOPIC MAPS

select $COMPOSER

where composed-by($COMPOSER : composer, $OPERA : work) Vsˇechny vy´sˇe uvedene´ technologie, kromeˇ datove´ho modelu (ktery´ sice take´ nenı´ ve fina´lnı´ verzi, ale cˇasto se pouzˇı´va´, jako by jizˇ byl), jsou zatı´m ve sta´diu na´vrhu a proprieta´rnı´ch implementacı´. Veˇtsˇı´ rozsˇı´rˇenı´ jejich pouzˇitı´ se da´

ocˇeka´vat azˇ pote´, co se stanou soucˇa´stı´ standardu. Velke´ nadeˇje jsou vkla´da´ny zejme´na do TMQL, ktery´ velice ulehcˇı´ operace typu vy´beˇr konkre´tnı´ho te´matu a jeho vazeb.

Obra´zek 3.Ontopia Knowledge Suite – vizualizace mapy te´mat Opery – te´ma Manon Lescaut

Pomeˇrneˇ zajı´mavou vlastnostı´ neˇktery´ch programu˚ pracujı´cı´ch s mapami te´mat je mozˇnost vizualizace mapy. Neˇktere´ programy umozˇnˇujı´ nacˇtenou mapu graficky zna´zornit a prostoroveˇ ji procha´zet. Konkre´tnı´ objekt se po zvolenı´ zobrazı´ vcˇetneˇ jeho vztahu na souvisejı´cı´ objekty, viz obra´zek3., kde je videˇt te´ma „Manon Lescaut“ a jeho vazby na ostatnı´ objekty. Je to jedna z cest, jak cˇloveˇku zprˇı´stupnit data v mapeˇ, anizˇ by musel studovat nebo i jen zna´t zdrojovy´ ko´d mapy. Je to mozˇna´ cesta, jak uzˇivatelu˚m na´zorneˇ zprˇı´stupnit data uchova´vana´ nejenom v mapa´ch te´mat.

(23)

Kapitola 3

XSLT a XPath

3.1 XSLT

Jazyk XSL1 se pouzˇı´va´ prˇi takzvany´ch XSLT2 transformacı´ch. XSLT verze 1.0 vzniklo na pu˚deˇ konsorcia W3C v letech 1998–1999. XSL transformace je tzv.

Turing-kompletnı´ stroj, viz naprˇ. [23] a je tak teoreticky pouzˇitelne´ pro mnoho ru˚zny´ch u´loh – ne vsˇak nutneˇ efektivnı´m zpu˚sobem. Nejcˇasteˇji se pouzˇı´va´ prˇi konverzi XML do jine´ho XML forma´tu, proste´ho textu, HTML nebo FO3, ktery´

se pouzˇı´va´ pro prˇevod do PDF [7].

Pro prˇevod je zapotrˇebı´ zdrojovy´ XML dokument, XSLT procesor a XSLT sˇablona, ktera´ popisuje, jak se ma´ nalozˇit s jednotlivy´mi elementy ve zdrojove´m dokumentu. XSLT sˇablony jsou obvykle psa´ny pro konkre´tnı´ sadu elementu˚

pouzˇity´ch ve zdrojove´m XML – tedy s tı´m, zˇe autor XSLT sˇablony zna´ forma´t XML dokumentu, ktery´ se ma´ transformovat. V XML to obvykle znamena´, zˇe ma´ k dispozici definici typu dokumentu – DTD, XSD4, Relax NG5atd.

Proces prˇevodu je videˇt na obra´zku 4. XSLT procesor obstara´va´ propojenı´

XML dokumentu a XSLT sˇablony. Zdrojovy´ dokument se zpracuje podle pra- videl zadany´ch v sˇabloneˇ a na vy´stup se zapı´sˇe novy´ dokument. Pokud je na vy´stupu XML s obsahem forma´tovacı´ch objektu˚, prˇibude obvykle jesˇteˇ jeden krok, kdy se dokument prˇevede naprˇı´klad do PDF nebo RTF.

V dnesˇnı´ dobeˇ je nejuzˇı´vaneˇjsˇı´ verze XSLT 1.0, ktera´ nicme´neˇ neobsahuje vsˇechny pozˇadovane´ vlastnosti. Vzniklo proto mnoho proprieta´rnı´ch nadsta- veb XSLT procesoru˚, ktere´ potrˇebna´ rozsˇı´rˇenı´ obsahovaly. To vsˇak byl pomeˇrneˇ velky´ proble´m, protozˇe tak XSL nebylo plneˇ kompatibilnı´ mezi jednotlivy´mi procesory. Postupneˇ tak vznikal tlak na vytvorˇenı´ nove´ verze a zapracova´nı´

potrˇebny´ch rozsˇı´rˇenı´ do nı´.

Nova´ verze XSLT 2.0, ktera´ ma´ k 23. lednu 2007 status doporucˇenı´ (recom- mendation), se jizˇ zacˇı´na´ u´speˇsˇneˇ rozsˇirˇovat. Je jizˇ neˇkolik XSLT procesoru˚,

1XSL – eXtensible Stylesheet Language

2XSLT – eXtensible Stylesheet Language Transformation

3FO – forma´tovacı´ objekty

4XSD – XML Schema Definition –http://www.w3.org/XML/Schema

5Relax NG –http://relaxng.org/spec-20011203.html

(24)

KAPITOLA 3. XSLT A XPATH 3.1. XSLT

Obra´zek 4.Proces zpracova´nı´ XML na XSLT – zdrojhttp://www.svgopen.

org/2004/papers/liyan_paper_abstract1/

ktere´ ji plneˇ podporujı´. Procesor Saxon, ktery´ bude citova´n v te´to pra´ci, byl prvnı´ z nich. Nenı´ to na´hoda, protozˇe Michael Kay, ktery´ se podı´lel na vyda´nı´

XSLT 2.0, je za´rovenˇ tvu˚rce programu SAXON a procesor tak vznikal za´rovenˇ s tvorbou standardu. V tomto prˇı´padeˇ tedy nenı´ mozˇne´ W3C, jehozˇ jme´nem je standard zasˇtı´teˇn, spravedliveˇ obvinit, zˇe vytvorˇilo neimplementovatelny´

standard6.

Pozˇadavek v doporucˇenı´ XSLT 2.0 je, aby bylo plneˇ zpeˇtneˇ kompatibilnı´

s verzı´ 1.0 – tedy aby XSLT procesory, ktere´ umı´ transformovat XSLT 2.0, zvla´dly i transformaci XSLT 1.0. Vzhledem k tomu, zˇe pouzˇita´ verze se zapisuje do hlavicˇky XSLT souboru, nenı´ potrˇeba nikde da´le specifikovat, podle jake´ verze ma´ transformace probeˇhnout.

Hlavnı´ novinky prˇedstavene´ ve verzi XSLT 2.0 jsou [8]: vyuzˇitı´ souvisejı´cı´ho standardu XPath 2.0 (popsa´no da´le), konec RTF7 a jeho nahrazenı´ temporary tree, povolenı´ vı´ce vy´stupnı´ch dokumentu˚8, umozˇneˇnı´ XHTML vy´stupu, zjed- nodusˇene´ seskupova´nı´ (grouping), uzˇivatelsky definovatelne´ funkce a mnoho dalsˇı´ho. Pro kompletnı´ seznam funkcı´ je vhodne´ prozkoumat poslednı´ verzi standardu XSLT 2.0 [5].

Uzˇivatelsky definovane´ funkce jsou jednou z veˇcı´, ktere´ v XSLT velice chybeˇly. Jejich pouzˇitı´ se sice dalo simulovat pomocı´ pojmenovany´ch sˇablon, nicme´neˇ tato na´hrada nebyla plnohodnotna´. Hodnota funkce se nynı´ mu˚zˇe po- uzˇı´t kdekoliv v cele´ sˇabloneˇ a dokonce i v XPath vy´razech. Je mozˇne´ rekurzivnı´

vola´nı´ a dalsˇı´ vymozˇenosti. Funkce sama o sobeˇ neumı´ nic zapsat do vy´stup- nı´ho dokumentu – hodnoty zapsane´ na „vy´stup“ jsou na´sledneˇ prˇı´stupne´ jako vy´sledek funkce [32].

6Prˇi studiu materia´lu na internetu je mozˇne´ na obvineˇnı´, zˇe W3C tvorˇı´ neimplementovatelne´

standardy, narazit pomeˇrneˇ cˇasto. Na rozdı´l od jiny´ch standardizacˇnı´ch orga´nu˚ totizˇ za´rovenˇ se standardem nevyda´va´ i vzorovou implementaci.

7RTF – result tree fragment

8Umozˇneˇnı´ vı´ce vy´stupnı´ch dokumentu˚ je typicky´ prˇı´klad proprieta´rnı´ho rˇesˇenı´ jednotli- vy´ch procesoru˚ ve verzi XSLT 1.0.

(25)

KAPITOLA 3. XSLT A XPATH 3.2. XPATH

3.2 XPath

XPath9, standard W3C velice u´zce propojeny´ se standardem XSLT, umozˇnˇuje vybı´rat cˇa´sti XML dokumentu pomocı´ jednoduchy´ch vy´razu˚. XML dokument je prˇitom mozˇne´ si prˇedstavit jako stromovou strukturu, kde jednotlive´ ele- menty, atributy i text jsou cha´pa´ny jako uzly stromu [18].

Nova´ verze XPath 2.0, ktera´ je teˇsneˇ prˇed schva´lenı´m standardizacˇnı´m orga´- nem, nabı´zı´ mnoho mozˇnostı´, ktere´ ve verzi 1.0 chybeˇly nebo byly do programu˚

prˇida´ny proprieta´rneˇ. Obeˇ dveˇ verze jsou sice popsa´ny jako: „jazyk pro adreso- va´nı´ cˇa´sti XML dokumentu“, ale plneˇ to vystihuje pouze verzi 1.0. Lepsˇı´ popis verze 2.0 by byl: „jazyk pouzˇı´vajı´cı´ vy´razy pro zpracova´nı´ sekvencı´ s vestaveˇ- nou podporou dotazova´nı´ XML dokumentu˚“. Tı´m se cˇa´stecˇneˇ dosta´va´ na pole pu˚sobnosti XQuery10. To vsˇak nenı´ na´hoda, protozˇe XPath 2.0 opravdu z velke´

cˇa´sti prˇevzal vlastnosti, ktere´ byly pu˚vodneˇ sepsa´ny pro XQuery 1.0 [11].

Jednou z novinek je rozsˇı´rˇenı´ pouzˇitelny´ch datovy´ch typu˚ – seznam ob- sahuje vsˇechny za´kladnı´ typy zna´me´ z XML sche´mat. Je tak mozˇne´ pouzˇı´t typy jako je rˇeteˇzec, datum, URI atd. – toho se s vy´hodou vyuzˇije ve funkcı´ch pro operace s typy. Dalsˇı´ du˚lezˇitou novinkou je, zˇe vsˇe, co XPath 2.0 vracı´, je sekvence. Tyto sekvence je da´le mozˇno zpracova´vat pomocı´ nove´ho cyklufor.

Noveˇ je take´ mozˇne´ vyuzˇı´t v jiny´ch jazycı´ch beˇzˇny´ prˇı´kaz pro podmı´nku if ...

then ... else ... .

Dalsˇı´ch novinek, ktere´ prˇisˇly s verzı´ XPath 2.0 a rozhodneˇ stojı´ za pozornost, je cela´ rˇada. Pro dalsˇı´ informace je vhodne´ si prostudovat standard na stra´nka´ch W3C [6] a prˇı´padneˇ cˇla´nky o tomto standardu, ktery´ch je na internetu k nalezenı´

cela´ rˇada.

9XPath – XML Path Language

10XQuery – XML Query Language

(26)

Kapitola 4 TMAPI

TMAPI1 je programovacı´ rozhranı´ pro prˇı´stup k datu˚m ulozˇeny´m v mapeˇ te´mat, a manipulaci s nimi. Hlavnı´m du˚vodem pro jeho vznik byl fakt, zˇe existovaly ru˚zne´ komercˇnı´ i nekomercˇnı´ procesory a aplikace schopne´ pracovat s mapami te´mat, nicme´neˇ neexistovala mezi nimi zˇa´dna´ kompatibilita. Ten, kdo chteˇl ve sve´ aplikaci prˇejı´t z jednoho procesoru na jiny´, musel prˇepsat velkou cˇa´st ko´du. Cı´lem projektu TMAPI se tak stalo, by´t pro mapy te´mat tote´zˇ, co SAX2 a DOM3 znamena´ pro XML – poskytnout jednotne´ API, ktere´ budou vyuzˇı´vat vsˇichni programa´torˇi [27].

Obra´zek 5.Ontopia Knowledge Suite – hlavnı´ menu pro pra´ci s Topic Maps

Specifikace TMAPI definuje sadu klı´cˇovy´ch rozhranı´, ktera´ musı´ by´t apli- kacı´ implementovana´ a sadu rozsˇirˇujı´cı´ch rozhranı´, ktera´ mu˚zˇe by´t implemen- tovana´. Pro zjisˇteˇnı´, jake´ funkce dany´ procesor podporuje, je mozˇne´ zavolat k tomu urcˇenou funkci. Tı´m by meˇlo by´t zarucˇeno, zˇe jednotlive´ TMAPI imple- mentace budou navza´jem zameˇnitelne´ bez za´sadnı´ho za´sahu do zdrojove´ho ko´du aplikace.

1TMAPI – Topic Maps Application Programming Interface

2SAX – Simple API for XML

(27)

KAPITOLA 4. TMAPI

Velkou vy´hodou tohoto rozhranı´ je, zˇe bylo vytvorˇeno hromadneˇ lidmi (open process), kterˇı´ pracovali na vy´voji aplikacı´ pracujı´cı´ch s mapami te´mat, a je ve verˇejne´m vlastnictvı´. Jsou tak splneˇny vsˇechny prˇedpoklady pro to, aby rozhranı´ bylo kvalitnı´ a nebyla vytvorˇena zˇa´dna´ umeˇla´ omezenı´ jeho pouzˇitı´.

To a jeho kvalitnı´ podpora mu zajistily pomeˇrneˇ znacˇne´ rozsˇı´rˇenı´. Existujı´ sice alternativnı´ API pro prˇı´stup k mapa´m te´mat, nicme´neˇ aplikace nabı´zejı´cı´ toto alternativnı´ API veˇtsˇinou za´rovenˇ umozˇnˇujı´ pra´ci v TMAPI kompatibilnı´m rezˇimu.

TMAPI je popsa´no jako objektovy´ na´vrh rozhranı´ pro pra´ci s mapami te´- mat. Jeho implementace je tedy nejobvyklejsˇı´ v Javeˇ, ale existujı´ i implemen- tace v PHP nebo Pythonu. Protozˇe ne vsˇechny programovacı´ a skriptovacı´

jazyky nabı´zejı´ mozˇnost objektove´ho prˇı´stupu nebo nejsou prima´rneˇ urcˇeny pro grafickou interakci s uzˇivatelem (XSLT je toho nejlepsˇı´m prˇı´kladem), mu˚- zˇeme se setkat s implementacemi, ktere´ jsou oproti na´vrhu upravene´ pro ru˚zna´

prostrˇedı´. Ota´zkou je, zdali je pak jesˇteˇ mozˇne´ tvrdit, zˇe se jedna´ o TMAPI kompatibilnı´ rozhranı´.

Nejzna´meˇjsˇı´ implementace jsou pravdeˇpodobneˇ TM4J4 a OKS5. Zajı´mave´

je, zˇe obeˇ nabı´zejı´ nejen TMAPI, ale take´ vlastnı´ API pro pra´ci s mapami te´mat.

TM4J – Topic Maps for Java – je nekomercˇnı´ software, je zameˇrˇen hlavneˇ na poskytnutı´ API pro programa´tory a nema´ vlastnı´ graficke´ rozhranı´. OKS – Ontopia Knowledge Suite – je komercˇnı´ software, ktery´ nabı´zı´ jak samotne´

API, tak pomeˇrneˇ dobrˇe zpracovane´ prostrˇedı´ pracujı´cı´ ve webove´m prohlı´zˇecˇi umozˇnˇujı´cı´ pra´ci s mapami te´mat, viz obra´zky5.a3..

TMAPI je rozdeˇleno na trˇi hlavnı´ skupiny trˇı´d – core, index a exceptions.

V teˇchto trˇı´da´ch jsou jak funkce pro cˇtenı´ z mapy, tak pro za´pis do mapy te´mat.

Coredefinuje datovy´ model TMAPI a rozhranı´ pro pra´ci s mapami te´mat.Index popisuje za´kladnı´ rozhranı´ pro seznamy vytvorˇene´ z dat obsazˇeny´ch v mapeˇ.

Exceptionsdefinuje vy´jimky, ktere´ majı´ by´t vyvola´ny prˇi chybeˇ prˇi pra´ci s ma- pou. Graficky´ na´vrh rozhranı´ TMAPI je v prˇı´loze 1. Jsou na neˇm zobrazeny jednotlive´ trˇı´dy a vza´jemna´ za´vislost jejı´ch komponent. Cˇa´st rozhranı´ imple- mentovana´ v te´to pra´ci bude popsa´na v dalsˇı´ch kapitola´ch.

Dobrˇe navrzˇene´ rozhranı´ pro pra´ci s mapami te´mat nebo i jaky´mkoliv jiny´m forma´tem dat, tedy nejen TMAPI, by meˇlo programa´tora zcela zbavit nutnosti zna´t forma´t za´pisu dat. TMAPI to tı´m, zˇe ma´ silnou vazbu na datovy´ model map te´mat, zcela umozˇnˇuje – programa´tor pı´sˇe na u´rovni datove´ho modelu a nemusı´ se zajı´mat o to, jak jsou data ulozˇena´ [26].

TMAPI vu˚bec nerˇesˇı´, jaky´m zpu˚sobem a kde je mapa te´mat ulozˇena. To je vy´hodne´, protozˇe tak implementa´toru˚m umozˇnˇuje vyuzˇı´t jaky´koliv forma´t pro ulozˇenı´ dat. Na druhou stranu to ani nezmensˇuje sı´lu TMAPI, protozˇe je v za´jmu samotny´ch programa´toru˚ implementovat alesponˇ ty nejrozsˇı´rˇeneˇjsˇı´

forma´ty. Mezi ty v dnesˇnı´ dobeˇ patrˇı´ minima´lneˇ XTM, ale trˇeba i LTM.

4TM4J – Topic Maps for Javahttp://www.tm4j.org

5OKS – Ontopia Knowledge Suitewww.ontopia.net

(28)

Kapitola 5

Prˇı´prava implementace

Hlavnı´ na´plnı´ te´to pra´ce je prakticke´ oveˇrˇenı´ vhodnosti XSLT pro pra´ci s Topic Maps. Pro co nejdu˚sledneˇjsˇı´ otestova´nı´ bude vytvorˇeno rozhranı´ na za´kladeˇ TMAPI. Vsˇechny potrˇebne´ souvisejı´cı´ technologie byly popsa´ny v prˇedcho- zı´ch kapitola´ch. V dalsˇı´ch odstavcı´ch bude popsa´na prˇı´prava prˇed zaha´jenı´m implementacˇnı´ch pracı´. Pote´ bude zmı´neˇno prˇizpu˚sobenı´ TMAPI pro XSLT vcˇetneˇ popisu jednotlivy´ch funkcı´ a zpu˚sob jejich implementace. Na´sledovat bude vytvorˇenı´ vzorove´ aplikace, ktera´ cele´ rozhranı´ otestuje a da´le budou uvedeny prakticke´ poznatky zjisˇteˇne´ beˇhem cele´ho procesu. Na za´veˇr budou zhodnoceny vy´sledky implementace a posouzena vhodnost XSLT pro pra´ci s Topic Maps.

5.1 Analy´za a prˇı´prava software

Mysˇlenka vyuzˇitı´ rozhranı´ v XSLT pro pra´ci s mapami te´mat je takova´, zˇe ten, kdo ho bude chtı´t vyuzˇı´t, si vytvorˇene´ sˇablony prˇipojı´ ke sve´ a prˇi pra´ci s mapou te´mat pak pouze vola´ vybrane´ funkce. Nemusı´ tak detailneˇ zna´t forma´t ulozˇenı´ map te´mat, nemusı´ se zajı´mat o to, v jake´m forma´tu je mapa ulozˇena (v te´to pra´ci vsˇak bude implementova´n pouze forma´t XTM) a vymy´sˇlet XPath dotazy pro zjisˇteˇnı´ pozˇadovany´ch informacı´. Vytvorˇene´ rozhranı´ tak bude mozˇne´ vyuzˇı´vat v ru˚zny´ch projektech umozˇnˇujı´cı´ch pra´ci s XSLT 2.0, ktere´ budou pracovat s XTM forma´tem ulozˇenı´ map te´mat.

Rozhranı´ se s vy´hodou mu˚zˇe vyuzˇı´t zejme´na u prˇevodu Topic Maps do jine´ho forma´tu. Vzhledem k tomu, zˇe mapy te´mat se staly popula´rnı´ zejme´na dı´ky XML forma´tu XTM, bude rozhranı´ navrzˇeno pra´veˇ pro tento forma´t.

U´ lohy, ktere´ by se s jeho vyuzˇitı´m daly mimo jine´ realizovat, jsou prˇevod XTM do jine´ho forma´tu map te´mat, naprˇ. LTM, zpracova´nı´ XTM a vy´beˇr neˇjaky´ch dat a nove´ ulozˇenı´ jako XTM nebo prˇevod XTM do HTML. Poslednı´ jmenovany´

prˇevod byl zvolen pro prˇedvedenı´ funkcˇnosti rozhranı´.

Uka´zkova´ aplikace pra´ce rozhranı´ ma´ i tu vy´hodu, zˇe ten, kdo chce rozhranı´

vyuzˇı´t, se mu˚zˇe snadno inspirovat, jak ru˚zne´ funkce fungujı´ a zda vracejı´

pozˇadovane´ hodnoty. Studiem zdrojove´ho ko´du sˇablon si take´ snadno oveˇrˇı´,

(29)

KAPITOLA 5. PRˇI´PRAVA. . . 5.1. ANALY´ZA A PRˇI´PRAVA. . .

zda je to opravdu to, co hleda´, tedy zˇe jsou nabı´zeny vsˇechny potrˇebne´ funkce.

Uka´zkovou aplikacı´ lze take´ snadno demonstrovat sı´lu TMAPI rozhranı´ – pro vsˇechny obory, u programu˚ dvojna´sob, platı´, zˇe jedna prakticka´ uka´zka je mnohem lepsˇı´, nezˇ mnoho stra´nek teoreticky´ch popisu˚ funkcionality.

Du˚vod, procˇ jako vzor bylo zvoleno TMAPI je ten, zˇe se jedna´ o zna´me´ a otestovane´ rozhranı´. Je tedy velka´ nadeˇje, zˇe obsahuje vsˇechny potrˇebne´ funkce pro pra´ci s mapami te´mat. Te´meˇrˇ u´plneˇ tak odpada´ potrˇeba od za´kladu roz- my´sˇlet, jake´ funkce by meˇly by´t implementova´ny a k cˇemu by meˇly slouzˇit.

Za´rovenˇ existujı´ alternativnı´ implementace rozhranı´, takzˇe je v prˇı´padeˇ jaky´ch- koliv proble´mu˚ mozˇne´ je prozkoumat a chybu tak snadneˇji nale´zt. TMAPI ma´

take´ velkou uzˇivatelskou za´kladnu a „mailing list“ vcˇetneˇ jeho archivu, kde lze nale´zt odpoveˇdi na te´meˇrˇ vsˇechny mozˇne´ nejasnosti.

TMAPI bylo navrzˇeno pro objektoveˇ orientovane´ jazyky, zejme´na pro pro- gramovacı´ jazyk Java. Na to je trˇeba prˇi analy´ze neusta´le myslet, protozˇe do rozhranı´ budou muset by´t udeˇla´ny pomeˇrneˇ za´sadnı´ zmeˇny tak, aby vyhovo- valo funkciona´lnı´mu prˇı´stupu, ktery´ ma´ XSLT 2.0. TMAPI navı´c obsahuje jak trˇı´dy pro cˇtenı´, tak pro za´pis dat, cozˇ z du˚vodu˚ uvedeny´ch da´le, take´ celou veˇc mı´rneˇ komplikuje.

Cˇa´st pro cˇtenı´ z map je bez veˇtsˇı´ch proble´mu˚ implementovatelna´ do te´meˇrˇ jake´hokoliv programovacı´ho jazyka, ktery´ ma´ prostrˇedky pro manipulaci se sta´le oblı´beneˇjsˇı´m forma´tem XML. Touto mozˇnostı´ dnes disponujı´ snad vsˇechny programovacı´ jazyky. V XSLT ve spojenı´ s XPath, ktere´ byly pro pra´ci s XML forma´tem navrzˇeny, jsou takove´ operace skutecˇneˇ snadne´. Navı´c s no- vou verzı´ XSLT 2.0 a novy´mi vlastnostmi jsou mozˇnosti jesˇteˇ veˇtsˇı´, bez nutnosti vyuzˇı´vat proprieta´rnı´ch rozsˇı´rˇenı´ ru˚zny´ch procesoru˚1.

Proble´m nasta´va´ u zapisovacı´ cˇa´sti. TMAPI je navrzˇeno tak, aby se te´mata mohla prˇida´vat a opravovat, vytva´rˇet asociace a prova´deˇt dalsˇı´ zmeˇny s vyu- zˇitı´m jeho funkcı´. Ty budou zpravidla vola´ny z programu po provedenı´ zmeˇn v neˇjake´m GUI a funkce TMAPI rozhranı´ vlastnı´ operaci provede. Tak je to navrzˇeno naprˇı´klad i v Ontopia Knowledge Suite, viz obra´zek 6. Tam se edi- tace mapy te´mat prova´dı´ z prostrˇedı´ webove´ho prohlı´zˇecˇe. Server, na ktere´m se zmeˇny odehra´vajı´, vola´ Java aplikaci, ktera´ zmeˇny prova´dı´.

XSLT vsˇak nenı´ jazyk, ve ktere´m by se pocˇı´talo s interakcı´ od uzˇivatele.

Transformace se spousˇteˇjı´ za pomoci XSLT procesoru, ktery´ se zpravidla vola´

z prˇı´kazove´ rˇa´dky. Bylo by sice mozˇne´ vytvorˇit prostrˇedı´, ktere´ by volalo XSLT procesor po kazˇde´m vstupu uzˇivatele, ale to by nebylo nijak zvla´sˇt’ vy´konne´

a pro dane´ zada´nı´ existujı´ lepsˇı´ zpu˚soby realizace v jiny´ch programovacı´ch jazycı´ch. Rozumnou alternativou by bylo v Javeˇ prˇipojit neˇktery´ z procesoru˚ a po natazˇenı´ do pameˇti prova´deˇt transformaci prˇı´mo – ta by se v tomto prˇı´padeˇ prova´deˇla pomeˇrneˇ rychle. Touto cestou se vsˇak tato pra´ce ubı´rat nebude, a tak bude potrˇeba prove´st veˇtsˇı´ za´sah do pu˚vodnı´ho TMAPI rozhranı´.

1Dnes se samozrˇejmeˇ teˇzˇko odhaduje, jake´ budou za neˇjaky´ cˇas proprieta´rnı´ mozˇnosti XSLT 2.0 procesoru˚, vzhledem k tomu, zˇe tento standard je ve fina´lnı´ verzi relativneˇ kra´tkou dobu.

(30)

KAPITOLA 5. PRˇI´PRAVA. . . 5.1. ANALY´ZA A PRˇI´PRAVA. . .

Obra´zek 6.OKS – nova´ hudebnı´ skupina zada´vana´ z webove´ho rozhranı´.

Vzhledem k zamy´sˇlene´mu zpu˚sobu vyuzˇitı´ tak budou implementova´ny pouze takove´ funkce, ktere´ se starajı´ o zı´ska´va´nı´ dat. V TMAPI to jsou ty, jejichzˇ na´zev zacˇı´na´ naget. Ne vsˇechny funkce vsˇak budou vzhledem k jine´mu programovacı´mu prostrˇedı´ potrˇebne´ a neˇktere´ naopak budou chybeˇt. Je proto dobre´ nejdrˇı´ve prove´st detailnı´ analy´zu, jaky´m zpu˚sobem se rozhranı´ bude vyuzˇı´vat2.

Tato analy´za spocˇı´va´ v neˇkolika krocı´ch. Nejdrˇı´ve je nutne´ prostudovat TMAPI rozhranı´ a pochopit co jednotlive´ funkce deˇlajı´. Da´le je vhodne´ pro- jı´t neˇktere´ jizˇ hotove´ realizace v ru˚zny´ch prostrˇedı´ch. Prˇı´kladem za vsˇechny mu˚zˇe by´t PHPTMAPI3, ktere´ jisteˇ alesponˇ cˇa´stecˇneˇ muselo rˇesˇit podobne´ pro- ble´my. Nakonec je zapotrˇebı´ promyslet, jak se jednotlive´ funkce budou chovat a jake´ budou vracet hodnoty. Ty je mozˇne´ posle´ze elegantneˇ implementovat dı´ky jedne´ z novinek v XSLT 2.0 – prˇirˇazenı´ typu hodnoty k promeˇnny´m, parametru˚m a na´vratovy´m hodnota´m funkcı´.

Dalsˇı´ krok na´vrhu je prˇejmenova´nı´ funkcı´ tak, aby na´zvy odpovı´daly pojetı´

XSLT – tedy odstraneˇnı´ anglicke´ho slova get na jejich zacˇa´tku. XSLT se totizˇ prima´rneˇ vyuzˇı´va´ pro zı´ska´va´nı´ dat, a tak bygetmuselo by´t prakticky u vsˇech funkcı´, respektive te´meˇrˇ nikde by se nevyuzˇiloset. Navı´c XSLT funkce, pomocı´

ktery´ch bude vsˇe provedeno, neumozˇnˇujı´ za´pis prˇı´mo na vy´stup – vsˇe, co se uvnitrˇ funkce zapı´sˇe na standardnı´ vy´stup, se projevı´ jako na´vratova´ hodnota funkce.

Potrˇeba veˇtsˇı´ch zmeˇn nasta´va´ u objektove´ho prˇı´stupu, pro ktery´ bylo TMAPI vytvorˇeno. Ten se nasˇteˇstı´ da´ s trochou pra´ce prˇeve´st na funkciona´lnı´

prˇı´stup tı´m, zˇe se kazˇda´ funkce obohatı´ o parametr, ktery´ urcˇuje jake´ho objektu

2Vzdoroval jsem dlouho, ale nakonec jsem byl i ja´ vedoucı´m diplomove´ pra´ce prˇesveˇdcˇen o vy´hodnosti tohoto prˇı´stupu.

(31)

KAPITOLA 5. PRˇI´PRAVA. . . 5.2. PRˇIZPU˚ SOBENI´ TMAPI PRO. . .

se ma´ operace ty´kat. Zajistı´ se tak prˇeda´nı´ potrˇebne´ informace o kontextu v ja- ke´m ma´ funkce pracovat. Tı´mto zpu˚sobem lze s pomeˇrneˇ velkou u´speˇsˇnostı´

te´meˇrˇ vsˇe implementovat.

Neˇkde vsˇak i prˇesto mohou nastat proble´my, naprˇı´klad se zjisˇt’ova´nı´m prˇedku˚ konkre´tnı´ch elementu˚. U objektove´ho prˇı´stupu nenı´ proble´m zjistit prˇedka dane´ho objektu. Programa´tor tak ma´ v ruce mocny´ na´stroj pro okamzˇite´

zjisˇteˇnı´ kontextu, ve ktere´m se objekt nacha´zı´. To ve funkciona´lnı´m prˇı´stupu XSLT nenı´ mozˇne´, protozˇe promeˇnne´ majı´ urcˇen pouze svu˚j typ a neexistuje tam neˇco jako deˇdeˇnı´ vlastnostı´ a metod. Tento proble´m je nasˇteˇstı´ rˇesˇitelny´, je vsˇak zapotrˇebı´ na to prˇi analy´ze da´t pozor a neˇktere´ funkce upravit cˇi prˇidat.

Pro praktickou cˇa´st bude vyuzˇit software Oxygen XML Editor4. Je to vy´- borny´ pomocnı´k, ktery´ mimo funkcı´ beˇzˇny´ch pro XML editory nabı´zı´ i rezˇim ladeˇnı´ XSLT sˇablon. Je tak mozˇne´ proces prˇevodu krokovat, vyhodnocovat aktua´lnı´ hodnoty promeˇnny´ch a prova´deˇt kontextove´ XPath vy´razy. Tı´m pro XSLT nabı´zı´ na´stroj obvykly´ v jiny´ch programovacı´ch jazycı´ch, cozˇ vy´razneˇ urychluje pra´ci na ladeˇnı´ sˇablon a umozˇnˇuje rychle´ nalezenı´ chyb.

Pro provedenı´ XSL transformace bude vyuzˇit jizˇ zmı´neˇny´ procesor Saxon5. Dlouho se jednalo o jediny´ software schopny´ pracovat s XSLT 2.0 a tak byla jeho volba jednoznacˇna´. Dnes jizˇ existuje i neˇkolik dalsˇı´ch implementacı´ a dalsˇı´

jisteˇ jesˇteˇ vzniknou. Saxon bude vyuzˇit proto, zˇe je velice kvalitnı´ a je sta´le k dispozici i ve verzi zdarma. Jednı´m z du˚vodu˚ jeho kvality je pravdeˇpodobneˇ i to, zˇe autor Saxonu je za´rovenˇ i spoluautorem na´vrhu standardu XSLT 2.0.

Pro potrˇeby te´to pra´ce byl zalozˇen projekt TMAPI-XSLT6 na internetove´m porta´lu SourceForge.net. Ten se beˇzˇneˇ vyuzˇı´va´ prˇi vy´voji tzv. Open source pro- jektu˚. Jaky´koliv ko´d, ktery´ se jeho tvu˚rci zda´ by´t uzˇitecˇny´, se tı´mto zpu˚sobem mu˚zˇe dostat mezi sˇirokou verˇejnost. Obvykle´ take´ je, zˇe se cˇasem zapojı´ dalsˇı´

vy´voja´rˇi nebo pote´, co pu˚vodnı´ autor projekt opustı´, na neˇm zacˇne pracovat neˇkdo jiny´.

5.2 Prˇizpu˚sobenı´ TMAPI pro XSLT

V TMAPI jsou definova´ny trˇi oblasti pro pra´ci s mapami te´mat – core, index a exceptions. Graficka´ podoba TMAPI rozhranı´ je v prˇı´loze 1. Protozˇe XSLT nenabı´zı´ mozˇnost, jak efektivneˇ pracovat s vy´jimkami vyvolany´mi po neˇjake´

chybeˇ (tedy proble´m nasta´va´ u vsˇeho, co je obsazˇeno v exceptions), nebude nic z te´to cˇa´sti implementova´no. Programa´tor vyuzˇı´vajı´cı´ rozhranı´ se tak bude muset sa´m postarat o to, aby hodnoty prˇeda´vane´ funkcı´m a tedy i to, co funkce vracı´, meˇly spra´vny´ typ. Jinak by XSLT transformace mohla skoncˇit necˇekanou chybou7.

4Oxygen XML Editor –http://www.oxygenxml.com/

5Saxon –http://saxon.sourceforge.net/

6TMAPI-XSLT –http://sourceforge.net/projects/xslttmapi

7Prˇi ladeˇnı´ jsem meˇl mozˇnost se o tom mnohokra´t prˇesveˇdcˇit.

Odkazy

Související dokumenty

Jako svu˚j prvnı´ u´kol jsem dostal vytvorˇenı´ aplikace, ktera´ slouzˇı´ pro nasazenı´ na termina´ly s dotykovou obrazovkou.. Karta vytvorˇena´ tı´mto

Celkoveˇ vsˇak cı´tı´m, zˇe mi vysoka´ sˇkola dala slusˇne´ znalosti, ktere´ jsem prˇi te´to praxi vyuzˇil. 4.4

Za´lozˇka pro zobrazenı´ aktua´lnı´ch hodnot funguje tak, zˇe uzˇivatel do textove´ho pole vepı´sˇe na´zvy jednotlivy´ch OPCItem oddeˇlene´ cˇa´rkou a aplikace

Jak jsem jizˇ zmı´nil v zada´nı´ tohoto u´kolu, prˇi na´vrhu architektury syste´mu NEPS se jizˇ pocˇı´talo s tı´m, zˇe by bylo vhodne´ mı´t mozˇnost logovat data

Vsˇechny elektronicke´ obchody, ktere´ jsem prˇi odborne´ praxi programoval, bylo nutne´ ve vy´stupnı´ cˇa´sti naforma´tovat a prˇene´st s pouzˇitı´m HTML a CSS

Implementace te´to funkce vyuzˇı´va´ stej- nou verzi metody StoreMessage jako prˇi se´riove´m ukla´da´nı´ jednoho procesu, avsˇak s tı´m rozdı´lem, zˇe parametrem je

Waveletova´ transformace v metoda´ch detekce hran ma´ vy´znamnou roli. Porovnejme si v prˇı´padeˇ zasˇumeˇne´ho obrazu, zˇe s vyuzˇitı´m waveletove´ transformace

Obecneˇ na´s budou zajı´mat jednak prˇı´pady, kdy se prˇiblizˇujeme k neˇjake´mu vlastnı´mu bodu x 0 ∈ R , ale take´ prˇı´pady, kdy se budeme prˇiblizˇovat