-
Notifications
You must be signed in to change notification settings - Fork 26
Sablony
Obsah většiny částí uživatelského rozhraní K4 je získáván z FOXML objektů nebo z výsledků dotazů do indexu SOLR a jejich transformací do požadovaného tvaru pomocí XSLT šablon. Výchozí šablony je možno přepsat umístěním vlastní šablony se stejným názvem jako má výchozí šablona do adresáře ~/.kramerius4/xsl
.
V následující tabulce je uveden přehled názvů všech použitých šablon, odkazů na jejich výchozí obsah, zdroj dat, na který jsou aplikovány a místo v GUI, ve kterém je použit jejich výstup.
Zdrojem dat je buď XML obsah uvedeného datastreamu z FOXML objektu, jeho formát můžete najít v odpovídající veřejné specifikaci (MODS, ALTO). Pokud je vstupem dat výsledek dotazu do indexu SOLR, jeho obecný tvar je pospán zde:
SOLR response xml: http://wiki.apache.org/solr/XMLResponseFormat
SOLR Terms Component response: http://wiki.apache.org/solr/TermsComponent
Konkrétní obsah formátu SOLR K4 je určen konfiguračním souborem schema.xml a šablonou K4.xslt, jejich obsah je posán níže v sekci Indexovací šablona.
Vstupem procesu indexace jsou jednotlivé objekty FOXML, na něž je aplikována indexační XSLT šablona, která data transformuje do tvaru definovaného v konfiguračním schematu SOLR
Defaultní šablona je v knihovně indexer.jar uvnitř search.war, její obsah je zde
Šablonu je možno předefinovat souborem K4.xslt
v adresáři ~/.kramerius4/xsl
Následující tabulka obsahuje přehled jednotlivých polí ze schematu SOLR a jejich mapování ve výchozí indexační šabloně:
Pole v schema.xml |
Zdroj dat v FOXML |
---|---|
name="fedora.model" type="string" | select="substring(/foxml:digitalObject/foxml:datastream[@CONTROL_GROUP='X' and @ID='RELS-EXT']/foxml:datastreamVersion[last()]/foxml:xmlContent/rdf:RDF/rdf:Description/fedora-model:hasModel/@rdf:resource, 19)" |
name="document_type" type="string" multiValued="true" |
< xsl:for-each select="/foxml:digitalObject/foxml:datastream/foxml:datastreamVersion[last()]/foxml:xmlContent/oai_dc:dc/dc:type"/>
|
name="handle" type="string" | select="/foxml:digitalObject/foxml:datastream[@CONTROL_GROUP='X' and @ID='RELS-EXT']/foxml:datastreamVersion[last()]/foxml:xmlContent/rdf:RDF/rdf:Description/kramerius:handle/text()" |
name="status" type="string" | select="foxml:objectProperties/foxml:property[@NAME='info:fedora/fedora-system:def/model#state']/@VALUE" |
name="created_date" type="date" | select="foxml:objectProperties/foxml:property[@NAME='info:fedora/fedora-system:def/model#createdDate']/@VALUE" |
name="modified_date" type="date" | select="foxml:objectProperties/foxml:property[@NAME='info:fedora/fedora-system:def/view#lastModifiedDate']/@VALUE" |
name="datum_str" type="string" | ExtendedFields.java. Prochází postupně nadřazené FOXML a vybírá hodnoty mods:part/mods:date/text() nebo mods:originInfo[@transliteration='publisher']/mods:dateIssued/text() nebo mods:originInfo/mods:dateIssued/text() |
name="issn" type="string" |
< xsl:value-of select="mods:identifier[@type='isbn']/text()"/> nebo < xsl:value-of select="mods:identifier[@type='issn']/text()"/>
|
name="mdt" type="string" |
< xsl:value-of select="mods:classification[@authority='udc']/text()"/>
|
name="ddt" type="string" |
< xsl:value-of select="mods:classification[@authority='ddc']/text()"/>
|
name="dostupnost" type="string" | select="substring(/foxml:digitalObject/foxml:datastream[@CONTROL_GROUP='X' and @ID='RELS-EXT']/foxml:datastreamVersion[last()]/foxml:xmlContent/rdf:RDF/rdf:Description/kramerius:policy, 8)" |
name="keywords" type="string" multiValued="true" |
< xsl:for-each select="mods:subject/mods:topic/text()">
|
name="collection" type="string" multiValued="true" |
< xsl:for-each select="$rels/rdf:isMemberOfCollection"> < field name="collection" > < xsl:value-of select="substring-after(./@rdf:resource, 'info:fedora/')"/> < /field> < /xsl:for-each>
|
name="dc.title" type="text_fgs" | select="translate(normalize-space(/foxml:digitalObject/foxml:datastream/foxml:datastreamVersion[last()]/foxml:xmlContent/oai_dc:dc/dc:title/text()),' ','')" |
name="title_sort" type="string" | |
name="dc.creator" type="text_fgs" multiValued="true" |
< xsl:for-each select="foxml:datastream/foxml:datastreamVersion[last()]/foxml:xmlContent/oai_dc:dc/dc:creator"> < field name="dc.creator" boost="1.5"> < xsl:value-of select="text()"/> < /field> < /xsl:for-each>
|
name="language" type="string" multiValued="true" |
< xsl:for-each select="mods:language/mods:languageTerm/text()"> < field name="language"> < xsl:value-of select="." /> < /field> < /xsl:for-each>
|
name="dc.description" type="text_fgs" multiValued="true" | |
name="text_ocr" type="text_general" | /foxml:digitalObject/foxml:datastream[@ID='TEXT_OCR']/foxml:datastreamVersion[last()] |
name="details" type="string" multiValued="true" | xpath per model. Used to show minimal data in tree |
name="img_full_mime" type="string" | /foxml:digitalObject/foxml:datastream[@ID='IMG_FULL']/foxml:datastreamVersion[last()]/@MIMETYPE" |
name="viewable" type="boolean" |
< xsl:if test="/foxml:digitalObject/foxml:datastream[@ID='IMG_FULL']/foxml:datastreamVersion[last()]"/>
|