diff --git a/zebraplugin/README b/zebraplugin/README new file mode 100644 index 0000000000..a635523e72 --- /dev/null +++ b/zebraplugin/README @@ -0,0 +1,3 @@ +In this dir you'll find files related to the zebra plugin. Please +refer to the Installing the Zebra Plugin guide for details on how +to set them up. diff --git a/zebraplugin/etc/ccl.properties b/zebraplugin/etc/ccl.properties new file mode 100644 index 0000000000..c1df2d07c3 --- /dev/null +++ b/zebraplugin/etc/ccl.properties @@ -0,0 +1,46 @@ +# CCL field mappings +# $Id$ +# +# The rule below is used when no fields are specified +term t=l,r s=al +# +# Simple rule for a field called "clean" +clean t=l,r +# +# Rules for some BIB-1 fields +au u=1003 s=pw +te 1=4 4=1 6=3 +ti u=4 s=pw +isbn u=7 +issn u=8 +cc u=20 +su u=21 s=pw +date u=30 r=r +dp u=31 r=r +da u=32 r=r +la u=54 s=pw +ab u=62 s=pw +note u=63 s=pw +af u=1006 s=pw +# +# Rules for a few GILS fields +north gils-attset,u=2040 r=o +south gils-attset,u=2041 r=o +east gils-attset,u=2038 r=o +west gils-attest,u=2039 r=o +distributor gils-attset,u=2000 s=pw +distributorname gils-attset,u=2001 s=pw + +# Explain fields +ExplainCategory exp1,1=1 +HumanStringLanguage exp1,1=2 +DatabaseName exp1,1=3 +TargetName exp1,1=4 +AttributeSetOID exp1,1=5 +RecordSyntaxOID exp1,1=6 +TagSetOID exp1,1=7 +ExtededServiceOID exp1,1=8 +DateAdded exp1,1=9 +DateChanged exp1,1=10 +DateExpires exp1,1=11 +ElementSetName exp1,1=12 diff --git a/zebraplugin/etc/koha.xml b/zebraplugin/etc/koha.xml new file mode 100644 index 0000000000..2c42d1145d --- /dev/null +++ b/zebraplugin/etc/koha.xml @@ -0,0 +1,31 @@ + +tcp:@:9900 +tcp:@:2100 + + /koha/zebradb/biblios + /koha/etc/zebra-biblios.cfg + /koha/etc/pqf.properties + + + /koha/zebradb/authorities + /koha/etc/pqf.properties + /koha/etc/zebra-authorities.cfg + + + zoomkoha + localhost + kohaadmin + K0h4R0ck$ + kohaadmin + K0h4R0ck$ + biblios + 1 + authorities + 1 + /koha/intranet + /koha/opac + /koha/opac/htdocs/opac-tmpl + /koha/intranet/htdocs/intranet-tmpl + /koha/intranet/htdocs/intranet-tmpl/default/en/includes/ + + diff --git a/zebraplugin/etc/pqf.properties b/zebraplugin/etc/pqf.properties new file mode 100644 index 0000000000..b315d798b5 --- /dev/null +++ b/zebraplugin/etc/pqf.properties @@ -0,0 +1,157 @@ +# $Id$ +# +# Propeties file to drive org.z3950.zing.cql.CQLNode's toPQF() +# back-end and the YAZ CQL-to-PQF converter. This specifies the +# interpretation of various CQL indexes, relations, etc. in terms +# of Type-1 query attributes. +# +# This configuration file generates queries using BIB-1 attributes. +# See http://www.loc.gov/z3950/agency/zing/cql/dc-indexes.html +# for the Maintenance Agency's work-in-progress mapping of Dublin Core +# indexes to Attribute Architecture (util, XD and BIB-2) +# attributes. + +# Identifiers for prefixes used in this file. (index.*) +set.cql = info:srw/cql-context-set/1/cql-v1.1 +set.rec = info:srw/cql-context-set/2/rec-1.0 +set.dc = info:srw/cql-context-set/1/dc-v1.1 +set.bath = http://zing.z3950.org/cql/bath/2.0/ + +# default set (in query) +set = info:srw/cql-context-set/1/dc-v1.1 + +# The default access point and result-set references +index.cql.serverChoice = 1=1016 + # srw.serverChoice is deprecated in favour of cql.serverChoice + # BIB-1 "any" + +index.rec.id = 1=12 + +index.dc.identifier = 1=1007 +index.dc.title = 1=4 +index.dc.subject = 1=21 +index.dc.creator = 1=1003 +index.dc.author = 1=1003 +index.dc.itemtype = 1=1031 +index.dc.barcode = 1=1032 +index.dc.branch = 1=1033 +index.dc.isbn = 1=7 +index.dc.any = 1=1016 + + ### Unofficial synonym for "creator" +index.dc.editor = 1=1020 +index.dc.publisher = 1=1018 +index.dc.description = 1=62 + # "abstract" +index.dc.date = 1=30 +index.dc.resourceType = 1=1031 + # guesswork: "Material-type" +index.dc.format = 1=1034 + # guesswork: "Content-type" +index.dc.resourceIdentifier = 1=12 + # "Local number" +index.dc.source = 1=1019 + # "Record-source" +index.dc.language = 1=54 + # "Code--language" +index.dc.relation = 1=? + ### No idea how to represent this +index.dc.coverage = 1=? + ### No idea how to represent this +index.dc.rights = 1=? + ### No idea how to represent this + +# Relation attributes are selected according to the CQL relation by +# looking up the "relation." property: +# +relation.< = 2=1 +relation.le = 2=2 +relation.eq = 2=3 +relation.exact = 2=3 +relation.ge = 2=4 +relation.> = 2=5 +relation.<> = 2=6 + +### These two are not really right: +relation.all = 2=3 +relation.any = 2=3 + +# BIB-1 doesn't have a server choice relation, so we just make the +# choice here, and use equality (which is clearly correct). +relation.scr = 2=3 + +# Relation modifiers. +# +relationModifier.relevant = 2=102 +relationModifier.fuzzy = 5=103 + ### 100 is "phonetic", which is not quite the same thing +relationModifier.stem = 2=101 +relationModifier.phonetic = 2=100 + +# Position attributes may be specified for anchored terms (those +# beginning with "^", which is stripped) and unanchored (those not +# beginning with "^"). This may change when we get a BIB-1 truncation +# attribute that says "do what CQL does". +# +position.first = 3=1 6=1 + # "first in field" +position.any = 3=3 6=1 + # "any position in field" +position.last = 3=4 6=1 + # not a standard BIB-1 attribute +position.firstAndLast = 3=3 6=3 + # search term is anchored to be complete field + +# Structure attributes may be specified for individual relations; a +# default structure attribute my be specified by the pseudo-relation +# "*", to be used whenever a relation not listed here occurs. +# +structure.exact = 4=108 + # string +structure.all = 4=2 +structure.any = 4=2 +structure.* = 4=1 + # phrase + +# Truncation attributes used to implement CQL wildcard patterns. The +# simpler forms, left, right- and both-truncation will be used for the +# simplest patterns, so that we produce PQF queries that conform more +# closely to the Bath Profile. However, when a more complex pattern +# such as "foo*bar" is used, we fall back on Z39.58-style masking. +# +truncation.right = 5=1 +truncation.left = 5=2 +truncation.both = 5=3 +truncation.none = 5=100 +truncation.z3958 = 5=104 + +# Finally, any additional attributes that should always be included +# with each term can be specified in the "always" property. +# +always = 6=1 +# 6=1: completeness = incomplete subfield + + +# Bath Profile support, added Thu Dec 18 13:06:20 GMT 2003 +# See the Bath Profile for SRW at +# http://zing.z3950.org/cql/bath.html +# including the Bath Context Set defined within that document. +# +# In this file, we only map index-names to BIB-1 use attributes, doing +# so in accordance with the specifications of the Z39.50 Bath Profile, +# and leaving the relations, wildcards, etc. to fend for themselves. + +index.bath.keyTitle = 1=33 +index.bath.possessingInstitution = 1=1044 +index.bath.name = 1=1002 +index.bath.personalName = 1=1 +index.bath.corporateName = 1=2 +index.bath.conferenceName = 1=3 +index.bath.uniformTitle = 1=6 +index.bath.isbn = 1=7 +index.bath.issn = 1=8 +index.bath.geographicName = 1=58 +index.bath.notes = 1=63 +index.bath.topicalSubject = 1=1079 +index.bath.genreForm = 1=1075 + diff --git a/zebraplugin/etc/zebra-authorities.cfg b/zebraplugin/etc/zebra-authorities.cfg new file mode 100644 index 0000000000..1c1a2b0acf --- /dev/null +++ b/zebraplugin/etc/zebra-authorities.cfg @@ -0,0 +1,39 @@ +# Simple Zebra configuration file that defines +# a database with MARCXML records. +# $Id$ +# +# Where are the config files located? +profilePath:${srcdir:-.}:/usr/share/idzebra/tab/:/koha/zebradb/biblios/tab +encoding: UTF-8 +# Files that describe the attribute sets supported. +attset: bib1.att +attset: explain.att +attset:gils.att + +systag sysno rank +# Specify record type +iso2709.recordType:grs.marcxml.record +recordType:grs.xml +recordId: (bib1,Identifier-standard) +storeKeys:1 +storeData:1 + + +# Lock File Area +lockDir: /koha/zebradb/biblios/lock +perm.anonymous:r +perm.kohaadmin:rw +passw.kohalis +#shadow +register: /koha/zebradb/biblios/register:4G +#shadow: e:/zebrashadow:1G + +# Temp File area for result sets +setTmpDir: /koha/zebradb/biblios/tmp + +# Temp File area for index program +keyTmpDir: /koha/zebradb/biblios/key + +# Approx. Memory usage during indexing +memMax: 40M +rank:rank-1 diff --git a/zebraplugin/etc/zebra-biblios.cfg b/zebraplugin/etc/zebra-biblios.cfg new file mode 100644 index 0000000000..0b3b561177 --- /dev/null +++ b/zebraplugin/etc/zebra-biblios.cfg @@ -0,0 +1,40 @@ +# Simple Zebra configuration file that defines +# a database with MARCXML records. +# $Id$ +# +# Where are the config files located? +profilePath:${srcdir:-.}:/usr/share/idzebra/tab/:/koha/zebradb/biblios/tab/:${srcdir:-.}/tab/ + +encoding: UTF-8 +# Files that describe the attribute sets supported. +attset: bib1.att +attset: explain.att +attset:gils.att + +systag sysno rank +# Specify record type +iso2709.recordType:grs.marcxml.record +recordType:grs.xml +recordId: (bib1,Identifier-standard) +storeKeys:1 +storeData:1 + + +# Lock File Area +lockDir: /koha/zebradb/biblios/lock +perm.anonymous:r +perm.kohaadmin:rw +passw.kohalis +shadow +register: /koha/zebradb/biblios/register:4G +shadow: /koha/zebradb/biblios/shadow:4G + +# Temp File area for result sets +setTmpDir: /koha/zebradb/biblios/tmp + +# Temp File area for index program +keyTmpDir: /koha/zebradb/biblios/key + +# Approx. Memory usage during indexing +memMax: 40M +rank:rank-1 diff --git a/zebraplugin/utils/biblio_framework.sql b/zebraplugin/utils/biblio_framework.sql new file mode 100644 index 0000000000..463e8a39ec --- /dev/null +++ b/zebraplugin/utils/biblio_framework.sql @@ -0,0 +1,6 @@ +alter table biblio add frameworkcode char(4); +update biblio,marc_biblio set biblio.frameworkcode=marc_biblio.frameworkcode where marc_biblio.biblionumber=biblio.biblionumber; +alter table biblioitems add marcxml text; +alter table biblioitems add lcsort varchar(25); +alter table items add onloan date; +alter table items add Cutterextra varchar(45); diff --git a/zebraplugin/utils/convert_to_utf8.pl b/zebraplugin/utils/convert_to_utf8.pl new file mode 100755 index 0000000000..c6592ff5f8 --- /dev/null +++ b/zebraplugin/utils/convert_to_utf8.pl @@ -0,0 +1,23 @@ +#!/usr/bin/perl + +# small script to convert mysql tables to utf-8 + +use C4::Context; +use strict; + +my $dbh=C4::Context->dbh(); + +my $database=C4::Context->config("database"); +my $query="Show tables"; +my $sth=$dbh->prepare($query); +$sth->execute(); +while (my @table=$sth->fetchrow_array()){ + print "Altering table $table[0]\n"; + my $alter_query="ALTER TABLE $table[0] CHARACTER SET UTF8 collate utf8_general_ci"; + my $sth2=$dbh->prepare($alter_query); + $sth2->execute(); + $sth2->finish(); + +} +$sth->finish(); +$dbh->disconnect(); diff --git a/zebraplugin/utils/missing090field.pl b/zebraplugin/utils/missing090field.pl new file mode 100755 index 0000000000..d6e4b04018 --- /dev/null +++ b/zebraplugin/utils/missing090field.pl @@ -0,0 +1,50 @@ +#!/usr/bin/perl +# This script finds and fixes missing 090 fields in Koha for MARC21 +# Written by TG on 01/10/2005 +# Revised by Joshua Ferraro on 03/31/2006 +use strict; + +# Koha modules used + +use C4::Context; +use C4::Biblio; +use MARC::Record; +use MARC::File::USMARC; + + +my $dbh = C4::Context->dbh; + +my $sth=$dbh->prepare("select m.biblionumber,b.biblioitemnumber from marc_biblio m left join biblioitems b on b.biblionumber=m.biblionumber "); + $sth->execute(); + +while (my ($biblionumber,$biblioitemnumber)=$sth->fetchrow ){ + my $record = MARCgetbiblio($dbh,$biblionumber); + + MARCmodbiblionumber($biblionumber,$biblioitemnumber,$record); + +} + +sub MARCmodbiblionumber{ +my ($biblionumber,$biblioitemnumber,$record)=@_; + +my ($tagfield,$biblionumtagsubfield) = &MARCfind_marc_from_kohafield($dbh,"biblio.biblionumber",""); +my ($tagfield2,$biblioitemtagsubfield) = &MARCfind_marc_from_kohafield($dbh,"biblio.biblioitemnumber",""); + +my $update=0; + my @tags = $record->field($tagfield); + +if (!@tags){ + +my $newrec = MARC::Field->new( $tagfield,'','', $biblionumtagsubfield => $biblionumber,$biblioitemtagsubfield=>$biblioitemnumber); + $record->append_fields($newrec); + $update=1; + } + + +if ($update){ +&MARCmodbiblio($dbh,$biblionumber,$record,'',0); + print "$biblionumber \n"; + } + +} +END; diff --git a/zebraplugin/utils/move_marc_to_biblioitems.pl b/zebraplugin/utils/move_marc_to_biblioitems.pl new file mode 100755 index 0000000000..93a337584c --- /dev/null +++ b/zebraplugin/utils/move_marc_to_biblioitems.pl @@ -0,0 +1,39 @@ +#!/usr/bin/perl + +# script to shift marc to biblioitems +# scraped from updatedatabase for dev week by chris@katipo.co.nz + +use C4::Context; +use C4::Biblio; +use MARC::Record; +use MARC::File::XML ( BinaryEncoding => 'utf8' ); + +print "moving MARC record to biblioitems table\n"; + +my $dbh = C4::Context->dbh(); +# changing marc field type +$dbh->do('ALTER TABLE biblioitems CHANGE marc marc BLOB NULL DEFAULT NULL '); + +# adding marc xml, just for convenience +$dbh->do( +'ALTER TABLE biblioitems ADD marcxml TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ' +); + +# moving data from marc_subfield_value to biblio +$sth = $dbh->prepare('select bibid,biblionumber from marc_biblio'); +$sth->execute; +my $sth_update = + $dbh->prepare( + 'update biblioitems set marc=? where biblionumber=?'); +my $totaldone = 0; +while ( my ( $bibid, $biblionumber ) = $sth->fetchrow ) { + my $record = MARCgetbiblio( $dbh, $bibid ); + + #Force UTF-8 in record leader + $record->encoding('UTF-8'); + $sth_update->execute( $record->as_usmarc(), + $biblionumber ); + $totaldone++; + print "\r$totaldone / $totaltodo" unless ( $totaldone % 100 ); +} +print "\rdone\n"; diff --git a/zebraplugin/utils/phrase_log.sql b/zebraplugin/utils/phrase_log.sql new file mode 100644 index 0000000000..205aeb3497 --- /dev/null +++ b/zebraplugin/utils/phrase_log.sql @@ -0,0 +1,49 @@ +-- MySQL Administrator dump 1.4 +-- +-- ------------------------------------------------------ +-- Server version 4.1.15-nt + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; + +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; + + +-- +-- Create schema koha +-- + +-- +-- Table structure for table `koha`.`phrase_log` +-- + +DROP TABLE IF EXISTS `phrase_log`; +CREATE TABLE `phrase_log` ( + `phr_phrase` varchar(100) NOT NULL default '', + `phr_resultcount` int(11) NOT NULL default '0', + `phr_ip` varchar(30) NOT NULL default '', + `user` varchar(45) default NULL, + `date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, + `actual` text NOT NULL, + KEY `phr_ip` (`phr_ip`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `koha`.`phrase_log` +-- + +/*!40000 ALTER TABLE `phrase_log` DISABLE KEYS */; +/*!40000 ALTER TABLE `phrase_log` ENABLE KEYS */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/zebraplugin/zebradb/biblios/tab/bib1.att b/zebraplugin/zebradb/biblios/tab/bib1.att new file mode 100644 index 0000000000..763574b2e3 --- /dev/null +++ b/zebraplugin/zebradb/biblios/tab/bib1.att @@ -0,0 +1,120 @@ +# $Id$ +# Bib-1 Attribute Set +name bib1 +reference Bib-1 + +att 1 Personal-name +att 2 Corporate-name +att 3 Conference-name +att 4 Title +att 5 Title-series +att 6 Title-uniform +att 7 ISBN +att 8 ISSN +att 9 LC-card-number +att 10 BNB-card-number +att 11 BGF-number +att 12 Local-number +att 13 Dewey-classification +att 14 UDC-classification +att 15 Bliss-classification +att 16 LC-call-number +att 17 NLM-call-number +att 18 NAL-call-number +att 19 MOS-call-number +att 20 Local-classification +att 21 Subject-heading +att 22 Subject-Rameau +att 23 BDI-index-subject +att 24 INSPEC-subject +att 25 MESH-subject +att 26 PA-subject +att 27 LC-subject-heading +att 28 RVM-subject-heading +att 29 Local-subject-index +att 30 Date +att 31 Date-of-publication +att 32 Date-of-acquisition +att 33 Title-key +att 34 Title-collective +att 35 Title-parallel +att 36 Title-cover +att 37 Title-added-title-page +att 38 Title-caption +att 39 Title-running +att 40 Title-spine +att 41 Title-other-variant +att 42 Title-former +att 43 Title-abbreviated +att 44 Title-expanded +att 45 Subject-precis +att 46 Subject-rswk +att 47 Subject-subdivision +att 48 Number-natl-biblio +att 49 Number-legal-deposit +att 50 Number-govt-pub +att 51 Number-music-publisher +att 52 Number-db +att 53 Number-local-call +att 54 Code-language +att 55 Code-geographic +att 56 Code-institution +att 57 Name-and-title +att 58 Name-geographic +att 59 Place-publication +att 60 CODEN +att 61 Microform-generation +att 62 Abstract +att 63 Note +att 1000 Author-title +att 1001 Record-type +att 1002 Name +att 1003 Author +att 1004 Author-name-personal +att 1005 Author-name-corporate +att 1006 Author-name-conference +att 1007 Identifier-standard +att 1008 Subject-LC-childrens +att 1009 Subject-name-personal +att 1010 Body-of-text +att 1011 Date/time-added-to-db +att 1012 Date/time-last-modified +att 1013 Authority/format-id +att 1014 Concept-text +att 1015 Concept-reference +att 1016 Any 1016,4,1005,62 +att 1017 Server-choice +att 1018 Publisher +att 1019 Record-source +att 1020 Editor +att 1021 Bib-level +att 1022 Geographic-class +att 1023 Indexed-by +att 1024 Map-scale +att 1025 Music-key +att 1026 Related-periodical +att 1027 Report-number +att 1028 Stock-number +att 1030 Thematic-number +att 1031 Material-type +att 1032 Doc-id +att 1033 Host-item +att 1034 Content-type +att 1035 Anywhere +att 1036 Author-Title-Subject + +# Koha Specific Stuff + +att 8900 Call-Number +att 8800 date-entered-on-file +att 8801 date1 +att 8802 date2 +att 8805 language +att 8822 ff8-22 +att 8833 ff8-33 +att 8834 ff8-34 + +att 8700 ff7-00 +att 8701 ff7-01 +att 8702 ff7-02 + diff --git a/zebraplugin/zebradb/biblios/tab/default.idx b/zebraplugin/zebradb/biblios/tab/default.idx new file mode 100644 index 0000000000..2859f02f88 --- /dev/null +++ b/zebraplugin/zebradb/biblios/tab/default.idx @@ -0,0 +1,56 @@ +# Zebra indexes as referred to from the *.abs-files. +# $Id$ +# + +# Traditional word index +# Used if completenss is 'incomplete field' (@attr 6=1) and +# structure is word/phrase/word-list/free-form-text/document-text +index w +completeness 0 +position 1 +charmap word-phrase-utf.chr + +# Phrase index +# Used if completeness is 'complete {sub}field' (@attr 6=2, @attr 6=1) +# and structure is word/phrase/word-list/free-form-text/document-text +index p +completeness 1 +charmap word-phrase-utf.chr + +# URX (URL) index +# Used if structure=urx (@attr 4=104) +index u +completeness 0 +charmap urx.chr + +# Numeric index +# Used if structure=numeric (@attr 4=109) +index n +completeness 0 +charmap numeric.chr + +# Null map index (no mapping at all) +# Used if structure=key (@attr 4=3) +index 0 +completeness 0 +position 1 +charmap @ + +# Year +# Used if structure=year (@attr 4=4) +index y +completeness 0 +charmap @ + +# Date +# Used if structure=date (@attr 4=5) +index d +completeness 0 +charmap @ + +# Sort register +sort s +completeness 1 +charmap sort-string-utf.chr + + diff --git a/zebraplugin/zebradb/biblios/tab/kohalis b/zebraplugin/zebradb/biblios/tab/kohalis new file mode 100644 index 0000000000..162153b312 --- /dev/null +++ b/zebraplugin/zebradb/biblios/tab/kohalis @@ -0,0 +1 @@ +kohaadmin:K0h4R0ck$ diff --git a/zebraplugin/zebradb/biblios/tab/record.abs b/zebraplugin/zebradb/biblios/tab/record.abs new file mode 100644 index 0000000000..717d44cf7b --- /dev/null +++ b/zebraplugin/zebradb/biblios/tab/record.abs @@ -0,0 +1,118 @@ +# $Id$ + +# This is a fairly simple example of a set of MARC21 indexing rules. It +# results in a server which provides a passable Bath level 0 and 1 service +# (author, title, subject, keyword and exact services). Feel free to +# elaborate on it, and if you do, please consider sharing your additions. +# NOTE: This is designed to be used with the grs.marcxml input filter +# for ISO2709 (ANSI Z39.2) or grs.xml for MARCXML-formatted records. It +# won't work for the old grs.marc input filter, which yields a different +# internal structure. +encoding utf-8 +name marc21 +attset bib1.att +attset gils.att +esetname F @ +esetname B @ + +marc usmarc.mar +systag sysno rank +xpath disable + +all any +melm 008 date-entered-on-file:n:range(data,0,6),date-entered-on-file:s:range(data,0,6),date1:n:range(data,7,4),date1:s:range(data,7,4),date2:n:range(data,11,4),date2:s:range(data,11,4),ff8-22:w:range(data,22,1),language:w:range(data,35,3),ff8-33:w:range(data,33,1),ff8-34:w:range(data,34,1) + +melm 007 ff7-00:w:range(data,0,1),ff7-01:w:range(data,1,1),ff7-02:w:range(data,2,1) + +melm 082 Dewey-classification:w,Dewey-classification:s +melm 020$a ISBN:w +melm 022$a ISSN:w,ISBN:w +melm 050$b LC-call-number:s +melm 050 LC-call-number +melm 942$k LC-card-number:s +melm 090$c Identifier-standard:w +melm 100$9 Cross-Reference !:w +melm 100$a author,author:p,author:s +melm 100 author +melm 110 author +melm 111 author +melm 130 title +melm 240 title,title:p +melm 242 title,title:p +melm 243 title,title:p +melm 245$a title:w,title:p,title:s +melm 245$c author +melm 245 title,title:p +melm 246 title,title:p +melm 247 title,title:p +melm 260$a Place-publication !:w,!:p +melm 260$b Publisher !:w,!:p +melm 260$c Date,Date:s, !:y + +melm 260 Place-publication +melm 400$t title,author +melm 400 author +melm 410$t title,author +melm 410 author +melm 411$t title,author +melm 411 author +melm 440$a Title-series !:w,!:p +melm 440 Title-series !:w,!:p +melm 490$a Title-series !:w,!:p +melm 490 title + +melm 505 Note !:w,!:p + +melm 600$t title +melm 600 subject-heading,subject-heading:p +melm 610$t title +melm 610 subject-heading +melm 611$t title +melm 611 subject-heading +melm 630 subject-heading +melm 650$9 Controlled-Subject-Index +melm 650 subject-heading,subject-heading:p +melm 651$9 Controlled-Subject-Index +melm 651 subject-heading,subject-heading:p +melm 652$9 Controlled-Subject-Index +melm 652 subject-heading,subject-heading:p +melm 653$9 Controlled-Subject-Index +melm 653 subject-heading,subject-heading:p +melm 654$9 Controlled-Subject-Index +melm 654 subject-heading +melm 655$9 Controlled-Subject-Index +melm 655 subject-heading +melm 656$9 Controlled-Subject-Index +melm 656 subject-heading +melm 657$9 Controlled-Subject-Index +melm 657 subject-heading +melm 690$9 Controlled-Subject-Index +melm 690 subject-heading + +melm 700$9 Cross-Reference +melm 700$t title,author +melm 700$a author,author:p +melm 700 author +melm 710$t title,author +melm 710$a author,author:p +melm 710 author +melm 711$t title,author +melm 711 author +melm 730 title +melm 740 title +melm 800$t title,author +melm 800 author +melm 810$t title,author +melm 810 author +melm 811$t title,author +melm 811 author +melm 830 title + +melm 942$c Material-type +#melm 942$k Call-Number +melm 952$a Local-classification +melm 952$b Record-source +melm 952$d Host-item +melm 952$p Stock-number +melm 952$v Date-of-acquisition,Date-of-acquisition:d,Date-of-acquisition:s +melm 952 Local-classification diff --git a/zebraplugin/zebradb/biblios/tab/sort-string-utf.chr b/zebraplugin/zebradb/biblios/tab/sort-string-utf.chr new file mode 100644 index 0000000000..cd4095be30 --- /dev/null +++ b/zebraplugin/zebradb/biblios/tab/sort-string-utf.chr @@ -0,0 +1,48 @@ +# Generic character map. +# +# $Id$ + +# Define the basic value-set. *Beware* of changing this without re-indexing +# your databases. +lowercase {0-9}{a-y}üzæäøöå +uppercase {0-9}{A-Y}ÜZÆÄØÖÅ + +# Breaking characters + +space {\001-\040}!"#$%&'\()*+,-./:;<=>?@\[\\]^_`\{|}~ + +# Characters to be considered equivalent for searching purposes. + +# equivalent æä(ae) +# equivalent øö(oe) +# equivalent å(aa) +# equivalent uü + +# Supplemental mappings + +#map (ä) ä +#map (æ) æ +#map (ø) ø +#map (å) å +#map (ö) ö +#map (Ä) Ä +#map (&Aelig;) Æ +#map (Ø) Ø +#map (Å) Å +#map (Ö) Ö + +#map éÉ e +#map á a +#map ó o +#map í i + +#map (Aa) (AA) + +#map (aa) a +map (^The\s) @ +map (^the\s) @ +map (^a\s) @ +map (^A\s) @ +map (^An\s) @ +map (^an\s) @ + diff --git a/zebraplugin/zebradb/biblios/tab/sort-string-utf.chr.old b/zebraplugin/zebradb/biblios/tab/sort-string-utf.chr.old new file mode 100644 index 0000000000..ce294fd0de --- /dev/null +++ b/zebraplugin/zebradb/biblios/tab/sort-string-utf.chr.old @@ -0,0 +1,33 @@ +# Define the basic value-set. *Beware* of changing this without re-indexing +# your databases. +encoding utf-8 +lowercase {0-9}aâbcçdefgÄŸhıiîjklmnoöpqrsÅŸtuüvwxyz +uppercase {0-9}AÂBCÇDEFGÄžHIİÎJKLMNOÖPQRSÅžTUÜVWXYZ + +# Breaking characters + +space {\001-\040}!"#$%&\(),-/:;<=>?@\[\\]_`\{|}~ + +# Characters to be considered equivalent for searching purposes. + +equivalent uü +equivalent oö +equivalent sÅŸ +equivalent cç +equivalent iı +equivalent gÄŸ +equivalent GÄž +equivalent SÅž +equivalent CÇ +equivalent OÖ +equivalent UÜ +equivalent aâ +equivalent A + # Supplemental mappings + +map (^The\s) @ +map (^the\s) @ +map (^a\s) @ +map (^A\s) @ +map (^An\s) @ +map (^an\s) @ diff --git a/zebraplugin/zebradb/biblios/tab/word-phrase-utf.chr b/zebraplugin/zebradb/biblios/tab/word-phrase-utf.chr new file mode 100644 index 0000000000..a5fabf244a --- /dev/null +++ b/zebraplugin/zebradb/biblios/tab/word-phrase-utf.chr @@ -0,0 +1,41 @@ +# Generic character map. +# +# $Id$ + +# Define the basic value-set. *Beware* of changing this without re-indexing +# your databases. +lowercase {0-9}{a-y}üzæäøöå +uppercase {0-9}{A-Y}ÜZÆÄØÖÅ + +# Breaking characters + +space {\001-\040}!"#$%&'\()*+,-./:;<=>?@\[\\]^_`\{|}~ + +# Characters to be considered equivalent for searching purposes. + +# equivalent æä(ae) +# equivalent øö(oe) +# equivalent å(aa) +# equivalent uü + +# Supplemental mappings + +#map (ä) ä +#map (æ) æ +#map (ø) ø +#map (å) å +#map (ö) ö +#map (Ä) Ä +#map (&Aelig;) Æ +#map (Ø) Ø +#map (Å) Å +#map (Ö) Ö + +#map éÉ e +#map á a +#map ó o +#map í i + +#map (Aa) (AA) + +#map (aa) a