Skip to content

Commit

Permalink
Merge pull request #252 from lcnetdev/v2.8-dev
Browse files Browse the repository at this point in the history
V2.8
  • Loading branch information
kefo authored Nov 21, 2024
2 parents 57d44d0 + 1fa6eff commit 51c569a
Show file tree
Hide file tree
Showing 88 changed files with 4,308 additions and 795 deletions.
2 changes: 1 addition & 1 deletion IDMETA
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
NAME=marc2bibframe2
CENTOS_DIST="centos7 centos8"
VERSION=2.7.0
VERSION=2.8.0
32 changes: 32 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,3 +1,35 @@
--- 2.8.0 2024/11/21
Changes toward updated v2.8.0 specifications:
ConvSpec-006-008
Changed conversion of 008/06=q
Stopped conversion of 008/34=d for books
ConvSpec-010-048
Added conversion of 040 as a note field with notetype "internal" in Admin Metadata
ConvSpec-050-088
Added conversion of 080 field
Changed conversion of 082 field with Ind2=#
ConvSpec-1XX,7XX,8XX
Added conversion of $6
ConvSpec-200-247
Changed conversion of MARC 246/247 $6
ConvSpec-240,X30�
Added conversion of $6
Changed bf:relationship URI from BF property to relationship entity
ConvSpec-5XX
Changed conversion of MARC 504 from I-supplmentaryContent to I-note with notetype "biblio"
ConvSpec-600-662
Added conversion $6
ConvSpec-720,740,etc.
Changed conversion of MARC 740 $6
ConvSpec-760-788
Changed bf:relationship URI from BF property to relationship entity
ConvSpec-NumericSubfields
Added MARC 100, 110, 111, 130, 240, 246, 247, 6XX, 700, 710, 711, 740, 800, 810, 811, 830 to step 6.3
Added more examples to step 6.3
ConvSpec-Process0-9
Updated Process 0.2 for new treatment of 7XX fields with $i and Ind2=2
Updated Process 6.3 to reflect new treatment of series fields with parallel titles

--- 2.7.0 2024/08/23
Changes toward updated v2.7.0 specifications:
ConvSpec-010-048
Expand Down
3 changes: 3 additions & 0 deletions marc2bibframe2.spec
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ rm -rf $RPM_BUILD_ROOT
%docdir %{_docdir}/marc2bibframe2

%changelog
* Thu Nov 21 2024 Kevin Ford <[email protected]> - 2.8.0-1.indexdata
- Release 2.8.0

* Tues Aug 23 2024 Kevin Ford <[email protected]> - 2.7.0-1.indexdata
- Release 2.7.0

Expand Down
15 changes: 15 additions & 0 deletions release-notes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# marc2bibframe2 release notes

## v2.8.0

