Skip to content

Commit 3748a83

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

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

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

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,17 @@ end
262262
copy_field("@pEventID","edm:Agent.$last.*edm:wasPresent")
263263

264264

265+
do list(path:"1001 |1101 |7001 |7101", "var":"CREATOR")
266+
do list(path: "CREATOR.0", "var":"CREATORID")
267+
if any match("CREATORID", "^\\(DE-588\\)(.*)")
268+
copy_field("CREATORID","edm.Agent.$append.~rdf:about")
269+
replace_all("edm.Agent.$last.~rdf:about", "^\\(DE-588\\)(.*)","http://d-nb.info/gnd/$1")
270+
copy_field("CREATOR.a","edm.Agent.$last.skos:prefLabel$de")
271+
copy_field("@cEventID","edm.Agent.$last.*edm:wasPresent")
272+
end
273+
end
274+
end
275+
265276
<data name="@creatorID" source="1001 .0|1101 .0|7001 .0|7101 .0">
266277
<regexp match="^\(DE-588\)(.*)" format="http://d-nb.info/gnd/${1}" />
267278
</data>
@@ -276,9 +287,14 @@ copy_field("@pEventID","edm:Agent.$last.*edm:wasPresent")
276287
<data name="@cEventID" source="001">
277288
<compose prefix="#/event/" postfix="-c" />
278289
</data>
290+
291+
paste("@cEventID", "~#/event/", "001", "~-c", join_char:"")
292+
279293
<data name="@pEventID" source="001">
280294
<compose prefix="#/event/" postfix="-p" />
281295
</data>
296+
paste("@cEventID", "~#/event/", "001", "~-p", join_char:"")
297+
282298
<entity name="edm:Event" flushWith="record">
283299
<data name="~rdf:about" source="@cEventID" />
284300
<data name="edm:hasType" source="_id">
@@ -288,6 +304,15 @@ copy_field("@pEventID","edm:Agent.$last.*edm:wasPresent")
288304
<regexp match="^\(DE-588\)(.*)" format="http://d-nb.info/gnd/${1}" />
289305
</data>
290306
</entity>
307+
308+
copy_field("@cEventID","edm:Event.$append.~rdf:about")
309+
add_field("edm:Event.$last.edm:hasType", "http://terminology.lido-schema.org/lido00012")
310+
do list(path:"edm.Agent","var":"AGENT")
311+
if any_match("AGENT..~rdf:about", "http://d-nb.info/gnd/")
312+
copy_field("AGENT.~rdf:about", "edm:Event.$last.*crm:P11_had_participant.$append")
313+
end
314+
end
315+
291316
<entity name="edm:Event" flushWith="record">
292317
<data name="~rdf:about" source="@pEventID" />
293318
<!-- <data name="*edm:hasType" source="_id"> -->
@@ -300,21 +325,36 @@ copy_field("@pEventID","edm:Agent.$last.*edm:wasPresent")
300325
<data name="*edm:occuredAt" source="@timeID" />
301326
<data name="*edm:happenedAt" source="@placeID" />
302327
</entity>
328+
copy_field("@pEventID","edm:Event.$append.~rdf:about")
329+
add_field("edm:Event.$last.edm:hasType", "http://terminology.lido-schema.org/lido00228")
330+
copy_field("@publisherID", "edm:Event.$last.*crm:P11_had_participant.$append")
331+
copy_field("@timeID", "edm:Event.$last.*edm:occuredAt")
332+
copy_field("@placeID", "edm:Event.$last.*edm:happenedAt")
333+
303334
<data name="@place" source="2603 .a">
304335
<replace pattern=" \[?u.a.\]?.*$" with="" />
305336
<split delimiter=" ; " />
306337
<occurrence only="1" />
307338
</data>
339+
340+
copy_field("2603 .a","@place")
341+
replace_all("@place"," \\[?u.a.\\]?.*$","")
342+
paste("@placeID","~#/place/","001","~_place","@place",join_char:"") # what is the count doing?
308343
<combine name="@placeID" value="#/place/${id}_place${c}">
309344
<data name="c" source="@place">
310345
<count />
311346
</data>
312347
<data source="001" name="id" />
313348
</combine>
349+
350+
314351
<entity name="edm:Place">
315352
<data name="~rdf:about" source="@placeID" />
316353
<data name="skos:prefLabel" source="@place" />
317354
</entity>
355+
356+
357+
318358
<combine name="@timeID" value="#/timespan/${id}_timespan${c}">
319359
<data name="c" source="260 .c|2603 .c">
320360
<count />

0 commit comments

Comments
 (0)