Analytic Record support

== 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 
 
=== Background ===
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: http://www.loc.gov/marc/bibliographic/bd76x78x.html 
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 fields: 76x-78x fields 
*Unimarc fields: 4xx fields, pages 57 - 59
MARC21 uses much more indicators on 780 and 785. Unimarc in fact don't use indicator but much more numbers. 
#410 --> 760 
#411 --> 762 
#412 --> ? 
#413 --> ? 
#421 --> 770 
#422 --> 772 
#423 --> 777 
#424 --> ? 
#425 --> ? 
#430 --> 780 and 2° ind = 0 
#431 --> 780 and 2° ind = 1 
#432 --> 780 and 2° ind = 2 
#433 --> 780 and 2° ind = 3 
#434 --> 780 and 2° ind = 5 
#435 --> 780 and 2° ind = 6 
#436 --> 780 and 2° ind = 4 
#437 --> 780 and 2° ind = 7 
#440 --> 785 and 2° ind = 0 
#441 --> 785 and 2° ind = 1 
#442 --> 785 and 2° ind = 2 
#443 --> 785 and 2° ind = 3 
#444 --> 785 and 2° ind = 4 
#445 --> 785 and 2° ind = 5 
#446 --> 785 and 2° ind = 6 
#447 --> 785 and 2° ind = 7 
#448 --> 785 and 2° ind = 8 
#451 --> 775 
#452 --> 776 
#453 --> 767 
#454 --> 765 
#455 --> 787 and 2° ind = 8 
#456 --> 787 and 2° ind = 8 
#461 --> 774 
#462 --> 774 
#463 --> 773 
#464 --> 774 
#470 --> 787 and 2° ind = 8 
#471 --> 787 and 2° ind = 8 
#482 --> 787 and 2° ind = 8 
#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 ===
==== New API ====
*C4::Biblio::GetMarcHosts 
*C4::Biblio::PrepHostMarcField 
*C4::Items::GetHostItemsInfo 
*C4::Items::get_hostitemnumbers_of
 
==== New CGI and new templates ====
*cataloguing/linkitem.pl 
*intranet/[...]/modules/cataloguing/linkitem.tmpl
==== Modified API ====
*C4::Search::searchResults 
*C4::Reserves::CanBookBeReserved
==== Modified CGI ====
*catalogue/detail.pl 
*catalogue/moredetail.pl 
*cataloguing/addbiblio.pl 
*cataloguing/additem.pl 
*reserve/placerequest.pl 
*reserve/request.pl 
*opac/opac-detail.pl 
*opac/opac-reserve.pl
 
==== Modified templates ====
*intranet/[...]/modules/catalogue/detail.tmpl 
*intranet/[...]/includes/cat-toolbar.inc 
*intranet/[...]/cataloguing/additem.tmpl 
*intranet/[...]/modules/reserve/request.tmpl 
*opac-tmpl/[...]/modules/opac-detail.tmpl 
*opac-tmpl/[...]/modules/opac-reserve.tmpl 
*opac-tmpl/[...]/includes/item-status.inc
 
== 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. 
Category:MARC_Bibliographic_data_support_RFCs Category:OPAC_RFCs Category:Cataloguing_RFCs Category:Koha_3.4_RFCs