Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

351 repeatability issues #239

Open
kirkhess opened this issue Mar 4, 2024 · 0 comments
Open

351 repeatability issues #239

kirkhess opened this issue Mar 4, 2024 · 0 comments

Comments

@kirkhess
Copy link
Contributor

kirkhess commented Mar 4, 2024

<xsl:template match="marc:datafield[@tag='351' or (@tag='880' and substring(marc:subfield[@code='6'],1,3)='351')]" mode="work">
<xsl:param name="serialization" select="'rdfxml'"/>
<xsl:variable name="vXmlLang"><xsl:apply-templates select="." mode="xmllang"/></xsl:variable>
<xsl:choose>
<xsl:when test="$serialization = 'rdfxml'">
<bf:collectionArrangement>
<bf:CollectionArrangement>
<xsl:apply-templates select="marc:subfield[@code='3']" mode="subfield3">
<xsl:with-param name="serialization" select="$serialization"/>
</xsl:apply-templates>
<xsl:for-each select="marc:subfield[@code='c']">
<bf:hierarchicalLevel>
<xsl:if test="$vXmlLang != ''">
<xsl:attribute name="xml:lang"><xsl:value-of select="$vXmlLang"/></xsl:attribute>
</xsl:if>
<xsl:call-template name="tChopPunct">
<xsl:with-param name="pString"><xsl:value-of select="."/></xsl:with-param>
</xsl:call-template>
</bf:hierarchicalLevel>
</xsl:for-each>
<xsl:for-each select="marc:subfield[@code='a']">
<bf:collectionOrganization>
<xsl:if test="$vXmlLang != ''">
<xsl:attribute name="xml:lang"><xsl:value-of select="$vXmlLang"/></xsl:attribute>
</xsl:if>
<xsl:call-template name="tChopPunct">
<xsl:with-param name="pString"><xsl:value-of select="."/></xsl:with-param>
</xsl:call-template>
</bf:collectionOrganization>
</xsl:for-each>
<xsl:for-each select="marc:subfield[@code='b']">
<bf:pattern>
<xsl:if test="$vXmlLang != ''">
<xsl:attribute name="xml:lang"><xsl:value-of select="$vXmlLang"/></xsl:attribute>
</xsl:if>
<xsl:call-template name="tChopPunct">
<xsl:with-param name="pString"><xsl:value-of select="."/></xsl:with-param>
</xsl:call-template>
</bf:pattern>
</xsl:for-each>
</bf:CollectionArrangement>
</bf:collectionArrangement>
</xsl:when>
</xsl:choose>
</xsl:template>

https://www.oclc.org/bibformats/en/3xx/351.html

Subfield $c is not repeatable so you don't need the code to repeat it in the xslt.

Subfield $a and $b are grouped together. They way it does it now is you have a CollectionArrangement with $c, all the $a and all the $b. When it goes back to MARC it is going to group them the same way, all the a together and all the b together.

Exmaple ocn 10227986:
<datafield tag="351" ind1=" " ind2=" "> <subfield code="a">Organized in five series:</subfield> <subfield code="c">Series I. Minutes and correspondence, 1936-1942,</subfield> <subfield code="b">alphabetical and chronological arrangement;</subfield> <subfield code="a">Series II. Correspondence re protection of the corporate name of the Presbyterian Church in the U.S.A., 1936-1940,</subfield> <subfield code="b">chronological arrangement;</subfield> <subfield code="a">Series III. Correspondence with other judicatories, 1936-1942,</subfield> <subfield code="b">arranged alphabetically by correspondent within category (synods, presbyteries, local churches);</subfield> <subfield code="a">Series IV. Correspondence, Auburn Theological Seminary,</subfield> <subfield code="b">arranged chronologically;</subfield> <subfield code="a">Series V. Miscellaneous.</subfield> </datafield>

m2bf version:
<bf:collectionArrangement> <bf:CollectionArrangement rdf:nodeID="Na6015133f27e497d9884eb7ef23dbf61"> <bf:hierarchicalLevel>Series I. Minutes and correspondence, 1936-1942</bf:hierarchicalLevel> <bf:collectionOrganization>Organized in five series</bf:collectionOrganization> <bf:collectionOrganization>Series II. Correspondence re protection of the corporate name of the Presbyterian Church in the U.S.A., 1936-1940</bf:collectionOrganization> <bf:collectionOrganization>Series III. Correspondence with other judicatories, 1936-1942</bf:collectionOrganization> <bf:collectionOrganization>Series IV. Correspondence, Auburn Theological Seminary</bf:collectionOrganization> <bf:collectionOrganization>Series V. Miscellaneous</bf:collectionOrganization> <bf:pattern>alphabetical and chronological arrangement</bf:pattern> <bf:pattern>chronological arrangement</bf:pattern> <bf:pattern>arranged alphabetically by correspondent within category (synods, presbyteries, local churches)</bf:pattern> <bf:pattern>arranged chronologically</bf:pattern> </bf:CollectionArrangement> </bf:collectionArrangement>

bf2m version:
<marc:datafield tag="351" ind1=" " ind2=" "> <marc:subfield code="c">Series I. Minutes and correspondence, 1936-1942</marc:subfield> <marc:subfield code="a">Series III. Correspondence with other judicatories, 1936-1942</marc:subfield> <marc:subfield code="a">Organized in five series</marc:subfield> <marc:subfield code="a">Series IV. Correspondence, Auburn Theological Seminary</marc:subfield> <marc:subfield code="a">Series V. Miscellaneous</marc:subfield> <marc:subfield code="a">Series II. Correspondence re protection of the corporate name of the Presbyterian Church in the U.S.A., 1936-1940</marc:subfield> <marc:subfield code="b">arranged alphabetically by correspondent within category (synods, presbyteries, local churches)</marc:subfield> <marc:subfield code="b">alphabetical and chronological arrangement</marc:subfield> <marc:subfield code="b">chronological arrangement</marc:subfield> <marc:subfield code="b">arranged chronologically</marc:subfield> </marc:datafield>

Finally, you could fix this specific field, but there are a bunch of 3xx and 5xx that have this pattern where the subfields repeat.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant