Analytic Record support

From Koha Wiki

Jump to: navigation, search
Koha > Technical > Development > RFCs > Koha components for RFCs > Aspects of multiple components RFCs > Record Formats RFCs > MARC Formats RFCs > MARC Bibliographic data support RFCs
Koha > Technical > Development > RFCs > Koha components for RFCs > Library System Modules RFCs > Catalogue RFCs > OPAC RFCs
Koha > Technical > Development > RFCs > Koha components for RFCs > Library System Modules RFCs > Cataloguing RFCs
Koha > Technical > Development > RFCs > Koha version targeted RFCs > Koha 3.4 RFCs


Adding Analytic Record support to Koha

Could this be combined with Holdings or summary records RFC and/or Requiring items RFC?

sponsor=Ms. Dept. of Archives& History, RapidRadio Solution (India) | developer=Savitra Sirohi, Zeno Tajoli | bug=5528 | repo=Analytical records


An analytic record for an item is a more detailed, monographic biblio for an item attached to a serial record .  This is often used for special issues of a journal that are released as books on their own (assigned an ISBN, as well as an ISSN/volume/issue).  It is important for researchers to be able to search for these items both as issues of the serial, and as monographs.  It is equally important for the library to not have duplicate item records for the item in question to have to keep synchronized.

Analytics are a special case of a more general “bibliographic relationship”.  This specification calls for a design that will allow for other relationships to be configured.  The assumptions going forward, however, will be based around analytics.

Defining Relationships

Relationships shall be defined in a new section of Koha Administration.  The configuration menu will allow users to specify the relationship’s code, display name, OPAC display name, MARC configuration, and whether items pass through.

Default relationships for MARC21 standards shall be included with Koha, and listed as “optional” data during the Koha installation process.

Connecting Records

A single item record shall exist for the item, but it should appear on both the monographic and the serial details page as a holding. Patrons should be able to place holds on the item from either biblio record.  Title-level holds from the serial biblio should defer to the monographic biblio to ensure that the correct volume/issue is held.

The item record shall be attached to the monographic biblio.  The monographic biblio, then, shall be linked to the serial biblio in a new database table that outlines relationships between biblios.  This table shall include an indicator as to whether items ‘pass through’ from one biblio to the other, and in which direction (or both).  This ensures that there is only one copy of the item in the database, and allows for arbitrarily many relationships between the analytic biblio and others.  There shall be an optional link to the monographic biblio from the item entry in the serial biblio.

MARC representation of relationships

In MARC21, a relationship between a serial biblio and an analytic monograph shall appear as a 77X field in the serial biblio.  The monographic biblio shall have the option to contain a 490/830 combination.  The relationships for MARC21 shall be governed by the standards laid out at:

MARC 773 shall be the default field for analytic record relationships.

Establishing Record Relationships

Analytic connections shall be establishable whether the item is initially connected to the serial biblio or the monographic biblio.  If the item is attached to serial biblio, there shall be an ‘analyze this item’ option, which shall provide a search for the monographic biblio.  Once found, it shall move the item to be attached to monographic biblio, update the relationship table, and insert MARC 77x and 490/830 as appropriate.

If the item is attached to the monographic biblio, there shall be an option to ‘relate this title to another’.  This option shall connect the monographic biblio to the serial biblio, by way of both the relationships table and MARC values, just as in the above case.  The item shall continue to be attached to the monographic biblio.

Deleting the associated MARC field from a biblio will remove the relationship from that biblio to the other biblio; this will work in either direction (monographic to serial and vice versa).

Display of Relationships

Relationships between biblios shall be displayed in both the OPAC and the staff client, in both normal and XSLT display modes.  The label for the display shall be the type of relationship as defined in the relationship configurations section, followed by a link to the detailed record for the biblio in Koha.  The link text shall be the title (MARC 245) of the target record.

If the relationship allows for item pass-through, the items from the monographic biblio will appear in the items table along with any native items for the serial biblio.  In the OPAC, there will be no visual distinction between native and pass-through items; in the staff client, a slightly different colour will be used to highlight pass-through items.

When searching by item-specific information like barcode or call number, the only the bibliographic record to which the item is attached (the monographic biblio) shall be returned.  The serial biblio can then be reached from a link.

MARC21 and Unimarc about relationships

