Skip to end of banner
Go to start of banner

MARC Bib-to-Instance Default map changes to support Authority control feature

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

MODSOURMAN-924 - Getting issue details... STATUS

Updates to the default MARC Bib-to-Inventory Instance MAP:

These changes are required to support the Authority control feature

Steps:

  1. If no changes were made to default mapping rules then call PUT  /mapping-rules/marc-bib/restore
  2. If changes were made to default mapping rules then follow next steps:
    1. Send a GET request to /mapping-rules/marc-bib to retrieve the mapping rules
    2. Update rules for alternativeTitles. Under fields 130, and 240 add a new "target":

      {
        "target": "alternativeTitles.authorityId",
        "description": "Authority ID that controlling the alternative title",
        "subfield": [
          "9"
        ]
      }

      Result example: 

      "130": [
          {
            "entity": [
              {
                "target": "alternativeTitles.alternativeTitleTypeId",
                "description": "Alternative Title id",
                "subfield": [
                  "a",
                  "n",
                  "p",
                  "d",
                  "f",
                  "g",
                  "h",
                  "k",
                  "l",
                  "m",
                  "o",
                  "r",
                  "s",
                  "t"
                ],
                "applyRulesOnConcatenatedData": true,
                "rules": [
                  {
                    "conditions": [
                      {
                        "type": "set_alternative_title_type_id",
                        "parameter": {
                          "name": "Uniform title"
                        }
                      }
                    ]
                  }
                ]
              },
              {
                "target": "alternativeTitles.alternativeTitle",
                "description": "Alternative Title",
                "subfield": [
                  "a",
                  "n",
                  "p",
                  "d",
                  "f",
                  "g",
                  "h",
                  "k",
                  "l",
                  "m",
                  "o",
                  "r",
                  "s",
                  "t"
                ],
                "applyRulesOnConcatenatedData": true,
                "rules": [
                  {
                    "conditions": [
                      {
                        "type": "remove_ending_punc, trim"
                      }
                    ]
                  }
                ]
              },
              {
                "target": "alternativeTitles.authorityId",
                "description": "Authority ID that controlling the alternative title",
                "subfield": [
                  "9"
                ]
              }
            ]
          }
        ]
    3. Update rules for contributors. Under fields 100, 110, 111, 700, 710, and 711 add a new "target":

              {
                "target": "contributors.authorityId",
                "description": "Authority ID that controlling the contributor",
                "applyRulesOnConcatenatedData": true,
                "subfield": [
                  "9"
                ]
              }

      Result example: 

      "700": [
          {
            "entity": [
              {
                "target": "contributors.authorityId",
                "description": "Authority ID that controlling the contributor",
                "applyRulesOnConcatenatedData": true,
                "subfield": [
                  "9"
                ]
              },
              {
                "target": "contributors.contributorNameTypeId",
                "description": "Type for Personal Name",
                "applyRulesOnConcatenatedData": true,
                "subfield": [
                ],
                "rules": [
                  {
                    "conditions": [
                      {
                        "type": "set_contributor_name_type_id",
                        "parameter": {
                          "name": "Personal name"
                        }
                      }
                    ]
                  }
                ]
              },
              {
                "rules": [
                  {
                    "conditions": [
                      {
                        "type": "set_contributor_type_id_by_code_or_name",
                        "parameter": {
                          "contributorCodeSubfield": "4",
                          "contributorNameSubfield": "e"
                        }
                      }
                    ]
                  }
                ],
                "target": "contributors.contributorTypeId",
                "subfield": [
                  "4",
                  "e"
                ],
                "description": "Type of contributor",
                "alternativeMapping": {
                  "target": "contributors.contributorTypeText",
                  "subfield": [
                    "e"
                  ],
                  "ignoreSubsequentSubfields": true
                },
                "applyRulesOnConcatenatedData": true
              },
              {
                "target": "contributors.primary",
                "description": "Primary contributor",
                "applyRulesOnConcatenatedData": true,
                "subfield": [
                ],
                "rules": [
                  {
                    "conditions": [],
                    "value": "false"
                  }
                ]
              },
              {
                "target": "contributors.name",
                "description": "Personal Name",
                "subfield": [
                  "a",
                  "b",
                  "c",
                  "d",
                  "f",
                  "g",
                  "j",
                  "k",
                  "l",
                  "n",
                  "p",
                  "q",
                  "t",
                  "u"
                ],
                "applyRulesOnConcatenatedData": true,
                "rules": [
                  {
                    "conditions": [
                      {
                        "type": "trim_period, trim"
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
    4. Update rules for series. Under fields 800, 810, 811, 830 do:
      1. Surround it with "entity"
      2. Change target from series to series.value
      3. add a new target:

                {
                  "target": "series.authorityId",
                  "description": "Authority ID that controlling the series",
                  "subfield": [
                    "9"
                  ]
                }

        Result example: 

        "800": [
            {
              "entity": [
                {
                  "target": "series.value",
                  "description": "Series Statement",
                  "applyRulesOnConcatenatedData": true,
                  "subfield": [
                    "a",
                    "b",
                    "c",
                    "d",
                    "e",
                    "f",
                    "g",
                    "h",
                    "j",
                    "k",
                    "l",
                    "m",
                    "n",
                    "o",
                    "p",
                    "q",
                    "r",
                    "s",
                    "t",
                    "u",
                    "v",
                    "w",
                    "x",
                    "3",
                    "5"
                  ],
                  "rules": [
                    {
                      "conditions": [
                        {
                          "type": "remove_ending_punc, trim"
                        }
                      ]
                    }
                  ]
                },
                {
                  "target": "series.authorityId",
                  "description": "Authority ID that controlling the series",
                  "subfield": [
                    "9"
                  ]
                }
              ]
            }
          ]
    5. Update rules for subjects. Under fields 600, 610, 611, 630, 650, 651, 655 do:
      1. Surround it with "entity"
      2. Change target from subjects to subjects.value
      3. add a new target:

                {
                  "target": "subjects.authorityId",
                  "description": "Authority ID that controlling the subject",
                  "subfield": [
                    "9"
                  ]
                }

        Result example: 

        "600": [
            {
              "entity": [
                {
                  "target": "subjects.value",
                  "description": "Subject Headings",
                  "applyRulesOnConcatenatedData": true,
                  "subfield": [
                    "a",
                    "b",
                    "c",
                    "d",
                    "e",
                    "f",
                    "g",
                    "h",
                    "j",
                    "k",
                    "l",
                    "m",
                    "n",
                    "o",
                    "p",
                    "q",
                    "r",
                    "s",
                    "t",
                    "u",
                    "v",
                    "x",
                    "y",
                    "z"
                  ],
                  "rules": [
                    {
                      "conditions": [
                        {
                          "type": "trim_period, trim"
                        }
                      ]
                    }
                  ],
                  "subFieldDelimiter": [
                    {
                      "value": " ",
                      "subfields": [
                        "a",
                        "b",
                        "c",
                        "d",
                        "j",
                        "q",
                        "t",
                        "f",
                        "g",
                        "k",
                        "l",
                        "m",
                        "n",
                        "o",
                        "p",
                        "r",
                        "s"
                      ]
                    },
                    {
                      "value": "--",
                      "subfields": [
                        "x",
                        "y",
                        "z",
                        "v"
                      ]
                    },
                    {
                      "value": "--",
                      "subfields": []
                    }
                  ]
                },
                {
                  "target": "subjects.authorityId",
                  "description": "Authority ID that controlling the subject",
                  "subfield": [
                    "9"
                  ]
                }
              ]
            }
          ]
    6. Send PUT request to /mapping-rules/marc-bib and put in the body the updated JSON



  • No labels