[Koha-devel] New KOHA3 API -design issue

Tümer Garip tgarip at neu.edu.tr
Fri Jul 14 15:35:55 CEST 2006


Hi all,
If Joshua approves you will soon be seeing a big commit to head that
changes the API of KOHA 3 very soon.
Here is what I have done so that we can share comments and improvements
on this.

Major changes:
1-Bibliographic, Holdings and Authority records are all separate MARC
records.
2-All searches rely on ZEBRA indexing and searching (Z3950 compliant)
3-Non MARC data handling is dropped. Non-marc like display is kept
4-All data is UTF-8. No other encoding supported as this support all
languages
5-Change affects all data handling so for a short time breaks all
modules (circulation, serials,acquistions and the lot)
6-Templates not affected

More detail:
Database design:
1-biblioitems, marc_words,stopwords, marc_subfield_table,
autth_subield_table, additionalauthors, subjects,categories, marc_blob
tables completely dropped
2- biblio table now has: biblionumber,marc,itemtype,framework
3-items table now has : itemnumber,biblionumber,barcode,marc
4- auth_header table now has: authid,marc
5- 1 new frameworks table added similar to marc frameworks for holdings
marc
6- A new koha_attr table added. This one is for creating virtual fields
which we do not have any more. Also helps matching your own MARC
indexing rules to KOHA and ZEBRA. (More on this later)

Design issues;
1- itemtype definition still kept at bibliographic level. Can be very
easily converted to item level. i.e one bibliographic record with
different itemtypes (book,cd,dvd etc).Open for discussion
2- All items (holdings) are single marc records, instead of all items in
one marc record for the same bibliographic record. The main idea behind
this is flexibility and speed. One full record for an item gives lots of
fields to put all that information that you wanted to keep but did not
have extra subfields left. All data including circulation data is kept
within the marc records, this approach makes circulation updates faster
as we do not have to reindex unchanged data related to other items again
(zebra technicalities!).
3- All MARC framework designs have OPAC:show-hide Intranet:show-hide
Editor:show-show collapsed-hide as dropdown selections so not to wory
about what we  put in these MARC fields. All handled correctly
4- Circulation speed is improved. One marc update instead of 6 sepatrate
database update calls we used to have.


Currently working modules:

-MARC editor works 
- Item screen although looks the same now has multiple fields and works
- authories adding editing works but needs to be improved to
bibliographic editor design
-Circulation works but being updated for faster handling
-Serials and acquisitions needs work

The new koha_attr table:
We used to match our marc frameworks to table field names for both being
multi-marc compliant and for template design issues. These field names
now do not exist. So now we create virtula ones by a user editable
screen. Although it comes filled with all the previous field names (and
many more extras) to keep all koha modules and templates working you can
add as many as you want when the need arise. No need to change database
structures.

But a table just for this feature was not needed, we could have had
those names as authorised values so i added another functionality to
this table. It matches your KOHA field names to ZEBRA indexing. This way
the majority of koha code stays intact and field names joing our records
like subcrisptionid itemnumber barcode etc can function as previous and
removes the strain on programmers to either programme with PQF,CQL or
CCL. A routine supplied converts everything to zebra language. This
approach also release the strain on developers on trying to match what
zebra is indexing and what koha thinks or should be indexed. Specially
at this development stage until a KOHA minimum indexing standarts is
defined this gives both the programmer and the library freedom of
movement.
A library may also decide to use completely inhouse designed indexing
attributes and not comply with standarts like Bib-1 or Gils. All you
have to do is fill you koha attr tables in sysadmin and tell koha what
barcode is and what title is.Koha will continue to function. In simpler
terms it does what frameworks does but compliments that table and bring
ZEBRA in.

I will be writing more on this issue after the commits but in the mean
time expect to have your comments on all the issues regarding this
upgrade.

Cheers

Tumer Garip
NEU Grand Library







More information about the Koha-devel mailing list