Story[Marc2BF]: Convert marc field 775 to "otherEdition" edge of Work
Description
Environment
Potential Workaround
Attachments
clones
is cloned by
Checklist
hideTestRail: Results
Activity

Punnoose Kutty Jacob Pullolickal May 22, 2024 at 4:53 PM
Duplicate of

Punnoose Kutty Jacob Pullolickal January 16, 2024 at 10:21 PMEdited
Questions -
The properties of the "light weight" work created out of 775 is completely different from the properties of a "real" work created out of a marc record.
Should we index the Work and Instance created out of 775?
Should we allow to edit the "special" Work and Instance created out of 775? Or, should these be considered as a read only work and instance?
Let us assume a cataloger linked the current work to a "real" work that is not created from 775. How will we derive marc field 775 from the graph in this case?
The "real" work resource looked up through marva UI will not have the following properties. So, we will not be able to create corresponding subfields in the derived marc record.
http://bibfra.me/vocab/marc/edition - We can get it from marc field 250 (New ticket needed). However, it is still part of Instance. How will we determine with instance to be used if work has multiple instances?
http://bibfra.me/vocab/marc/relatedParts - We can get it from marc 544 (New ticket needed). However, it is still part of Instance
http://bibfra.me/vocab/marc/physicalDescription - We can get it from marc 300. However, it is still part of Instance
http://bibfra.me/vocab/lite/note - Which note to consider? Add all notes?
http://bibfra.me/vocab/marc/oclcNumber - We can get it from 035 (new ticket needed)
There could be multiple instances under the work that is looked up through Marva. How will we decide which instance's issn and isbn has to be used for populating $x and $z?
Update Marc2BF conversion Java library to process record 775
New resources to be created
Resource #1
Create an outgoing edge http://bibfra.me/vocab/relation/otherEdition from the Work resource with the following properties
Type: Type: http://bibfra.me/vocab/lite/Work
http://bibfra.me/vocab/marc/mainHeading
$a
http://bibfra.me/vocab/marc/edition
$b
http://bibfra.me/vocab/marc/qualifyingInformation
$c
http://bibfra.me/vocab/marc/publicationInformation
$d
http://bibfra.me/vocab/marc/relatedParts
$g
http://bibfra.me/vocab/marc/physicalDescription
$h
http://bibfra.me/vocab/lite/relationshipInformation
$i
http://bibfra.me/vocab/lite/seriesData
$k
http://bibfra.me/vocab/marc/materials
$m
http://bibfra.me/vocab/lite/note
$n
http://bibfra.me/vocab/marc/uniformTitle
$s
http://bibfra.me/vocab/lite/name
$t
http://bibfra.me/vocab/marc/oclcNumber
$w
Only if $w follows the following regex pattern
(OCoLC)\s*(?<id>\d+)
Extract the "id" from the regex and store it in "oclcNumber" property.
http://bibfra.me/vocab/marc/relator_code
$4
http://bibfra.me/vocab/marc/linkage
$6
http://bibfra.me/vocab/marc/controlField
$7
http://bibfra.me/vocab/marc/fieldLink
$8
label
$a, $t, $s, $b
(concatenate $a, $t, $s, $b using ", ")
Resource #2
Create an incoming edge http://bibfra.me/vocab/lite/instantiates to resource#1 with the following properties
Types:
http://bibfra.me/vocab/lite/Instance
All properties of resource #1 plus the following 2 properties
Property
value
http://bibfra.me/vocab/marc/isbn
$z
http://bibfra.me/vocab/marc/issn
$x
Resource #3
Create an outgoing edge http://library.link/vocab/map from Resource#1 with the following properties
Types:
http://bibfra.me/vocab/lite/Identifier
http://library.link/identifier/OCLCNUM
Property
value
http://bibfra.me/vocab/lite/name
$w
Only if $w follows the following regex pattern
(OCoLC)\s*(?<id>\d+)
Extract the "id" from the regex and store it in "oclcNumber" property.
http://bibfra.me/vocab/lite/link
http://www.worldcat.org/oclc/ + $w (extract id as per the logic mentioned above)
Resource #4
Create an outgoing edge http://library.link/vocab/map from Resource#2 with the following properties
Types:
http://bibfra.me/vocab/lite/Identifier
http://library.link/identifier/ISBN
Property
value
http://bibfra.me/vocab/lite/name
$z
Resource #5
Create an outgoing edge http://library.link/vocab/map from Resource#2 with the following properties
Types:
http://bibfra.me/vocab/lite/Identifier
http://library.link/identifier/ISSN
Property
value
http://bibfra.me/vocab/lite/name
$x
Resource #6
Create this edge only if value of $w follows the regex pattern (DLC)\s(?<id>[a-zA-Z0-9-_ ]+)*
LCCN = Extract the "id" from the regex
Create an outgoing edge http://library.link/vocab/map from Resource#2 with the following properties
Types:
http://bibfra.me/vocab/lite/Identifier
http://library.link/identifier/LCCN
Property
value
http://bibfra.me/vocab/lite/name
extracted "id" from $w
http://bibfra.me/vocab/lite/link
https://lccn.loc.gov/ + the LCCN value