Conversion updates based on specifications v2.8. See the Library of Congress’s [BIBFRAME site](https://www.loc.gov/bibframe/) for more details. Specifications are included in the distribution in the [spec](spec/) directory. Changes of note:

* Conversion of MARC 880 fields for agents, which were previously not converted.
* Conversion of MARC 880 fields for variant titles (MARC 246, 247, 740), which were previously not converted.
* Added conversion of UDC classification numbers in MARC 080 field.
* Bibliographical notes in MARC 504 fields are now converted as notes instead of as supplementary content.
* Adjustmented the creation of relationships to use the vocabulary at https://id.loc.gov/vocabulary/relationship.html instead of BIBFRAME properties.
* Retention of MARC 040 field as a note in Admin Metadata.
* Refined conversion of MARC 7XX fields that have data in $i and Ind2=2 to selectively create resources with a “part” relationship.

See the [NEWS](NEWS) file and the [updated specifications](spec/) for full details of changes. Changes from v2.7.0 in the specifications are marked in red.


## v2.7.0

Conversion updates based on specifications v2.7. See the Library of Congress’s [BIBFRAME site](https://www.loc.gov/bibframe/) for more details. Specifications are included in the distribution in the [spec](spec/) directory. Changes of note:
Expand Down
File renamed without changes.
Binary file removed spec/ConvSpec-006-008-v2.6.xlsx
Binary file not shown.
Binary file added spec/ConvSpec-006-008-v2.8.xlsx
Binary file not shown.
Binary file removed spec/ConvSpec-010-048-v2.7.xlsx
Binary file not shown.
Binary file added spec/ConvSpec-010-048-v2.8.xlsx
Binary file not shown.
File renamed without changes.
Binary file removed spec/ConvSpec-050-088-v2.7.xlsx
Binary file not shown.
Binary file added spec/ConvSpec-050-088-v2.8.xlsx
Binary file not shown.
Binary file not shown.
Binary file removed spec/ConvSpec-200-247-Titles-v2.7.xlsx
Binary file not shown.
Binary file added spec/ConvSpec-200-247-Titles-v2.8.xlsx
Binary file not shown.
Binary file removed spec/ConvSpec-240,X30-UnifTitle-v2.7.xlsx
Binary file not shown.
Binary file added spec/ConvSpec-240,X30-UnifTitle-v2.8.xlsx
Binary file not shown.
File renamed without changes.
Binary file removed spec/ConvSpec-3XX-v2.7.xlsx
Binary file not shown.
Binary file added spec/ConvSpec-3XX-v2.8.xlsx
Binary file not shown.
Binary file removed spec/ConvSpec-490,510-Links-v2.7.xlsx
Binary file not shown.
Binary file added spec/ConvSpec-490,510-Links-v2.8.xlsx
Binary file not shown.
Binary file removed spec/ConvSpec-5XX-v2.7.xlsx
Binary file not shown.
Binary file added spec/ConvSpec-5XX-v2.8.xlsx
Binary file not shown.
Binary file removed spec/ConvSpec-600-662-v2.7.xlsx
Binary file not shown.
Binary file added spec/ConvSpec-600-662-v2.8.xlsx
Binary file not shown.
Binary file removed spec/ConvSpec-720,740-758-v2.7.xlsx
Binary file not shown.
Binary file added spec/ConvSpec-720,740-758-v2.8.xlsx
Binary file not shown.
Binary file removed spec/ConvSpec-760-788-Links-v2.7.xlsx
Binary file not shown.
Binary file added spec/ConvSpec-760-788-Links-v2.8.xlsx
Binary file not shown.
File renamed without changes.
File renamed without changes.
Binary file removed spec/ConvSpec-NumericSubfields-v2.7.docx
Binary file not shown.
Binary file added spec/ConvSpec-NumericSubfields-v2.8.docx
Binary file not shown.
File renamed without changes.
Binary file removed spec/ConvSpec-Process0-9-v2.7.docx
Binary file not shown.
Binary file added spec/ConvSpec-Process0-9-v2.8.docx
Binary file not shown.
File renamed without changes.
File renamed without changes.
7 changes: 7 additions & 0 deletions test/ConvSpec-006,008.xspec
Original file line number Diff line number Diff line change
Expand Up @@ -138,5 +138,12 @@
</x:context>
<x:expect label="Return the carrier URI from the 008" select="'http://id.loc.gov/vocabulary/carriers/cz'"/>
</x:scenario>

<x:scenario label="008 - DATES">
<x:context href="data/ConvSpec-006,008/marc.xml"/>
<x:expect label="s date" test="//bf:Instance[15]/bf:provisionActivity/bf:ProvisionActivity/bf:date[@rdf:datatype='http://id.loc.gov/datatypes/edtf']='2002'"/>
<x:expect label="m date" test="//bf:Instance[16]/bf:provisionActivity/bf:ProvisionActivity/bf:date[@rdf:datatype='http://id.loc.gov/datatypes/edtf']='2013/2016'"/>
<x:expect label="q date" test="//bf:Instance[17]/bf:provisionActivity/bf:ProvisionActivity/bf:date[@rdf:datatype='http://id.loc.gov/datatypes/edtf']='1900~/1956~'"/>
</x:scenario>

</x:description>
6 changes: 4 additions & 2 deletions test/ConvSpec-050-088.xspec
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
<x:expect label="ind2 = '0' creates an assigner property of the ClassificationLcc" test="//bf:Work[1]/bf:classification[7]/bf:ClassificationLcc/bf:assigner/@rdf:resource = 'http://id.loc.gov/vocabulary/organizations/dlc'"/>

<x:expect label="$a creates a classificationPortion of PN6728.6.D3" test="//bf:Work[1]/bf:classification[8]/bf:ClassificationLcc/bf:classificationPortion = 'PN6728.6.D3'"/>
<x:expect label="ind1 = '0' creates a not used by assigner status of the ClassificationLcc" test="//bf:Work[1]/bf:classification[8]/bf:ClassificationLcc/bf:status/@rdf:resource = 'http://id.loc.gov/vocabulary/mstatus/nuba'"/>
<x:expect label="ind2 = '0' creates NO assigner property of the ClassificationLcc" test="count(//bf:Work[1]/bf:classification[8]/bf:ClassificationLcc/bf:assigner/@rdf:resource) = 0"/>
<x:expect label="ind2 = '4' creates NO assigner property of the ClassificationLcc" test="count(//bf:Work[1]/bf:classification[8]/bf:ClassificationLcc/bf:assigner/@rdf:resource) = 0"/>
<x:expect label="ind1 = '0' is ignored because ind2=4" test="count(//bf:Work[1]/bf:classification[8]/bf:ClassificationLcc/bf:status) = 0"/>
</x:scenario>

<x:scenario label="052 - GEOGRAPHIC CLASSIFICATION">
Expand Down Expand Up @@ -129,6 +129,8 @@
<x:expect label="Additional $0 relate to Classification resource" test="//bf:Work[1]/bf:classification[18]/bf:Classification/madsrdf:hasRelatedAuthority[1]/@rdf:resource = 'http://example.org/HEU_G74.3C50'"/>
</x:scenario>



<x:scenario label="088 - REPORT NUMBER">
<x:context href="data/ConvSpec-050-088/marc.xml"/>
<x:expect label="088 creates an identifiedBy/ReportNumber property of the Instance" test="count(//bf:Instance[1]/bf:identifiedBy/bf:ReportNumber) = 2"/>
Expand Down
15 changes: 12 additions & 3 deletions test/ConvSpec-1XX,7XX,8XX-names.xspec
Original file line number Diff line number Diff line change
Expand Up @@ -65,17 +65,17 @@
<x:expect label="$1 becomes Agent URI" test="//bf:Work[1]/bf:contribution[8]/bf:Contribution/bf:agent/bf:Agent/@rdf:about='http://id.loc.gov/rwo/agents/n83170323'"/>
<x:expect label="...$0 becomes isIdentifiedByAuthority" test="//bf:Work[1]/bf:contribution[8]/bf:Contribution/bf:agent/bf:Agent/madsrdf:isIdentifiedByAuthority/@rdf:resource='http://id.loc.gov/authorities/names/n83170323'"/>

<x:expect label="Subject $0 becomes isIdentifiedByAuthority" test="//bf:Work[1]/bf:subject[1]/bf:Agent/madsrdf:isIdentifiedByAuthority/@rdf:resource='http://id.loc.gov/authorities/names/n79027239'"/>
<x:expect label="Subject $0 becomes isIdentifiedByAuthority" test="//bf:Work[1]/bf:subject[1]/bf:Agent/madsrdf:isIdentifiedByAuthority/madsrdf:PersonalName/@rdf:about='http://id.loc.gov/authorities/names/n79027239'"/>
<x:expect label="...And creates $1 from ID Authorities URI" test="//bf:Work[1]/bf:subject[1]/bf:Agent/@rdf:about='http://id.loc.gov/rwo/agents/n79027239'"/>

<x:expect label="Subject $1 becomes rdf:about" test="//bf:Work[1]/bf:subject[2]/bf:Agent/@rdf:about='http://id.loc.gov/rwo/agents/n79022244'"/>
<x:expect label="...And creates $0 from ID RWO URI" test="//bf:Work[1]/bf:subject[2]/bf:Agent/madsrdf:isIdentifiedByAuthority/@rdf:resource='http://id.loc.gov/authorities/names/n79022244'"/>
<x:expect label="...And creates $0 from ID RWO URI" test="//bf:Work[1]/bf:subject[2]/bf:Agent/madsrdf:isIdentifiedByAuthority/madsrdf:PersonalName/@rdf:about='http://id.loc.gov/authorities/names/n79022244'"/>

<x:expect label="Subject $1 becomes Agent URI" test="//bf:Work[1]/bf:subject[3]/bf:Agent/@rdf:about='https://viaf.org/viaf/76349832/'"/>
<x:expect label="No $0 so no isIdentifiedByAuthority" test="count(//bf:Work[1]/bf:subject[3]/bf:Agent/madsrdf:isIdentifiedByAuthority)=0"/>

<x:expect label="Subject $1 becomes Agent URI" test="//bf:Work[1]/bf:subject[4]/bf:Agent/@rdf:about='http://viaf.org/viaf/92989169'"/>
<x:expect label="...$0 becomes isIdentifiedByAuthority" test="//bf:Work[1]/bf:subject[4]/bf:Agent/madsrdf:isIdentifiedByAuthority/@rdf:resource='http://example.org/names/n80005801'"/>
<x:expect label="...$0 becomes isIdentifiedByAuthority" test="//bf:Work[1]/bf:subject[4]/bf:Agent/madsrdf:isIdentifiedByAuthority/madsrdf:PersonalName/@rdf:about='http://example.org/names/n80005801'"/>

</x:scenario>

Expand All @@ -86,5 +86,14 @@
<x:expect label="700 with $i='is arrangement of' converts to bf:arrangementOf relationship and links to Hub." test="//bf:Work/bf:relation[5]/bf:Relation/bf:associatedResource/bf:Hub/bf:title/bf:Title/bf:mainTitle = 'Cottage by the sea'"/>
<x:expect label="700 with $i='is arrangement of' converts to bf:arrangementOf relationship." test="//bf:Work/bf:relation[5]/bf:Relation/bf:relationship/@rdf:resource='http://id.loc.gov/vocabulary/relationship/arrangementof'"/>
</x:scenario>

<x:scenario label="Relationship handling">
<x:context href="data/ConvSpec-1XX,6XX,7XX,8XX-names/marc_contains.xml"/>
<x:expect label="$i with 'Contains' converted to 'part'" test="//bf:Work/bf:relation[1]/bf:Relation/bf:relationship/@rdf:resource='http://id.loc.gov/vocabulary/relationship/part'"/>
<x:expect label="ind2=2 converted to 'part'" test="//bf:Work/bf:relation[2]/bf:Relation/bf:relationship/@rdf:resource='http://id.loc.gov/vocabulary/relationship/part'"/>
<x:expect label="$i retained when not 'contain'" test="//bf:Work/bf:relation[2]/bf:Relation/bf:relationship/bf:Relationship/rdfs:label='Libretto for (work)'"/>
<x:expect label="ind2=' ' converted to relatedwork" test="//bf:Work/bf:relation[3]/bf:Relation/bf:relationship/@rdf:resource='http://id.loc.gov/vocabulary/relationship/relatedwork'"/>
<x:expect label="$i retained when not 'contain'" test="//bf:Work/bf:relation[3]/bf:Relation/bf:relationship/bf:Relationship/rdfs:label='Based on (expression)'"/>
</x:scenario>

</x:description>
13 changes: 13 additions & 0 deletions test/ConvSpec-200-247not240-Titles.xspec
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,10 @@
<x:expect label="$n becomes a partNumber" test="//bf:Work[4]/bf:title/bf:VariantTitle/bf:partNumber = 'Serie A'"/>
<x:expect label="$p becomes a partName" test="//bf:Work[4]/bf:title/bf:VariantTitle/bf:partName = 'Meteorology and geophysics'"/>
<x:expect label="$5 becomes the applicableInstitution" test="//bf:Work[4]/bf:title/bf:VariantTitle/bflc:applicableInstitution/bf:Agent/bf:code = 'DLC'"/>

<x:expect label="Variant title without langtag" test="//bf:Work[5]/bf:title[1]/bf:VariantTitle/bf:variantType = 'portion'"/>
<x:expect label="Variant title without langtag" test="//bf:Work[5]/bf:title[1]/bf:VariantTitle/bf:mainTitle[not(@xml:lang)] = 'Hua wen chuang zuo san di yu'"/>
<x:expect label="Variant title with langtag" test="//bf:Work[5]/bf:title[1]/bf:VariantTitle/bf:mainTitle[@xml:lang='zh-hani'] = '华文创作三地域'"/>
</x:scenario>

<x:scenario label="247 - FORMER TITLE">
Expand Down Expand Up @@ -159,6 +163,15 @@
<x:context href="data/ConvSpec-200-247not240-Titles/marc247.xml"/>
<x:expect label="becomes the identifiedBy Issn" test="//bf:Work[1]/bf:title[4]/bf:VariantTitle/bf:identifiedBy/bf:Issn/rdf:value = '1234-5678'"/>
</x:scenario>

<x:scenario label="247/Variant 880 pairing">
<x:context href="data/ConvSpec-200-247not240-Titles/marc247.xml"/>
<x:expect label="Variant title without langtag" test="//bf:Work[2]/bf:title[1]/bf:VariantTitle/bf:variantType = 'former'"/>
<x:expect label="Variant title without langtag" test="//bf:Work[2]/bf:title[1]/bf:VariantTitle/bf:mainTitle[not(@xml:lang)] = 'Taiwan Sheng ren kou tong ji'"/>
<x:expect label="Variant title with langtag" test="//bf:Work[2]/bf:title[1]/bf:VariantTitle/bf:mainTitle[@xml:lang='zh-hani'] = '臺灣省人口統計'"/>
<x:expect label="Variant title without langtag" test="//bf:Work[2]/bf:title[1]/bf:VariantTitle/bf:date[not(@xml:lang)] = '1961-'"/>
<x:expect label="Variant title with langtag" test="//bf:Work[2]/bf:title[1]/bf:VariantTitle/bf:date[@xml:lang='zh-hani'] = '1961-'"/>
</x:scenario>
</x:scenario>

</x:description>
6 changes: 3 additions & 3 deletions test/ConvSpec-5XX.xspec
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@

<x:scenario label="504 - BIBLIOGRAPHY, ETC. NOTE">
<x:context href="data/ConvSpec-5XX/marc.xml"/>
<x:expect label="504 creates a supplementaryContent property of the Instance" test="count(//bf:Instance[1]/bf:supplementaryContent) = 1"/>
<x:expect label="$a creates an rdfs:label property of the SupplementaryContent" test="//bf:Instance[1]/bf:supplementaryContent[1]/bf:SupplementaryContent/rdfs:label = '&quot;Literature cited&quot;: p. 67-68.'"/>
<x:expect label="$b creates a count property of the SupplementaryContent" test="//bf:Instance[1]/bf:supplementaryContent[1]/bf:SupplementaryContent/bf:count = '19'"/>
<x:expect label="504 creates a rdf type property of the Instance" test="count(//bf:Instance[1]/bf:note[25]/bf:Note/rdf:type[@rdf:resource='http://id.loc.gov/vocabulary/mnotetype/biblio']) = 1"/>
<x:expect label="$a creates an rdfs:label property of the Note" test="//bf:Instance[1]/bf:note[25]/bf:Note/rdfs:label = '&quot;Literature cited&quot;: p. 67-68.'"/>
<x:expect label="$b creates a count property of the Note" test="//bf:Instance[1]/bf:note[25]/bf:Note/bf:count = '19'"/>
</x:scenario>

<x:scenario label="505 - FORMATTED CONTENTS NOTE">
Expand Down
4 changes: 2 additions & 2 deletions test/ConvSpec-600-662.xspec
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,10 @@
<x:scenario label="650 - SUBJECT ADDED ENTRY--TOPICAL TERM">
<x:context href="data/ConvSpec-648-662/marc.xml"/>
<x:expect label="650 creates a subject/Topic property of the Work" test="count(//bf:Work[1]/bf:subject/bf:Topic)=12"/>
<x:expect label="$abcdvxyz create the rdfs:label property of the Topic" test="//bf:Work[1]/bf:subject[6]/bf:Topic/rdfs:label = 'Caracas--Bolivar Statue--Far away--Long ago--History'"/>
<x:expect label="$abcdvxyz create the rdfs:label property of the Topic" test="//bf:Work[1]/bf:subject[6]/bf:Topic/rdfs:label = 'Caracas Bolivar Statue Far away Long ago--History'"/>
<x:expect label="$g creates a note property of the Topic" test="//bf:Work[1]/bf:subject[6]/bf:Topic/bf:note/bf:Note/rdfs:label = 'Miscellania'"/>
<x:expect label="$abcdvxyz create a madsrdf:componentList property of the Topic" test="count(//bf:Work[1]/bf:subject[6]/bf:Topic/madsrdf:componentList) = 1"/>
<x:expect label="...with components from the subfields" test="//bf:Work[1]/bf:subject[6]/bf:Topic/madsrdf:componentList/madsrdf:Topic[2]/madsrdf:authoritativeLabel = 'Bolivar Statue'"/>
<x:expect label="...with components from the subfields" test="//bf:Work[1]/bf:subject[6]/bf:Topic/madsrdf:componentList/madsrdf:Topic[1]/madsrdf:authoritativeLabel = 'Caracas Bolivar Statue Far away Long ago'"/>
<x:expect label="Period stripped from last subfield" test="//bf:Work[1]/bf:subject[7]/bf:Topic/rdfs:label = 'Baseball cards'"/>
</x:scenario>

Expand Down
2 changes: 1 addition & 1 deletion test/ConvSpec-720+740to755.xspec
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
<x:expect label="Second 740 is a relatedTo of the main Work" test="//bf:Work[1]/bf:relation[2]/bf:Relation/bf:relationship/@rdf:resource='http://id.loc.gov/vocabulary/relationship/relatedwork'"/>
<x:expect label="Brief work description has rdf:type bflc:Uncontrolled" test="//bf:Work[1]/bf:relation[2]/bf:Relation/bf:associatedResource/bf:Work/rdf:type/@rdf:resource = 'http://id.loc.gov/ontologies/bflc/Uncontrolled'"/>
<x:expect label="ind1 generates title/Title/nonSortNum of the brief work" test="//bf:Work[1]/bf:relation[1]/bf:Relation/bf:associatedResource/bf:Work/bf:title/bf:Title/bflc:nonSortNum = '4'"/>
<x:expect label="$a generates title/Title/mainTitle of the brief work" test="//bf:Work[1]/bf:relation[1]/bf:Relation/bf:associatedResource/bf:Work/bf:title/bf:Title/bf:mainTitle = 'The Joint Legislative Committee on Matrimonial and Family Laws, proposed statute'"/>
<x:expect label="$a generates title/Title/mainTitle of the brief work" test="//bf:Work[1]/bf:relation[1]/bf:Relation/bf:associatedResource/bf:Work/bf:title/bf:Title/bf:mainTitle = 'Joint Legislative Committee on Matrimonial and Family Laws, proposed statute'"/>
<x:expect label="$n generates partNumber of brief work" test="//bf:Work[1]/bf:relation[1]/bf:Relation/bf:associatedResource/bf:Work/bf:partNumber = 'Part 1'"/>
<x:expect label="$p generates partName of brief work" test="//bf:Work[1]/bf:relation[1]/bf:Relation/bf:associatedResource/bf:Work/bf:partName = 'Economic aspects, custody, taxes'"/>
<x:expect label="$5 generates bflc:applicableInstitution property of brief work" test="//bf:Work[1]/bf:relation[1]/bf:Relation/bf:associatedResource/bf:Work/bflc:applicableInstitution/bf:Agent/bf:code = 'MnMHCL'"/>
Expand Down
Loading

0 comments on commit 51c569a

Please sign in to comment.