• Nebyly nalezeny žádné výsledky

’k_scopingObjectsByScopingTopic’,$f_id,$p_tmf)”/>

</xsl:function>

Z vy´sˇe uvedene´ho je videˇt, zˇe scopingObjectsByScopingTopic obsahuje slo-zˇiteˇjsˇı´ XPath vy´razy nezˇ veˇtsˇina drˇı´ve zmı´neˇny´ch funkcı´. To je da´no zejme´na ru˚znorodostı´, s jakou mu˚zˇe by´tscopev mapeˇ ulozˇen. Jako u neˇkolika prˇedcho-zı´ch funkcı´ i v te´to je pouzˇit konstruktkey, ktery´ vy´razneˇ urychlı´ vyhleda´va´nı´

elementu˚ v mapeˇ. Zaindexova´ni jsou vsˇichni kandida´ti na prˇı´tomnost infor-mace o rozsahu. Vstup te´to funkce je cela´ mapa te´mat a te´ma, ktere´ je pouzˇito jako definice rozsahu pu˚sobnosti, vy´stupem vsˇechny objekty, jejichzˇ rozsah pu˚sobnosti je definova´n zvoleny´m te´matem.

Druha´ funkcescopingTopics, slouzˇı´ pro vy´beˇr vsˇech te´mat, ktera´ jsou pouzˇita pro urcˇenı´ rozsahu. Jejı´m vstupem je mapa te´mat a vy´stupem seznam te´mat.

U definice rozsahu se velice cˇasto deˇje, zˇe odkaz vede na externı´ zdroj. Vyuzˇije se tak v plne´ mı´rˇe funkceobjectByXlink, ktera´ umı´ nacˇı´st i tyto externı´ mapy a vra´tit tak v idea´lnı´m prˇı´padeˇ te´ma nejen ze stejne´, ale i z jine´ mapy.

<!-- org.tmapi.index.core - getScopingTopics -->

<xsl:function name=”tm:scopingTopics” as=”element()*”>

Metody pro zı´ska´nı´ seznamu vsˇech te´mat a asociacı´ v mapeˇ jsou v TMAPI umı´steˇny v cˇa´sticore, ale spra´vneˇ na´lezˇı´ spı´sˇe do cˇa´stiindex, kam take´ byly u te´to implementace umı´steˇny. Tyto funkce majı´ vyuzˇitı´ zejme´na tehdy, kdyzˇ se mapa te´mat prezentuje jako celek bez pozˇadavku na konkre´tnı´ informace. Typicky´m prˇı´kladem mu˚zˇe by´t seznam vsˇech te´mat obsazˇeny´ch v mapeˇ prˇevedeny´ do HTML forma´tu – tı´mto zpu˚sobem jsou vyuzˇity funkce z cˇa´stiindexi u uka´zkove´

implementace, ktera´ bude popsa´na pozdeˇji.

Funkce pro zı´ska´nı´ vsˇech asociacı´ v mapeˇ associations je z hlediska ko´du v XSLT velice jednoducha´. Ze vstupnı´ho parametru, cozˇ je mapa te´mat, vybere vsˇechny podelementyassociationa ty zkopı´ruje na vy´stup. Vy´stupem tak je se-znam vsˇech asociacı´ nebo take´ pra´zdny´ sese-znam, pokud mapa te´mat neobsahuje

KAPITOLA 6. IMPLEMENTACE. . . 6.11. INDEX - TOPICMAP

Dalsˇı´ funkcetopics, starajı´cı´ se o zı´ska´nı´ vsˇech te´mat v mapeˇ, byla rozsˇı´rˇena o novou, nazvanou externalTopics, ktera´ vy´razneˇ zjednodusˇuje pra´ci s odkazy na te´mata ulozˇena´ v externı´ch mapa´ch. Standardnı´ topics navra´tı´ „pouze“ se-znam vsˇech te´mat. Rozsˇirˇujı´cı´ vlastnostı´ je, zˇe automaticky serˇadı´ te´mata podle abecedy. Defaultnı´ trˇı´deˇnı´ je dle varianty jme´na oznacˇene´ pro trˇı´deˇnı´, a pokud takova´ neexistuje, tak dle prvnı´ho vy´skytu jme´na te´matu umı´steˇne´ho v ele-mentu baseNameString. To mu˚zˇe by´t trochu zava´deˇjı´cı´, protozˇe jmen te´matu mu˚zˇe by´t u jednoho te´matu vı´ce.

