A question: How does <displayForm> fit into this? In the
<modsCollection> I've been compiling, each person or organization has a
record, which each work references, and the name as it appears in
<displayForm>, as in the fictional example:
<mods>
<titleInfo>
<title>Names are a pain in the butt</title>
</titleInfo>
<name xlink:href="#name.Robert.Smith">
<role><roleTerm type="code">aut</roleTerm></role>
<displayForm>Bob Smith</displayForm>
</name>
</mods>
<!-- Somewhere else in the file: -->
<mods ID="name.Robert.Smith">
<name type="personal">
<namePart type="family">Smith</namePart>
<namePart type="given">Robert</namePart>
</name>
<note type="biographical">...</note>
<!-- and so forth -->
</mods>
The MODS record with ID="name.Robert.Smith" would have the full <name>
data and any biographical notes.
Apparently a transformation would map the <name> element of the
#name.Robert.Smith record into 100$a, and put Bob Smith in 245$c. Is
this wrong, then; should my MODS database be restructured so Bob Smith
goes in <namePart> instead of <displayForm>? (A simple enough task with
XSLT, but I wanted a librarian's opinion.)
>>> [log in to unmask] 2003-12-20 12:55:49 >>>
You'll find it at:
http://www.loc.gov/marc/bibliographic/ecbdmain.html
There are plenty of examples that cover all kinds of common and
obscure
cases.
The one thing that might need clarification is the $q, as in:
100 1#$aGresham, G. A.$q(Geoffrey Austin)
The $q is part of the library cataloging rules and expands from the
way
an author's name appears on a title page to the full name. I don't
think
that any appliations other than library catalogs will carry the
information that is in the $q so everyone else can probably ignore it.
kc
On Sat, 2003-12-20 at 08:39, Bruce D'Arcus wrote:
> Since I'm big on parsing out data where possible, and MARC/MARCXML
does
> not parses names, I came up with the following XSLT 2 stylesheet to
do
> this. Currently it will only handle a name of the form "Family,
> Given." Can someone give some more info on how coding of names is
> handled in MARC? For example, what about terms of address, things
like
> Jr, II, etc.?
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:strip-space elements="*"/>
> <xsl:output method="xml" indent="yes"/>
>
> <xsl:template match="name">
> <xsl:choose>
> <xsl:when test="@type='personal'">
> <name type="personal">
> <xsl:apply-templates/>
> </name>
> </xsl:when>
> <xsl:when test="@type='corporate'">
> <name type="corporate">
> <xsl:apply-templates/>
> </name>
> </xsl:when>
> <xsl:when test="@type='conference'">
> <name type="conference">
> <xsl:apply-templates/>
> </name>
> </xsl:when>
> <xsl:otherwise>
> <name>
> <xsl:apply-templates/>
> </name>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:template>
>
> <xsl:template match="namePart">
> <xsl:variable name="elValue" select="."/>
>
> <xsl:analyze-string select="$elValue"
regex="\s*(.*)\s*,\s*(.*)\s*">
>
> <xsl:matching-substring>
> <namePart type="given"><xsl:value-of
> select="regex-group(2)"/></namePart>
> <namePart type="family"><xsl:value-of
> select="regex-group(1)"/></namePart>
> </xsl:matching-substring>
>
> <xsl:non-matching-substring>
> <namePart>
> <xsl:value-of select="$elValue"/>
> </namePart>
> </xsl:non-matching-substring>
>
> </xsl:analyze-string>
>
> </xsl:template>
> </xsl:stylesheet>
--
-------------------------------------
Karen Coyle
Digital Library Specialist
http://www.kcoyle.net
Ph: 510-540-7596 Fax: 510-848-3913
--------------------------------------
|