Skip to content

Commit a308252

Browse files
committed
Update MARC21-EDM fix transformation #589
1 parent 3748a83 commit a308252

File tree

1 file changed

+54
-1
lines changed

1 file changed

+54
-1
lines changed

metafacture-runner/src/main/dist/examples/marc21-to-edm/MARC21-EDM.fix

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,8 @@ end
352352
<data name="~rdf:about" source="@placeID" />
353353
<data name="skos:prefLabel" source="@place" />
354354
</entity>
355-
355+
copy_field("@placeID","edm:Place.~rdf:about")
356+
copy_field("@place","edm:Place.skos:prefLabel")
356357

357358

358359
<combine name="@timeID" value="#/timespan/${id}_timespan${c}">
@@ -364,10 +365,16 @@ end
364365
<occurrence only="1" />
365366
</postprocess>
366367
</combine>
368+
369+
paste("@timeID","~#/timespan/","001","~_timespan","260[ 3] .c",join_char:"")
370+
copy_field("@timeID","edm:TimeSpan.~rdf:about")
371+
copy_field("260[ 3] .c","edm:TimeSpan.skos:notation")
367372
<entity name="edm:TimeSpan">
368373
<data name="~rdf:about" source="@timeID" />
369374
<data name="skos:notation" source="260 .c|2603 .c" />
370375
</entity>
376+
377+
371378
<!-- mandatory ELIB -->
372379
<combine name="@recordID" value="${url}${id}">
373380
<data name="id" source="001" />
@@ -379,12 +386,25 @@ end
379386
</data>
380387
</combine>
381388

389+
copy_field("@isil","@recordIDUrl")
390+
lookup("@recordIDUrl","urls")
391+
392+
copy_field("@isil","@recordIDSuffix")
393+
lookup("@recordIDSuffix","suffix")
394+
395+
paste("recordID","@recordIDUrl","001","@recordIDSuffix", join_char:"")
396+
382397
<data source="_id" name="@mediatypeID">
383398
<constant value="$[media_type]" />
384399
<lookup in="mediatype" />
385400
<compose prefix="http://ddb.vocnet.org/medientyp/" />
386401
</data>
387402

403+
404+
add_field("@mediatypeID","$[media_type]")
405+
lookup("@mediatypeID","mediatype")
406+
prepend("@mediatypeID","http://ddb.vocnet.org/medientyp/")
407+
388408
<entity name="skos:Concept">
389409
<data name="~rdf:about" source="@mediatypeID" />
390410
<data source="_id" name="skos:notation">
@@ -393,6 +413,11 @@ end
393413
</data>
394414
</entity>
395415

416+
copy_field("@mediatypeID","skos:Concept.$append.rdf:about")
417+
unless str_equal("$[media_type]","")
418+
add_field("skos:Concept.$last.skos:notation","$[media_type]")
419+
end
420+
396421
<entity name="dcterms:LinguisticSystem">
397422
<data source="@lang" name="rdf:value">
398423

@@ -402,43 +427,71 @@ end
402427
</data>
403428
</entity>
404429

430+
copy_field("@lang","dcterms:LinguisticSystem.rdf:value")
431+
paste("dcterms:LinguisticSystem.~rdf:about","~http://id.loc.gov/vocabulary/iso639-2/","@lang")
432+
405433
<data name="edm:rights" source="@isil">
406434
<lookup in="rights" />
407435
</data>
408436

437+
copy_field("@isil","edm:rights")
438+
lookup("edm:rights","rights")
439+
409440
<data source="_id" name="*dcterms:rights">
410441
<constant value="http://creativecommons.org/publicdomain/zero/1.0/"/>
411442
</data>
412443

444+
add_field("*dcterms:rights","http://creativecommons.org/publicdomain/zero/1.0/")
445+
413446

414447
<entity name="edm:ProvidedCHO" flushWith="record">
415448
<data source="@recordID" name="~rdf:about" />
449+
copy_field("@recordID","edm:ProvidedCHO.~rdf:about")
450+
416451
<data name="*edm:wasPresent" source="@pEventID|@cEventID" />
452+
copy_field("@pEventID|@cEventID","edm:ProvidedCHO.*edm:wasPresent.$append")
453+
417454
<data source="@mat" name="dc:type" />
455+
copy_field("@mat","edm:ProvidedCHO.dc:type")
418456
<data source="_id" name="edm:type">
419457
<constant value="TEXT" />
420458
</data>
459+
add_field("edm:ProvidedCHO.edm:type","TEXT")
421460
<data name="dc:publisher" source="2603 .b" />
461+
copy_field("2603 .b","edm:ProvidedCHO.dc:publisher")
422462
<data name="dcterms:extent" source="300??.a">
423463
<not-equals string="Online-Ressource" />
424464
</data>
465+
unless any_equal("300??.a","Online-Ressource")
466+
copy_field("300??.a","edm:ProvidedCHO.dcterms:extent")
467+
end
425468

426469
<data source="@lang" name="dc:language" />
470+
copy_field("@lang","edm:ProvidedCHO.dc:language")
427471
<data source="@lang" name="*dcterms:language">
428472
<compose prefix="http://id.loc.gov/vocabulary/iso639-2/" />
429473
</data>
474+
paste("edm:ProvidedCHO.*dcterms:language","~http://id.loc.gov/vocabulary/iso639-2/","@lang",join_char:"")
430475

431476

432477
<combine name="dcterms:bibliographicCitation" value="${a} ; ${v}">
433478
<data source="490??.a" name="a" />
434479
<data source="490??.v" name="v" />
435480
</combine>
481+
paste("edm:ProvidedCHO.dcterms:bibliographicCitation","490??.a","~ ; ","490??.v", join_char:"")
436482
<data name="dc:creator" source="1001 .a|1101 .a" />
483+
copy_field("1[10]1 .a","edm:ProvidedCHO.dc:creator.$append")
437484
<data name="dc:contributor" source="7001 .a|7101 .a" />
485+
copy_field("7[10]1 .a","edm:ProvidedCHO.dc:contributor.$append")
486+
438487
<data name="dc:subject"
439488
source="650?7.a|60017.a|61017.a|61117.a|630??.a|655?7.a|651?7.a|648??.a" />
440489
<data name="*dc:subject" source="@conceptID" />
441490

491+
do list(path:"650?7|60017|61017|61017|630??|655?7|651?7|648??","var":"SUBJECT")
492+
copy_field("SUBJECT.a", "edm:ProvidedCHO.dc:subject.$append")
493+
end
494+
442495
<data name="*dcterms:isPartOf" source="830??.w|800??.w|810??.w|811??.w">
443496
<regexp match="^\(DE-101\)((.*))" format="${1}" />
444497
<compose prefix="http://d-nb.info/" />

0 commit comments

Comments
 (0)