MARC21 uses much more indicators on 780 and 785. Unimarc in fact don't use indicator but much more numbers.

  1. 410 --> 760
  2. 411 --> 762
  3. 412 --> ?
  4. 413 --> ?
  5. 421 --> 770
  6. 422 --> 772
  7. 423 --> 777
  8. 424 --> ?
  9. 425 --> ?
  10. 430 --> 780 and 2° ind = 0
  11. 431 --> 780 and 2° ind = 1
  12. 432 --> 780 and 2° ind = 2
  13. 433 --> 780 and 2° ind = 3
  14. 434 --> 780 and 2° ind = 5
  15. 435 --> 780 and 2° ind = 6
  16. 436 --> 780 and 2° ind = 4
  17. 437 --> 780 and 2° ind = 7
  18. 440 --> 785 and 2° ind = 0
  19. 441 --> 785 and 2° ind = 1
  20. 442 --> 785 and 2° ind = 2
  21. 443 --> 785 and 2° ind = 3
  22. 444 --> 785 and 2° ind = 4
  23. 445 --> 785 and 2° ind = 5
  24. 446 --> 785 and 2° ind = 6
  25. 447 --> 785 and 2° ind = 7
  26. 448 --> 785 and 2° ind = 8
  27. 451 --> 775
  28. 452 --> 776
  29. 453 --> 767
  30. 454 --> 765
  31. 455 --> 787 and 2° ind = 8
  32. 456 --> 787 and 2° ind = 8
  33. 461 --> 774
  34. 462 --> 774
  35. 463 --> 773
  36. 464 --> 774
  37. 470 --> 787 and 2° ind = 8
  38. 471 --> 787 and 2° ind = 8
  39. 482 --> 787 and 2° ind = 8
  40. 488 --> 787 and 2° ind = 8

In Unimarc you can choose to use standard fields/subfields or also the embedded fields. For Koha is too difficult to use also embedded fields. Better to use only standard fields/subfields.

  • Embedded field example: 410 0$1001BC7778$12001 $aVita e Pensiero
  • Standard field example: 410 0$0BC7778$tVita e pensiero

The two example have the exact meaning.

The subfield $w in MARC21 in Unimarc is $0

The develop of feature


  • C4::Biblio::GetMarcHosts
  • C4::Biblio::PrepHostMarcField
  • C4::Items::GetHostItemsInfo
  • C4::Items::get_hostitemnumbers_of

New CGI and new templates

  • cataloguing/
  • intranet/[...]/modules/cataloguing/linkitem.tmpl

Modified API

  • C4::Search::searchResults
  • C4::Reserves::CanBookBeReserved

Modified CGI

  • catalogue/
  • catalogue/
  • cataloguing/
  • cataloguing/
  • reserve/
  • reserve/
  • opac/
  • opac/

Modified templates

  • intranet/[...]/modules/catalogue/detail.tmpl
  • intranet/[...]/includes/
  • intranet/[...]/cataloguing/additem.tmpl
  • intranet/[...]/modules/reserve/request.tmpl
  • opac-tmpl/[...]/modules/opac-detail.tmpl
  • opac-tmpl/[...]/modules/opac-reserve.tmpl
  • opac-tmpl/[...]/includes/

Design as it stands now

Establishing relationships

Analytical records are connected to items belonging to parent or host bibliographic records. This can be accomplished by:

  • From an analytical bibliographic record linking to an host item by providing the item barcode as input
  • From a host item by using option "analyze", this creates a new empty bibliographic record with field 773 (MARC21) populated
  • Running a new CLI script that establishes a relationship between the analytical record and the host item identified by the barcode in the analytical record's 773$o (MARC21)

Connecting Records

The relationships are maintained in the MARC records, we have not used database tables at all.

MARC Representation

In MARC 21 we have used:

  • 773$9 to store the Koha item number of the host item
  • 773$0 to store the Koha biblio number of the host bibliographic record

The above fields are used to display the relationships in various screens in the OPAC and the staff interface.

Additionally, when populating field 773 with host item;s details, we have used following MARC 21 mapping:

  • 'a' <= 100/110/111 $a (author main)
  • 'b' <= 250$a (edition)
  • 'd' <= 260$a, 260$b, 260$c (place, publisher, year)
  • 'o' <= barcode
  • t' <= 245$a (title)
  • w' <= (003)001 --> if no 001 is available, we can populate biblionumber
  • 'x' <= 022$a (issn)
  • z' <= 020$a (isbn)

Treatment of Holds

A key requirement was to allow holds to be placed on host items from the analytical record. We have accomplished this by allowing holds on specific copies only. Biblio level holds are not allowed. This ensures that holds are placed on specific items that are relevant to the analytical record.

Deleting host items with linked analytical records

As we have not used database tables to maintain relationships, we had to use search to find out if any linked analytical records are present. If 1 or more analytical are present, we do not allow deletion of items. This is similar to what we see when we try to delete authority records.

Importing analytical records

Analytical records can be imported using bulkmarcimport or the GUI tools. The new CLI script can be executed after the import to establish relationships with host items. The script will establish relationships using the host item's barcode, the barcode must be present in 773$o of the analytical record.

What if there are two or more copies of the host item?

The current design will require that there be two host (773) fields, one for each copy. 

What if there is no barcode available for the host item?

It is still possible to establish a relationship, by populating 773$9 with the host's item number. However the CLI script uses barcode in 773$o to establish relationships so it won't work where barcodes are unavailable. Also from an analytical record, it is possible to establish a relationship to a host item by providing the barcode as input, this option will not be available as well.

Personal tools