Skip to content

Commit 64d01be

Browse files
committed
Refine splitting logic because of issues revealed when testing bf2marc as a result of migration 'helpfulnes.'
1 parent d850222 commit 64d01be

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

xsl/ConvSpec-Preprocess0-Splitting.xsl

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
<marc:groups>
5555
<xsl:variable name="the300s">
5656
<xsl:apply-templates select="marc:datafield[@tag='300']" mode="groupify">
57+
<xsl:with-param name="pLeader06" select="$leader06" />
5758
<xsl:with-param name="pcountOrig300" select="$countOrig300" />
5859
</xsl:apply-templates>
5960
</xsl:variable>
@@ -393,6 +394,16 @@
393394
</xsl:call-template>
394395
</marc:subfield>
395396
</marc:datafield>
397+
<marc:datafield tag="337" ind1=" " ind2=" ">
398+
<marc:subfield code="a">computer</marc:subfield>
399+
<marc:subfield code="b">c</marc:subfield>
400+
<marc:subfield code="2">rdamedia</marc:subfield>
401+
</marc:datafield>
402+
<marc:datafield tag="338" ind1=" " ind2=" ">
403+
<marc:subfield code="a">online resource</marc:subfield>
404+
<marc:subfield code="b">cr</marc:subfield>
405+
<marc:subfield code="2">rdacarrier</marc:subfield>
406+
</marc:datafield>
396407
<xsl:apply-templates select="." />
397408
<marc:datafield tag="758" ind1=" " ind2=" ">
398409
<marc:subfield code="4">http://id.loc.gov/ontologies/bibframe/instanceOf</marc:subfield>
@@ -437,6 +448,7 @@
437448
</xsl:template>
438449

439450
<xsl:template match="marc:datafield[@tag='300']" mode="groupify">
451+
<xsl:param name="pLeader06" />
440452
<xsl:param name="pcountOrig300" />
441453
<marc:datafield>
442454
<xsl:attribute name="tag"><xsl:value-of select="@tag"/></xsl:attribute>
@@ -453,6 +465,7 @@
453465
</xsl:when>
454466
<xsl:otherwise>
455467
<xsl:call-template name="addSF3">
468+
<xsl:with-param name="pLeader06" select="$pLeader06" />
456469
<xsl:with-param name="theA" select="marc:subfield[@code='a'][1]" />
457470
</xsl:call-template>
458471
</xsl:otherwise>
@@ -536,24 +549,40 @@
536549

537550

538551
<xsl:template name="addSF3">
552+
<xsl:param name="pLeader06" />
539553
<xsl:param name="theA" />
540554
<xsl:choose>
541555
<xsl:when test="contains($theA, 'audio disc')">
542556
<marc:subfield code='3'>audio disc</marc:subfield>
543557
<marc:subfield code='3'>CD</marc:subfield>
558+
<marc:subfield code='3'>spoken word</marc:subfield>
559+
<marc:subfield code='3'>audio</marc:subfield>
544560
</xsl:when>
545561
<xsl:when test="contains($theA, 'sound disc')">
546562
<marc:subfield code='3'>audio disc</marc:subfield>
547563
<marc:subfield code='3'>CD</marc:subfield>
564+
<marc:subfield code='3'>spoken word</marc:subfield>
565+
<marc:subfield code='3'>audio</marc:subfield>
548566
</xsl:when>
549567
<xsl:when test="contains($theA, 'audiocassette')">
550568
<marc:subfield code='3'>audiocassette</marc:subfield>
569+
<marc:subfield code='3'>spoken word</marc:subfield>
570+
<marc:subfield code='3'>audio</marc:subfield>
551571
</xsl:when>
552572
<xsl:when test="contains($theA, 'audio file')">
553573
<marc:subfield code='3'>audio file</marc:subfield>
574+
<marc:subfield code='3'>audio</marc:subfield>
575+
<marc:subfield code='3'>spoken word</marc:subfield>
576+
</xsl:when>
577+
<xsl:when test="contains($theA, 'sound file')">
578+
<marc:subfield code='3'>sound file</marc:subfield>
579+
<marc:subfield code='3'>spoken word</marc:subfield>
580+
<marc:subfield code='3'>audio</marc:subfield>
554581
</xsl:when>
555582
<xsl:when test="contains($theA, 'video file')">
556583
<marc:subfield code='3'>video file</marc:subfield>
584+
<marc:subfield code='3'>video</marc:subfield>
585+
<marc:subfield code='3'>two-dimensional moving image</marc:subfield>
557586
</xsl:when>
558587
<xsl:when test="contains($theA, 'videodisc')">
559588
<marc:subfield code='3'>videodisc</marc:subfield>
@@ -563,17 +592,27 @@
563592
<marc:subfield code='3'>moving image</marc:subfield>
564593
<marc:subfield code='3'>video</marc:subfield>
565594
<marc:subfield code='3'>two-dimensional moving image</marc:subfield>
595+
<marc:subfield code='3'>laser optical</marc:subfield>
566596
</xsl:when>
567597
<xsl:when test="contains($theA, 'DVD video')">
568598
<marc:subfield code='3'>videodisc</marc:subfield>
569599
<marc:subfield code='3'>DVD</marc:subfield>
570600
<marc:subfield code='3'>moving image</marc:subfield>
571601
<marc:subfield code='3'>two-dimensional moving image</marc:subfield>
572602
<marc:subfield code='3'>video</marc:subfield>
603+
<marc:subfield code='3'>laser optical</marc:subfield>
604+
</xsl:when>
605+
<xsl:when test="$pLeader06 = 'g' and contains($theA, 'reel')">
606+
<marc:subfield code='3'>film reel</marc:subfield>
607+
<marc:subfield code='3'>projected</marc:subfield>
608+
<marc:subfield code='3'>two-dimensional moving image</marc:subfield>
573609
</xsl:when>
574610
<xsl:when test="contains($theA, 'book')">
575611
<marc:subfield code='3'>book</marc:subfield>
576612
</xsl:when>
613+
<xsl:when test="contains($theA, 'manuscript')">
614+
<marc:subfield code='3'>manuscript</marc:subfield>
615+
</xsl:when>
577616
<xsl:when test="contains($theA, 'score')">
578617
<marc:subfield code='3'>score</marc:subfield>
579618
</xsl:when>

0 commit comments

Comments
 (0)