<!-- org.tmapi.core - getTopics -->

<xsl:function name=”tm:topics” as=”element()*”>

Trˇı´deˇnı´ je experimenta´lneˇ vyrˇesˇeno tak, zˇe se kontroluje elementscope na prˇı´tomnost rˇeteˇzce #sort. Ten je jak v normeˇ XTM 1.0, tak v datove´m modelu soucˇa´stı´ identifika´toru˚, ktere´ majı´ oznacˇovat trˇı´dı´cı´ te´ma, takzˇe tento prˇı´stup funguje pro oba prˇı´stupy. V prˇı´padeˇ, zˇe se neˇkdo rozhodne vyuzˇı´vat jiny´ iden-tifika´tor, trˇı´deˇnı´ by sta´le meˇlo probı´hat spra´vneˇ. Podle definice, ma´ by´t jme´no vyuzˇitelne´ pro trˇı´deˇnı´ umı´steˇno v neˇktere´m podelementuvariant. Pro prˇı´pad, zˇe informace o trˇı´deˇnı´ neexistuje, je pro trˇı´deˇnı´ vyuzˇit prvnı´ nalezeny´ na´zev te´matu. Tento prˇı´stup nenı´ idea´lnı´, protozˇe te´ma mu˚zˇe mı´t vı´ce na´zvu˚, ale implementace jine´ho zpu˚sobu by byla pomeˇrneˇ na´rocˇna´7. Na na´sledujı´cı´m prˇı´-kladeˇ je zna´zorneˇn odkaz na trˇı´dı´cı´ identifika´tor.

<topic id=”le-passant”>

7Vyuzˇı´t by se dala i takova´ metoda trˇı´deˇnı´, kdy by v seznamu byl kazˇdy´ na´zev umı´steˇn zvla´sˇt’. Dalsˇı´ mozˇnostı´ je naprˇı´klad neˇjaky´ algoritmus, ktery´ by byl schpen z na´zvu odstranit cˇleny nebo naprˇı´klad porovna´va´nı´m se slovnı´kem u jmen zjisˇt’oval co je jme´no a co prˇı´jmenı´.

KAPITOLA 6. IMPLEMENTACE. . . 6.11. INDEX - TOPICMAP

Rozsˇı´rˇenı´m rozhranı´ je funkceexternalTopics, ktera´ navra´tı´ takova´ te´mata, ktera´ jsou odkazovana´ z dokumentu a v dany´ okamzˇik dostupna´8. Funkce je opeˇt vhodna´ prˇi zpracova´nı´ dokumentu mapy te´mat naprˇı´klad do HTML.

Vstupem te´to funkce je dokument zpracova´vane´ mapy a vy´stupem je seznam dostupny´ch odkazovany´ch te´mat nebo pra´zdny´ seznam, pokud zˇa´dna´ te´mata nejsou odkazova´na nebo dokumenty nejsou dostupne´. Funkcionalita je umozˇ-neˇna zpu˚sobem popsany´m da´le.

Z mapy se nejdrˇı´ve nacˇtou vsˇechny odkazy, u ktery´ch je podezrˇenı´, zˇe vedou na te´ma ulozˇene´ v jine´ mapeˇ te´mat. Ty se poznajı´ podle toho, zˇe jsou umı´steˇne´ u elementu topicRef (ktery´ dle standardu XTM musı´ odkazovat na te´ma) a obsahujı´ znak #. Odkazy na te´mata by teoreticky mohly by´t umı´steˇne´

i u elementu subjectIndicatorRef, ale to jizˇ nenı´ pravidlo a celou transformaci by to mohlo neu´meˇrneˇ prodluzˇovat – je totizˇ nutne´ nacˇı´tat kazˇdy´ externeˇ odkazovany´ dokument, u ktere´ho nenı´ zˇa´dna´ jistota, zda se opravdu jedna´

o mapu te´mat.

<!-- org.tmapi.core - getExternalTopics -->

<xsl:function name=”tm:externalTopics” as=”element()*”>

8Dostupnostı´ je mysˇleno, zˇe externı´ soubor je viditelny´ pro XSLT procesor. Umı´steˇny´ mu˚zˇe by´t ve stejne´m adresa´rˇi na disku nebo v sı´ti internet, ale musı´ by´t v dany´ okamzˇik dostupny´.