Digital Collections

Metadata Mapping

This metadata mapping maps Islandora MODS to Primo VE DublinCore Expanded based on the Mapping to the Display, Facets, and Search Sections in the Primo VE Record and the Configuring Import Profiles for Primo VE documentation.

MODS

Primo VE Expanded DublinCore

Display Field

Facets Field

Search Field

Notes

mods:titleInfo/mods:title OR mods:titleInfo[@supplied=”yes”]/title

dc:title

Title

Title

mods:identifier[@type=”local”]

dc:identifier

General

mods:identifier[@type=”issn”]

dc.identifier(dcterms:ISSN)

ISSN

mods:identifier[@type=”isbn”]

dc.identifier(dcterms:ISBN)

ISBN

mods:abstract

dc:description

Description

mods:tableOfContents

dcterms.tableOfContents

Table of Contents

mods:originInfo/mods:dateIssued AND mods:originInfo/mods:dateCreated AND mods:originInfo/mods:dateOther

dc:date

Creation Date

Creation Date

Creation Date

mods:name/mods:namePart

dc:creator

Creator

Creator & Contributors

Creator & Contributors

Presently all names regardless of roleTerm get mapped to dc:creator. A Salesforce issue has been opened to see if we can map particular roleTerms to dc:contributor and others to dc:creator.

mods:originInfo/mods:publisher

dcterms:publisher

Publisher

General

mods:physicalDescription/mods:form

dcterms:format

Physical Description and Format

Format

mods:physicalDescription/mods:extent

dcterms:extent

Physical Description and Format

Format

mods:subject/mods:topic

dc:subject

Subjects

Topic

Subjects

mods:subject/mods:geographic and mods:subject/mods:temporal

dcterms:coverage

General

mods:language/mods:languageTerm

dcterms:language

Language

Language

Language

mods:accessCondition

dcterms:accessRights

Rights

mods:typeOfResource[@collection=”yes”]

discovery:resourceType

mods:typeOfResource[not(@collection=”yes”)]

discovery:resourceType

Discovery Import Profile

Normalization Rules

Sample XML Record
<?xml version="1.0" encoding="UTF-8"?>
<record>
    <header>
        <identifier>vanvactor_6981</identifier>
        <datestamp>2020-03-03T04:01:39Z</datestamp>
        <setSpec>vanvactor</setSpec>
    </header>
    <metadata>
        <mods xmlns="http://www.loc.gov/mods/v3" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-5.xsd">
            <identifier type="local">0012_003979_000345</identifier>
            <identifier type="pid">vanvactor:6981</identifier>
            <titleInfo>
                <title>Quartet no. 2</title>
            </titleInfo>
            <abstract>Pencil score and sketches with pen markings.</abstract>
            <tableOfContents>Allegro alla marcia - Lento - Allegro moderato</tableOfContents>
            <note type="instrumentation">For 2 violins, viola, and cello.</note>
            <genre authority="lcmpt" valueURI="http://id.loc.gov/authorities/performanceMediums/mp2013015782">violin</genre>
            <genre authority="lcmpt" valueURI="http://id.loc.gov/authorities/performanceMediums/mp2013015772">viola</genre>
            <genre authority="lcmpt" valueURI="http://id.loc.gov/authorities/performanceMediums/mp2013015120">cello</genre>
            <originInfo>
                <dateCreated>1950</dateCreated>
                <dateCreated encoding="edtf" keyDate="yes">1950</dateCreated>
            </originInfo>
            <physicalDescription>
                <form authority="aat" valueURI="http://vocab.getty.edu/aat/300026427">scores (documents for music)</form>
                <extent>15 pages</extent>
                <internetMediaType>pdf</internetMediaType>
            </physicalDescription>
            <name valueURI="http://id.loc.gov/authorities/names/n82001311">
                <namePart>Van Vactor, David, 1906-1994</namePart>
                <role>
                    <roleTerm authority="marcrelator" valueURI="http://id.loc.gov/vocabulary/relators/cmp">Composer</roleTerm>
                </role>
            </name>
            <subject authority="lcsh" valueURI="http://id.loc.gov/authorities/subjects/sh85129035">
                <topic>String quartets</topic>
            </subject>
            <subject authority="lcsh" valueURI="http://id.loc.gov/authorities/subjects/sh85088803">
                <topic>Music--Manuscripts</topic>
            </subject>
            <genre authority="lcgft" valueURI="http://id.loc.gov/authorities/genreForms/gf2014026704">Chamber music</genre>
            <genre authority="lcgft" valueURI="http://id.loc.gov/authorities/subjects/sh99001779">Scores</genre>
            <relatedItem type="otherVersion">
                <titleInfo>
                    <title>String quartet no. 2</title>
                </titleInfo>
                <identifier type="catalog">M101</identifier>
            </relatedItem>
            <typeOfResource>notated music</typeOfResource>
            <relatedItem displayLabel="Project" type="host">
                <titleInfo>
                    <title>David Van Vactor Music Collection</title>
                </titleInfo>
            </relatedItem>
            <relatedItem displayLabel="Collection" type="host">
                <titleInfo>
                    <title>David Van Vactor Papers</title>
                </titleInfo>
                <identifier>MS.1942</identifier>
                <location>
                    <url>https://n2t.net/ark:/87290/v8pz5703</url>
                </location>
            </relatedItem>
            <location>
                <physicalLocation valueURI="http://id.loc.gov/authorities/names/no2014027633">
                    University of Tennessee, Knoxville. Special Collections
                </physicalLocation>
                <url access="object in context" usage="primary display">
                    https://digital.lib.utk.edu/collections/islandora/object/vanvactor%3A6981
                </url>
                <url access="preview">
                    https://digital.lib.utk.edu/collections/islandora/object/vanvactor%3A6981/datastream/TN/view
                </url>
            </location>
            <recordInfo>
                <recordContentSource valueURI="http://id.loc.gov/authorities/names/n87808088">University of Tennessee, Knoxville. Libraries</recordContentSource>
            </recordInfo>
            <accessCondition type="use and reproduction" xlink:href="http://rightsstatements.org/vocab/InC/1.0/">In Copyright</accessCondition>
        </mods>
    </metadata>
