[Koha-patches] [PATCH][alternative patch] Bug 7421 Add UNIMARC DOM Filter
Mathieu Saby
mathieu.saby at univ-rennes2.fr
Sun Apr 7 18:45:11 CEST 2013
I took as a base the patch of F. Demians, but made a lot of changes, so
I think it is more logical to create a new patch as the behavior is not
the same as previous patch.
I tried to define DOM config files as a "miror" of record.abs, so the
behavior be the same.
If it is OK, we will be able to improve indexing later, for example
suppressing warns, managing indicators or subdivisions, etc.
I made some little changes to record.abs :
- comments
- 216 was indexed in Conference-name as well as Trademark. I supposes
"Conference-name" is an error, so I indexed only in Trademark
- index 2 new notes : 340 / 356
The only difference between record.abs and DOM is that DOM config files
does not index complete fields, but subfields.
Ex :
melm 200 ===> <kohaidx:index_subfields tag="200" subfields="abcdfgjxyz">
I took all the subfields from the UNIMARC Authorities manual. The only
subfields not indexed are numeric subfields : $7, $8 for language of
record, and $0,2,3,5,6 for 4XX/5XX/7XX
To test :
- index a set of bib and auth records with GRS-1
- make some searches on different kind of authorities
- index the same records with DOM
- make the same searches
- You are not supposed to see differences
---
.../authorities/authority-koha-indexdefs.xml | 683
++++++++++++++++++++
.../authorities/authority-zebra-indexdefs.xsl | 669
+++++++++++++++++++
.../marc_defs/unimarc/authorities/record.abs | 71 +-
3 files changed, 1401 insertions(+), 22 deletions(-)
create mode 100644
etc/zebradb/marc_defs/unimarc/authorities/authority-koha-indexdefs.xml
create mode 100644
etc/zebradb/marc_defs/unimarc/authorities/authority-zebra-indexdefs.xsl
diff --git
a/etc/zebradb/marc_defs/unimarc/authorities/authority-koha-indexdefs.xml
b/etc/zebradb/marc_defs/unimarc/authorities/authority-koha-indexdefs.xml
new file mode 100644
index 0000000..5fb97fd
--- /dev/null
+++ b/etc/zebradb/marc_defs/unimarc/authorities/authority-koha-indexdefs.xml
@@ -0,0 +1,683 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This is the canonical source for the authority DOM indexing
configuration
+for UNIMARC.. To generate the authority-zebra-indexdefs.xsl file that
Zebra uses,
+run the following command:
+`xsltproc koha-indexdefs-to-zebra.xsl authority-koha-indexdefs.xml >
+authority-zebra-indexdefs.xsl`
+-->
+<kohaidx:index_defs
xmlns:kohaidx="http://www.koha-community.org/schemas/index-defs">
+ <id>marc:controlfield[@tag='001']</id>
+ <!-- Original record ID -->
+ <kohaidx:index_control_field tag="001">
+ <kohaidx:target_index>Local-Number:w</kohaidx:target_index>
+ <kohaidx:target_index>Local-Number:s</kohaidx:target_index>
+ <kohaidx:target_index>Local-Number:n</kohaidx:target_index>
+ </kohaidx:index_control_field>
+
+ <!-- Personal name headings -->
+ <kohaidx:index_subfields tag="200" subfields="abcdfgjxyz">
+ <kohaidx:target_index>Personal-name:w</kohaidx:target_index>
+ <kohaidx:target_index>Personal-name:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="200" subfields="a">
+ <kohaidx:target_index>Heading:s</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
+ <kohaidx:target_index>Personal-name-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Personal-name-heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Personal-name-heading:s</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="400" subfields="abcdfgjxyz">
+ <kohaidx:target_index>Personal-name-see:w</kohaidx:target_index>
+ <kohaidx:target_index>Personal-name-see:p</kohaidx:target_index>
+ <kohaidx:target_index>See:w</kohaidx:target_index>
+ <kohaidx:target_index>See:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="500" subfields="abcdfgjxyz">
+ <kohaidx:target_index>Personal-name-see-also:w</kohaidx:target_index>
+ <kohaidx:target_index>Personal-name-see-also:p</kohaidx:target_index>
+ <kohaidx:target_index>See-also:w</kohaidx:target_index>
+ <kohaidx:target_index>See-also:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="700" subfields="a">
+ <kohaidx:target_index>Personal-name-parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Personal-name-parallel:s</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <!-- Corporate name headings -->
+ <kohaidx:index_subfields tag="210" subfields="abcdefgjxyz">
+ <kohaidx:target_index>Corporate-name:w</kohaidx:target_index>
+ <kohaidx:target_index>Corporate-name:p</kohaidx:target_index>
+ <kohaidx:target_index>Conference-name:w</kohaidx:target_index>
+ <kohaidx:target_index>Conference-name:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="210" subfields="a">
+ <kohaidx:target_index>Heading:s</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
+ <kohaidx:target_index>Corporate-name-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Corporate-name-heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Corporate-name-heading:s</kohaidx:target_index>
+ <kohaidx:target_index>Conference-name-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Conference-name-heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Conference-name-heading:s</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="410" subfields="abcdefgjxyz">
+ <kohaidx:target_index>Corporate-name-see:w</kohaidx:target_index>
+ <kohaidx:target_index>Corporate-name-see:p</kohaidx:target_index>
+ <kohaidx:target_index>Conference-name-see:w</kohaidx:target_index>
+ <kohaidx:target_index>Conference-name-see:p</kohaidx:target_index>
+ <kohaidx:target_index>See:w</kohaidx:target_index>
+ <kohaidx:target_index>See:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="510" subfields="abcdefgjxyz">
+ <kohaidx:target_index>Corporate-name-see-also:w</kohaidx:target_index>
+ <kohaidx:target_index>Corporate-name-see-also:p</kohaidx:target_index>
+ <kohaidx:target_index>Conference-name-see-also:w</kohaidx:target_index>
+ <kohaidx:target_index>Conference-name-see-also:p</kohaidx:target_index>
+ <kohaidx:target_index>See-also:w</kohaidx:target_index>
+ <kohaidx:target_index>See-also:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="710" subfields="abcdefgjxyz">
+ <kohaidx:target_index>Corporate-name-parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Corporate-name-parallel:s</kohaidx:target_index>
+ <kohaidx:target_index>Conference-name-parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Conference-name-parallel:s</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <!-- Geographic name -->
+ <kohaidx:index_subfields tag="215" subfields="ajxyz">
+ <kohaidx:target_index>Name-geographic:w</kohaidx:target_index>
+ <kohaidx:target_index>Name-geographic:p</kohaidx:target_index>
+ <kohaidx:target_index>Name-geographic:s</kohaidx:target_index>
+ <kohaidx:target_index>Term-geographic:w</kohaidx:target_index>
+ <kohaidx:target_index>Term-geographic:p</kohaidx:target_index>
+ <kohaidx:target_index>Term-geographic:s</kohaidx:target_index>
+ <kohaidx:target_index>Heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading:s</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="215" subfields="a">
+ <kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
+ <kohaidx:target_index>Name-geographic-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Name-geographic-heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Name-geographic-heading:s</kohaidx:target_index>
+ <kohaidx:target_index>Term-geographic-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Term-geographic-heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Term-geographic-heading:s</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="415" subfields="ajxyz">
+ <kohaidx:target_index>Name-geographic-see:w</kohaidx:target_index>
+ <kohaidx:target_index>Name-geographic-see:p</kohaidx:target_index>
+ <kohaidx:target_index>Term-geographic-see:w</kohaidx:target_index>
+ <kohaidx:target_index>Term-geographic-see:p</kohaidx:target_index>
+ <kohaidx:target_index>Term-geographic-see:s</kohaidx:target_index>
+ <kohaidx:target_index>See:w</kohaidx:target_index>
+ <kohaidx:target_index>See:p</kohaidx:target_index>
+ <kohaidx:target_index>See:s</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="515" subfields="ajxyz">
+ <kohaidx:target_index>Name-geographic-see-also:w</kohaidx:target_index>
+ <kohaidx:target_index>Name-geographic-see-also:p</kohaidx:target_index>
+ <kohaidx:target_index>Term-geographic-see-also:w</kohaidx:target_index>
+ <kohaidx:target_index>Term-geographic-see-also:p</kohaidx:target_index>
+ <kohaidx:target_index>Term-geographic-see-also:s</kohaidx:target_index>
+ <kohaidx:target_index>See-also:w</kohaidx:target_index>
+ <kohaidx:target_index>See-also:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="715" subfields="ajxyz">
+ <kohaidx:target_index>Name-geographic-parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Name-geographic-parallel:s</kohaidx:target_index>
+ <kohaidx:target_index>Term-geographic-parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Term-geographic-parallel:s</kohaidx:target_index>
+ <kohaidx:target_index>Term-geographic-parallel:p</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <!-- Trademark-->
+ <kohaidx:index_subfields tag="216" subfields="afcjxyz">
+ <kohaidx:target_index>Trademark:w</kohaidx:target_index>
+ <kohaidx:target_index>Trademark:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="216" subfields="a">
+ <kohaidx:target_index>Heading:s</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
+ <kohaidx:target_index>Trademark-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Trademark-heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Trademark-heading:s</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="416" subfields="afcjxyz">
+ <kohaidx:target_index>Trademark-see:w</kohaidx:target_index>
+ <kohaidx:target_index>Trademark-see:p</kohaidx:target_index>
+ <kohaidx:target_index>See:w</kohaidx:target_index>
+ <kohaidx:target_index>See:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="516" subfields="afcjxyz">
+ <kohaidx:target_index>Trademark-see-also:w</kohaidx:target_index>
+ <kohaidx:target_index>Trademark-see-also:p</kohaidx:target_index>
+ <kohaidx:target_index>See-also:w</kohaidx:target_index>
+ <kohaidx:target_index>See-also:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="716" subfields="afcjxyz">
+ <kohaidx:target_index>Trademark-parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Trademark-parallel:s</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <!-- Family name-->
+ <kohaidx:index_subfields tag="220" subfields="afjxyz">
+ <kohaidx:target_index>Name:w</kohaidx:target_index>
+ <kohaidx:target_index>Name:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="220" subfields="a">
+ <kohaidx:target_index>Heading:s</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
+ <kohaidx:target_index>Name-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Name-heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Name-heading:s</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="420" subfields="afjxyz">
+ <kohaidx:target_index>Name-see:w</kohaidx:target_index>
+ <kohaidx:target_index>Name-see:p</kohaidx:target_index>
+ <kohaidx:target_index>See:w</kohaidx:target_index>
+ <kohaidx:target_index>See:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="520" subfields="afjxyz">
+ <kohaidx:target_index>Name-see-also:w</kohaidx:target_index>
+ <kohaidx:target_index>Name-see-also:p</kohaidx:target_index>
+ <kohaidx:target_index>See-also:w</kohaidx:target_index>
+ <kohaidx:target_index>See-also:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="720" subfields="afjxyz">
+ <kohaidx:target_index>Name-parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Name-parallel:s</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <!-- Uniform title -->
+ <kohaidx:index_subfields tag="230" subfields="abhiklmnqrsuwjxyz">
+ <kohaidx:target_index>Title-uniform:w</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="230" subfields="a">
+ <kohaidx:target_index>Heading:s</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform-heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform-heading:s</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="430" subfields="abhiklmnqrsuwjxyz">
+ <kohaidx:target_index>Title-uniform-see:w</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform-see:p</kohaidx:target_index>
+ <kohaidx:target_index>See:w</kohaidx:target_index>
+ <kohaidx:target_index>See:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="530" subfields="abhiklmnqrsuwjxyz">
+ <kohaidx:target_index>Title-uniform-see-also:w</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform-see-also:p</kohaidx:target_index>
+ <kohaidx:target_index>See-also:w</kohaidx:target_index>
+ <kohaidx:target_index>See-also:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="730" subfields="a">
+ <kohaidx:target_index>Title-uniform-parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform-parallel:s</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <!-- Collective Uniform title -->
+ <kohaidx:index_subfields tag="235" subfields="abekmrsuwjxyz">
+ <kohaidx:target_index>Title-uniform:w</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="235" subfields="a">
+ <kohaidx:target_index>Heading:s</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform-heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform-heading:s</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="435" subfields="abekmrsuwjxyz">
+ <kohaidx:target_index>Title-uniform-see:w</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform-see:p</kohaidx:target_index>
+ <kohaidx:target_index>See:w</kohaidx:target_index>
+ <kohaidx:target_index>See:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="535" subfields="abekmrsuwjxyz">
+ <kohaidx:target_index>Title-uniform-see-also:w</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform-see-also:p</kohaidx:target_index>
+ <kohaidx:target_index>See-also:w</kohaidx:target_index>
+ <kohaidx:target_index>See-also:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="735" subfields="a">
+ <kohaidx:target_index>Title-uniform-parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform-parallel:s</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <!-- Name and title -->
+ <kohaidx:index_subfields tag="240" subfields="atjxyz">
+ <kohaidx:target_index>Name-Title:w</kohaidx:target_index>
+ <kohaidx:target_index>Name-Title:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="240" subfields="a">
+ <kohaidx:target_index>Heading:s</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
+ <kohaidx:target_index>Name-Title-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Name-Title-heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Name-Title-heading:s</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="440" subfields="atjxyz">
+ <kohaidx:target_index>Name-Title-see:w</kohaidx:target_index>
+ <kohaidx:target_index>Name-Title-see:p</kohaidx:target_index>
+ <kohaidx:target_index>See:w</kohaidx:target_index>
+ <kohaidx:target_index>See:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="540" subfields="atjxyz">
+ <kohaidx:target_index>Name-Title-see-also:w</kohaidx:target_index>
+ <kohaidx:target_index>Name-Title-see-also:p</kohaidx:target_index>
+ <kohaidx:target_index>See-also:w</kohaidx:target_index>
+ <kohaidx:target_index>See-also:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="740" subfields="a">
+ <kohaidx:target_index>Name-Title-parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Name-Title-parallel:s</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <!-- Name and collective title -->
+ <kohaidx:index_subfields tag="245" subfields="atjxyz">
+ <kohaidx:target_index>Title-uniform:w</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="245" subfields="a">
+ <kohaidx:target_index>Heading:s</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform-heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform-heading:s</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="445" subfields="atjxyz">
+ <kohaidx:target_index>Title-uniform-see:w</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform-see:p</kohaidx:target_index>
+ <kohaidx:target_index>See:w</kohaidx:target_index>
+ <kohaidx:target_index>See:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="545" subfields="atjxyz">
+ <kohaidx:target_index>Title-uniform-see-also:w</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform-see-also:p</kohaidx:target_index>
+ <kohaidx:target_index>See-also:w</kohaidx:target_index>
+ <kohaidx:target_index>See-also:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="745" subfields="a">
+ <kohaidx:target_index>Title-uniform-parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Title-uniform-parallel:s</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <!-- Topical term -->
+ <kohaidx:index_subfields tag="250" subfields="ajxyz">
+ <kohaidx:target_index>Subject:w</kohaidx:target_index>
+ <kohaidx:target_index>Subject:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Subject-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Subject-heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Subject-heading:s</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="250" subfields="a">
+ <kohaidx:target_index>Heading:s</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="450" subfields="ajxyz">
+ <kohaidx:target_index>Subject-see:w</kohaidx:target_index>
+ <kohaidx:target_index>Subject-see:p</kohaidx:target_index>
+ <kohaidx:target_index>See:w</kohaidx:target_index>
+ <kohaidx:target_index>See:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="550" subfields="ajxyz">
+ <kohaidx:target_index>Subject-see-also:w</kohaidx:target_index>
+ <kohaidx:target_index>Subject-see-also:p</kohaidx:target_index>
+ <kohaidx:target_index>See-also:w</kohaidx:target_index>
+ <kohaidx:target_index>See-also:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="750" subfields="a">
+ <kohaidx:target_index>Subject-parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Subject-parallel:s</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <!-- Place -->
+ <kohaidx:index_subfields tag="260" subfields="abcdjxyz">
+ <kohaidx:target_index>Place:w</kohaidx:target_index>
+ <kohaidx:target_index>Place:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Place-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Place-heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Place-heading:s</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="260" subfields="a">
+ <kohaidx:target_index>Heading:s</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="460" subfields="abcdjxyz">
+ <kohaidx:target_index>Place-see:w</kohaidx:target_index>
+ <kohaidx:target_index>Place-see:p</kohaidx:target_index>
+ <kohaidx:target_index>See:w</kohaidx:target_index>
+ <kohaidx:target_index>See:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="560" subfields="abcdjxyz">
+ <kohaidx:target_index>Place-see-also:w</kohaidx:target_index>
+ <kohaidx:target_index>Place-see-also:p</kohaidx:target_index>
+ <kohaidx:target_index>See-also:w</kohaidx:target_index>
+ <kohaidx:target_index>See-also:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="760" subfields="a">
+ <kohaidx:target_index>Place-parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Place-parallel:s</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <!-- Genre/form -->
+ <kohaidx:index_subfields tag="280" subfields="ajxyz">
+ <kohaidx:target_index>Form:w</kohaidx:target_index>
+ <kohaidx:target_index>Form:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Form-heading:w</kohaidx:target_index>
+ <kohaidx:target_index>Form-heading:p</kohaidx:target_index>
+ <kohaidx:target_index>Form-heading:s</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="280" subfields="a">
+ <kohaidx:target_index>Heading:s</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
+ <kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="480" subfields="ajxyz">
+ <kohaidx:target_index>Form-see:w</kohaidx:target_index>
+ <kohaidx:target_index>Form-see:p</kohaidx:target_index>
+ <kohaidx:target_index>See:w</kohaidx:target_index>
+ <kohaidx:target_index>See:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
+ <kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="580" subfields="ajxyz">
+ <kohaidx:target_index>Form-see-also:w</kohaidx:target_index>
+ <kohaidx:target_index>Form-see-also:p</kohaidx:target_index>
+ <kohaidx:target_index>See-also:w</kohaidx:target_index>
+ <kohaidx:target_index>See-also:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <kohaidx:index_subfields tag="780" subfields="a">
+ <kohaidx:target_index>Form-parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Form-parallel:s</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:w</kohaidx:target_index>
+ <kohaidx:target_index>Parallel:p</kohaidx:target_index>
+ <kohaidx:target_index>Match:w</kohaidx:target_index>
+ <kohaidx:target_index>Match:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <!-- Notes 300, 305, 310, 320, 330, 340, 356-->
+ <kohaidx:index_subfields tag="300" subfields="a">
+ <kohaidx:target_index>Note:w</kohaidx:target_index>
+ <kohaidx:target_index>Note:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="305" subfields="a">
+ <kohaidx:target_index>Note:w</kohaidx:target_index>
+ <kohaidx:target_index>Note:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="310" subfields="a">
+ <kohaidx:target_index>Note:w</kohaidx:target_index>
+ <kohaidx:target_index>Note:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="320" subfields="a">
+ <kohaidx:target_index>Note:w</kohaidx:target_index>
+ <kohaidx:target_index>Note:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="330" subfields="a">
+ <kohaidx:target_index>Note:w</kohaidx:target_index>
+ <kohaidx:target_index>Note:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="340" subfields="a">
+ <kohaidx:target_index>Note:w</kohaidx:target_index>
+ <kohaidx:target_index>Note:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="356" subfields="a">
+ <kohaidx:target_index>Note:w</kohaidx:target_index>
+ <kohaidx:target_index>Note:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+
+ <!-- authtype-->
+ <kohaidx:index_subfields tag="152" subfields="b">
+ <kohaidx:target_index>authtype:w</kohaidx:target_index>
+ <kohaidx:target_index>authtype:p</kohaidx:target_index>
+ </kohaidx:index_subfields>
+ <kohaidx:index_subfields tag="942" subfields="a">
+ <kohaidx:target_index>authtype:w</kohaidx:target_index>
+ </kohaidx:index_subfields>
+</kohaidx:index_defs>
diff --git
a/etc/zebradb/marc_defs/unimarc/authorities/authority-zebra-indexdefs.xsl b/etc/zebradb/marc_defs/unimarc/authorities/authority-zebra-indexdefs.xsl
new file mode 100644
index 0000000..0b84c34
--- /dev/null
+++
b/etc/zebradb/marc_defs/unimarc/authorities/authority-zebra-indexdefs.xsl
@@ -0,0 +1,669 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+This file has been automatically generated from a Koha index definition
file
+with the stylesheet koha-indexdefs-to-zebra.xsl. Do not manually edit
this file,
+as it may be overwritten. To regenerate, edit the appropriate Koha index
+definition file (probably something like
{biblio,authority}-koha-indexdefs.xml) and run:
+`xsltproc koha-indexdefs-to-zebra.xsl
{biblio,authority}-koha-indexdefs.xml >
+{biblio,authority}-zebra-indexdefs.xsl` (substituting the appropriate
file names).
+-->
+<xslo:stylesheet xmlns:xslo="http://www.w3.org/1999/XSL/Transform"
xmlns:marc="http://www.loc.gov/MARC21/slim"
xmlns:z="http://indexdata.com/zebra-2.0"
xmlns:kohaidx="http://www.koha-community.org/schemas/index-defs"
version="1.0">
+ <xslo:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
+ <xslo:template match="text()"/>
+ <xslo:template match="text()" mode="index_subfields"/>
+ <xslo:template match="text()" mode="index_data_field"/>
+ <xslo:template match="text()" mode="index_heading"/>
+ <xslo:template match="text()" mode="index_heading_conditional"/>
+ <xslo:template match="text()" mode="index_match_heading"/>
+ <xslo:template match="text()" mode="index_subject_thesaurus"/>
+ <xslo:template match="/">
+ <xslo:if test="marc:collection">
+ <collection>
+ <xslo:apply-templates select="marc:collection/marc:record"/>
+ </collection>
+ </xslo:if>
+ <xslo:if test="marc:record">
+ <xslo:apply-templates select="marc:record"/>
+ </xslo:if>
+ </xslo:template>
+ <xslo:template match="marc:record">
+ <xslo:variable name="idfield"
select="normalize-space(marc:controlfield[@tag='001'])"/>
+ <z:record type="update">
+ <xslo:attribute name="z:id">
+ <xslo:value-of select="$idfield"/>
+ </xslo:attribute>
+ <xslo:apply-templates/>
+ <xslo:apply-templates mode="index_subfields"/>
+ <xslo:apply-templates mode="index_data_field"/>
+ <xslo:apply-templates mode="index_heading"/>
+ <xslo:apply-templates mode="index_heading_conditional"/>
+ <xslo:apply-templates mode="index_match_heading"/>
+ <xslo:apply-templates mode="index_subject_thesaurus"/>
+ <xslo:apply-templates mode="index_all"/>
+ </z:record>
+ </xslo:template>
+ <xslo:template match="marc:controlfield[@tag='001']">
+ <z:index name="Local-Number:w Local-Number:s Local-Number:n">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='200']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('abcdfgjxyz', @code)">
+ <z:index name="Personal-name:w Personal-name:p Heading:w
Heading:p Match:w Match:p Match-heading:w Match-heading:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Heading:s Heading-Main:w Heading-Main:p
Heading-Main:s Personal-name-heading:w Personal-name-heading:p
Personal-name-heading:s">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='400']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('abcdfgjxyz', @code)">
+ <z:index name="Personal-name-see:w Personal-name-see:p See:w
See:p Match:w Match:p Match-heading-see-form:w Match-heading-see-form:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='500']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('abcdfgjxyz', @code)">
+ <z:index name="Personal-name-see-also:w
Personal-name-see-also:p See-also:w See-also:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='700']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Personal-name-parallel:w
Personal-name-parallel:s Parallel:w Parallel:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='210']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('abcdefgjxyz', @code)">
+ <z:index name="Corporate-name:w Corporate-name:p
Conference-name:w Conference-name:p Heading:w Heading:p Match:w Match:p
Match-heading:w Match-heading:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Heading:s Heading-Main:w Heading-Main:p
Heading-Main:s Corporate-name-heading:w Corporate-name-heading:p
Corporate-name-heading:s Conference-name-heading:w
Conference-name-heading:p Conference-name-heading:s">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='410']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('abcdefgjxyz', @code)">
+ <z:index name="Corporate-name-see:w Corporate-name-see:p
Conference-name-see:w Conference-name-see:p See:w See:p Match:w Match:p
Match-heading-see-form:w Match-heading-see-form:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='510']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('abcdefgjxyz', @code)">
+ <z:index name="Corporate-name-see-also:w
Corporate-name-see-also:p Conference-name-see-also:w
Conference-name-see-also:p See-also:w See-also:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='710']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('abcdefgjxyz', @code)">
+ <z:index name="Corporate-name-parallel:w
Corporate-name-parallel:s Conference-name-parallel:w
Conference-name-parallel:s Parallel:w Parallel:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='215']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('ajxyz', @code)">
+ <z:index name="Name-geographic:w Name-geographic:p
Name-geographic:s Term-geographic:w Term-geographic:p Term-geographic:s
Heading:w Heading:p Heading:s Match:w Match:p Match-heading:w
Match-heading:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Heading-Main:w Heading-Main:p Heading-Main:s
Name-geographic-heading:w Name-geographic-heading:p
Name-geographic-heading:s Term-geographic-heading:w
Term-geographic-heading:p Term-geographic-heading:s">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='415']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('ajxyz', @code)">
+ <z:index name="Name-geographic-see:w Name-geographic-see:p
Term-geographic-see:w Term-geographic-see:p Term-geographic-see:s See:w
See:p See:s Match:w Match:p Match-heading-see-form:w
Match-heading-see-form:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='515']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('ajxyz', @code)">
+ <z:index name="Name-geographic-see-also:w
Name-geographic-see-also:p Term-geographic-see-also:w
Term-geographic-see-also:p Term-geographic-see-also:s See-also:w
See-also:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='715']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('ajxyz', @code)">
+ <z:index name="Name-geographic-parallel:w
Name-geographic-parallel:s Term-geographic-parallel:w
Term-geographic-parallel:s Term-geographic-parallel:p Parallel:w
Parallel:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='216']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('afcjxyz', @code)">
+ <z:index name="Trademark:w Trademark:p Heading:w Heading:p
Match:w Match:p Match-heading:w Match-heading:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Heading:s Heading-Main:w Heading-Main:p
Heading-Main:s Trademark-heading:w Trademark-heading:p Trademark-heading:s">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='416']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('afcjxyz', @code)">
+ <z:index name="Trademark-see:w Trademark-see:p See:w See:p
Match:w Match:p Match-heading-see-form:w Match-heading-see-form:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='516']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('afcjxyz', @code)">
+ <z:index name="Trademark-see-also:w Trademark-see-also:p
See-also:w See-also:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='716']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('afcjxyz', @code)">
+ <z:index name="Trademark-parallel:w Trademark-parallel:s
Parallel:w Parallel:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='220']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('afjxyz', @code)">
+ <z:index name="Name:w Name:p Heading:w Heading:p Match:w
Match:p Match-heading:w Match-heading:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Heading:s Heading-Main:w Heading-Main:p
Heading-Main:s Name-heading:w Name-heading:p Name-heading:s">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='420']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('afjxyz', @code)">
+ <z:index name="Name-see:w Name-see:p See:w See:p Match:w
Match:p Match-heading-see-form:w Match-heading-see-form:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='520']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('afjxyz', @code)">
+ <z:index name="Name-see-also:w Name-see-also:p See-also:w
See-also:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='720']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('afjxyz', @code)">
+ <z:index name="Name-parallel:w Name-parallel:s Parallel:w
Parallel:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='230']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('abhiklmnqrsuwjxyz', @code)">
+ <z:index name="Title-uniform:w Title-uniform:p Heading:w
Heading:p Match:w Match:p Match-heading:w Match-heading:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Heading:s Heading-Main:w Heading-Main:p
Heading-Main:s Title-uniform-heading:w Title-uniform-heading:p
Title-uniform-heading:s">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='430']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('abhiklmnqrsuwjxyz', @code)">
+ <z:index name="Title-uniform-see:w Title-uniform-see:p See:w
See:p Match:w Match:p Match-heading-see-form:w Match-heading-see-form:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='530']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('abhiklmnqrsuwjxyz', @code)">
+ <z:index name="Title-uniform-see-also:w
Title-uniform-see-also:p See-also:w See-also:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='730']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Title-uniform-parallel:w
Title-uniform-parallel:s Parallel:w Parallel:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='235']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('abekmrsuwjxyz', @code)">
+ <z:index name="Title-uniform:w Title-uniform:p Heading:w
Heading:p Match:w Match:p Match-heading:w Match-heading:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Heading:s Heading-Main:w Heading-Main:p
Heading-Main:s Title-uniform-heading:w Title-uniform-heading:p
Title-uniform-heading:s">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='435']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('abekmrsuwjxyz', @code)">
+ <z:index name="Title-uniform-see:w Title-uniform-see:p See:w
See:p Match:w Match:p Match-heading-see-form:w Match-heading-see-form:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='535']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('abekmrsuwjxyz', @code)">
+ <z:index name="Title-uniform-see-also:w
Title-uniform-see-also:p See-also:w See-also:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='735']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Title-uniform-parallel:w
Title-uniform-parallel:s Parallel:w Parallel:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='240']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('atjxyz', @code)">
+ <z:index name="Name-Title:w Name-Title:p Heading:w Heading:p
Match:w Match:p Match-heading:w Match-heading:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Heading:s Heading-Main:w Heading-Main:p
Heading-Main:s Name-Title-heading:w Name-Title-heading:p
Name-Title-heading:s">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='440']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('atjxyz', @code)">
+ <z:index name="Name-Title-see:w Name-Title-see:p See:w See:p
Match:w Match:p Match-heading-see-form:w Match-heading-see-form:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='540']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('atjxyz', @code)">
+ <z:index name="Name-Title-see-also:w Name-Title-see-also:p
See-also:w See-also:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='740']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Name-Title-parallel:w Name-Title-parallel:s
Parallel:w Parallel:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='245']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('atjxyz', @code)">
+ <z:index name="Title-uniform:w Title-uniform:p Heading:w
Heading:p Match:w Match:p Match-heading:w Match-heading:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Heading:s Heading-Main:w Heading-Main:p
Heading-Main:s Title-uniform-heading:w Title-uniform-heading:p
Title-uniform-heading:s">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='445']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('atjxyz', @code)">
+ <z:index name="Title-uniform-see:w Title-uniform-see:p See:w
See:p Match:w Match:p Match-heading-see-form:w Match-heading-see-form:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='545']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('atjxyz', @code)">
+ <z:index name="Title-uniform-see-also:w
Title-uniform-see-also:p See-also:w See-also:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='745']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Title-uniform-parallel:w
Title-uniform-parallel:s Parallel:w Parallel:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='250']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('ajxyz', @code)">
+ <z:index name="Subject:w Subject:p Heading:w Heading:p Match:w
Match:p Match-heading:w Match-heading:p Subject-heading:w
Subject-heading:p Subject-heading:s">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Heading:s Heading-Main:w Heading-Main:p
Heading-Main:s">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='450']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('ajxyz', @code)">
+ <z:index name="Subject-see:w Subject-see:p See:w See:p Match:w
Match:p Match-heading-see-form:w Match-heading-see-form:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='550']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('ajxyz', @code)">
+ <z:index name="Subject-see-also:w Subject-see-also:p See-also:w
See-also:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='750']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Subject-parallel:w Subject-parallel:s Parallel:w
Parallel:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='260']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('abcdjxyz', @code)">
+ <z:index name="Place:w Place:p Heading:w Heading:p Match:w
Match:p Match-heading:w Match-heading:p Place-heading:w Place-heading:p
Place-heading:s">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Heading:s Heading-Main:w Heading-Main:p
Heading-Main:s">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='460']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('abcdjxyz', @code)">
+ <z:index name="Place-see:w Place-see:p See:w See:p Match:w
Match:p Match-heading-see-form:w Match-heading-see-form:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='560']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('abcdjxyz', @code)">
+ <z:index name="Place-see-also:w Place-see-also:p See-also:w
See-also:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='760']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Place-parallel:w Place-parallel:s Parallel:w
Parallel:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='280']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('ajxyz', @code)">
+ <z:index name="Form:w Form:p Heading:w Heading:p Match:w
Match:p Match-heading:w Match-heading:p Form-heading:w Form-heading:p
Form-heading:s">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Heading:s Heading-Main:w Heading-Main:p
Heading-Main:s">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='480']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('ajxyz', @code)">
+ <z:index name="Form-see:w Form-see:p See:w See:p Match:w
Match:p Match-heading-see-form:w Match-heading-see-form:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='580']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('ajxyz', @code)">
+ <z:index name="Form-see-also:w Form-see-also:p See-also:w
See-also:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='780']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Form-parallel:w Form-parallel:s Parallel:w
Parallel:p Match:w Match:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='300']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Note:w Note:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='305']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Note:w Note:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='310']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Note:w Note:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='320']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Note:w Note:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='330']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Note:w Note:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='340']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Note:w Note:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='356']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="Note:w Note:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='152']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('b', @code)">
+ <z:index name="authtype:w authtype:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_subfields" match="marc:datafield[@tag='942']">
+ <xslo:for-each select="marc:subfield">
+ <xslo:if test="contains('a', @code)">
+ <z:index name="authtype:w">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:if>
+ </xslo:for-each>
+ </xslo:template>
+ <xslo:template mode="index_all" match="text()">
+ <z:index name="Any:w Any:p">
+ <xslo:value-of select="."/>
+ </z:index>
+ </xslo:template>
+ <xslo:template name="chopPunctuation">
+ <xslo:param name="chopString"/>
+ <xslo:variable name="length" select="string-length($chopString)"/>
+ <xslo:choose>
+ <xslo:when test="$length=0"/>
+ <xslo:when test="contains('-,.:=;!%/',
substring($chopString,$length,1))">
+ <xslo:call-template name="chopPunctuation">
+ <xslo:with-param name="chopString"
select="substring($chopString,1,$length - 1)"/>
+ </xslo:call-template>
+ </xslo:when>
+ <xslo:when test="not($chopString)"/>
+ <xslo:otherwise>
+ <xslo:value-of select="$chopString"/>
+ </xslo:otherwise>
+ </xslo:choose>
+ <xslo:text/>
+ </xslo:template>
+</xslo:stylesheet>
diff --git a/etc/zebradb/marc_defs/unimarc/authorities/record.abs
b/etc/zebradb/marc_defs/unimarc/authorities/record.abs
index 5c992a8..b2a1559 100644
--- a/etc/zebradb/marc_defs/unimarc/authorities/record.abs
+++ b/etc/zebradb/marc_defs/unimarc/authorities/record.abs
@@ -1,3 +1,11 @@
+#
+# NOTE: If you are using the DOM index filter, this configuration file is
+# *not* used. To update the index definitions for the DOM filter,
+# edit authority-koha-indexdefs.xml and run
+# xsltproc ../../../xsl/koha-indexdefs-to-zebra.xsl \
+# authority-koha-indexdefs.xml \
+# > authority-zebra-indexdefs.xsl
+#
# This is a fairly simple set of UNIMARC Authority indexing rules
encoding utf-8
name authorities
@@ -12,9 +20,14 @@ xpath enable
all any
melm 001 Local-Number,Local-Number:n,Local-Number:s
+#FIXME check if 942 is used
melm 942$a authtype
melm 152$b authtype:w,authtype:p
+#FIXME index some coded fields and leader positions?
+#FIXME why only $a indexed for some 7XX and not for others (710, 715,
716, 720)?
+#FIXME why 250/260/280 indexed as Subject-heading, Place-heading and
Form-heading (not only 250/260/280$a) ?
+
# Personal Name
melm 200$a
Personal-name-heading:w,Personal-name-heading:p,Personal-name-heading:s,Personal-name:w,Personal-name:p,Heading:w,Heading:p,Heading:s,Heading-Main:w,Heading-Main:p,Heading-Main:s,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 200
Personal-name:w,Personal-name:p,Heading:w,Heading:p,Match:w,Match:p,Match-heading:w,Match-heading:p
@@ -22,15 +35,17 @@ melm 400
Personal-name-see:w,Personal-name-see:p,See:w,See:p,Match:w,Match:p,Mat
melm 500
Personal-name-see-also:w,Personal-name-see-also:p,See-also:w,See-also:p,Match:w,Match:p
melm 700$a
Personal-name-parallel:w,Personal-name-parallel:p,Parallel:w,Parallel:p,Match:w,Match:p
-# Corporate Name
+# Corporate Name and conference Name
+# with GRS-1, no way to make the difference
+# with DOM, possible
melm 210$a
Corporate-name-heading:w,Corporate-name-heading:p,Corporate-name-heading:s,Corporate-name:w,Corporate-name:p,Conference-name-heading:w,Conference-name-heading:p,Conference-name-heading:s,Conference-name:w,Conference-name:p,Heading:w,Heading:p,Heading:s,Heading-Main:w,Heading-Main:p,Heading-Main:s,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 210
Corporate-name:w,Corporate-name:p,Conference-name:w,Conference-name:p,Heading:w,Heading:p,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 410
Corporate-name-see:w,Corporate-name-see:p,Conference-name-see:w,Conference-name-see:p,See:w,See:p,Match:w,Match:p,Match-heading-see-from:w,Match-heading-see-from:p
melm 510
Corporate-name-see-also:w,Corporate-name-see-also:p,Conference-name-see-also:w,Conference-name-see-also:p,See-also:w,See-also:p,Match:w,Match:p
melm 710
Corporate-name-parallel:w,Corporate-name-parallel:p,Parallel:w,Parallel:p,Match:w,Match:p
-
-# Geographic & Geographic Name
+# Geographic Name
+# FIXME : what is Term-geographic?
melm 215$a
Name-geographic-heading:w,Name-geographic-heading:w,Name-geographic-heading:s,Name-geographic:w,Name-geographic:p,Term-geographic-heading:w,Term-geographic-heading:p,Term-geographic-heading:s,Term-geographic:w,Term-geographic:p,Heading:w,Heading:p,Heading:s,Heading-Main:w,Heading-Main:p,Heading-Main:s,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 215
Name-geographic-heading:w,Name-geographic-heading:w,Name-geographic-heading:s,Name-geographic:w,Name-geographic:p,Term-geographic:w,Term-geographic:p,Term-geographic:s,Heading:w,Heading:p,Heading:s,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 415
Name-geographic-see:w,Name-geographic-see:p,Term-geographic-see:w,Term-geographic-see:p,Term-geographic-see:s,See:w,See:p,See:s,Match:w,Match:p,Match-heading-see-from:w,Match-heading-see-from:p
@@ -38,10 +53,10 @@ melm 515
Name-geographic-see-also:w,Name-geographic-see-also:p,Term-geographic-s
melm 715
Name-geographic-parallel:w,Name-geographic-parallel:p,Term-geographic-parallel:w,Term-geographic-parallel:p,Term-geographic-parallel:s,Parallel:w,Parallel:p,Parallel:s,Match:w,Match:p
# Trademark
-melm 216$a
Trademark-heading:w,Trademark-heading:p,Trademark-heading:s,Trademark:w,Trademark:p,Conference-name-heading:w,Conference-name-heading:p,Conference-name-heading:s,Conference-name:w,Conference-name:p,Heading:w,Heading:p,Heading:s,Heading-Main:w,Heading-Main:p,Heading-Main:s,Match:w,Match:p,Match-heading:w,Match-heading:p
-melm 216
Trademark:w,Trademark:p,Conference-name:w,Conference-name:p,Heading:w,Heading:p,Match:w,Match:p,Match-heading:w,Match-heading:p
-melm 416
Trademark-see:w,Trademark-see:p,Conference-name-see:w,Conference-name-see:p,See:w,See:p,Match:w,Match:p,Match-heading-see-from:w,Match-heading-see-from:p
-melm 516
Trademark-see-also:w,Trademark-see-also:p,Conference-name-see-also:w,Conference-name-see-also:p,See-also:w,See-also:p,Match:w,Match:p
+melm 216$a
Trademark-heading:w,Trademark-heading:p,Trademark-heading:s,Trademark:w,Trademark:p,Heading:w,Heading:p,Heading:s,Heading-Main:w,Heading-Main:p,Heading-Main:s,Match:w,Match:p,Match-heading:w,Match-heading:p
+melm 216
Trademark:w,Trademark:p,Heading:w,Heading:p,Match:w,Match:p,Match-heading:w,Match-heading:p
+melm 416
Trademark-see:w,Trademark-see:p,See:w,See:p,Match:w,Match:p,Match-heading-see-from:w,Match-heading-see-from:p
+melm 516
Trademark-see-also:w,Trademark-see-also:p,See-also:w,See-also:p,Match:w,Match:p
melm 716
Trademark-parallel:w,Trademark-parallel:p,Parallel:w,Parallel:p,Match:w,Match:p
# Family Name
@@ -58,21 +73,22 @@ melm 430
Title-uniform-see:w,Title-uniform-see:p,See:w,See:p,Match:w,Match:p,Mat
melm 530
Title-uniform-see-also:w,Title-uniform-see-also:p,See-also:w,See-also:p,Match:w,Match:p
melm 730$a
Title-uniform-parallel:w,Title-uniform-parallel:p,Parallel:w,Parallel:p,Match:w,Match:p
-# Second area for uniform titles in UNIMARC?
+# Collective Uniform Title
melm 235$a
Title-uniform-heading:w,Title-uniform-heading:p,Title-uniform-heading:s,Title-uniform:w,Title-uniform:p,Heading:w,Heading:p,Heading:s,Heading-Main:w,Heading-Main:p,Heading-Main:s,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 235
Title-uniform:w,Title-uniform:p,Heading:w,Heading:p,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 435
Title-uniform-see:w,Title-uniform-see:p,See:w,See:p,Match:w,Match:p,Match-heading-see-from:w,Match-heading-see-from:p
melm 535
Title-uniform-see-also:w,Title-uniform-see-also:p,See-also:w,See-also:p,Match:w,Match:p
melm 735$a
Title-uniform-parallel:w,Title-uniform-parallel:p,Parallel:w,Parallel:p,Match:w,Match:p
-# Uniform Title
+# Name and Title
melm 240$a
Name-Title-heading:w,Name-Title-heading:p,Name-Title-heading:s,Name-Title:w,Name-Title:p,Heading:w,Heading:p,Heading:s,Heading-Main:w,Heading-Main:p,Heading-Main:s,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 240
Name-Title:w,Name-Title:p,Heading:w,Heading:p,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 440
Name-Title-see:w,Name-Title-see:p,See:w,See:p,Match:w,Match:p,Match-heading-see-from:w,Match-heading-see-from:p
melm 540
Name-Title-see-also:w,Name-Title-see-also:p,See-also:w,See-also:p,Match:w,Match:p
melm 740$a
Name-Title-parallel:w,Name-Title-parallel:p,Parallel:w,Parallel:p,Match:w,Match:p
-# Second area for uniform titles in UNIMARC?
+# Name and Collective Title
+# FIXME maybe use Name-Title index?
melm 245$a
Title-uniform-heading:w,Title-uniform-heading:p,Title-uniform-heading:s,Title-uniform:w,Title-uniform:p,Heading:w,Heading:p,Heading:s,Heading-Main:w,Heading-Main:p,Heading-Main:s,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 245
Title-uniform:w,Title-uniform:p,Heading:w,Heading:p,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 445
Title-uniform-see:w,Title-uniform-see:p,See:w,See:p,Match:w,Match:p,Match-heading-see-from:w,Match-heading-see-from:p
@@ -101,26 +117,39 @@ melm 580
Form-see-also:w,Form-see-also:p,See-also:w,See-also:p,Match:w,Match:p
melm 780$a
Form-parallel:w,Form-parallel:p,Parallel:w,Parallel:p,Match:w,Match:p
-# NOTE: subdivisions management missing from Koha
-# Not in UNIMARC?
+# FIXME: manage subdivisions ($j,$x,$y,$z)
# General Subdivision
-# melm 180 Subject-subdivision,Heading:w,Heading:p,Heading:s
+# Subject-subdivision,Heading:w,Heading:p,Heading:s
# Geographic Subdivision
-# melm 181 Geographic-subdivision,Heading:w,Heading:p,Heading:s
+# Geographic-subdivision,Heading:w,Heading:p,Heading:s
# Chronological Subdivision
-# melm 182 Chronological-subdivision,Heading:w,Heading:p,Heading:s
+# Chronological-subdivision,Heading:w,Heading:p,Heading:s
# Form Subdivision
-# melm 185 Form-subdivision,Heading:w,Heading:p,Heading:s
-melm 300$a Note
+# Form-subdivision,Heading:w,Heading:p,Heading:s
+
+# 300 Information note
+melm 300$a Note:w,Note:p
+# 305 "See also" reference note
+melm 305$a Note:w,Note:p
+# 310 "See" reference note
+melm 310$a Note:w,Note:p
+# 320 General explanatory reference note
+melm 320$a Note:w,Note:p
+# 330 General scope note
+melm 330$a Note:w,Note:p
+# 340 Biography and activity note
+melm 340$a Note:w,Note:p
+# 356 Geographical note
+melm 356$a Note:w,Note:p
+
+#FIXME Notes not defined in format. Keeping them for the moment
melm 301$a Note
melm 302$a Note
melm 303$a Note
melm 304$a Note
-melm 305$a Note
melm 306$a Note
melm 307$a Note
melm 308$a Note
-melm 310$a Note
melm 311$a Note
melm 312$a Note
melm 313$a Note
@@ -129,7 +158,6 @@ melm 315$a Note
melm 316$a Note
melm 317$a Note
melm 318$a Note
-melm 320$a Note
melm 321$a Note
melm 322$a Note
melm 323$a Note
@@ -138,9 +166,8 @@ melm 325$a Note
melm 326$a Note
melm 327$a Note
melm 328$a Note
-melm 330$a Note
melm 332$a Note
melm 333$a Note
melm 336$a Note
melm 337$a Note
-melm 345$a Note
+melm 345$a Note
\ No newline at end of file
--
1.7.9.5
--
Mathieu Saby
Service d'Informatique Documentaire
Service Commun de Documentation
Université Rennes 2
Téléphone : 02 99 14 12 65
Courriel : mathieu.saby at univ-rennes2.fr
More information about the Koha-patches
mailing list