</record>
Display identifier
rule "Display identifier"
            when
                    exist "//metadata//*[local-name()='identifier'][@type='local']"
            then
                    copy "//metadata//*[local-name()='identifier'][@type='local']" to "dc"."identifier"
    end
Copy ISSNs
    rule "Copy ISSNs"
            when
                    exist "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='identifier'][@type='issn']"
            then
                    copy "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='identifier'][@type='issn']" to "dc"."identifier"("dcterms:ISSN")
    end
Display ISBNs
    rule "Display ISBNs"
            when
                    exist "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='identifier'][@type='isbn']"
            then
                    copy "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='identifier'][@type='issn']" to "dc"."identifier"("dcterms:ISBN")
    end
Copy one supplied title if available
    rule "Copy one supplied title if available"
            when
                    exist "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='titleInfo'][@supplied]/*[local-name()='title']"
            then
                    copy "(/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='titleInfo'][@supplied]/*[local-name()='title'])[1]" to "dc"."title"
            end
Copy one transcribed title if no supplied title
    rule "Copy one transcribed title if no supplied title"
            when
                    not exist "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='titleInfo'][@supplied]/*[local-name()='title']"
            then
                    copy "(/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='titleInfo'][not(@supplied)]/*[local-name()='title'])[1]" to "dc"."title"
    end
Copy description
    rule "Copy description"
            when
                    exist "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='abstract']"
            then
                    copy "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='abstract']" to "dcterms." "abstract"
    end
Copy note if not DPN
    rule "Copy note if not DPN"
            when
                    exist "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='note'][not(@displayLabel='dpn')]"
            then
                    copy "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='note'][not(@displayLabel='dpn')]" to "dc." "description"
    end
Copy table of contents
    rule "Copy table of contents"
            when
                    exist "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='tableOfContents']"
            then
                    copy "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='tableOfContents']" to "dcterms." "tableOfContents"
    end
Copy creation date
    rule "Copy creation date"
            when
                    exist "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='originInfo']/*[local-name()='dateCreated'][not(@encoding)]"
            then
                    copy "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='originInfo']/*[local-name()='dateCreated'][not(@encoding)]" to "dc"."date"
    end
Copy publication date
    rule "Copy publication date"
            when
                    exist "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='originInfo']/*[local-name()='dateIssued'][not(@encoding)]"
            then
                    copy "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='originInfo']/*[local-name()='dateIssued'][not(@encoding)]" to "dc"."date"
    end
Copy miscellaneous date
    rule "Copy miscellaneous date"
            when
                    exist "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='originInfo']/*[local-name()='dateOther'][not(@encoding)]"
            then
                    copy "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='originInfo']/*[local-name()='dateOther'][not(@encoding)]" to "dc"."date"
    end
Copy publisher
    rule "Copy publisher"
            when
                    exist "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='originInfo']/*[local-name()='publisher']"
            then
                    copy "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='originInfo']/*[local-name()='publisher']" to "dcterms"."publisher"
    end
Copy extent
    rule "Copy extent"
            when
                    exist "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='physicalDescription']/*[local-name()='extent']"
            then
                    copy "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='physicalDescription']/*[local-name()='extent']" to "dcterms"."extent"
    end
Copy format
    rule "Copy format"
            when
                    exist "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='physicalDescription']/*[local-name()='form']"
            then
                    copy "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='physicalDescription']/*[local-name()='form']" to "dcterms"."format"
    end
Copy all topical subjects
    rule "Copy all topical subjects"
            when
                    exist "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='subject']/*[local-name()='topic']"
            then
                    copy "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='subject']/*[local-name()='topic']" to "dc"."subject"
    end
Copy all geographic subjects
    rule "Copy all geographic subjects"
            when
                    exist "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='subject']/*[local-name()='geographic']"
            then
                    copy "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='subject']/*[local-name()='geographic']" to "dcterms"."coverage"
    end
Copy Creators
    rule "Copy all names as creators"
            when
                    exist "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='name']/*[local-name()='namePart']"
            then
                    copy "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='name']/*[local-name()='namePart']" to "dc"."creator"
    end
Copy rights values
    rule "Copy rights values"
            when
                    exist "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='accessCondition']"
            then
                    copy "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='accessCondition']" to "dcterms"."accessRights"
    end
Set discovery resource type of Digital Collections Item
    rule "Set discovery resource type of Digital Collections Item"
    when
            not exist "//*[local-name()='typeOfResource'][@collection='yes']"
    then
            set "digital_items" in "discovery"."resourceType"
    end
Set discovery resource type of Digital Collection
    rule "Set discovery resource type of Digital Collection"
    when
            exist "/*[local-name()='record']/*[local-name()='metadata']/*[local-name()='mods']/*[local-name()='typeOfResource'][@collection='yes']"
    then
            set "digital_collection" in "discovery"."resourceType"
    end