Compare commits

257 Commits

Author SHA1 Message Date
cpitzen 9797bad66a src/MDConcEntryTypes.php aktualisiert
Den Import-Error auslösenden Begriff "spende" auf "1: Donation" gesetzt.
2026-03-24 09:40:45 +01:00
jrenslin 08d71ac7f4 Extend mapping for alternative titles 2026-03-23 18:12:43 +01:00
jrenslin 019817f54e Extend concordance lists 2026-03-19 17:49:09 +01:00
jrenslin 45e2dc20f2 Map Beschriftung (mittig) 2026-03-16 19:39:28 +01:00
jrenslin f5b6dbb106 Merge pull request 'ufladerer-patch-1' (#18) from ufladerer-patch-1 into master
Reviewed-on: #18
2026-02-19 14:19:34 +01:00
ufladerer 718e915218 src/MDConcLicenses.php aktualisiert 2026-02-19 11:20:00 +01:00
ufladerer 47c59c0222 src/MDConcLicenses.php aktualisiert
added new rights statements
2026-02-19 11:12:38 +01:00
jrenslin 4a9f51761b Map further concordances 2026-02-17 23:21:34 +01:00
jrenslin c2912644f9 Extend mapping 2026-02-09 18:11:18 +01:00
jrenslin 5dcfbaa0a1 Ignore fully numeric inputs in MDConcObjectTagRelTypes, map them to
general tags
2026-02-06 00:20:00 +01:00
jrenslin 7630e46a36 src/MDConcEntryTypes.php aktualisiert
Merge pull request 'src/MDConcEntryTypes.php aktualisiert' (#17) from cpitzen-patch-1 into master
Reviewed-on: #17
2026-01-22 18:23:44 +01:00
cpitzen 36db6f2213 src/MDConcEntryTypes.php aktualisiert 2026-01-21 15:40:01 +01:00
jrenslin be5a2b84a8 Extend MDConcMarkingType 2025-12-22 18:22:54 +01:00
jrenslin 312826259e Update concordance lists 2025-12-17 16:49:47 +01:00
jrenslin 7ea8d14689 Add quotes around error-causing text / unmapped value in MDImporterMissingConcordance 2025-12-17 15:44:35 +01:00
jrenslin 38a732de6d Extend concordance lists 2025-12-16 12:38:45 +01:00
jrenslin 1c2c25f45b Map "zugeschrieben an" 2025-12-15 17:31:26 +01:00
jrenslin 1ce75c2c9c Add function for getting and cleaning missing concordance list 2025-12-15 17:29:00 +01:00
jrenslin b122288127 Extend concordance list for event types 2025-12-11 14:12:19 +01:00
jrenslin c93f18a7df Map Durchmesser (Rand) 2025-12-11 13:42:13 +01:00
jrenslin 9787a79c33 Update concordance lists 2025-12-02 15:26:40 +01:00
jrenslin 64018fd9a2 Extend concordance lists, link concordance.museum-digital.org in error
messages
2025-11-27 15:36:05 +01:00
jrenslin 98e5a85fb8 Extend MDConcLicenses 2025-11-18 17:34:17 +01:00
jrenslin d8d59adb66 Fix variable comment 2025-11-13 10:28:34 +01:00
jrenslin cb0684da05 Collect unmapped entries in dry-run mode
See museum-digital/importer#235
2025-11-13 00:28:24 +01:00
jrenslin db3a659fa9 Extend mapping for MDConcObjectTagRelTypes 2025-11-11 18:19:19 +01:00
jrenslin 36803da776 Add type / value to MDImporterMissingConcordance 2025-11-11 13:27:27 +01:00
jrenslin 21c25ff3f3 Extend mapping for source types 2025-10-27 16:43:24 +01:00
jrenslin c03a60d05a Allow public access to MDConcCertainty::MAPPING 2025-10-27 16:29:08 +01:00
jrenslin 000b8db862 Extend concordance list for actor roles 2025-10-27 15:45:14 +01:00
jrenslin 5aa2980600 Update concordance lists 2025-10-17 12:35:03 +02:00
jrenslin d6a3c50e2a Merge branch 'master' of gitea:museum-digital/MDImporterConcordanceLists 2025-10-17 10:47:13 +02:00
jrenslin e88a7ef43c Extend mapping in MDConcMeasurementTypes 2025-10-17 10:44:24 +02:00
jrenslin a35262428e Update marking type, measurement type concordance lists 2025-10-11 12:02:33 +02:00
jrenslin 0fb9743328 Add marking type "handschriftlich - Beschriftung durch Hersteller*in" 2025-10-11 02:24:49 +02:00
jrenslin 183e4b2e08 Extend concordance lists 2025-10-07 14:25:33 +02:00
jrenslin 5b0da66287 Extend concordance lists 2025-10-05 11:46:30 +02:00
jrenslin 821a6b4e6d Extend MDConcMeasurementTypes 2025-09-30 14:47:35 +02:00
jrenslin 9568f58b7b Update MDConcMeasurementTypes 2025-09-30 11:38:13 +02:00
jrenslin 1cbf0dec8a Extend MDConcMeasurementTypes 2025-09-17 13:43:15 +02:00
jrenslin da8dfe079e Extend concordance lists 2025-09-02 16:51:29 +02:00
jrenslin b6b883420c Map literature type "Weiteres" 2025-09-02 13:14:48 +02:00
jrenslin c63e9df9b3 Extend mappings 2025-09-02 11:54:04 +02:00
jrenslin 7e57ee2363 Map ownership type "Deakzessiert" 2025-09-02 11:18:46 +02:00
jrenslin a0f4a2b159 Map ownership status for deaccession 2025-09-01 14:28:45 +02:00
jrenslin f83b1aeb9f Update concordance lists 2025-08-14 21:45:43 +02:00
jrenslin b323e10d9b Update MDConcMeasurementTypes 2025-08-14 16:22:21 +02:00
jrenslin 52f861c739 Map Länge (Griff) to length 2025-08-13 14:42:52 +02:00
jrenslin 50772ae02f Extend list of marking type concordances 2025-08-06 14:55:08 +02:00
jrenslin 46817aca32 Map Halsweite (Unterlage) as measurement type 2025-07-29 12:29:42 +02:00
jrenslin b2a5bec110 Add marking position and two actor roles 2025-07-29 00:36:35 +02:00
jrenslin e3db74e734 Extend marking position and tag relation type concordances 2025-07-25 17:25:58 +02:00
jrenslin 0555dcd94f Extend MDConcMarkingType 2025-07-25 01:31:39 +02:00
jrenslin 091f5016aa Add new concordances for height and width 2025-07-21 13:52:56 +02:00
jrenslin 3bb3ba4d70 Merge branch 'master' of gitea:museum-digital/MDImporterConcordanceLists 2025-07-18 13:05:14 +02:00
jrenslin c2a433588f Extend concordance list 2025-07-18 13:03:30 +02:00
jrenslin 399f345888 Extend mappings for currencies and entry types 2025-07-15 10:39:02 +02:00
jrenslin 1d85ab3921 Map new sizes for blades 2025-07-14 17:17:51 +02:00
jrenslin 5796322692 Map concordance for license statement "Keine Verwendung erlaubt" 2025-07-11 21:08:08 +02:00
jrenslin f9c94926c8 Extend MDConcMeasurementTypes 2025-07-09 14:46:56 +02:00
jrenslin 1635d4130a Add exception mode to redirect from object-tag relation type to
object-event relation (generic, e.g. if the tag is actually a time)
2025-06-26 14:34:18 +02:00
jrenslin b7330634d7 Extend marking types list 2025-06-26 01:22:14 +02:00
jrenslin a7ed284c26 Extend MDConcEntryTypes 2025-06-23 16:20:32 +02:00
jrenslin d28e70d6c1 Merge pull request 'src/MDConcMarkingType.php aktualisiert' (#16) from ufladerer-patch-1 into master
Reviewed-on: #16
2025-06-12 17:20:48 +02:00
ufladerer ca7ca028d2 src/MDConcMarkingType.php aktualisiert 2025-06-12 09:45:07 +02:00
jrenslin ba0fe9d83a Add marking type concordance 2025-06-11 22:04:44 +02:00
jrenslin aa51fdd56a Merge pull request 'src/MDConcMarkingPosition.php aktualisiert' (#15) from ufladerer-patch-1 into master
Reviewed-on: #15
2025-06-11 14:04:15 +02:00
ufladerer 2bd86abbdc src/MDConcMarkingPosition.php aktualisiert 2025-06-11 12:23:20 +02:00
jrenslin 1c903d7da3 Extend concordance lists 2025-06-02 12:33:43 +02:00
jrenslin 731a5a1b11 Extend concordance lists 2025-06-02 02:16:35 +02:00
jrenslin bdbdf03821 Map currency FT > Hungarian Forinth 2025-05-27 18:18:19 +02:00
jrenslin a9f4dccda8 Extend concordance lists 2025-05-27 01:33:44 +02:00
jrenslin eb98610cb3 Map "Dekor vermutet" 2025-05-25 12:41:34 +02:00
jrenslin f7fa5e26ee Remove duplicate array keys 2025-05-23 00:18:48 +02:00
jrenslin 1a8f7158f6 Map "Rükseite, oben mittig" (sic!) marking position 2025-05-22 16:27:35 +02:00
jrenslin a74e02d8d6 Extend concordance list for event types 2025-05-21 13:25:23 +02:00
jrenslin e34a8d2ab7 Map Bechriftung (gedruckt) 2025-05-21 12:54:05 +02:00
jrenslin e302fcb0cf Merge pull request 'ufladerer-patch-2' (#14) from ufladerer-patch-2 into master
Reviewed-on: #14
2025-05-21 12:52:48 +02:00
ufladerer 0cbcb46e47 src/MDConcActor.php aktualisiert
added a few more roles
2025-05-21 12:02:09 +02:00
ufladerer 1927d1b2b4 src/MDConcMarkingType.php aktualisiert
added "Beschriftung (handschriftlich)", "Beschriftung (ziseliert)" and "ziseliert". the rest was just moved to alphabetical order.
2025-05-21 11:40:14 +02:00
jrenslin 2820cbcc23 Re-map acquisition to general ownership transferal over buying 2025-05-08 16:56:28 +02:00
jrenslin 9276d38d16 Extend concordance lists 2025-05-08 16:17:23 +02:00
jrenslin f00569623a Remap LIDO terminology 00001 > general acquisition 2025-05-06 22:33:45 +02:00
jrenslin d822d42107 Match 'Impulsgebende Person' 2025-05-02 16:19:23 +02:00
jrenslin 3fa31272c7 Extend list of concordances for current import 2025-05-02 16:06:35 +02:00
jrenslin e800a094f7 Merge pull request 'src/MDConcActor.php aktualisiert' (#12) from ufladerer-patch-2 into master
Reviewed-on: #12
2025-04-11 16:52:43 +02:00
ufladerer b8cff0b0be src/MDConcActor.php aktualisiert 2025-04-11 12:41:23 +02:00
jrenslin 93507da659 Map language en-GB 2025-04-07 18:44:12 +02:00
jrenslin 299b6fda6a Update MDConcMeasurementTypes 2025-04-07 18:01:36 +02:00
jrenslin ce7662c29c Extend list of mapped entry types 2025-04-05 01:47:21 +02:00
jrenslin 9df78b457d Add Höhe (netto) to list of mapped measurement types 2025-04-03 12:54:22 +02:00
jrenslin 7a228423a8 Extend concordance list for measurement types 2025-03-19 15:23:51 +01:00
jrenslin 3c6f1c0592 Add two more measurement type mappings 2025-03-19 01:53:58 +01:00
jrenslin fdb47f9f63 Add new class MDConcCertainty 2025-03-18 01:22:59 +01:00
jrenslin 7765ed2e96 Extend measurement type concordance list 2025-03-14 15:58:22 +01:00
jrenslin 8c01b42147 Extend list of mapped relation types 2025-03-12 02:44:44 +01:00
jrenslin bb2206bb5b Extend concordance lists for related works types, measurement types 2025-03-11 17:44:03 +01:00
jrenslin 2f482acfa9 Merge branch 'master' of gitea:museum-digital/MDImporterConcordanceLists 2025-03-07 15:33:06 +01:00
jrenslin a08e858c26 Merge pull request 'src/MDConcMarkingType.php aktualisiert' (#11) from ufladerer-patch-1 into master
Reviewed-on: #11
2025-03-07 14:15:07 +01:00
ufladerer a141cfe4b4 src/MDConcMarkingType.php aktualisiert 2025-03-07 12:20:14 +01:00
jrenslin 5c995e0822 Merge pull request 'src/MDConcMarkingType.php aktualisiert' (#10) from ufladerer-patch-1 into master
Reviewed-on: #10
2025-03-06 23:51:01 +01:00
ufladerer b4c57dbd00 src/MDConcMarkingType.php aktualisiert 2025-03-06 17:09:36 +01:00
jrenslin 69ac5af855 Remove duplicate array keys in MDConcMarkingPosition 2025-03-05 14:36:41 +01:00
jrenslin da963da0de Map German "Schlagwort" to tag relation type tag 2025-03-03 18:03:33 +01:00
jrenslin 55c6d87423 Map "Pfd" > "Pfund" > Pound Sterling 2025-02-27 11:37:03 +01:00
jrenslin bc02cd4ec6 Add mapping for third party property in MDConcOwnershipStatus 2025-02-24 18:13:35 +01:00
jrenslin f496f40ac9 Add "Namensnennung 4.0 International - CC BY 4.0" to list of mapped
licenses
2025-02-21 15:16:51 +01:00
jrenslin e22c9d3912 Merge: Fix mapping of full frontal marking position
Reviewed-on: #9
2025-02-19 14:31:23 +01:00
ufladerer a9c4c23c4c src/MDConcMarkingPosition.php aktualisiert 2025-02-19 13:47:36 +01:00
ufladerer d04f2c5f78 src/MDConcMarkingPosition.php aktualisiert 2025-02-19 13:45:34 +01:00
jrenslin d06617046d Merge pull request 'src/MDConcMarkingType.php aktualisiert' (#7) from ufladerer-patch-1 into master
Sure, why not
2025-02-17 17:16:35 +01:00
ufladerer ab5200b24b src/MDConcMarkingType.php aktualisiert 2025-02-17 17:01:19 +01:00
jrenslin 73030b5ede Remove duplicate array keys 2025-02-15 13:40:46 +01:00
jrenslin d2d9a84b19 Update event types list 2025-02-12 12:45:51 +01:00
jrenslin 74c9ecd847 Merge pull request 'ufladerer-patch-1' (#6) from ufladerer-patch-1 into master
Reviewed-on: #6
2025-02-05 15:53:44 +01:00
ufladerer add8be4463 src/MDConcActor.php aktualisiert 2025-02-05 15:49:33 +01:00
jrenslin 05bd6115c4 Merge branch 'ufladerer-patch-1' 2025-02-05 15:44:50 +01:00
ufladerer 72ea69d72f src/MDConcActor.php aktualisiert 2025-02-05 10:21:15 +01:00
jrenslin 20319ed8ee Map Objektmaß (HxB) 2025-02-01 15:37:13 +01:00
jrenslin 5547ea4e3a Extend concordance lists 2025-02-01 03:27:01 +01:00
jrenslin 6cc802ffc0 Extend concordance lists 2025-01-29 16:41:06 +01:00
jrenslin 78de55f1f8 Extend concordance lists 2025-01-24 10:55:27 +01:00
ufladerer 01945149cb src/MDConcMarkingType.php aktualisiert 2025-01-23 16:01:24 +01:00
jrenslin 2cb782cef4 Update years covered in license 2025-01-22 15:20:28 +01:00
jrenslin eb7094ab9d Extend concordance lists for event types 2025-01-22 15:19:37 +01:00
jrenslin 0adcbd2d5d Update concordance lists 2025-01-17 12:34:23 +01:00
jrenslin 7bcb277e46 Extend concordance lists for actor roles > event types 2025-01-15 09:11:22 +01:00
jrenslin 8a26aa426b Extend concordance lists for languages, event types 2025-01-14 16:28:37 +01:00
jrenslin 217aa53edd Extend concordance lists 2025-01-14 14:48:51 +01:00
jrenslin 59298830ca Small extension of marking pos+type lists 2024-12-20 14:44:28 +01:00
jrenslin 3940614190 Extend concordance lists 2024-12-20 14:12:48 +01:00
jrenslin d6fae4dd3d Extend list of mapped measurement types 2024-12-19 09:56:14 +01:00
ufladerer 17b81f6d00 src/MDConcMarkingType.php aktualisiert 2024-12-18 18:55:29 +01:00
ufladerer 0bf9049018 src/MDConcActor.php aktualisiert 2024-12-18 18:45:32 +01:00
jrenslin 7bcb4d4302 Extend list of mapped ownership types 2024-12-18 18:43:17 +01:00
jrenslin f7c42cf046 Merge pull request 'ufladerer-patch-1' (#5) from ufladerer-patch-1 into master
Reviewed-on: #5
2024-12-18 18:42:14 +01:00
jrenslin f539df807a Merge branch 'master' into ufladerer-patch-1 2024-12-18 18:41:58 +01:00
ufladerer e16a7b5db2 src/MDConcActor.php aktualisiert 2024-12-18 18:38:36 +01:00
ufladerer 7952b9362a src/MDConcActor.php aktualisiert 2024-12-18 17:48:57 +01:00
jrenslin b94702d8d2 Remove duplicate array keys 2024-12-18 17:09:46 +01:00
jrenslin a97557640b Extend concordance lists for measurement types, ownership 2024-12-18 16:58:43 +01:00
ufladerer 592c2d9d75 src/MDConcActor.php aktualisiert
added gendered versions of roles
2024-12-18 13:56:49 +01:00
jrenslin 7fef0f0ada Extend actor concordance list 2024-12-12 12:41:39 +01:00
jrenslin c714eb081a Merge pull request 'ufladerer-patch-1' (#4) from ufladerer-patch-1 into master
Reviewed-on: #4
2024-12-12 10:40:59 +01:00
ufladerer 54c64ed0f6 src/MDConcMarkingPosition.php aktualisiert 2024-12-11 18:07:06 +01:00
ufladerer e4b6ae0c4a src/MDConcMarkingPosition.php aktualisiert 2024-12-11 18:05:33 +01:00
ufladerer b65576a087 src/MDConcMarkingPosition.php aktualisiert
various terms for the reverse side added
2024-12-11 18:04:22 +01:00
ufladerer 4f25679bff src/MDConcMarkingType.php aktualisiert
added 1 case for drawn and moved "Bleistiftzeichnung" to drawn
2024-12-11 17:34:46 +01:00
ufladerer 3978113d26 src/MDConcActor.php aktualisiert 2024-12-11 17:01:59 +01:00
ufladerer bf41e2f062 src/MDConcActor.php aktualisiert
Added a few new roles
2024-12-11 13:41:13 +01:00
jrenslin 50b3dff4cd Extend concordance lists 2024-12-10 02:34:44 +01:00
jrenslin a0e5ecdd29 Merge pull request 'src/MDConcMarkingPosition.php aktualisiert' (#3) from ufladerer-patch-1 into master
Reviewed-on: #3
2024-12-09 12:27:28 +01:00
ufladerer b62ef5f357 src/MDConcMarkingPosition.php aktualisiert
Added some top, bottom and rear_side options
2024-12-09 12:09:38 +01:00
jrenslin f3bd620f85 Extend concordance lists for lengths, measurements, sources 2024-12-03 14:11:21 +01:00
jrenslin c3e4581f2d Extend concordance lists for marking types, positions 2024-12-02 12:02:31 +01:00
jrenslin 0bb62c675f Extend event type concordance list 2024-12-02 11:41:23 +01:00
jrenslin f175302627 Merge: Lists for marking positions and types extended
Merge pull request 'ufladerer-patch-1' (#2) from ufladerer-patch-1 into master

Reviewed-on: #2
2024-12-01 22:10:32 +01:00
ufladerer 6da4ce1933 src/MDConcMarkingType.php aktualisiert
added new types, Blindstempel was relocated to embossing
2024-11-28 19:37:57 +01:00
ufladerer 3348228137 src/MDConcMarkingPosition.php aktualisiert
Added new positions
2024-11-28 19:13:12 +01:00
jrenslin 992312b39f Extend concordance sets 2024-11-28 09:29:21 +01:00
jrenslin 4beff90c42 Update concordance lists for new measurements implementation 2024-11-26 11:46:29 +01:00
jrenslin 866ef3c714 Map actor "Vorbesitzer (EXTERN)" 2024-11-25 10:11:23 +01:00
jrenslin 593b54c0a7 Add additional positions 2024-11-25 10:08:35 +01:00
jrenslin 10511d8b9b Map position "Keilrahmen untere Leiste" 2024-11-20 22:37:59 +01:00
jrenslin a605d1c87f Remove duplicate array keys 2024-11-20 22:01:00 +01:00
jrenslin ff3bf5133c Merge pull request 'ufladerer-patch-1' (#1) from ufladerer-patch-1 into master
Reviewed-on: #1

Looks very good. Thanks!
2024-11-20 21:56:59 +01:00
ufladerer 2409a314e9 src/MDConcMarkingPosition.php aktualisiert
added marking positions
2024-11-20 19:15:11 +01:00
ufladerer f94bb31e31 src/MDConcMarkingType.php aktualisiert
Hier die vorläufigen Vorschläge zur Ergänzung der Inschriften-Typen. Es kann sein, dass ich hier noch mit mehr Ergänzungen komme, dafür müssen wir aber auch intern erstmal unser Vokabular aufräumen und Thesaurieren.
Grüße,
UF
2024-11-20 18:48:27 +01:00
jrenslin 38a855ff27 Extend list of mapped marking positions 2024-11-20 17:33:50 +01:00
jrenslin 56bbeb8eba Map closer location type "früherer Ort" 2024-11-20 15:48:00 +01:00
jrenslin 62ff660d39 Extend lists of marking positions / types 2024-11-19 13:42:41 +01:00
jrenslin 08348dd148 Extend concordance list for languages 2024-11-15 17:22:05 +01:00
jrenslin 87a5d405f9 Remove duplicate array key 2024-11-14 17:19:56 +01:00
jrenslin c106318d38 Add class MDConcObjectTagRelTypes for mapping strings to object-tag
relation types
2024-11-14 15:30:25 +01:00
jrenslin f08ea28622 Extend concordance list for entry types 2024-11-13 17:16:55 +01:00
jrenslin 76c3ee052e Update concordance lists for source types and entry types 2024-11-13 16:32:37 +01:00
jrenslin 946f8d8352 Extend concordance lists 2024-11-08 18:10:22 +01:00
jrenslin 921acd303b Extend concordance set for entry types 2024-11-08 15:25:43 +01:00
jrenslin 9a1932a233 Merge branch 'master' of gitea:museum-digital/MDImporterConcordanceLists 2024-11-07 10:48:41 +01:00
jrenslin 069ccf43c3 Extend list of mapped license and event type names 2024-11-07 10:48:09 +01:00
jrenslin 82a0cb94d7 Extend concordance lists for licenses (CC BY-NC-ND) and event types
(Verkauf)
2024-11-03 16:40:47 +01:00
jrenslin 2223eefabb Update MDConcMeasurementTypes 2024-09-18 17:39:16 +02:00
jrenslin cdac022d64 Extend concordance lists for event types and licenses 2024-09-08 21:33:43 +02:00
jrenslin 04b88d0456 Add source concordance name 2024-09-05 14:12:11 +02:00
jrenslin 91f5c04de3 Add new concordances 2024-09-05 13:24:21 +02:00
jrenslin 25ae398ce8 Extend list of actor / event type concordances 2024-07-03 12:39:25 +02:00
jrenslin 5dfafafc63 Extend list of actor roles 2024-07-03 12:28:01 +02:00
jrenslin 04a34e7424 Extend concordance lists for currencies, entry types 2024-06-19 23:05:33 +02:00
jrenslin dfbf45097b Fix broken concordance for CC O > CC0 2024-06-05 11:58:54 +02:00
jrenslin bd7dd5ed33 Add new entry type concordance 2024-06-02 00:59:28 +02:00
jrenslin 99488b022f Map emergency rescue in Hungarian to corresponding entry type 2024-05-28 16:14:57 +02:00
jrenslin 43d8c40829 Add new class for a concordance list for source types 2024-05-25 00:26:02 +02:00
jrenslin 2c100f497b Add license concordance for CC BY / 4.0 2024-05-23 03:23:10 +02:00
jrenslin 3671295ca9 Extend concordance lists for places and times 2024-04-19 16:37:58 +02:00
jrenslin e735ee5800 Add further mapping in MDConcMeasurementTypes 2024-03-26 15:52:17 +01:00
jrenslin 9b269b4938 Cover measurement type "Außenmaß (Höhe)" 2024-03-26 03:04:01 +01:00
jrenslin bd8026d111 Fix duplicate array index 2024-03-26 03:03:25 +01:00
jrenslin 6aca553aa5 Add event type concordance for "GOS-Mehrfacheintrag" 2024-03-13 14:43:04 +01:00
jrenslin 38e2779257 Update MDConcCurrencies 2024-03-12 00:50:58 +01:00
jrenslin e578b7c66b Extend list of marking types 2024-03-07 12:53:56 +01:00
jrenslin a163f54e2e Map RestauratorIn to restorated event 2024-03-05 15:11:59 +01:00
jrenslin 9a5741f0bb Add mapping for Außenmaß (Kiste) in MDConcMeasurementTypes 2024-03-01 00:10:36 +01:00
jrenslin 6809e64812 Extend measurement types concordance list 2024-03-01 00:03:39 +01:00
jrenslin 52c44157a5 Extend list of accepted actor roles => event types 2024-02-21 23:46:21 +01:00
jrenslin 3aadf7ef39 Add event types 'Entwurf; Vorlage' 2024-02-21 23:30:40 +01:00
jrenslin 77a5fa6dac Add new actor roles signaling template creation 2024-02-19 13:06:31 +01:00
jrenslin 11d76ca170 Add "place of finding" in hungarian to location types list 2024-02-07 16:29:52 +01:00
jrenslin bffdb89719 Add hungarian "Place of finding" > Finding 2024-02-07 13:51:28 +01:00
jrenslin cb45e22d3f Add "Verwendung" to list of actor and event type concordances 2024-02-07 13:41:48 +01:00
jrenslin cf92e5a3d4 Extend entry types concordance map 2024-01-30 18:06:41 +01:00
jrenslin ae364e5562 Add entry type "Depositorium" 2024-01-29 14:20:09 +01:00
jrenslin 4396c04f9c Extend concordance lists 2024-01-26 18:19:22 +01:00
jrenslin ba7c0efa93 Extend entry types concordance list 2024-01-08 21:39:50 +01:00
jrenslin 7977cb8fde Add another name for CC BY-SA 2024-01-03 01:18:18 +01:00
jrenslin 505ea3853a Extend entry types concordance list 2024-01-01 01:41:16 +01:00
jrenslin 9f300a956f Add more Ukrainian-language mappings 2023-12-04 13:24:02 +01:00
jrenslin 85c6123eb3 Extend concordance lists with some values in Ukrainian 2023-12-03 23:33:59 +01:00
jrenslin 36a31c314a Add "Revers" and "Reverse" to list of mapped marking pos. 2023-12-01 15:33:37 +01:00
jrenslin 531b3a74d2 Extend concordance lists for actors and entry types 2023-11-30 01:57:34 +01:00
jrenslin 0132afbeff Remove name sanitization constants in MDConcActor, MDConcPlace 2023-11-26 00:55:20 +01:00
jrenslin 840c24af71 Extend currencies and entry types 2023-11-24 00:58:39 +01:00
jrenslin 016245722a Add blacklist for invalid damage types 2023-11-22 13:38:57 +01:00
jrenslin 881a3d6c9c Add "Korona (osztrák-magyar" to list of rewritten currencies 2023-11-20 13:55:36 +01:00
jrenslin 91303d0cc4 Extend list of known currency names 2023-11-14 17:37:09 +01:00
Dyan Correa 4b0336ade2 Add new name for CC BY-NC-SA 2023-11-12 16:14:24 +01:00
jrenslin e0e2bc661f Add two new entries to ownership concordance list and title types one 2023-11-11 14:30:41 +01:00
jrenslin 6dfb0c6511 Map lowercase marking position 2023-11-10 03:11:55 +01:00
jrenslin 9e9492de82 Remove duplicate array key 2023-10-19 17:02:12 +02:00
jrenslin 2cb5d9171f Extend concordance lists 2023-10-19 16:15:44 +02:00
jrenslin a3650b2bee Extend concodance lists 2023-10-19 03:27:31 +02:00
jrenslin ffc5fd5992 Extend concordance lists 2023-10-18 23:13:58 +02:00
jrenslin e2d2c1b2d1 Extend list of known invalid lengths 2023-10-18 02:15:39 +02:00
jrenslin c75744f6be Update MDConcLengths 2023-10-17 15:50:35 +02:00
jrenslin 2d96e94d6d Fix defaults for length units, add weight unit concordance list 2023-10-17 00:35:50 +02:00
jrenslin 1b505437a4 Extend license and length lists 2023-10-16 22:39:16 +02:00
jrenslin 91a3c0e059 Extend lists, add MDConcFieldRelatedWorksType for specifying target
fields in imports with unspecified relatedWorks (like LIDO)
2023-10-16 16:46:17 +02:00
jrenslin 301efa38c3 Extend MDConcEventTypes 2023-10-15 18:29:37 +02:00
jrenslin 6557d499bb Extend event types concordance list 2023-10-15 03:08:30 +02:00
jrenslin 227d54d818 Extend concordance list for public domain statements 2023-10-13 11:39:03 +02:00
jrenslin dcfee56fb1 Extend concordance lists 2023-10-12 23:05:10 +02:00
jrenslin ba9b3bcaad Cover "Eigentum des Museums" in MDConcOwnershipStatus 2023-09-29 00:42:48 +02:00
jrenslin bd8ed59033 Extend concordance lists 2023-09-18 12:47:29 +02:00
jrenslin a3db74fc08 Update MDConcCurrencies 2023-09-10 04:06:29 +02:00
jrenslin 14473aedf6 Add "Bought" to concordance list for entry types 2023-09-09 17:02:17 +02:00
jrenslin 68c7ed06e2 Add concordance lists for colors, forms, sexes 2023-09-01 15:28:24 +02:00
jrenslin 21babdbd9d Remove duplicate mapping 2023-08-02 12:59:58 +02:00
jrenslin 3cb93a7142 Add concordance list entries for use 2023-07-31 19:41:55 +02:00
jrenslin ec17e00e18 Add alternative language concordance for english 2023-07-31 18:30:27 +02:00
jrenslin 10ced24a8a Map more event types and licenses 2023-07-28 17:35:55 +02:00
jrenslin 7b052cb37b Extend concordance lists for event types and licenses 2023-07-27 19:24:45 +02:00
jrenslin 3f236d9f5e Extend concordance lists 2023-07-27 01:44:23 +02:00
jrenslin 0d9160f49d Update MDConcLicenses 2023-07-26 15:25:07 +02:00
jrenslin 491f705258 Extend concordance lists 2023-07-25 22:35:10 +02:00
jrenslin 7c98685551 Extend concordance lists 2023-07-19 17:18:09 +02:00
jrenslin fbb1c35ad6 Fix link formatting in README 2023-06-24 00:24:49 +02:00
jrenslin ff49f1f319 Extend README and add section on testing 2023-06-23 19:21:39 +02:00
jrenslin 6466aa9b98 Add test to ensure all concordance lists throw the same error
(MDImporterMissingConcordance)
2023-06-23 19:19:11 +02:00
34 changed files with 3430 additions and 117 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2022 museum-digital
Copyright (c) 2022-2025 museum-digital
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+23 -1
View File
@@ -2,4 +2,26 @@
This directory contains concordance lists for accepted values. Where e.g. an entry type may be identified at museum-digital only by its ID, it is not realistic to expect providers of import data (which is to say: museums) to enter the entry type ID from museum-digital's relevant list. Hence, the lists contained in this subdirectory provide human-readable names for the IDs accepted by museum-digital as found in previous imports, so that they can be automatically translated to the IDs and names as used within the context of museum-digital.
The lists are grouped as class constants of their relevant entry type. All class names may be prefixed with _MDConc_.
The lists are grouped as (private) class constants of their relevant entry type.
- All class names may be prefixed with _MDConc_.
- All concordance list classes implement the MDImporterConcordanceListInterface interface.
- They can thus all be used using a static function `getConcordanceTarget(string $input)`. E.g.:
```
$checkType = MDConcCheckTypes::getConcordanceTarget("Vollständigkeit");
```
- All concordance lists can be found directly in the [`/src`](./src) directory.
## Environment and Purpose for Using a Separate Subrepository
This repository is intended to be used as a subrepository of MDImporter. Its full functionality is thus only available with the inclusion of some other subrepositories provided in the context of the importer (e.g. MDAllowedValueSets).
Editing can be done by simply adding to the lists however. It is hoped, that the publication of this subrepository as a standalone repository makes this process easier. Just clone this repository and enter the missing values in the relevant classes in the [`/src`](./src) directory.
## Testing
Tests exist to ensure that all concordance lists implement the MDImporterConcordanceListInterface interface and throw an MDImporterMissingConcordance exception, if a new, yet unknown value is encountered. If this repository is set up as part of an installation of the MDImporter, they can be run using:
```
phpunit tests
```
@@ -0,0 +1,18 @@
<?PHP
declare(strict_types = 1);
/**
* Exception thrown in case a requested concordance term is blacklisted.
*/
final class MDImporterBlacklistedConcordanceTerm extends Exception {
/**
* Error message.
*
* @return string
*/
public function errorMessage() {
//error message
return 'Blacklisted term requested for concordance list.';
}
}
@@ -5,6 +5,79 @@ declare(strict_types = 1);
* Exception thrown in case an update failed.
*/
final class MDImporterMissingConcordance extends Exception {
public string $target_type;
public string $value_to_map;
/** @var array<string, array<string>> */
private static array $_missing_concordances = [];
public static bool $suppress_shutdown_function = false;
private static bool $_shutdown_function_registered = false;
/**
* Gets the text for registering shutdown functions.
*
* @return string
*/
public static function getCleanMissingConcordanceReport():string {
if (empty(self::$_missing_concordances)) return '';
$output = PHP_EOL . PHP_EOL . "There are unmapped concordances. Please map them before proceeding." . PHP_EOL . "You may use https://concordance.museum-digital.org/ to do the mapping" . PHP_EOL . PHP_EOL;
foreach (self::$_missing_concordances as $key => $values) {
sort($values);
$output .= PHP_EOL . PHP_EOL . $key . PHP_EOL . PHP_EOL;
$output .= implode(PHP_EOL, array_unique($values));
}
$output .= PHP_EOL;
// Reset missing concordance report.
self::$_missing_concordances = [];
return $output;
}
/**
* Sets up an error.
*
* @param string $target_type Target type (e.g. "measurements").
* @param string $value_to_map Value to map.
*
* @return void
*/
public static function throw(string $target_type, string $value_to_map):void {
if (class_exists("MD_IMPORTER_CONF") && MD_IMPORTER_CONF::$dry_run === true) {
if (self::$_shutdown_function_registered === false) {
// Register printing at the end
register_shutdown_function(function() {
if (self::$suppress_shutdown_function === true) return;
echo self::getCleanMissingConcordanceReport();
});
self::$_shutdown_function_registered = true;
}
if (!isset(self::$_missing_concordances[$target_type])) {
self::$_missing_concordances[$target_type] = [];
}
self::$_missing_concordances[$target_type][] = $value_to_map;
return;
}
$exception = new MDImporterMissingConcordance("Unmapped specific value of type " . $target_type . ": '" . $value_to_map . '\'' . PHP_EOL . "Please consult https://concordance.museum-digital.org for filling out missing concordances");
$exception->target_type = $target_type;
$exception->value_to_map = $value_to_map;
throw $exception;
}
/**
* Error message.
*
@@ -0,0 +1,9 @@
<?PHP
declare(strict_types = 1);
/**
* Exception thrown in case a name entered for the relation between tag
* and object is actually an event type.
*/
final class MDImporterTagRelationTypeIsEventType extends Exception {
}
@@ -0,0 +1,21 @@
<?PHP
/**
* Describes a blacklist for the importer.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Describes a blacklist for the importer.
*/
interface MDImporterBlacklistInterface {
/**
* Checks if the input string is blacklisted.
*
* @param string $input Input string.
*
* @return bool
*/
public static function isBlacklisted(string $input):bool;
}
+420 -17
View File
@@ -11,38 +11,60 @@ declare(strict_types = 1);
*/
final class MDConcActor implements MDImporterConcordanceListInterface {
/**
* Substrings of an actor name listed as a key in this array will be replaced
* by the corresponding value.
*/
const NAME_SANITIZATIONS = [
"mythologische Figur" => "Mythologie",
"Mythologische Figur" => "Mythologie",
"Mythologische Gestalt" => "Mythologie",
"()" => "",
];
private const ACTOR_ROLES_TO_EVENT_TYPE = [
// 1: Created
"Aktionskünstler" => 1,
"Aktionskünstlerin" => 1,
"Aktionskünstler*in" => 1,
"Allgemeine Schriftleitung" => 1,
"Architekt" => 1,
"Architektin" => 1,
"Architekt*in" => 1,
'Architekt/in' => 1, // created by
"Ausführer" => 1,
"Ausführerin" => 1,
"Ausführer*in" => 1,
"Ausführende" => 1,
"Ausführung" => 1,
"Ausstellende Instanz" => 1,
"Ausstellende Behörde" => 1,
"Ausstellung von Bezugsscheinen" => 1,
"Bearbeiter" => 1,
"Bearbeiterin" => 1,
"Konstruktion" => 1,
"Bearbeiter*in" => 1,
"Bearbeitende" => 1,
"Bindung" => 1,
"Binder" => 1,
"Binderin" => 1,
"Binder*in" => 1,
"Blechblasinstrumentenbauer" => 1,
"Bossierer" => 1,
"Bossierin" => 1,
"Bossier*in" => 1,
"Bossierung" => 1,
"Bronzegießer" => 1,
"Bronzegießerin" => 1,
"Bronzegießer*in" => 1,
"Bronzeguss" => 1,
"Buchbinder" => 1,
"Buchbinderin" => 1,
"Buchbinder*in" => 1,
"Buchbindung" => 1,
"Büchsenmacher" => 1,
"Creator" => 1,
"creator" => 1,
"deutscher Baumeister, Ingenieur, Holzschneider, Kupferstecher, Zeichner, Topograph und Militärschrif" => 1,
"Drechsler" => 1,
"Elfenbeindrechsler" => 1,
"Elfenbeindrechslerin" => 1,
"Elfenbeindrechsler*in" => 1,
"Elfenbeinschnitzer" => 1,
"Elfenbeinschnitzerin" => 1,
"Elfenbeinschnitzer*in" => 1,
"Elfenbeinschnitzerei" => 1,
"Emailleur" => 1,
"Entwurf und Ausführung" => 1,
"Fabrik" => 1,
"Fayencemanufaktur" => 1,
@@ -51,17 +73,37 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Gesamtleitung" => 1,
"Gestaltung" => 1,
"Gewichtmacher" => 1,
"Gewichtmacherin" => 1,
"Gießer" => 1,
"Gießerin" => 1,
"Gießer*in" => 1,
"Glashütte" => 1,
"Glasgestalter" => 1,
"Glasgestalterin" => 1,
"Glasgestalter*in" => 1,
"Glasgraveur" => 1,
"Glasgraveurin" => 1,
"Glasgraveur*in" => 1,
"Glasmanufaktur" => 1,
"Goldschmied" => 1,
"Goldschmiedin" => 1,
"Goldschmied*in" => 1,
"Goldwaagenmacher" => 1,
"Goldwaagenmacherin" => 1,
"Goldwaagenmacher*in" => 1,
"Grafiker" => 1,
"Grafikerin" => 1,
"Grafiker*in" => 1,
"Grafiker/in" => 1,
"Graveur" => 1,
"Graveurin" => 1,
"Graveur*in" => 1,
"Guss" => 1,
"Guß" => 1,
"Hersteller" => 1,
"Herstellerin" => 1,
"Hersteller*in" => 1,
'Hersteller/in' => 1, // created by
"Hersteller/Künstler" => 1,
"Herstellung" => 1,
"Herstrellung" => 1,
@@ -74,94 +116,195 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Herstellung ?" => 1,
"Herseller" => 1,
"Hersteller & Produzent" => 1,
"Herstellung des später beigefügten Uhrwerkes" => 1,
"Haretslleung" => 1,
"Hersteller?" => 1,
"Technischer Hersteller" => 1,
"Herstellung elektr. Ausrüstung" => 1,
"Holzschneider" => 1,
"Holzschneiderin" => 1,
"Holzschneider*in" => 1,
"Ingenieur" => 1,
"Ingenieurin" => 1,
"Ingenieur*in" => 1,
'Ingenieur/in' => 1, // conceived by
"Ingenieur und Fachdolmetscher" => 1,
"Ingenieur in der Sowjetarmee" => 1,
"Interpret" => 1,
"Interpretin" => 1,
"Interpret*in" => 1,
"Interpret (B)" => 1,
"Interpret & Produzent" => 1,
"Interviewer" => 1,
"Interviewerin" => 1,
"Interviewer*in" => 1,
"Juwelier" => 1,
"Juwelier und Uhrmacher" => 1,
"K" => 1,
"Katograf" => 1,
"Keramiker" => 1,
"Keramikerin" => 1,
"Keramiker*in" => 1,
"Kolorist" => 1,
"Koloristin" => 1,
"Kolorist*in" => 1,
"Konstrukteur" => 1,
"Kunstler" => 1,
"Künstler" => 1,
"Künstlerin" => 1,
"Künstler*in" => 1,
"Künstler/in" => 1,
"Künstler (Bilder)" => 1,
"Künstler (Einband)" => 1,
"Kunsthandwerker" => 1,
"Kunsthandwerkerin" => 1,
"Kunsthandwerker*in" => 1,
"Laufschmied" => 1,
"Leitung" => 1,
"Malez" => 1,
"Maschinenfabrik" => 1,
"Mechanische Fabrik" => 1,
"Mechanische Werkstatt" => 1,
"Meister" => 1,
"Meisterin" => 1,
"Meister*in" => 1,
"Medailleur" => 1,
"Medailleurin" => 1,
"Medailleur*in" => 1,
"Metallwarenfabrik" => 1,
"Metallwarenfabrik und Apparatebau" => 1,
"Metallwarenfabrik und Waagenhersteller" => 1,
"Mechanikus" => 1,
'Mitarbeit' => 1, // created by
"Möbelbauer" => 1,
"Möbelbauerin" => 1,
"Möbelbauer*in" => 1,
"Musik" => 1,
"Musiker" => 1,
"Musikerin" => 1,
"Musiker*in" => 1,
"Münzmeister" => 1,
"Münzmeisterin" => 1,
"Münzmeister*in" => 1,
"Münzwardein" => 1,
"Oberingenieur" => 1,
"Oberingenieurin" => 1,
"Oberingenieur*in" => 1,
"Objektkünstler" => 1,
"Objektkünstlerin" => 1,
"Objektkünstler*in" => 1,
"Papiermacher" => 1,
"Papiermacherin" => 1,
"Papiermacher*in" => 1,
'Papierverarbeitungswerk' => 1, // created by
'Plattner' => 1, // created by
"Porzellanhersteller" => 1,
"Porzellanherstellerin" => 1,
"Porzellanhersteller*in" => 1,
"Porzellankünstler" => 1,
"Porzellankünstlerin" => 1,
"Porzellankünstler*in" => 1,
"Porzellanmanufaktur" => 1,
"Porzellanfabrik Burggrub" => 1,
"Prägeanstalt" => 1,
"Produzent" => 1,
"Produzentin" => 1,
"Produzent*in" => 1,
"Produktionsleiter" => 1,
"Produktionsleiterin" => 1,
"Produktionsleiter*in" => 1,
"Produktionsleitung" => 1,
"Produktion und Vertrieb" => 1,
"Regie und Schnitt" => 1,
"Regisseuer" => 1,
"Regisseuerin" => 1,
"Regisseuer*in" => 1,
"Reparatur" => 1,
"Reproduktion" => 1,
"Schäfter" => 1,
"Scherenschneider" => 1,
"Scherenschneiderin" => 1,
"Scherenschneider*in" => 1,
"Schlossschmied" => 1,
"Schneider" => 1,
"Schneiderin" => 1,
"Schneider*in" => 1,
"Schnitzer" => 1,
"Schnitzerin" => 1,
"Schnitzer*in" => 1,
"Seidensticker" => 1,
"Silberschmied" => 1,
"Silberschmiedin" => 1,
"Silberschmied*in" => 1,
"Schmiede und Waagenbau" => 1,
"Spezialwaagenfabrik" => 1,
"Spezialfabrik für Zähl- und Wägemaschinen" => 1,
"Spielwarenhersteller" => 1,
"Spielwarenherstellerin" => 1,
"Spielwarenhersteller*in" => 1,
"Steinbildhauer" => 1,
"Steinbildhauerin" => 1,
"Steinbildhauer*in" => 1,
"Steinmetz" => 1,
"Steinmetzin" => 1,
"Steinschneider" => 1,
"Steinmetz*in" => 1,
"Steingutfabrik" => 1,
"Stempelschneider" => 1,
"Stempelschneiderin" => 1,
"Stempelschneider*in" => 1,
"Strumpfwirkerei" => 1,
"Textbearbeitung" => 1,
"Textgestalter" => 1,
"Textgestalterin" => 1,
"Textgestalter*in" => 1,
"Tischler" => 1,
"Tischlerin" => 1,
"Tischler*in" => 1,
"Uhrmachermeister" => 1,
"Uhrmachermeisterin" => 1,
"Uhrmachermeister*in" => 1,
"Waagmacher" => 1,
"Waagmacherin" => 1,
"Waagmacher*in" => 1,
"Waagenfabrik" => 1,
"Waagen- und Maschinenfabrik" => 1,
"Waagenhersteller" => 1,
"Wardein" => 1,
"Wäschemangel, Waschmaschinenfabrik" => 1,
"Weber" => 1,
"Weberin" => 1,
"Weber*in" => 1,
"Werkstatt" => 1,
"Werkzeugmacher" => 1,
"Werkzeugmacherin" => 1,
"Werkzeugmacher*in" => 1,
"Zeug- und Sägeschmiede" => 1,
"Zinngießer" => 1,
"Zinngießerin" => 1,
"Zinngießer*in" => 1,
"Zinngießermeister" => 1,
"Zinngießermeisterin" => 1,
"Zinngießermeister*in" => 1,
// 2: Was found
"Ausgräber" => 2,
"Ausgräberin" => 2,
"Ausgräber*in" => 2,
"Finder" => 2,
"Finderin" => 2,
"Finder*in" => 2,
"Grabung" => 2,
"Grabungsleiter" => 2,
"Grabungsleiterin" => 2,
"Grabungsleiter*in" => 2,
"Grabungsleitung" => 2,
// 3: Published
"Verlag" => 3,
"Verleger" => 3,
"Verlegerin" => 3,
"Verleger*in" => 3,
"Dolmetscher und Verleger" => 3,
"Druck / Verlag (Postkarte)" => 3,
"Kupferstecher und Verleger" => 3,
@@ -171,21 +314,36 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
// 4: Template creation
"Entwerfer" => 4,
"Entwerferin" => 4,
"Entwerfer*in" => 4,
"Entwicklung" => 4,
"Entwurf" => 4,
"Entwurf; Vorlage" => 4,
'Entwerfer/in' => 4, // conceived by
'Entwerfer/in ?' => 4, // conceived by
"Original / Entwurf nach" => 4,
"Original / Kopie nach" => 4,
"Künstler der Vorlage" => 4,
"Künstlerin der Vorlage" => 4,
"nach einem Gemälde von Werner Lenz" => 4,
"Maler der Vorlage" => 4,
"Modellbauer" => 4,
"Modellbauerin" => 4,
"Modellbauer*in" => 4,
"nach" => 4,
'Original / Vorlage' => 4,
'Original / Vorlage zu' => 4,
'Kopie nach / Orginal Figurengruppe' => 4,
"Schöpfer der Vorlage" => 4,
"Schöpferin der Vorlage" => 4,
"Schöpfer*in der Vorlage" => 4,
"Schöpfer der Scherenschnitte" => 4,
"Schöpferin der Scherenschnitte" => 4,
"Stecher der Vorlage" => 4,
"Vorlagenkünstler" => 4,
"Zeichner der Vorlage" => 4,
"Kopie nach" => 4,
"Kopievariante nach" => 4,
'Zeichnung nach' => 4,
// 5: Displayed actor
"Abgebildet" => 5,
@@ -203,58 +361,90 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Datsrellung" => 5,
"Dastellung" => 5,
"Dartsellung" => 5,
"Dargestellte Person" => 5,
"dargestellt" => 5,
"Dargestellt" => 5,
"Dargestellte Personen" => 5,
"Person (Ikonographie)" => 5,
"Wurde abgebildet (Akteur)" => 5,
// 6: Was used
"Aussteller" => 6,
"Ausssteller" => 6,
"Ausstellerin" => 6,
"Aussteller*in" => 6,
"Ausstellung" => 6,
"Auswahl" => 6,
"Bearbeitung" => 6,
"Bearbeiter der Sache" => 6,
"bearbeitet von" => 6,
"Forscher" => 6,
"Forscherin" => 6,
"Forscher*in" => 6,
"Gebrauch" => 6,
"Kommentar" => 6,
'Miniatur zugeschrieben an' => 6,
"Nutzer" => 6,
"Nutzerin" => 6,
"Nutzer*in" => 6,
"Nutzung" => 6,
"Nutzung durch" => 6,
"Verwendung" => 6,
"Projektmitarbeiter" => 6,
"Produzent & Autor des Kommentars" => 6,
"Referent" => 6,
"Verwendung" => 6,
'Verteiler/in' => 6, // was used by
"Verwender" => 6,
"Verwenderin" => 6,
"Verwender*in" => 6,
"Verwendet von" => 6,
"Verwendung" => 6,
"Veranstalter" => 6,
'Veranstalter/in' => 6, // [general]
"wissenschaftliche Leitung" => 6,
"Zusammensteller" => 6,
"Zusammenstellerin" => 6,
"Zusammensteller*in" => 6,
"Ausstellungsgestaltung" => 6,
"Karte ausgestellt auf u.g.P." => 6,
// 7: Written
"Autor" => 7,
"Autorin" => 7,
"Autor*in" => 7,
'Autor/in' => 7, // written by
"Autor & Herausgeber" => 7,
"Autor, Wehrmachtsangehöriger" => 7,
"Autor, Illustrator" => 7,
"Author" => 7,
"Autoren" => 7,
"Autorenschaft" => 7,
"Autor des deutschen Textes" => 7,
"Aufnahmen, Zusammenstellung, Erläuterung" => 7,
"deutscher Schriftsteller" => 7,
"Dichter" => 7,
"Dichterin" => 7,
"Dichter*in" => 7,
"Dichtung" => 7,
"Freie Autorin" => 7,
"Freie Autor*in" => 7,
"Freier Autor" => 7,
"Journalist ?" => 7,
"Kalligraf" => 7,
"Kalligrafin" => 7,
"Kalligraf*in" => 7,
"Kalligraph" => 7,
"Kalligraphin" => 7,
"Kalligraph*in" => 7,
"Komponist" => 7,
"Komponistin" => 7,
"Komponist*in" => 7,
"Korrespondenz" => 7,
"Manuskript" => 7,
"Schreiber" => 7,
"Schriftsteller" => 7,
"Schriftstellerin" => 7,
"Schriftsteller*in" => 7,
"sow. Schriftsteller" => 7,
"sowj. Kriegsberichterstatter" => 7,
"Text" => 7,
@@ -263,6 +453,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Text und Bildunterschriften" => 7,
"Verfasser" => 7,
"Verfasserin" => 7,
"Verfasser*in" => 7,
"Verfasser, Göttinger Universitätsprofessor" => 7,
"Verfasser, Direktor des Stadtarchivs" => 7,
"Verfasser, Verleger" => 7,
@@ -270,7 +461,10 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Verfasserin (Texte)" => 7,
"vf [Verfasser/in] [nicht dokumentiert]" => 7,
"Vorwortverfasser" => 7,
"Vorwortverfasserin" => 7,
"Vorwortverfasser*in" => 7,
"vf [nicht dokumentiert]" => 7,
"Widmungsschreiber" => 7,
// 8: Collected
"Besitzer des Originals" => 8,
@@ -281,36 +475,72 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"ehemaliger Leihgeber" => 8,
"ehemals Besitzer des Originals" => 8,
"Leihgeber" => 8,
"Leihgeberin" => 8,
"Leihgeber*in" => 8,
"Leihgabe" => 8,
"Privatsammler" => 8,
"Privatsammlerin" => 8,
"Privatsammler*in" => 8,
"Sammler" => 8,
"Sammlerin" => 8,
"Sammler*in" => 8,
"Kompilator" => 8,
"Sammler (Zuordnung unsicher)" => 8,
"Sammler des Originals" => 8,
"Vermittler" => 8,
"Vermittlerin" => 8,
"Vermittler*in" => 8,
"Vermittlung" => 8,
"Herkunft" => 8,
// 9: Painted
"Buchmaler" => 9,
"Buchmalerin" => 9,
"Buchmaler*in" => 9,
"Buchmalerei" => 9,
"Graphiker und Maler" => 9,
"Graveurin, Malerin" => 9,
"Fayencemaler" => 9,
"Fayencemalerin" => 9,
"Fayencemaler*in" => 9,
"Fayencemalerei" => 9,
"Kunstmaler" => 9,
"Kunstmalerin" => 9,
"Kunstmaler*in" => 9,
"Kunstmalerei" => 9,
"Maler" => 9,
"Malerei" => 9,
"Maler, seit 1972 Bühnenbildner und Regisseur" => 9,
"Maler der Fälschung" => 9,
"Malerin" => 9,
"Maler*in" => 9,
'Maler/in' => 9, // painted by
"Malerin, Grafikerin" => 9,
"Maler (zugeschrieben)" => 9,
"Malermeister" => 9,
"Malermeisterin" => 9,
"Malermeister*in" => 9,
"Prospektmaler" => 9,
"Prospektmalerin" => 9,
"Prospektmaler*in" => 9,
"Porzellanmaler" => 9,
"Porzellanmalerei" => 9,
"Porzellanmalerin" => 9,
"Porzellanmaler*in" => 9,
// 10: Recorded / image taken
"Filmaufnahme" => 10,
"Fotograf" => 10,
"Fotografin" => 10,
"Fotograph" => 10,
"Fotografen" => 10,
"Photograph" => 10,
"Fotografin" => 10,
"Fotograf*in" => 10,
"photographer" => 10,
'Fotograf/in' => 10, // photographed by
"Fotografie" => 10,
"Fotograph" => 10,
"Fotographin" => 10,
"Fotograph*in" => 10,
"Fotograph/in" => 10,
"Fotograf (Wehrmachtssoldat)" => 10,
"Fotograf(en) ?" => 10,
"Hofphotograph, Königsberg" => 10,
@@ -320,8 +550,11 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
'Fotokorrespondent der Zeitung "Krasnaja Swesda"' => 10,
"Foto und Design" => 10,
"Fotokorrespondent der Zeitung \"Krasnaja Swjesda\"" => 10,
"Foto Krüger Inh. K. Schildmann" => 10,
"Photograph" => 10,
"Photographin" => 10,
"Photograph*in" => 10,
'Militärfotograf der WGT' => 10,
"Musikerin" => 10,
'Reichsbildberichterstatter der NSDAP' => 10,
"Schnitt" => 10,
"Atelier" => 10,
@@ -332,6 +565,15 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
// 11: Received
"Adressat" => 11,
'Adressat/in' => 11, // received by
"Beschenkter" => 11,
"Beschenkte Person" => 11,
"Beschenkte Person (Geburtstag)" => 11,
"Beschenkte Person (Hochzeitstag)" => 11,
"Beschenkte Person (Jahrestag)" => 11,
"Beschenkte Person (Jubiläum)" => 11,
"Beschenkte Person (Namenstag)" => 11,
"Beschenkte Person (Weihnachten)" => 11,
"Dartsellung & Empfänger" => 11,
"Empfäger" => 11,
"Empfänger" => 11,
@@ -340,17 +582,44 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Emrfänger" => 11,
"Empfaenger" => 11,
"Empfängerin" => 11,
"Empfänger*in" => 11,
"Korrespondenzp Empfänger" => 11,
"Korrespondenzpartner" => 11,
"Korrespondenzpartnerin" => 11,
"Korrespondenzpartner*in" => 11,
"Widmungsempfangende Person" => 11,
"Widmungsempfänger" => 11,
"Widmungsempfängerin" => 11,
"Widmungsempfänger*in" => 11,
// 12: Printing plate produced
"Formschneider" => 12,
"Formschneiderin" => 12,
"Formschneider*in" => 12,
"Formschnitt" => 12,
"Inventor & Stecher" => 12,
"Kupferstecher" => 12,
"Kupferstecherin" => 12,
"Kupferstecher*in" => 12,
"Kupferstich" => 12,
"Lithograf" => 12,
"Lithograf & Verleger" => 12,
"Lithografin" => 12,
"Lithograf*in" => 12,
"Lithografie" => 12,
"Lithograph" => 12,
"Lithographie" => 12,
"Lithographin" => 12,
"Lithograph*in" => 12,
"Lithograph & Verleger" => 12,
"Radierer" => 12,
"Radiererin" => 12,
"Radierer*in" => 12,
"Radierung" => 12,
"Stecher" => 12,
"Stecherin" => 12,
"Stecher*in" => 12,
"Stich" => 12,
"Stecher & Verleger" => 12,
"Typograph" => 12, // Problematic
"Typograf" => 12, // Problematic
@@ -359,18 +628,30 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
// 13: Sent
"Absender" => 13,
"Absenderin" => 13,
"Absender*" => 13,
"Verleiher" => 13,
"Verleiherin" => 13,
"Verleiher*in" => 13,
"Verleher" => 13,
"Vorlage" => 13,
"Vorleger" => 13,
"Vorlegerin" => 13,
"Vorleger*in" => 13,
// 14: Issued
"ausstellende Körperschaft" => 14, // Issued
// 15: Signed
"Antragsteller" => 15,
"Antragstellerin" => 15,
"Antragsteller*in" => 15,
"Mitunterzeichner" => 15,
"Mitunterzeichnerin" => 15,
"Mitunterzeichner*in" => 15,
"Unterschrift" => 15,
"Unterzeichner" => 15,
"Unterzeichnerin" => 15,
"Unterzeichner*in" => 15,
// 16: First description
@@ -378,6 +659,8 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Zeichner" => 19,
"Zeichnerin" => 19,
"Zeichner*in" => 19,
'Zeichner/in' => 19, // drawn by
'Zeichnung' => 19, // drawn by
"Zeichner / Inventor" => 19,
"Zeichner, Autor der Dekoration" => 19,
"Zeichner und Grafiker" => 19,
@@ -388,16 +671,29 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Gesamtgestaltung, Zeichnungen und Verse" => 19,
"Inventor & Zeichner" => 19,
"Ornamentzeichner" => 19,
"Ornamentzeichnerin" => 19,
"Ornamentzeichner*in" => 19,
"Stecher & Zeichner" => 19,
"Zeichner u. Stecher" => 19,
// 20: Copied
"Abgeschrieben" => 20,
"Kopist" => 20,
"Übersetzer" => 20,
"Übersetzerin" => 20,
"Übersetzer*in" => 20,
'Übersetzer/in' => 20, // [general]
'Übrsetzer/in' => 20, // [general]
"Übersetung" => 20,
// 21: Lived
// 25: Commissioned
"Auftrag" => 25,
"Auftraggeber" => 25,
"Auftraggebende Person" => 25,
"Auftraggeberin" => 25,
"Auftraggeber*in" => 25,
"Auftraggeber/in" => 25,
"ausgestellt für" => 25,
"Bestellung" => 25,
@@ -406,15 +702,21 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Bestelling" => 25,
"Bestellung ?" => 25,
"Besteller" => 25,
"Bestellerin" => 25,
"Besteller*in" => 25,
"Münzherr" => 25,
"Münzherrschaft" => 25,
// 26: Printed
"Buchdruckerei" => 26,
"Buchdruck" => 26,
"Druck" => 26,
"Drucker" => 26,
"Drucker & Verleger" => 26,
"Druckerei" => 26,
"Druckereien" => 26,
"Druckerin" => 26,
"Drucker*in" => 26,
"Druck (Bilder)" => 26,
"Druck (Text)" => 26,
"Bearbeitung und Druck" => 26,
@@ -432,7 +734,10 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Sänger (Bordun)" => 28,
"Sänger u. Instrumentalist" => 28,
"Sänger und Instrumentalist" => 28,
"Sängerin" => 28,
"Sänger*in" => 28,
"Vorsänger" => 28,
'Sprecher' => 28, // ?
"(Rufe)" => 28,
// 29: Decor designed
@@ -440,13 +745,23 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
// 30: Form designed
"Bildhauer und Mosaizist" => 30,
"Bildhauer" => 30,
"Bildhauerei" => 30,
"Bildhauerin" => 30,
"Bildhauer*in" => 30,
'Bildhauer/in' => 30, // modelled by
// 31: Modelled
"Bildhauer, Modelleur" => 31,
"Modell" => 31,
"Modelleur" => 31,
"Modelleurin" => 31,
"Modelleur*in" => 31,
"Porzellanmodelleur" => 31,
"Porzellanmodelleurin" => 31,
"Porzellanmodelleur*in" => 31,
"Töpfermeister" => 31,
"Töpfermeisterin" => 31,
"Töpfermeister*in" => 31,
// 32: Autographed / signed
"signiert, aber Kopie!" => 32,
@@ -457,6 +772,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"d [nicht dokumentiert]" => 33,
"Erwähnt" => 33,
"erwähnt" => 33,
"Genannte Person" => 33,
"Ertwähnt" => 33,
"Erwaehnt" => 33,
"Erwähnung" => 33,
@@ -466,40 +782,79 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Wappen" => 33,
// 34: Buried
"Grabmal" => 34,
// 35: Intellectual creation
"Autor & Produzent" => 35,
"Design" => 35,
"Designer" => 35,
"Designerin" => 35,
"Designer*in" => 35,
"Erfinder" => 35,
"Erfinderin" => 35,
"Erfinder*in" => 35,
"Erfindung" => 35,
"Gestalter" => 35,
"Gestalterin" => 35,
"Gestalter*in" => 35,
"Gestaltung" => 35,
"Inventor" => 35,
"Inventorin" => 35,
"Inventor*in" => 35,
"Inventor des ursprünglichen Entwurfs" => 35,
"Idee und Gestaltung" => 35,
"Interpret & Komponist" => 35,
"Kartograf" => 35,
"Kartografin" => 35,
"Kartograf*in" => 35,
'Konzept' => 35, // conceived by
"Modedesign" => 35,
"Modedesigner" => 35,
"Modedesignerin" => 35,
"Modedesigner*in" => 35,
"Schriftentwerfer" => 35,
"Schriftentwerferin" => 35,
"Schriftentwerfer*in" => 35,
"Schriftentwurf" => 35,
"Texter" => 35,
"Urheber" => 35,
// 37: Painted on
"Bemalung" => 37,
"Glasmaler" => 37,
"Glasmalerin" => 37,
"Glasmaler*in" => 37,
"Glasmalerei" => 37,
"Porzellanmaler" => 37,
"Porzellanmalerei" => 37,
"Porzellanmalerin" => 37,
"Porzellanmaler*in" => 37,
"Porzellanplatte mit Grisaille-Malerei" => 37,
// 38: Illustrated
"Illustration" => 38,
"Illustrator" => 38,
"Illustratorin" => 38,
"Illustrator*in" => 38,
'Illustrator/in' => 38, // painted by
// 39: Assembled
"Instrumentenbau" => 39,
"Instrumentenbauer" => 39,
"Instrumentenbauerin" => 39,
"Instrumentenbauer*in" => 39,
"Kompilator" => 39,
"Kompilatorin" => 39,
"Kompilator*in" => 39,
"Kompilation" => 39,
"Musikinstrumentenbauer" => 39,
"Musikinstrumentenbauerin" => 39,
"Musikinstrumentenbauer*in" => 39,
"Zusammenstellung" => 39,
"Zusmaensteller" => 39,
"Zusmaenstellerin" => 39,
"Zusmaensteller*in" => 39,
"Zusmaenstellung" => 39,
// 40: Auctioned
"Auktionshaus" => 41,
@@ -512,18 +867,34 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
// 42: Owned
"Besitzer" => 42,
"Besitz" => 42,
"Besizer" => 42,
"Besitzerin" => 42,
"Besitzer*in" => 42,
"ehem. Besitzer" => 42,
"ehem. Besitzer/Provenienz" => 42,
"ehem. Besitzer / Provenienz" => 42,
"Eigentum" => 42,
"Eigentüm" => 42,
"Eigentümer" => 42,
"Eigentümerin" => 42,
"Eigentümer*in" => 42,
"Eigentumer" => 42,
"Inhaber" => 42,
"Inhaberin" => 42,
"Inhaber*in" => 42,
"Rechteinhaber" => 42,
"Rechteinhaberin" => 42,
"Rechteinhaber*in" => 42,
"Schenker" => 42,
"Schenkerin" => 42,
"Schenker*in" => 42,
"Stifter" => 42,
"Stifterin" => 42,
"Stifter*in" => 42,
"Treuhänder" => 42,
"Treuhänderin" => 42,
"Treuhänder*in" => 42,
"Verwaltung" => 42,
"Verwalung" => 42,
"Vrwaltung" => 42,
@@ -538,7 +909,10 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Verwalzung" => 42,
"Verwaltutung" => 42,
"Vertwaltung" => 42,
"Vorbesitz" => 42,
"Vorbesitzer" => 42,
"Vorbesitzerin" => 42,
"Vorbesitzer*in" => 42,
"Vrrbesitzer" => 42,
"VerwaltungVorbesitzer" => 42,
"Vorbesitzer (historische Angabe)" => 42,
@@ -554,17 +928,23 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"zweiter Vorbesitzer" => 42,
"1. Vorbesitzer" => 42,
"2. Vorbesitzer" => 42,
"Vorbesitzer (EXTERN)" => 42,
"Voreigentümer" => 42,
// 43: Sold
"händler" => 43,
"Verkäufer" => 43,
"Verkäuferin" => 43,
"Verkäufer*in" => 43,
"vertrieb" => 43,
"Vertrieb" => 43,
// 44: Restorated
"Restaurator" => 44,
"RestauratorIn" => 44,
"Restauratorin" => 44,
"Restaurator*in" => 44,
"Restaurierung" => 44,
// 45: Damaged
@@ -577,7 +957,11 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Zusammenstelung und Herausgabe" => 48,
"Zusammenstellung und Einleitung" => 48,
"Herausgeber" => 48,
"Herausgeberin" => 48,
"Herausgeber*in" => 48,
'Herausgeber/in' => 48, // edited by
"Heraugeber" => 48,
"publication" => 48,
"Herausgeber (deutscher Anthropologe, Prof. Dr.)" => 48,
// 23: Related actor
@@ -592,6 +976,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Mit dem Objekt verbunden" => 23,
"Abteilungsleiter der Abteilung III/2 Vortragswesen, Rednervermittlung im Amt Deutsches Volksbildungswerk, Berlin-Wilmersdorf, Kaiserallee 25" => 23,
"Abgebildestes Werk von" => 23,
"Admiral" => 23,
"Arzt" => 23,
"Angehöriger der Deutschen Wehrmacht" => 23,
@@ -615,6 +1000,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Bezirksvorsteher Revier 70/3" => 23,
"Bezirksbürgermeister von Berlin-Tiergarten" => 23,
"Bezug zu" => 23,
"Bezugsperson" => 23,
"Bezugaberechtigter" => 23,
"Brigadenführer auf dem MTS Ciorani, Region Prahova (Volksrepublik Rumänien)" => 23,
"Bürgermeister von Lastrup" => 23,
@@ -627,9 +1013,11 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Chef der Garnison der Stadt Dresden" => 23,
"Chemische und Seifenfabrik" => 23,
"Denkmal" => 23,
"Der Gebietskommissar und kom. Oberbürgermeister der Stadt Riga" => 23,
"Division und Wehrbereichskommando VIII" => 23,
"Divisionskommandeur" => 23,
'Dozent/in' => 23, // [general]
"Dozent an der Deutschen Hochschule für Politik in Berlin" => 23,
"Dr. jur." => 23,
@@ -639,6 +1027,9 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"ehem. Wehrmachtsangehöriger, Kraftfahrer" => 23,
"Erster Sekretär des Zentralkomitees der SED" => 23,
"Exilpolitiker" => 23,
'Impulsgebende Person' => 23,
"zugeschrieben" => 23,
"zugeschrieben an" => 23,
"Feldwebel" => 23,
"Feuerwehrmann im 2. Weltkrieg" => 23,
@@ -714,6 +1105,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Leiter des Museums der Verteidigung der Festung Brest (1959)" => 23,
"Leiter einer Abteilung des Ministeriums für Staatssicherheit der UdSSR, Gardeoberst" => 23,
"Leitung des Theaters" => 23,
"Lektüre" => 23,
"letzte Funktion___ 1. Stellvertreter des Leiters der Bezirksverwaltung des MfS, Frankfurt (Oder)" => 23,
"Leutnant" => 23,
"Leutnant der Deutschen Wehrmacht" => 23,
@@ -723,6 +1115,8 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Leutnant der Wehrmacht" => 23,
"Leutnant der 422. Artillerieabteilung der 18. Panzerdivision" => 23,
"Leutnant des 4. Schützenregiments der XX. Division" => 23,
'Lizenz' => 23, // [general]
'LÖSCHEN' => 23, // [general]
"Luftstreitkräfte der Sowjetunion" => 23,
"Major und Kompaniechef im Infanterie-Regiment 1" => 23,
@@ -772,6 +1166,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
25" => 23,
"Oberstudiendirektor" => 23,
"Offizier der schw. Art. Abt. 816, speziell 4. schw. Ers.-Batt.Art. Ers. Abt. 59 (mot)" => 23,
"Ordensstifter" => 23,
"Organ der Kreisleitung Bor" => 23,
"O.T. Linienchef der Dg.IV, der Abschnittsbauleiter" => 23,
@@ -798,6 +1193,12 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"russischer Kriegsgefangene" => 23,
"Sanitätsoffizier" => 23,
"Schenkende Person" => 23,
"Schenkende Person (Geburtstag)" => 23,
"Schenkende Person (Jahrestag)" => 23,
"Schenkende Person (Jubiläum)" => 23,
"Schenkende Person (Namenstag)" => 23,
"Schenkende Person (Weihnachten)" => 23,
"Sekretär der Parteiorganisation des Hauses der Offiziere, Major" => 23,
"Sekretär der Wohnparteiorganisation 42" => 23,
"1. Sekretär der Kreisleitung, Oberst" => 23,
@@ -854,6 +1255,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Vorsteher des Lagers der Kriegsgefangenen der Stadt Pretzsch (Hauptmann)" => 23,
"Wehrbezirkskommandeur, Oberst" => 23,
'Werkbundmitglied' => 23, // [general]
"Wehrmacht" => 23,
"Wehrmachtssoldat" => 23,
"Wehrmachtsoffizier" => 23,
@@ -881,7 +1283,8 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):int {
if (!isset(self::ACTOR_ROLES_TO_EVENT_TYPE[$input])) {
throw new MDImporterMissingConcordance("Unknown actor role: " . $input);
MDImporterMissingConcordance::throw("actor role", $input);
return 1; // Return default in dry-run mode
}
return self::ACTOR_ROLES_TO_EVENT_TYPE[$input];
+70
View File
@@ -0,0 +1,70 @@
<?PHP
/**
* Mapping for certainty-expressing fields to certainty in events.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Mapping for certainty-expressing fields to certainty in events.
*/
final class MDConcCertainty implements MDImporterConcordanceListInterface {
// Public for access in concordance.museum-digital.org
public const MAPPING = [
// Uncertain
'alternative Zuschreibung' => false,
'Art des' => false,
'Atelier von' => false,
'ehemals zugeschrieben' => false,
'fraglich' => false,
'möglicherweise von' => false,
'nach' => false,
'nach Literatur UND alternativ' => false,
'Stil des' => false,
'Schule von' => false,
'Schule des' => false,
'traditionelle Zuschreibung' => false,
'Umkreis von' => false,
'Werkstatt von' => false,
'zugeschriebe' => false,
'zugeschrieben' => false,
'zugeschrieben an' => false,
'Ausführung' => false,
'Entwurf' => false,
'geschätzt / unsicher / vermutet' => false,
// Certain
'sicher' => true,
'Herstellung' => true,
'gesichert' => true,
'nach Passepartoutnotiz' => true,
'Zusammenarbeit mit' => true,
'überarbeitet von' => true,
'Nachfolger von' => true,
'by' => true,
];
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return boolean
*/
public static function getConcordanceTarget(string $input):bool {
if (!isset(self::MAPPING[$input])) {
MDImporterMissingConcordance::throw("certainty identifier", $input);
return true; // Return default in dry-run mode
}
return self::MAPPING[$input];
}
}
+2 -1
View File
@@ -25,7 +25,8 @@ final class MDConcCheckTypes implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):MDObjectCheckType {
if (!isset(self::CHECK_TYPES[$input])) {
throw new MDImporterMissingConcordance("Unknown check type: " . $input);
MDImporterMissingConcordance::throw("check", $input);
return MDObjectCheckType::completeness_check; // Return default in dry-run mode
}
return self::CHECK_TYPES[$input];
+4 -1
View File
@@ -26,10 +26,12 @@ final class MDConcCloserLocationTypes implements MDImporterConcordanceListInterf
"2" => "2",
"Fundort" => "2",
"Place of discovery" => "2",
"Lelőhely" => "2",
# Former place
"3" => "3",
"Former place" => "3",
"Früherer Ort" => "3",
];
@@ -43,7 +45,8 @@ final class MDConcCloserLocationTypes implements MDImporterConcordanceListInterf
public static function getConcordanceTarget(string $input):string {
if (!isset(self::LOCATION_TYPES_VERBOSE[$input])) {
throw new MDImporterMissingConcordance("Unknown location type: " . $input);
MDImporterMissingConcordance::throw("location", $input);
return "3"; // Return default in dry-run mode
}
return self::LOCATION_TYPES_VERBOSE[$input];
+36
View File
@@ -0,0 +1,36 @@
<?PHP
/**
* Constains lists for grouping colors.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Constains lists for grouping colors.
*/
final class MDConcColors implements MDImporterConcordanceListInterface {
private const COLORS_LIST = [
'Gelb' => 'yellow',
'Schwarz' => 'black',
];
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return string
*/
public static function getConcordanceTarget(string $input):string {
if (!isset(self::COLORS_LIST[$input])) {
MDImporterMissingConcordance::throw("color", $input);
return "black"; // Return default in dry-run mode
}
return self::COLORS_LIST[$input];
}
}
+49 -7
View File
@@ -12,40 +12,78 @@ declare(strict_types = 1);
final class MDConcCurrencies implements MDImporterConcordanceListInterface {
private const CURRENCIES_LIST = [
"" => "",
"^" => "",
"-" => "",
"_" => "",
"x" => "",
"00" => "",
"1,00" => "",
"5,00" => "",
"10,00" => "",
"23.117,55" => "",
"15.01.1900" => "",
"Belarussischer Rubel" => 'by-BYN',
// Schweizer Franken / Swiss Franc
"SFR" => "ch-CHF",
"French Franc" => "fr-FF",
"Forint" => "hu-Ft",
"Korona" => "hu-Korona",
"Austro-Hungarian krone" => "hu-Korona",
"Pengő" => "hu-Pengő",
"pengő" => "hu-Pengő",
"CHF" => "ch-CHF",
"Swiss franc" => "ch-CHF",
// Deutsche Mark
"DM" => "de-DM",
"dM" => "de-DM",
"Dm" => "de-DM",
"CM" => "de-DM", // Cameroon (CM > CFA franc BEAC is correct, but for now a typo of DM is more likely
"DN" => "de-DM", // For now, this is seen as a typo for DM
"DNM" => "de-DM",
"DEM" => "de-DM",
"Mark" => "de-DM",
"de-DM" => "de-DM",
"Deutsche Mark" => "de-DM",
// Reichsmark (Deutschland)
"RM" => "de-RM",
"Reichsmark" => "de-RM",
"Reichsmark (Deutsches Reich)" => "de-RM",
"Reichsmark (Deutsches Reich" => "de-RM",
// Franc (France)
"French Franc" => "fr-FF",
// Forint
"Forint" => "hu-Ft",
"FT" => "hu-Ft",
"Korona" => "hu-Korona",
"Austro-Hungarian krone" => "hu-Korona",
"Korona (osztrák-magyar" => "hu-Korona",
"Pengő" => "hu-Pengő",
"pengő" => "hu-Pengő",
"Indonesian Ruphian" => 'id-IDR',
"EUR" => "eu-EUR",
"euro" => "eu-EUR",
"Euro" => "eu-EUR",
"EURO" => "eu-EUR",
"Євро" => "eu-EUR",
"eu-EUR" => "eu-EUR",
"" => "eu-EUR",
"Mark (DDR)" => "ddr-Mark",
"Mark (DDR" => "ddr-Mark",
"DDRMk" => "ddr-Mark",
"ddr-Mark" => "ddr-Mark",
"Ukrainian hryvnia" => "ua-UAH",
"грн" => "ua-UAH",
"гривня" => "ua-UAH",
"гривні" => "ua-UAH",
"грн." => "ua-UAH",
"карбованці" => "ua-UAK",
"GBP" => "uk-GBP",
"uk-GBP" => "uk-GBP",
"Pfd" => "uk-GBP", // Pfund
"USD" => "us-USD",
"US Dollar" => "us-USD",
"US dollar" => "us-USD",
"$ USA" => "us-USD",
];
/**
@@ -58,7 +96,11 @@ final class MDConcCurrencies implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):string {
if (!isset(self::CURRENCIES_LIST[$input])) {
throw new MDImporterMissingConcordance("Unknown currency: " . $input);
if (in_array($input, MDCurrenciesSet::CURRENCIES, true)) {
return $input;
}
MDImporterMissingConcordance::throw("currency", $input);
return "eu-EUR"; // Return default in dry-run mode
}
return self::CURRENCIES_LIST[$input];
+14 -1
View File
@@ -13,6 +13,13 @@ final class MDConcDamageTypes implements MDImporterConcordanceListInterface {
private const DAMAGE_TYPES = [
"breakage" => MDObjectDamageType::breakage,
"Wasserschaden" => MDObjectDamageType::water_damage,
"Austrocknung" => MDObjectDamageType::desiccation,
"Desiccation" => MDObjectDamageType::desiccation,
];
private const DAMAGE_TYPES_BLACKLIST = [
'keine',
];
/**
@@ -25,7 +32,13 @@ final class MDConcDamageTypes implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):MDObjectDamageType {
if (!isset(self::DAMAGE_TYPES[$input])) {
throw new MDImporterMissingConcordance("Unknown damage type: " . $input);
if (in_array($input, self::DAMAGE_TYPES_BLACKLIST, true)) {
throw new MDImporterBlacklistedConcordanceTerm("Invalid damage type: " . $input);
}
MDImporterMissingConcordance::throw("damage", $input);
return MDObjectDamageType::desiccation; // Return default in dry-run mode
}
return self::DAMAGE_TYPES[$input];
+186 -11
View File
@@ -17,6 +17,7 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"" => "0",
"ABM 95" => "0",
"Angebot" => "0",
"Armbrustersammlung" => "0",
"g" => "0",
"Herkunft unklar" => "0",
"keine Angaben" => "0",
@@ -27,43 +28,148 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"22.09.2009" => "0",
"23.09.2009" => "0",
"1959" => "0",
"Zugangsart (MPlus) - als: (MDigital" => "0",
"Kutatást igényel" => "0", // Google TL: "It requires research"
"Leipzig" => "0",
"lt." => "0",
"Grotewohlring" => "0",
"FLM" => "0",
"Schriftliches" => "0",
"schriftliches" => "0",
"Export_Eingangsart" => "0",
"Verlagerung" => "0",
"Sc" => "0",
"Seiffen" => "0",
"aus" => "0",
"Gerd" => "0",
"D-Einsiedel" => "0",
"D-Einsiedel," => "0",
"Hersteller" => "0",
"Ungeklärt" => "0",
"Dorfmuseum Marzahn" => "0",
"Märkisches Museum" => "0",
"Sanierungsbestand Hornmoldhaus" => "0",
"unklar" => "0",
"unklar, aus dem alten Bestand" => "0",
"?" => "0",
"To be checked" => "0",
"Zugang ungeklärt" => "0",
// 1: Donation
"Ajándék" => "1",
"Ajándékozás" => "1",
"ajándékozás" => "1",
"Abgabe" => "1",
"Donation" => "1",
"Geschenk" => "1",
"Geschenk 2010" => "1",
"Geschenk (Lederscheide" => "1",
"Geschenk 20.10.03" => "1",
"Schenkung" => "1",
"Schenkung / Spende" => "1",
"Schenkung/abgeschr. B. DHM" => "1",
"Schenkung an die Stadt Ravensburg" => "1",
"Schenkung & Nachlass lt. Testament vom 18.09.2001" => "1",
"Schhenkung" => "1",
"Schnekung" => "1",
"Schenung" => "1",
"Schenkungn" => "1",
"Schenkung/" => "1",
"Schenkung / Nachlass" => "1",
"Schenkung an" => "1",
"Schenkung-Ver" => "1",
"Schenkung 2010" => "1",
"Schenkung-BB" => "1",
"Schenkkung" => "1",
"Schenkg" => "1",
"Schenkung, intern" => "1",
"Zugabe" => "1",
"Übereignung" => "1",
"Schenkung/ Kauf" => "1",
"Schenkung bzw. Rückgabe" => "1",
"Schenkung an den Förderverein" => "1",
"Schenkung Briefkasten Museum" => "1",
"Schenkung 03/06 v.Ostereiermarkt" => "1",
"Schenkung von Johannes Cornel" => "1",
"Schenkung/abgeschr.B. DHM" => "1",
"Sachspende" => "1",
"Spende" => "1",
"spende" => "1",
"Sepnde" => "1",
"Spene" => "1",
"Anonyme Spende" => "1",
"Kostenlose" => "1",
"Überlassung" => "1",
"Übertragung" => "1",
"Spendenquittung" => "1",
"Spendenbescheinigung" => "1",
"Передача" => "1", // UK: Transfer
"передача" => "1", // UK: Transfer
"Передавання" => "1", // UK: Transmission.
"Передавання." => "1", // UK: Transmission.
"Передано Інститутом археології АН УРСР (нині – ІА НАНУ" => "1", // Submitted by the Institute of Archeology of the Academy of Sciences of the Ukrainian SSR (now - IA of the National Academy of Sciences
"Передано Інститутом археології АН УРСР (нині - ІА НАНУ" => "1", // Submitted by the Institute of Archeology of the Academy of Sciences of the Ukrainian SSR (now - IA of the National Academy of Sciences
"Передано з фондів Державного історичного музею УРСР" => "1", // Transferred from the funds of the State Historical Museum of the Ukrainian SSR
// 2: Purchase
"Ankauf" => "2",
"Ankau" => "2",
"3Ankauf" => "2",
"Ankauf Peitz" => "2",
"Ankauf Sagar" => "2",
"Anakuf" => "2",
"Anakauf" => "2",
"Abkauf" => "2",
"ANKAUF" => "2",
"Anlauf" => "2",
"Ankauf," => "2",
"Ankaufspreis:" => "2",
"Ankauf, 50€" => "2",
"Bought" => "2",
"Bestellung" => "2",
"Kauf Verein" => "2",
"Kauf - Ebay" => "2",
"Kaufvertrag" => "2",
"Einkauf" => "2",
"Einzelkauf" => "2",
"Einzelkauf, Ebay" => "2",
"Erwerb" => "2",
"Gekauft" => "2",
"Großankauf" => "2",
"Globalankauf" => "2",
"Gesamtankauf" => "2",
"Globalankaufl" => "2",
"Gobalankauf" => "2",
"Global-Ankauf" => "2",
"Globalnkauf" => "2",
"Glopalankauf" => "2",
"Globalkauf" => "2",
"Globalanlkauf" => "2",
"Globlankauf" => "2",
"Gloalankauf" => "2",
"globalankauf" => "2",
"lobalankauf" => "2",
"Gloabalankauf" => "2",
"Glkobalankauf" => "2",
"Globalanakuf" => "2",
"Globalanakauf" => "2",
"Gl.-Ankauf" => "2",
"kauf" => "2",
"Kauf" => "2",
"Kauf-global-1025,-" => "2",
"Kauf-global-10,-" => "2",
"kauf-global-10,-" => "2",
"Kauf-global-50,-" => "2",
"Kauf-global-250,-" => "2",
"Kauf-global-250.-" => "2",
"Kauf-glöbal-250,-" => "2",
"kauf-global-250,-." => "2",
"kauf-global-250,-" => "2",
"Kauf-global-2560,-" => "2",
"kauf-globval-250,-" => "2",
"Kauf-.global-250,-" => "2",
"Kauf/Sammelkauf" => "2",
"Kauf/Sammelkauf Klebs" => "2",
"Kauf 2006" => "2",
"Kauf 2009" => "2",
"Kauf d.Förderverein" => "2",
@@ -71,11 +177,20 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"Kauf d. Förderverein" => "2",
"Kauf Förderverein" => "2",
"Kauf-Verein" => "2",
"Kaufglobal" => "2",
"Purchase" => "2",
"Sammelankauf" => "2",
"Sammelkauf" => "2",
"sammelkauf" => "2",
"Sammelkauf/ 3 Kannen" => "2",
"Sammelkauf, Einzelpreis" => "2",
"Sammelkauf, Gesamtpreis" => "2",
"Sammelkauf(mit DD97/005KU" => "2",
"Sammelkauf(mit DD97/004KU" => "2",
"unterstützter Kauf" => "2",
"Überweisung" => "2",
"Verkauf" => "2",
"KaufKauf" => "2",
"Vásárlás" => "2",
"vásárlás" => "2",
"Vétel" => "2",
@@ -85,21 +200,33 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"Excavation" => "3",
"Feltárás" => "3",
"Grabung" => "3",
"Grabungsfund" => "3",
"Grabungsfund Arch. Landesamt" => "3",
"Bergung" => "3",
// 4: Emergenccy Rescue
// 4: Emergenncy Rescue
"Notbergung" => "4",
"Sürgősségi értékmentés" => "4",
// 5: Inheritance
"Erbgang" => "5",
"Erbschaft" => "5",
"Inheritance" => "5",
"Nachlass" => "5",
"Nachlaß" => "5",
"Nachlaß/Schenkung" => "5",
"Nachlass Angenete" => "5",
"nachlass angenete" => "5",
"Nachlaß-Übernahme" => "5",
"Nachlaßübernahme" => "5",
"Nachlass Dr. Enste" => "5",
"Stiftung/Nachlass" => "5",
"Ankauf & Nachlass v. Steffen Lange" => "5",
"Übergabe & Nachlass Otto Garten (lt. Testament - gez. vom 18.09. 20018" => "5",
"Übergabe & Nachlass Otto Garten (lt. Testament - gez. vom 18.09. 2001" => "5",
"Übergabe & Nachlass lt. Testament" => "5",
"Übergabe & Nachlass lt. Testament vom 18.09.2001" => "5",
"übergabe & Nachlass lt. Testament vom 18.09.2001" => "5",
"Vermächtnis" => "5",
"Erbschaft / Nachlass" => "5",
"Hagyaték" => "5",
@@ -108,6 +235,7 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
// 6: Endowment
"Endowment" => "6",
"Stiftung" => "6",
"Stiftung (1930" => "6",
"Hivatalos átadás" => "6",
// Disposession
@@ -124,9 +252,11 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"Leihgabe" => "9",
"Leihgabwe" => "9",
"Leiggabe" => "9",
"Leihnahme" => "9",
"Loan" => "9",
"Verliehen" => "9",
"Leihgabe vom" => "9",
"Leihvertrag mit Sonderregelung" => "9",
// 10: Exchange
"Austausch" => "10",
@@ -134,6 +264,7 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"csere" => "10",
"Exchange" => "10",
"Tausch" => "10",
"Sammeltausch" => "10",
// 11: In-house production
"Abzüge von alten Negativen" => "11",
@@ -142,13 +273,20 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"Eigenfertigung" => "11",
"Eigenfertigung des Museums" => "11",
"Eigenproduktion" => "11",
"Eigene" => "11",
"Fotokopie" => "11",
"hausintern" => "11",
"In-house production" => "11",
"Lehrwerkst." => "11",
"Neuanfertigung" => "11",
"Herstellung" => "11",
"Eigenherstelung" => "11",
"Eigenherstellung" => "11",
"Preßglas" => "11",
"Hergestellt im Auftrag des Heimatvereins" => "11",
"Saját előállítás" => "11",
"Xerox-Kopie" => "11",
"Interner Zugang" => "11",
// 12: Material Strain (Törzsanyag)
"Törzsanyag" => "12",
@@ -161,41 +299,72 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"Finding" => "15",
"Fund" => "15",
"Fundstück" => "15",
"Fundstücke" => "15",
"Baufund MHQ" => "15",
"Lelőhely" => "15",
"Räumung" => "15",
"Begehungsfund" => "15",
"Sperrmüll" => "15",
"Fund bei der Renovierung des Spitalturms 1993" => "15",
"Streufund aus dem Garten Rosenstr. 31, RV" => "15",
// 16: Permanent Loan
"Dauerleihe" => "16",
"Dauerleihgabe" => "16",
"Dauerausleihe" => "16",
"Dauerleihgabe von Privat" => "16",
"Letét" => "16",
"Permanent loan" => "16",
"permanent loan" => "16",
"Tartós leltét" => "16",
// 98: Other legal acquisition
// 98: Old belongings
"Altbestand" => "98",
"Altebestand" => "98",
"alter Bestand" => "98",
"Alter Bestand" => "98",
"Altbestand Domäne Dahlem" => "98",
"Altbestand Kapitulationsmuseum" => "98",
"Altbestand, Zugangsart unbekannt" => "98",
"Altbestand, Herkunft unklar" => "98",
"Altbestand MM" => "98",
"Altbestand Dorfmuseum Marzahn" => "98",
"Altbestand Märkisches Museum" => "98",
"Altbestand Domäne MM" => "98",
"altbestand Domäne Dahlem" => "98",
"Besitz" => "98",
"Depositum" => "98",
"gefunden im Großdepot R. 104" => "98",
"Museums Altbestand" => "98",
"To be checked" => "98",
"Depotfund" => "98",
"Eigentum" => "98",
"Ungeklärt" => "98",
"unklar" => "98",
"unklar, aus dem alten Bestand" => "98",
"?" => "98",
"Zugang ungeklärt" => "98",
// 99: Other legal acquisition
"Anderer rechtmäßiger Zugang" => "99",
"Bodenreform" => "99",
"sichergestellt" => "99",
"Other legal acquisition" => "99",
"Egyéb hivatalos megszerzés" => "99",
"Global" => "99",
"Zurückgegeben" => "99",
"Übernahme" => "99",
"Übernahme 1986" => "99",
"Übernahme von Betrieb" => "99",
"Teilbetrag" => "99",
"mitgenommen" => "99",
"Übernhame" => "99",
"bernahme" => "99",
"unbekant" => "99",
"Ünernahme" => "99",
"Übergabe" => "99",
"Unbezeichnet" => "99",
"unbezeichnet" => "99",
"Übergabe abgeschr.B. DHM" => "99",
"gyűjtés" => "99",
"sch" => "99",
"Auftragsarbeit für Museum" => "99",
"Einzelkauf/Schenkung" => "99",
"Schenkung / Leihgabe" => "99",
];
@@ -208,11 +377,17 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
*/
public static function getConcordanceTarget(string $input):string {
if (!isset(self::ENTRY_TYPES_VERBOSE[$input])) {
throw new MDImporterMissingConcordance("Unknown entry type: " . $input);
if (isset(self::ENTRY_TYPES_VERBOSE[$input])) {
return self::ENTRY_TYPES_VERBOSE[$input];
}
return self::ENTRY_TYPES_VERBOSE[$input];
$inputTrimmed = trim($input, " ,;.-_\t\n");
if (isset(self::ENTRY_TYPES_VERBOSE[$inputTrimmed])) {
return self::ENTRY_TYPES_VERBOSE[$inputTrimmed];
}
MDImporterMissingConcordance::throw("entry (to museum)", $input);
return "99"; // Return default in dry-run mode
}
}
+326 -7
View File
@@ -15,27 +15,147 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
// 1: Created
'Hergestellt' => 1,
'Hergestellt vermutlich' => 1,
'Herstellung Fassung' => 1,
'Herstellung' => 1,
'Ausführung und Herstellung' => 1,
'Ausführung
Herstellung' => 1,
'Entwurf und Ausführung' => 1,
'Entwurf und Herstellung' => 1,
'zugeschrieben' => 1,
'ehem. zugeschrieben' => 1,
'Mitarbeit' => 1,
'Dekor' => 1,
'Dekor vermutet' => 1,
'Technischer Hersteller' => 1,
'Herstellung vermutlich' => 1,
'Herstellungsort' => 1,
'vermuteter Herstellungsort' => 1,
'vermuteter Herstellungsort
vermuteter Herstellungsort' => 1,
'Production' => 1,
'production' => 1,
'Herstellung des Exemplars' => 1,
'Bearbeitung' => 1,
'Erschaffung/Herstellung' => 1,
'creation' => 1,
'bearbeitet' => 1,
'gestempelt (' => 1,
'gestempelt (\'' => 1,
'Beginning of existence' => 1,
'creation' => 1,
'Erschaffung/Herstellung' => 1,
'Entwurf, Herstellung und Verlag' => 1,
'Herstellung und Verlag' => 1,
'Architekt/in' => 1, // created by
"Guss" => 1,
"Guß" => 1,
'http://terminology.lido-schema.org/eventType/production' => 1,
'Leipoldt, J.' => 1,
'Produktion' => 1,
'Rohleder, Walter, Reichenbach' => 1,
'vermutet' => 1,
// "Unknown event"
'Aktivität' => 1,
"Katograf" => 1,
'http://terminology.lido-schema.org/lido00004' => 1,
'Ereignis' => 1,
'http://terminology.lido-schema.org/lido00003' => 1,
'Herstellung des Abzugs/der Abformung' => 1,
'Ausführung' => 1,
'Gos-Mehrfacheintrag' => 1,
'vermuteter Herstellungsort Fassung' => 1,
'Kupferstecher' => 1,
'Herstellungsort Fassung' => 1,
'Herstellungsort Hose' => 1,
'Herstellungsort Münze' => 1,
'Herstellung oder Vertrieb' => 1,
'Herstellung zugeschrieben' => 1,
'Umkreis' => 1,
'Herstellungsort Parametisches Modell' => 1,
'Herstellungsort Druck, Guss und Nachbearbeitung' => 1,
// 2: Was found
'Fund' => 2,
'Auffinden' => 2, // Finding
'Ausgrabung' => 2, // Excavation
'Excavation' => 2,
'Fund' => 2, // Finding
'Fund (Aktivität)' => 2,
'Ausgrabung' => 2,
'Finding' => 2,
'Finding (Activity)' => 2,
'Gefunden' => 2,
'Auffindungsort' => 2,
"Виявлення" => 2,
"Виявленнґ" => 2,
'Finding
(Activity)' => 2,
'http://terminology.lido-schema.org/lido00002' => 2,
'Розкопки' => 2, // Excavation
'Знахідка' => 2, // Find
// 3: Published
'Published' => 3,
'Veröffentlicht' => 3,
'Veröffentlichung' => 3,
'Verleger' => 3,
'Verlag' => 3,
'published' => 3,
'http://terminology.lido-schema.org/eventType/publication' => 3,
'Publikation' => 3,
'Publishing' => 3,
'Publication' => 3,
'Publication Event' => 3,
'Publication (Event)' => 3,
// 4: Template creation
'Template creation' => 4,
'Vorlagenerstellung' => 4,
'Stichvorlage' => 4,
'Vorlage' => 4,
'Vorlage vermutet' => 4,
'Entwurf; Vorlage' => 4,
'Entwurfsort' => 4,
'Entwurf Umkreis' => 4,
'Entwurf vermutet' => 4,
'Entwurf zugeschrieben' => 4,
'Kopie nach' => 4,
'Original / Vorlage' => 4,
'Original / Vorlage zu' => 4,
'Zeichnung nach' => 4,
// 5: Displayed actor
'Was displayed (actor)' => 5,
'Wurde abgebildet (Akteur)' => 5,
'dargestellte Person' => 5,
'Displayed actor' => 5,
'Darstellung' => 5,
// 6: Was used
'Aufführung' => 6,
'Ausstellung' => 6,
'Ausstellung (Aktivität)' => 6,
'http://terminology.lido-schema.org/lido00225' => 6,
'Verwendungsort' => 6,
'Miniatur zugeschrieben an' => 6,
'Move of object' => 6,
'Wurde genutzt' => 6,
'Verwendung' => 6,
'gebrauch' => 6,
'Gebrauch' => 6,
'Use' => 6,
'http://terminology.lido-schema.org/eventType/use' => 6,
'Diener' => 6,
'Digitalisierung' => 6,
'Дослідження' => 6, // Research
'Дослідження:' => 6, // Research
// 7: Written
'Written' => 7,
'Geschrieben' => 7,
'Verfasst' => 7,
'Text verfasst' => 7,
'geschrieben' => 7,
'verfasst' => 7,
'Autor/in' => 7, // written by
// 8: Collected
'Collected' => 8,
@@ -43,14 +163,74 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
'Sammeln' => 8,
'Collecting' => 8,
'Sammeltätigkeit' => 8,
'Sammelereignis' => 8,
'http://terminology.lido-schema.org/lido00010' => 8,
'Zuordnung zu einem kuratierten Bestand' => 8,
'http://terminology.lido-schema.org/lido01146' => 8,
'Збирання/колекціонування' => 8, // Gathering/collecting
'Знайдення' => 8, // Finding
'знайдення' => 8, // Finding
'Передача' => 8, // Transfer
'передача' => 8, // Transfer
'Привезена' => 8,
'Передавання' => 8, // Transmission
// 9: => Painted
'Painted' => 9,
'Gemalt' => 9,
"Malerei" => 9,
// 10: Recorded
'Fotografische Aufnahme' => 10,
'Aufnahme' => 10,
'Aufgenommen' => 10,
'Herstellung (Aufnahme)' => 10,
// '11' => Received
'Adressat/in' => 11, // received by
'Received' => 11,
'Empfangen' => 11,
'empfangen' => 11,
'Отримання' => 11, // Receiving
// 12 => Printing plate produced
'Printing plate produced' => 12,
'Druckplatte hergestellt' => 12,
'Herstellung der Druckform/Form' => 12,
'http://terminology.lido-schema.org/lido00484' => 12,
// '13' => Sent
'Sent' => 13,
'Gesendet' => 13,
'Versendet' => 13,
'Abgeschickt' => 13,
// '14' => Issued
'Issued' => 14,
'Ausgefertigt' => 14,
// '15' => Signed
'Signed' => 15,
'Unterzeichnet' => 15,
// '16' => First description
'First description' => 16,
'Erstbeschreibung' => 16,
'Typuszuweisung' => 16,
'http://terminology.lido-schema.org/lido00023' => 16,
// '19' => Drawn
'Drawn' => 19,
'Gezeichnet' => 19,
// 20: Copied
'Copied' => 20,
'Kopiert' => 20,
'Abgeschrieben' => 20,
// 21: Lived
'Lived' => 21,
'Gelebt' => 21,
// 22: Related place
'Geografischer Bezug' => 22,
@@ -61,16 +241,154 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
'Auftrag' => 25,
'Commissioning' => 25,
'Beauftragung' => 25,
'Beauftragt' => 25,
// 26 => Printed
'Printed' => 26,
'Gedruckt' => 26,
// 27 => Recorded
'Recorded song' => 27,
// 28 => Sung
'Sung' => 28,
'Gesungen' => 28,
'Gesprochen' => 28, // ?
'Sprecher' => 28, // ?
// 29 => Decor designed
'Decor designed' => 29,
'Dekor entworfen' => 29,
// 30 => Form designed
'Form designed' => 30,
'Form entworfen' => 30,
// 31 => Modelled
'Modell' => 31,
'Modelled' => 31,
'Modelliert' => 31,
// 32 => Autographed/Signed
'Autographed/Signed' => 32,
'Signiert' => 32,
// 33 => Mentioned
'Mentioned' => 33,
'Wurde erwähnt' => 33,
// 34 => Buried
'Buried' => 34,
'Vergraben' => 34,
// 35: Intellectual creation
'Design' => 35,
'design' => 35,
'Designing' => 35,
'komponiert' => 35,
'Entwerfen' => 35,
'Entwurf' => 35,
'Geistige Schöpfung' => 35,
'Kulturelle Zuschreibung' => 35,
'Merkmalszuweisung' => 35,
'http://terminology.lido-schema.org/lido00024' => 35,
'http://terminology.lido-schema.org/lido00224' => 35,
// 36 => Was depicted
'Was depicted (place)' => 36,
'Wurde abgebildet (Ort)' => 36,
// 37 => Painted on
'Painted on' => 37,
'Bemalt' => 37,
"Porzellanplatte mit Grisaille-Malerei" => 37,
// 38 => Illustrated
'Illustrated' => 38,
'Illustriert' => 38,
// 39 => Assembled
'Assembled' => 39,
'Was assembled' => 39,
'zusammengefügt' => 39,
'Wurde zusammengefügt' => 39,
// 40 => Auctioned
'Auctioned' => 40,
'Was auctioned' => 40,
'Versteigert' => 40,
'Wurde versteigert' => 40,
// 41: Was Bought
'Erwerb' => 41,
'Acquisition (Activity)' => 41,
'Kauf' => 41,
'Gekauft' => 41,
'acquisition_Kauf' => 41,
// 42: Owned
'acquisition_unbekannt' => 42,
'acquisition_Leipoldt' => 42,
'acquisition_Mehlig, P.' => 42,
'acquisition_Krone, Hermann' => 42,
'acquisition_Schlegel, Charlotte' => 42,
'acquisition_Schröder' => 42,
'acquisition_Meier, Th.J.' => 42,
'acquisition_Schaarschuh, Dresden' => 42,
'acquisition_Schönfelder, R.' => 42,
'acquisition_Neumeister' => 42,
'acquisition_Oehmichen' => 42,
'acquisition_Photo-Schröder' => 42,
'acquisition_Rohleder' => 42,
'acquisition_Mehlig' => 42,
'Provenienz' => 42,
'Provenance' => 42,
'Besessen' => 42,
'VorbesitzerIn' => 42,
'http://terminology.lido-schema.org/lido00227' => 42,
// 43: Was sold
'was sold' => 43,
'Verkauft' => 43,
'Verkauf' => 43,
'Acquisition / Selling' => 43,
'Vertrieb' => 43,
// 44: Restorated
'Restaurierung' => 44,
'Restauriert' => 44,
'wurde restauriert' => 44,
// 45: Damaged
'Damaged' => 44,
'Beschädigung' => 44,
'wurde beschädigt' => 44,
// 48: Edited
'Herausgegeben' => 48,
'Verlag zugeschrieben' => 48,
"publication" => 48,
// 49: Gifted, donated
'Schenkung' => 49,
'Nachlass' => 49,
'Übergabe' => 49,
'Stiftung' => 49,
'Donation' => 49,
'Gespendet / Geschenkt' => 49,
'acquisition_Schenkung' => 49,
'acquisition_Nachlass' => 49,
'acquisition_Übergabe' => 49,
'acquisition_Stiftung' => 49,
'acquisition_Bodenreform' => 49,
// General acquisition
'Erwerb' => 56,
'Erwerbung' => 56,
'http://terminology.lido-schema.org/lido01151' => 56,
'http://terminology.lido-schema.org/lido00001' => 56,
'Acquisition' => 56,
'Acquisition (Activity)' => 56,
'Bodenreform' => 56,
'acquisition_Diener' => 56,
];
@@ -84,7 +402,8 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):int {
if (!isset(self::EVENT_TYPE_NAMES_TO_ID[$input])) {
throw new MDImporterMissingConcordance("Unknown entry type: " . $input);
MDImporterMissingConcordance::throw("event", $input);
return 1; // Return default in dry-run mode
}
return self::EVENT_TYPE_NAMES_TO_ID[$input];
+213
View File
@@ -0,0 +1,213 @@
<?PHP
/**
* Represents a possible target for importing related works
* as defined by LIDO.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Represents a possible target for importing related works
* as defined by LIDO.
*/
enum MDConcFieldRelatedWorksType {
case related_works_freetext;
case series;
case literature;
case weblink;
case undefined;
/**
* Returns a target field value of this type based on a string.
*
* @param string $input Input to get a value from.
*
* @return MDConcFieldRelatedWorksType
*/
public static function fromString(string $input):MDConcFieldRelatedWorksType {
$output = match($input) {
"Dokumentiert in",
"dokumentiert in",
'is documented in',
"Erwähnung in",
":iterature",
"Beschrieben in",
"Literatur",
"Literatur in Zusammenhang",
'Literatur zum Stück',
'Standardzitierwerk',
'beschrieben in',
"Reproduziert in: ",
"reproduziert in: ",
"reproduced in: ",
"Reproduziert in",
"reproduziert in",
"reproduced in",
"wird beschrieben in",
'http://digicult.vocnet.org/terminology/ter01113',
'http://terminology.lido-schema.org/lido00617',
'Quelle',
"beschrieben in" => self::literature,
"Teil von",
"ist Teil von",
"ist physischer Teil von",
"Gehört zu",
"gehört zu",
"Gehört zu Sammlung",
"gehört zu Sammlung",
"Part of",
"Gesamtwerk",
"part of",
"Photoserie",
"Mappe",
"series",
"Konvolut",
"http://digicult.vocnet.org/terminology/ter00235",
"Serie" => self::series,
"hat Vorlage",
"Kopie von",
"Objekt",
"ist Version von",
"inhaltlicher Bezug zu",
'Vorlage für',
'hat Studie',
'vorbereitend für',
'Entwurf für',
'hat Reproduktion',
'abgeleitet von',
'auf einem Blatt mit',
'hat Entwurf',
'Skizze für',
'hat Skizze',
'hat Druckplatte',
'Reproduktion von',
'Druckplatte für',
'Studie für',
'Beinhaltet',
'hat Gegendruck',
'Gegendruck zu',
'Wiedergabe von',
'Wiedergabe für',
"Teil",
'verso von',
'recto von',
"Teil 1",
"Teil 2",
"Teil 3",
"Teil 4",
"hat Teil",
"has part",
"Dublette",
"Objektbezug",
"Vergleiche",
"Umfasst",
"Entwurf",
"Vorderseite",
"Rückseite",
"Paarweise mit",
"Zustandsdruck",
"Foto",
"Original",
"Variante",
"Aufnahme Objekt",
"Zusammen mit",
"Ausführung",
"Related objects",
"Abbildung identisch",
'http://digicult.vocnet.org/terminology/ter00223',
"Join",
"Hauptobjekt",
"Akte",
"Vorgang",
"Form",
"Identisch mit",
"Kopie",
"Gegenstück zu",
"hat Version",
"hat Kopie",
"ist Verso von",
"ist Recto von",
"ist Kopie nach",
"ist Quelle für",
"in Beziehung zu",
"ist abgeleitet von",
"ist vorbereitend für",
"Enthalten in",
"Enthält",
"Verso von",
"Recto von",
"ist Teil desselben konzeptuellen Ganzen mit",
"ist vorbereitende Studie für",
"hat vorbereitende Studie",
"basiert auf",
"Druck",
"Referenz",
"Haupttafel",
"Faksimile",
"Blatt",
"Photo",
"Einzelteil",
'Objekt identisch',
'Form von',
'Formprodukt von',
'Abbildung weitgehend identisch',
'abgebildet auf/in',
'bildet ab',
'basierend auf',
'Pendant zu',
'ist Pendant zu',
'Ist Pendant zu',
'Pendant von',
'ist Pendant von',
'Ist Pendant von',
'enthält',
'hat Bezug zu',
'Abzug',
'weiterer Abzug',
"Teil desselben Werkprozesses",
"part of the same work process",
"ist Abzug von Druckform",
"hat physischen Teil",
'exemplifies',
'bezogen auf',
'http://terminology.lido-schema.org/lido00263',
'http://digicult.vocnet.org/terminology/ter00224',
'http://digicult.vocnet.org/terminology/ter00225',
'http://digicult.vocnet.org/terminology/ter00230',
'http://digicult.vocnet.org/terminology/ter00231',
'http://digicult.vocnet.org/terminology/ter00233',
'http://digicult.vocnet.org/terminology/ter00234',
'http://digicult.vocnet.org/terminology/ter00243',
'http://digicult.vocnet.org/terminology/ter00238',
'http://digicult.vocnet.org/terminology/ter01237',
"verwandt mit",
"Zusammen ein Ganzes bildend mit",
"Vorlage" => self::related_works_freetext,
"Weblink",
"Web link",
"Fachportal",
'Externer Link',
'http://digicult.vocnet.org/terminology/ter01391'
=> self::weblink,
"" => self::undefined,
default => null,
};
if ($output === null) {
MDImporterMissingConcordance::throw("related work type", $input);
return self::undefined; // Return default in dry-run mode
}
return $output;
}
}
+62 -1
View File
@@ -12,8 +12,68 @@ declare(strict_types = 1);
final class MDConcLanguages implements MDImporterConcordanceListInterface {
private const LANGUAGES_LIST = [
# English
'English' => 'en',
'englisch' => 'en',
'Englisch' => 'en',
'Englisch\'' => 'en',
'eng' => 'en',
'EN' => 'en',
'ENG' => 'en',
'eng; ger' => 'en',
'en-GB' => 'en',
# German
'Deutsch' => 'de',
'deutsch' => 'de',
'German' => 'de',
'ger' => 'de',
'deu' => 'de',
'Buch' => 'de',
'Deutsch, Latein' => 'de',
'deutsch, französisch' => 'de',
'deutsch, russisch' => 'de',
'deutsch u. plattdeutsch' => 'de',
'deutsch / englisch' => 'de',
'deurtsch' => 'de',
'lat; ger' => 'de',
'ger; lat' => 'de',
'ger; eng' => 'de',
# Latin
'lat' => 'la',
# Russian
'rus' => 'ru',
# Hungarian
'Hungarian' => 'hu',
'Magyar' => 'hu',
# Czech
'Tschechisch' => 'cs',
'tschechisch' => 'cs',
'cz' => 'cs',
# Plattdeutsch / Niederdeutsch
'plattdeutsch' => 'nds',
# Latin
'Latein' => 'la',
'Latein, Deutsch, Italenisch, Spanisch, Englisch' => 'la',
# French
'fra' => 'fr',
'fre' => 'fr',
'Französisch' => 'fr',
'französisch' => 'fr',
# Italian
'ita' => 'it',
'it-it' => 'it',
'italienisch' => 'it',
'Italienisch' => 'it',
];
/**
@@ -26,7 +86,8 @@ final class MDConcLanguages implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):string {
if (!isset(self::LANGUAGES_LIST[$input])) {
throw new MDImporterMissingConcordance("Unknown language type: " . $input);
MDImporterMissingConcordance::throw("language", $input);
return "de"; // Return default in dry-run mode
}
return self::LANGUAGES_LIST[$input];
+96 -17
View File
@@ -10,31 +10,110 @@ declare(strict_types = 1);
* Provides lists for categorizing misspelled sizes.
*/
final class MDConcLengths implements MDImporterConcordanceListInterface {
private const LENGTHS_LIST = [
"cn" => "cm",
",cm" => "cm",
"5cm" => "cm",
"inch" => "in",
"Zoll" => "in",
"zoll" => "in",
];
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return string
* @return MDLengthUnit|false
*/
public static function getConcordanceTarget(string $input):string {
public static function getConcordanceTarget(string $input):MDLengthUnit|false {
if (!isset(self::LENGTHS_LIST[$input])) {
throw new MDImporterMissingConcordance("Unknown length type: " . $input);
}
return match($input) {
// Default: Empty
"Breite",
"breite",
"Width",
"width",
"Höhe",
"höhe",
"Height",
"height",
"´´´",
"Theater",
"Oper",
"min",
"-",
"a)",
"/",
"geöffnet",
"Scheibe",
"Trageöse",
"ohneRahmen",
"mitRahmen",
"ohne Rahmen",
"mit Rahmen",
"Verpackung",
"mitFassung",
"ohneFassung",
"mit Fassung",
"ohne Fassung",
"nichtfeststellbar",
"nicht feststellbar",
"amBodenhinten",
"am Bodenhinten",
"am Boden hinten",
"andenSchildzapfen",
"an den Schildzapfen",
"anderMündung",
"an der Mündung",
"Fuß",
"Innendurchmesser",
"mitStulpe",
"mit Stulpe",
"mitHolzrahmen",
"mit Holzrahmen",
"mitStahlrahmen",
"mit Stahlrahmen",
"Pfeilhöhe",
"Klingenbreite",
"bis",
"vorne",
"hinten",
"zwischenund",
"Standring",
"kleinsterDurchmesser",
"größterDurchmesser",
"kleinster Durchmesser",
"größter Durchmesser",
"Klinge",
"Henkel",
"mitFaden",
"mit Faden",
"ohneFaden",
"ohne Faden",
"nichtmessbar",
"nicht messbar",
"Stoffbreite" => false,
return self::LENGTHS_LIST[$input];
// cm
"cn",
",cm",
"5cm",
"Zentimeter",
"см",
"",
"ca" => MDLengthUnit::cm,
"Meter",
"Meters",
"meter",
"meters" => MDLengthUnit::m,
"Milimeter",
"Milimeters",
"Millimeter",
"Millimeters",
"мм",
"ma" => MDLengthUnit::mm,
"inch",
"Zoll",
"zoll" => MDLengthUnit::ft,
default => throw new MDInvalidLengthUnit("Invalid length unit " . $input),
};
}
}
+96 -2
View File
@@ -12,17 +12,41 @@ declare(strict_types = 1);
final class MDConcLicenses implements MDImporterConcordanceListInterface {
private const LICENSES_LIST = [
"CCO" => "CC0",
"CC 0" => "CC0",
"CC_0" => "CC0",
"CC O" => "CC0",
"CC0 1.0" => "CC0",
"CC 0 1.0" => "CC0",
"CC_0 1.0" => "CC0",
"CC0 1.0 Universell" => "CC0",
"CC0 1.0 Universell (CC0 1.0)" => "CC0",
"kein Copyright / Public domain (CC0 1.0)" => "CC0",
"http://creativecommons.org/publicdomain/zero/1.0" => "CC0",
"http://creativecommons.org/publicdomain/zero/1.0/" => "CC0",
"http://creativecommons.org/publicdomain/zero/1.0/deed.de" => "CC0",
"https://creativecommons.org/publicdomain/zero/1.0" => "CC0",
"https://creativecommons.org/publicdomain/zero/1.0/" => "CC0",
"https://creativecommons.org/publicdomain/zero/1.0/deed.de" => "CC0",
"CC_BY" => "CC BY",
"CC-BY" => "CC BY",
"CC.BY" => "CC BY",
"https://creativecommons.org/licenses/by-sa/4.0/" => "CC BY",
"CC BY 4.0" => "CC BY",
"CC_BY 4.0" => "CC BY",
"CC-BY 4.0" => "CC BY",
"CC.BY 4.0" => "CC BY",
"http://creativecommons.org/licenses/by/4.0" => "CC BY",
"http://creativecommons.org/licenses/by/4.0/" => "CC BY",
"http://creativecommons.org/licenses/by/4.0/de" => "CC BY",
"http://creativecommons.org/licenses/by/4.0/deed.de" => "CC BY",
"https://creativecommons.org/licenses/by/4.0" => "CC BY",
"https://creativecommons.org/licenses/by/4.0/" => "CC BY",
"https://creativecommons.org/licenses/by/4.0/de" => "CC BY",
"https://creativecommons.org/licenses/by/4.0/deed.de" => "CC BY",
"Namensnennung 4.0. International (CC BY 4.0)" => "CC BY",
"Namensnennung 4.0 International - CC BY 4.0" => "CC BY",
"Namensnennung 4.0 International - (CC BY 4.0)" => "CC BY",
"CC BY SA" => "CC BY-SA",
"CC BY-SA-" => "CC BY-SA",
@@ -31,43 +55,112 @@ final class MDConcLicenses implements MDImporterConcordanceListInterface {
"CC-BY-SA" => "CC BY-SA",
"CC.BY-SA" => "CC BY-SA",
"CC BY-SA 4.0" => "CC BY-SA",
"CC BY SA 4.0" => "CC BY-SA",
"CC BY-SA 4.1" => "CC BY-SA",
"CC BY-SA 4.2" => "CC BY-SA",
"CC BY-SA 4.3" => "CC BY-SA",
"CC BY-SA 4.4" => "CC BY-SA",
"CC BY-SA 4.5" => "CC BY-SA",
"CC BY-SA 4.6" => "CC BY-SA",
"CC BY-SA 4.7" => "CC BY-SA",
"CC BY-SA 4.8" => "CC BY-SA",
"CC BY-SA 4.9" => "CC BY-SA",
"http://creativecommons.org/licenses/by-sa/3.0/" => "CC BY-SA",
"http://creativecommons.org/licenses/by-sa/3.0/de" => "CC BY-SA",
"http://creativecommons.org/licenses/by-sa/3.0/de/" => "CC BY-SA",
"http://creativecommons.org/licenses/by-sa/3.0/deed.de" => "CC BY-SA",
"https://creativecommons.org/licenses/by-sa/3.0/" => "CC BY-SA",
"https://creativecommons.org/licenses/by-sa/3.0/de" => "CC BY-SA",
"https://creativecommons.org/licenses/by-sa/3.0/de/" => "CC BY-SA",
"https://creativecommons.org/licenses/by-sa/3.0/deed.de" => "CC BY-SA",
"http://creativecommons.org/licenses/by-sa/4.0/" => "CC BY-SA",
"http://creativecommons.org/licenses/by-sa/4.0/de" => "CC BY-SA",
"http://creativecommons.org/licenses/by-sa/4.0/de/" => "CC BY-SA",
"http://creativecommons.org/licenses/by-sa/4.0/deed.de" => "CC BY-SA",
"https://creativecommons.org/licenses/by-sa/4.0/" => "CC BY-SA",
"https://creativecommons.org/licenses/by-sa/4.0/de" => "CC BY-SA",
"https://creativecommons.org/licenses/by-sa/4.0/de/" => "CC BY-SA",
"https://creativecommons.org/licenses/by-sa/4.0/deed.de" => "CC BY-SA",
"Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International (CC BY-SA 4.0)" => "CC BY-SA",
"Namensnennung 4.0 International (CC BY 4.0)" => "CC BY-SA",
"CC BY-SA 4.0 - Namensnennung, Weitergabe unter gleichen Bedingungen" => "CC BY-SA",
"CC BY_NC" => "CC BY-NC",
"CC_BY_NC" => "CC BY-NC",
"CC-BY-NC" => "CC BY-NC",
"CC.BY-NC" => "CC BY-NC",
"http://creativecommons.org/licenses/by-nc/4.0/" => "CC BY-NC",
"https://creativecommons.org/licenses/by-nc/4.0/" => "CC BY-NC",
"CC BY-NC 4.0 - Namensnennung, nicht kommerziell, keine Bearbeitung" => "CC BY-NC",
"CC BY_NC_SA" => "CC BY-NC-SA",
"CC_BY_NC_SA" => "CC BY-NC-SA",
"CC BY NC SA" => "CC BY-NC-SA",
"CC-BY-NC-SA" => "CC BY-NC-SA",
"CC.BY-NC-SA" => "CC BY-NC-SA",
"CC BY-NC-SA 3.0" => "CC BY-NC-SA",
"CC BY-NC-SA 3.0 AT" => "CC BY-NC-SA",
"CC BY-NC-SA 4.0" => "CC BY-NC-SA",
"http://creativecommons.org/licenses/by-nc-sa/3.0/" => "CC BY-NC-SA",
"http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de" => "CC BY-NC-SA",
"http://creativecommons.org/licenses/by-nc-sa/4.0/" => "CC BY-NC-SA",
"https://creativecommons.org/licenses/by-nc-sa/4.0/" => "CC BY-NC-SA",
"Namensnennung - Nicht kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International (CC BY-NC-SA 4.0)" => "CC BY-NC-SA",
"CC BY-NC-SA 4.0 - Namensnennung, nicht kommerziell, Weitergabe unter gleichen Bedingungen" => "CC BY-NC-SA",
"CC BY_NC_ND" => "CC BY-NC-ND",
"CC_BY_NC_ND" => "CC BY-NC-ND",
"CC-BY-NC-ND" => "CC BY-NC-ND",
"CC.BY-NC-ND" => "CC BY-NC-ND",
"CC BY-NC-ND 4.0" => "CC BY-NC-ND",
"http://creativecommons.org/licenses/by-nc-nd/4.0/" => "CC BY-NC-ND",
"https://creativecommons.org/licenses/by-nc-nd/4.0/" => "CC BY-NC-ND",
"http://creativecommons.org/licenses/by-nc-nd/3.0/de/" => "CC BY-NC-ND",
"https://creativecommons.org/licenses/by-nc-nd/4.0/deed.de" => "CC BY-NC-ND",
"https://creativecommons.org/licenses/by-nc-nd/3.0/de/" => "CC BY-NC-ND",
"CC BY-ND 4.0 - Namensnennung, Keine Bearbeitungen 4.0" => "CC BY-ND",
"https://www.deutsche-digitale-bibliothek.de/content/lizenzen/rv-fz" => "RR-F",
"https://www.deutsche-digitale-bibliothek.de/content/lizenzen/rv-fz/" => "RR-F",
"https//www.deutsche-digitale-bibliothek.de/content/lizenzen/rv-fz" => "RR-F",
"http://www.deutsche-digitale-bibliothek.de/lizenzen/rv-fz/" => "RR-F",
"https://www.deutsche-digitale-bibliothek.de/content/lizenzen/rv-ez" => "RR-F",
"https://www.deutsche-digitale-bibliothek.de/content/lizenzen/rv-ez/" => "RR-F",
"https//www.deutsche-digitale-bibliothek.de/content/lizenzen/rv-ez" => "RR-F",
"http://www.deutsche-digitale-bibliothek.de/lizenzen/rv-ez/" => "RR-F",
"http://www.europeana.eu/rights/rr-f/" => "RR-F",
"https://www.europeana.eu/rights/rr-f/" => "RR-F",
"Rechte vorbehalten - Freier Zugang" => "RR-F",
"Rechte vorbehalten Freier Zugang" => "RR-F",
"http://rightsstatements.org/vocab/InC/1.0/" => "RR-F",
"http://rightsstatements.org/page/InC/1.0/" => "RR-F",
"https://rightsstatements.org/page/InC/1.0/" => "RR-F",
"Alle Rechte vorbehalten" => "RR-F",
"Alle Rechte vorbehalten." => "RR-F",
"Alle Rechte vorbehalten - Urhebererechtlich geschütztes Werk" => "RR-F",
"Urheberrechtsschutz (InC)" => "RR-F",
"IN COPYRIGHT" => "RR-P",
"Rechtsstatus unbekannt" => "RR-P",
"none" => "RR-F",
"http://www.europeana.eu/rights/rr-r/" => "RR-R",
"https://www.europeana.eu/rights/rr-r/" => "RR-R",
"Keine Verwendung erlaubt" => "RR-R",
"Orphan Work" => "Orphan Work",
"Urheberrechtsschutz - Verwaistes Werk EU (InC-OW-EU)" => "Orphan Work",
'PDM' => 'Public Domain Mark',
'Public Domain Mark 1.0' => 'Public Domain Mark',
'PDM 1.0' => 'Public Domain Mark',
'https://creativecommons.org/public-domain/pdm/' => 'Public Domain Mark',
'https://creativecommons.org/publicdomain/mark/1.0' => 'Public Domain Mark',
'https://creativecommons.org/publicdomain/mark/1.0/' => 'Public Domain Mark',
'https://creativecommons.org/publicdomain/mark/1.0/deed.de' => 'Public Domain Mark',
'https://creativecommons.org/publicdomain/mark/1.0/deed.de/' => 'Public Domain Mark',
'Public Domain Mark 1.0 - Weltweit frei von bekannten urheberrechtlichen Einschränkungen' => 'Public Domain Mark',
];
/**
@@ -80,7 +173,8 @@ final class MDConcLicenses implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):string {
if (!isset(self::LICENSES_LIST[$input])) {
throw new MDImporterMissingConcordance("Unknown licence type: " . $input);
MDImporterMissingConcordance::throw("licence", $input);
return "RR-F"; // Return default in dry-run mode
}
return self::LICENSES_LIST[$input];
+2 -1
View File
@@ -31,7 +31,8 @@ final class MDConcLoanTypes implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):string {
if (!isset(self::LOAN_TYPES[$input])) {
throw new MDImporterMissingConcordance("Unknown loan type: " . $input);
MDImporterMissingConcordance::throw("loan", $input);
return "outgoing"; // Return default in dry-run mode
}
return self::LOAN_TYPES[$input];
+166 -10
View File
@@ -20,46 +20,68 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"Vorderseite, mittig" => "center",
"beidseitig mittig" => "center",
"untere Passpartoutkante, mittig" => "center",
"Mitte" => "center",
"vorn am Kasten, mittig, einseitig" => "center",
"an Gehäuse mittig" => "center",
'mitte' => 'center', // Center
// Left
"Links" => "left",
"links" => "left",
"linke Ecke im Aquarell" => "left",
"linkes, blaues Schleifenband" => "left",
"linkes, grünes Schleifenband" => "left",
"linkes Band" => "left",
"mittig links" => "left",
"Waagebalken links" => "left",
"Vorderseite links (Brusthöhe)" => "left",
"an Skala links und am Gehäuse Fronseite" => "left",
'mitte links' => 'left', // Left
// Right
"mittig rechts" => "right",
"Rechts" => "right",
"rechts" => "right",
"rechts neben Bildnis" => "right",
"Rechter Bildrand" => "right",
"Balken rechts" => "right",
'Mitte rechts' => 'right', // Right
// Bottom
"unten" => "bottom",
'Mitte unten' => 'bottom', // Bottom
'unten links u. rechts' => 'bottom', // Bottom
'unten rechts/links' => 'bottom', // Bottom
"unter der Zeichnung" => "bottom",
"unter der Bild" => "bottom",
"unterer Bildrand" => "bottom",
"Unterer Bildrand" => "bottom",
"unterer Bildrand, mittig" => "bottom",
"unten mitte" => "bottom",
"Unterkante Bild" => "bottom",
"Boden, unten" => "bottom",
"unterer Blattrand" => "bottom",
"Boden" => "bottom",
"Bodenmarke" => "bottom",
"Boden und Standring" => "bottom",
"Unterseite" => "bottom",
"untere Passpartoutkante und untere linke Ecke auf Foto" => "bottom",
"Unterboden" => "bottom",
"vs unten" => "bottom",
"untere Passpartoutkante" => "bottom",
"unten mittig" => "bottom",
"Unten mittig" => "bottom",
"Unten mittig auf Platte" => "bottom",
// Top
"Oberseite" => "top",
"oben" => "top",
"oben mittig" => "top",
"Oben mittig" => "top",
"oberer Rand" => "top",
"oberer Balken" => "top",
"Flasche und Verschluß" => "top",
"obere Abdeckung" => "top",
"Mittig oben" => "top",
"mittig oben" => "top",
// Bottom left
"links unter der Zeichnung" => "bottom_left",
@@ -68,17 +90,35 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"linker, unterer Bildrand" => "bottom_left",
"linker, unterer Bildrand (über dem Knie)" => "bottom_left",
"linke, untere Passpartoutkante" => "bottom_left",
"linke, untere Ecke" => "bottom_left",
"Links unten" => "bottom_left",
"Unten links" => "bottom_left",
"unten links" => "bottom_left",
// Bottom right
"im Bild unten rechts" => "bottom_right",
"rechts unten Signatur" => "bottom_right",
"verso unten rechts" => "bottom_right",
"unterer Bildrand rechts" => "bottom_right",
"Bildrand rechts unten" => "bottom_right",
"Rechts unten" => "bottom_right",
"rechts unten" => "bottom_right",
"Unten rechts" => "bottom_right",
"unten rechts" => "bottom_right",
"untenb rechts" => "bottom_right",
// Top Left
"linker, oberer Bildrand" => "top_left",
"oben links auf Malschicht" => "top_left",
"Links oben" => "top_left",
"Oben links" => "top_left",
"oben links" => "top_left",
// Top Right
"Oben rechts" => "top_right",
"oben rechts" => "top_right",
"Rechts oben" => "top_right",
"Rechte obere Ecke" => "top_right",
"vorn, oben, rechts am Gehäuse" => "top_right",
// Edge
@@ -97,22 +137,127 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"oberer Rand, aussen" => "edge",
"oberer und unterer Rand" => "edge",
"Passepartout" => "edge",
"Keilrahmen untere Leiste" => "edge",
"Keilrahmen unterer Schenkel" => "edge",
"Keilrahmen, unterer Schenkel" => "edge",
"Keilrahmen oberer Schenkel" => "edge",
"Keilrahmen, oberer Schenkel" => "edge",
// Full Front
"Front" => "front_front",
"Frontal" => "front_front",
"Frontseite" => "front_front",
"Frontalseite" => "front_front",
"Stirnseite" => "front_front",
"Volle Vorderseite" => "front_front",
"Volle Frontseite" => "front_front",
"Vorderseite" => "front_front",
"Forderseite" => "front_front",
"Vorderseite / Stirn" => "front_front",
"Vorn" => "front_front",
"vorn" => "front_front",
"Vorne" => "front_front",
"vorne" => "front_front",
// Rear
"Leinwandrückseite" => "rear_side",
"Rückseite" => "rear_side",
"RS" => "rear_side",
"rs" => "rear_side",
"Recto" => "rear_side",
"Revers" => "rear_side",
"Reverse" => "rear_side",
"rs Umschrift" => "rear_side",
"Rückseite der Leinwand" => "rear_side",
"Rückseitig auf ovalem Keilrahmen oben links und rechts" => "rear_side",
"Rückseite Kalender" => "rear_side",
"Rückseite Keilrahmen" => "rear_side",
"Rükseite" => "rear_side",
"Rückseite, unter Doublierung" => "rear_side",
'verso' => 'rear_side', // Rear side
// rear_bottom
"Rückseite unten" => "rear_bottom",
"Rückseite, unten" => "rear_bottom",
"Rückseite unten mittig" => "rear_bottom",
"Rückseite, unten mittig" => "rear_bottom",
"Rückseite mittig unten" => "rear_bottom",
"Rückseite, mittig unten" => "rear_bottom",
// rear_bottom_left
"Rückseite unten links" => "rear_bottom_left",
"Rückseite, unten links" => "rear_bottom_left",
"Rückseite links unten" => "rear_bottom_left",
"Rückseite, links unten" => "rear_bottom_left",
"Rückseite linke untere Ecke" => "rear_bottom_left",
// rear_bottom_right
"Rückseite unten rechts" => "rear_bottom_right",
"Rückseite, unten rechts" => "rear_bottom_right",
"Rückseite rechts unten" => "rear_bottom_right",
"Rückseite, rechts unten" => "rear_bottom_right",
"Rückseite rechte untere Ecke" => "rear_bottom_right",
// rear_center
"Rückseite mittig" => "rear_center",
"Rückseite, mittig" => "rear_center",
"Rükseite, mittig" => "rear_center",
// rear_left
"Rückseite links" => "rear_left",
"Rückseite, links" => "rear_left",
"Rückseite mittig links" => "rear_left",
"Rückseite, mittig links" => "rear_left",
"Rückseite links mittig" => "rear_left",
"Rückseite, links mittig" => "rear_left",
// rear_right
"Rückseite rechts" => "rear_right",
"Rückseite, rechts" => "rear_right",
"Rückseite mittig rechts" => "rear_right",
"Rückseite, mittig rechts" => "rear_right",
"Rückseite rechts mittig" => "rear_right",
"Rückseite, rechts mittig" => "rear_right",
"Rückseitig rechts" => "rear_right",
"Rückseitig, rechts" => "rear_right",
"Rückseitig mittig rechts" => "rear_right",
"Rückseitig, mittig rechts" => "rear_right",
"Rückseitig rechts mittig" => "rear_right",
"Rückseitig, rechts mittig" => "rear_right",
// rear_top
"Rückseite oben" => "rear_top",
"Rückseite, oben" => "rear_top",
"Rückseite oben mittig" => "rear_top",
"Rückseite, oben mittig" => "rear_top",
"Rükseite, oben mittig" => "rear_top",
"Rückseite mittig oben" => "rear_top",
"Rückseite, mittig oben" => "rear_top",
// rear_top_left
"Rückseite links oben" => "rear_top_left",
"Rückseite, links oben" => "rear_top_left",
"Rückseite oben links" => "rear_top_left",
"Rückseite, oben links" => "rear_top_left",
"Rückseite linke obere Ecke" => "rear_top_left",
// rear_top_right
"Rückseite oben rechts" => "rear_top_right",
"Rückseite, oben rechts" => "rear_top_right",
"Rückseite rechts oben" => "rear_top_right",
"Rückseite, rechts oben" => "rear_top_right",
"Rückseite rechte obere Ecke" => "rear_top_right",
// topside
"Oberseite" => "topside",
"oberhalb" => "topside",
// underside
"Unterseite" => "underside",
"unterhalb" => "underside",
// Misc.
"x" => "other",
"Vorderseite" => "other",
"Forderseite" => "other",
"VS" => "other",
"VS:" => "other",
"vs" => "other",
@@ -123,9 +268,8 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"VS Fahne" => "other",
"Balken" => "other",
"Zugbalken" => "other",
"Front" => "other",
"Vorderseite / Stirn" => "other",
"vorn" => "other",
"innen" => "other",
"Innen" => "other",
"inneres Lederfutter" => "other",
"Innenseite" => "other",
"unter Gewichtsauflagenschale" => "other",
@@ -144,6 +288,8 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"auf Skala" => "other",
"Vorderseite Eisengestell" => "other",
"Außenwand" => "other",
"Wandung" => "other",
"Ansichtsseite" => "other",
"Aufkleber" => "other",
"unter Ausgußtülle" => "other",
"Glasaußenseite" => "other",
@@ -187,7 +333,6 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"Oberseite Holzsohle, mittig im oberer Drittel" => "other",
"Vorderseite Ziffernblatt" => "other",
"Boden, außen" => "other",
"innen" => "other",
"außen" => "other",
"aussen" => "other",
"am Gehäuse" => "other",
@@ -278,10 +423,10 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"Oberseite Kiste" => "other",
"beidseitig am Waagengestell, Waagebalken, auf Abdeckung" => "other",
"vs Umschrift" => "other",
"Frontseite" => "other",
"Vorderseite Akkordeon" => "other",
"mittig am Fußgestell" => "other",
"Balkenskala links" => "other",
"Signatur (gedruckt)" => "other",
"auf Passpartout" => "other",
"auf Papp-Schmuckrahmen" => "other",
"Fotomitte" => "other",
@@ -289,9 +434,19 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"Flasche" => "other",
"auf dem Kontaktbogen unter dem jeweiligen Bild" => "other",
"Waage" => "other",
"Weiteres" => "other",
"auf Kunststoffhülle (für Kleinbildfilmstreifen)" => "other",
"Signatur" => "other",
"Legende" => "other",
"Schriftband" => "other",
"Textplatte" => "other",
"oberer Holzkasten" => "other",
"Verso" => "other",
"In Bild Beschriftung" => "other",
"Bauch" => "other",
"Avers" => "other",
"Text" => "other",
"auf dem Original-Fotobox" => "other",
];
/**
@@ -304,7 +459,8 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
public static function getConcordanceTarget(string $input):string {
if (!isset(self::MARKING_POSITIONS_VERBOSE[$input])) {
throw new MDImporterMissingConcordance("Unknown marking position: " . $input);
MDImporterMissingConcordance::throw("marking position", $input);
return "other"; // Return default in dry-run mode
}
return self::MARKING_POSITIONS_VERBOSE[$input];
+159 -16
View File
@@ -16,6 +16,7 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
// Default: Handwritten
"-" => "handwritten",
"x" => "handwritten",
'Handschriftlich mit Bleistift - Signatur' => 'handwritten', // Handwritten
"schwarz" => "handwritten",
"braun" => "handwritten",
"Leinenarbeit" => "handwritten",
@@ -23,7 +24,6 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"graphisches Dekor" => "handwritten",
"Abbild" => "handwritten",
"Karikatur" => "handwritten",
"Signatur" => "handwritten",
"Relief" => "handwritten",
"hersteller" => "handwritten",
"mit braunem Leinen überzogen" => "handwritten",
@@ -32,13 +32,55 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"schwarz bedruckten Leinen" => "handwritten",
"rot gemasert" => "handwritten",
"ornamentiert" => "handwritten",
"handschriftlich; aufgeklebt" => "handwritten",
"handschriftlich mit Bleistift" => "handwritten",
"mit schwarzer Kreide" => "handwritten",
"mit schwarzer Kreide - Signatur" => "handwritten",
"Beschriftung auf Plakette (handschriftlich)" => "handwritten",
"handschriftlich - Beschriftung durch Hersteller*in" => "handwritten",
"Beschriftung" => "handwritten",
"Beschriftung (handschriftlich)" => "handwritten",
"Beschriftung (mittig)" => "handwritten",
"Beschriftung (spiegelverkehrt und gedreht)" => "handwritten",
"Beschriftung (spiegelverkehrt)" => "handwritten",
"Beschriftung auf Montierung (handschriftlich)" => "handwritten",
"Beschriftung auf Rückseitenschutz (handschriftlich)" => "handwritten",
"Beschriftung auf Schmuckrahmen (handschriftlich)" => "handwritten",
"Beschriftung auf Sockel (handschriftlich)" => "handwritten",
"Datierung (handschriftlich)" => "handwritten",
"Titel (handschriftlich)" => "handwritten",
"Widmung (handschriftlich)" => "handwritten",
"Text" => "handwritten",
"im Stein" => "handwritten",
"im Stein - Beschriftung" => "handwritten",
# Handwriting
"aufgemalt/geschrieben" => "handwritten",
"Aufschrift" => "handwritten",
"Aufschrift (Bleistift)" => "handwritten",
'handschirftlich - Handschrift' => 'handwritten', // Handwritten
'handschirftlich mit Bleistift - Signatur' => 'handwritten', // Handwritten
'handschriflich mit Bleistift - Handschrift' => 'handwritten', // Handwritten
'handschriflich mit Bleistift - Signatur' => 'handwritten', // Handwritten
'handschrifltich mit Bleistift - Signatur' => 'handwritten', // Handwritten
'handschriftich mit Bleistift - Signatur' => 'handwritten', // Handwritten
'handschriftlich - Handschrift' => 'handwritten', // Handwritten
'handschriftlich mit Bleisift - Signatur' => 'handwritten', // Handwritten
'handschriftlich mit Bleistift - Beschriftung' => 'handwritten', // Handwritten
'handschriftlich mit Bleistift - Handschrift' => 'handwritten', // Handwritten
'handschriftlich mit Feder - Signatur' => 'handwritten', // Handwritten
'handschriftlich mit Kohle - Signatur' => 'handwritten', // Handwritten
'handschriftlich mit Kugelschreiber - Handschrift' => 'handwritten', // Handwritten
'handschriftlich mit schwarzer Kreide - Signatur' => 'handwritten', // Handwritten
'handschriftliche Dedikation - Handschrift' => 'handwritten', // Handwritten
'handschriftllich mit Bleistift - Handschrift' => 'handwritten', // Handwritten
'handschriftllich mit Bleistift - Signatur' => 'handwritten', // Handwritten
'hanschriftlich mit Bleistift - Signatur' => 'handwritten', // Handwritten
'marking' => 'handwritten', // Handwritten
"Aufschrift mit Tinte" => "handwritten",
"Beischrift" => "handwritten",
"Benennung" => "handwritten",
"beschrieben" => "handwritten",
"beschriftet" => "handwritten",
"Beschriftet" => "handwritten",
@@ -50,7 +92,6 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Bleistift" => "handwritten",
"Bleisitft" => "handwritten",
"Bleistiftbeschriftung" => "handwritten",
"Bleistiftzeichnung" => "handwritten",
"Bleistift,Kugelschreiber" => "handwritten",
"Bleistift und Buntstift bzw. kann auch Tinte sein" => "handwritten",
"Bleistiftbeschriftung auf der Rückseite" => "handwritten",
@@ -59,17 +100,21 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Einkreisung mit wasserfestem Marker" => "handwritten",
"ev. Tinte" => "handwritten",
"Federtusche" => "handwritten",
"Faserstift ?" => "handwritten",
"Filzstiftnotiz" => "handwritten",
"Füllerbeschriftung auf der Rückseite" => "handwritten",
"Goldschrift" => "handwritten",
"Handschrift" => "handwritten",
"handschrifltich" => "handwritten",
"Handschriftlich" => "handwritten",
"handschriflich" => "handwritten",
"handschriftlich" => "handwritten",
"handschriftlich, Kleber" => "handwritten",
"handschriftliche Notiz" => "handwritten",
"handschriftlich Notiz" => "handwritten",
"handschriftlich + geklebt" => "handwritten",
"handschriftlich, mit blauer Tinte" => "handwritten",
"Handschriftlich mit Bleistift" => "handwritten",
"handschriftliche Notiz" => "handwritten",
"Schrift" => "handwritten",
"roter wasserfester Stift" => "handwritten",
"keine Inschrift" => "handwritten",
@@ -80,7 +125,6 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"geschrieben (schwarzer Filzstift)" => "handwritten",
"geschrieben mit schwarzer Ölfarbe" => "handwritten",
"geschrieben mit schwarzer Farbe" => "handwritten",
"Künstlersignatur" => "handwritten",
"Kugelschreiber,Bleistift" => "handwritten",
"Kugelschreiber" => "handwritten",
"Kulibeschriftung auf der Rückseite" => "handwritten",
@@ -110,7 +154,7 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"signiert und datiert" => "handwritten",
"Signiert" => "handwritten",
"signiert, mit Bleistift geschrieben" => "handwritten",
"Signatur mit Kugelschreiber" => "handwritten",
"handschriftlich mit Bleistift - Marke" => "handwritten",
"signiert, mit blauer Tinte geschrieben" => "handwritten",
"signiert, mit schwarzer Tinte geschrieben" => "handwritten",
"Tinte" => "handwritten",
@@ -126,19 +170,28 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"verschlungenes Monogramm" => "handwritten",
# Scratchings
"Beschriftung (geritzt)" => "scratch",
"kratzen, Filzstift" => "scratch",
"gekratzt" => "scratch",
"eingeritztes Kreuzchen" => "scratch",
"eingekratzt" => "scratch",
"geschnitzt" => "scratch",
"Glas geschliffen vom Boden bis zur Hälfte" => "scratch",
"Scratching" => "scratch",
# Overpaint
"painted" => "painted",
"Bemalung" => "painted",
"bemalt" => "painted",
"gemalt" => "painted",
"Gemalt" => "painted",
"signiert, gemalt" => "painted",
"Wappen (gemalt)" => "painted",
# Drawn
"Wappen (gezeichnet)" => "drawn",
"Bleistiftzeichnung" => "drawn",
# Glued
"aufgeklebter Druck" => "glued",
@@ -153,7 +206,9 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Etikett" => "glued", // This whole value doesn't make sense
"Etiketten" => "glued",
"etikettiert" => "glued",
"schriftlich - Aufkleber" => "glued",
"Adressaufkleber des Voreigentümers" => "glued",
"Klebezettel (maschienengeschrieben)" => "glued",
"Blau gerändertes helles Etikett" => "glued",
"Papieretikett, Klebeetikett" => "glued",
@@ -161,6 +216,13 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Typenschild Alum." => "glued",
"Messing-Typenschild" => "glued",
"Kartoniert, mit schwarzem, genarbtem Papier überzogen" => "glued",
"Klebezettel" => "glued",
"Klebezettel (gedruckt)" => "glued",
"Klebezettel (gestempelt)" => "glued",
"Klebezettel (handschriftlich)" => "glued",
"Klebezettel (maschinengeschrieben)" => "glued",
"Klebezettelreste" => "glued",
"Klebezettel (Rest)" => "glued",
# Cast (e.g. iron cast)
"Guss" => "cast",
@@ -175,6 +237,7 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
# Printed
"Druck" => "overprint",
"gedruckt" => "overprint",
"gedruckt; geklebt" => "overprint",
"bedruckt" => "overprint",
"bedruckt und Tinte" => "overprint",
"aufgedruckt" => "overprint",
@@ -188,9 +251,17 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Druck, weiße Schrift" => "overprint",
"gedruckt und geprägt" => "overprint",
"gdruckt" => "overprint",
'gedruckt - Inschrift' => 'overprint', // Overprint
'gedruckt - Signatur' => 'overprint', // Overprint
'gedruckt - Stempel' => 'overprint', // Overprint
'gedruckt im Stein - Beschriftung' => 'overprint', // Overprint
'gedruckt im Stein - Inschrift' => 'overprint', // Overprint
'gedruckt im Stein - Signatur' => 'overprint', // Overprint
"gerduckt" => "overprint",
"goldener Druck mit Ornamenten und Zierrahmen" => "overprint",
"Golddruck" => "overprint",
"Titel mit Signatur (gedruckt)" => "overprint",
"Bechriftung (gedruckt)" => "overprint",
"Seriennummer" => "overprint",
"Textaufdruck" => "overprint",
"gedruckt und gestempelt" => "overprint",
@@ -208,9 +279,19 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"schwarzer Aufdruck" => "overprint",
"schwwarzer Aufdruck" => "overprint",
"geplottert" => "overprint",
"gedruckt - Beschriftung" => "overprint",
"gedruckt und eingeschoben" => "overprint",
"gedruckt und eingeschoben, kursiv" => "overprint",
"Druckerei-Vermerk" => "overprint",
"Beschriftung (gedruckt)" => "overprint",
"Beschriftung auf Montierung (gedruckt)" => "overprint",
"Beschriftung auf Rückseitenschutz (gedruckt)" => "overprint",
"Beschriftung auf Schmuckrahmen (gedruckt)" => "overprint",
"Datierung (gedruckt)" => "overprint",
"Titel (gedruckt)" => "overprint",
"Titel (gedruckt)" => "overprint",
"Wappen (gedruckt)" => "overprint",
"Widmung (gedruckt)" => "overprint",
# Sewn
"aufgestickt" => "sewn",
@@ -231,23 +312,40 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Brennstempel" => "burnt_in",
# Stamped
"stamped" => "stamp",
"gestempelt" => "stamp",
"Stempel (rund)" => "stamp",
"Stempel" => "stamp",
"Beschriftung (geprägt)" => "stamp",
"blauer Stempel" => "stamp",
"Eichstempel" => "stamp",
"Eingangstempel (rot)" => "stamp",
"Farbstempel" => "stamp",
"Stempel,Kugelschreiber" => "stamp",
"mit Metallstempel eingedrückt" => "stamp",
"gestempelt" => "stamp",
"Marke" => "stamp",
"Marke und Werbestempel" => "stamp",
"mit Metallstempel eingedrückt" => "stamp",
"Prägestempel" => "stamp",
"Prägestempel des Fotografen" => "stamp",
"roter Stempel" => "stamp",
"schwarz gestempelt" => "stamp",
"Signaturenstempel" => "stamp",
"stamped" => "stamp",
'gestemnpelt - Stempel' => 'stamp', // Stamped
'gestempelt - Signatur' => 'stamp', // Stamped
'gestempelt - Stempel' => 'stamp', // Stamped
"Stempel" => "stamp",
"Stempel (rund)" => "stamp",
"Stempel,Kugelschreiber" => "stamp",
"Stempel eingeprägt" => "stamp",
"Stempelaufdruck" => "stamp",
'Signatur gestempelt - Signatur' => 'stamp', // Stamped
"Beschriftung (gestempelt)" => "stamp",
"Beschriftung auf Montierung (gestempelt)" => "stamp",
"Beschriftung auf Rückseitenschutz (gestempelt)" => "stamp",
"Beschriftung auf Schmuckrahmen (gestempelt)" => "stamp",
"Datierung (gestempelt)" => "stamp",
"Titel (gestempelt)" => "stamp",
"Wappen (gestempelt)" => "stamp",
"Widmung (gestempelt)" => "stamp",
"Signatur (gestempelt)" => "stamp",
# Engraving
"Gravur" => "engraving",
@@ -259,6 +357,7 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Nummer graviert, gedruckt" => "engraving",
"eingraviert und geätzt" => "engraving",
"Schnitt" => "engraving",
"Beschriftung (graviert)" => "engraving",
# Screwed on
"angeschraubt" => "screwed",
@@ -287,9 +386,9 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"geprägt und angeschraubt" => "embossing",
"eingeprägt" => "embossing",
"Prägung" => "embossing",
"Stempel eingeprägt" => "embossing",
"geflechelt" => "embossing",
"Inschrift, geprägt" => "embossing",
"Signatur (geprägt)" => "embossing",
"schwarze Prägung" => "embossing",
"aufgesetzt und genutet, eingeprägt" => "embossing",
"mit eingeprägtem Golddruck" => "embossing",
@@ -310,6 +409,7 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Inschrift/geprägt" => "embossing",
"Inschrift/ geprägt" => "embossing",
"Inschrift / geprägt" => "embossing",
"Blindstempel" => "stamp",
# Embroidery
"gestickt" => "embroidered",
@@ -319,18 +419,28 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Jugendstilornamente" => "embroidered",
# Punched
"gestanzt" => "punched",
"geschlagen" => "punched",
"gehämmert" => "punched",
"Beschriftung (ziseliert)" => "punched",
"eingestanzt" => "punched",
"eingestanzt; ziseliert" => "punched",
"gehämmert" => "punched",
"geschlagen" => "punched",
"gestanzt" => "punched",
"gestanzt und bemalt" => "punched",
"ziseliert" => "punched",
# Scarified
"geritzt" => "scarified",
"eingeritzt" => "scarified",
"handschliff" => "scarified",
"Schliff" => "scarified",
'Signatur geritzt - Signatur' => 'scarified', // Scarified
'Signatur geritzt in der Platte - Signatur' => 'scarified', // Scarified
'geritzt - Beschriftung' => 'scarified', // Scarified
'geritzt - Inschrift' => 'scarified', // Scarified
'geritzt - Marke' => 'scarified', // Scarified
'geritzt - Signatur' => 'scarified', // Scarified
'geritzt in der Platte - Beschriftung' => 'scarified', // Scarified
'geritzt in der Platte - Signatur' => 'scarified', // Scarified
# Hallmarked
"gepunzt" => "hallmarked",
@@ -345,12 +455,44 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"eingenagelt" => "nailed",
# Signature
"Signatur" => "signature",
"signiert" => "signature",
"farbig bemalt und glasiert" => "signature",
'geruckt - Signatur' => 'signature', // Signature
"gemalt und glasiert" => "signature",
'Signatur gedruckt im Stein - Signatur' => 'signature', // Signature
"Signatur (handschriftlich)" => "signature",
"Signatur (gedruckt)" => "signature",
"Signatur (gemalt)" => "signature",
"Signatur (gezeichnet)" => "signature",
"Gez. u. gest. v. F. Foltz in Darmstadt., Andernach." => "signature",
"Signatur mit Datierung" => "signature",
"Signatur mit Datierung (handschriftlich)" => "signature",
"Signatur mit Datierung (gedruckt)" => "signature",
"Signatur mit Datierung (gemalt)" => "signature",
"Signatur mit Datierung (gestempelt)" => "signature",
"Signatur mit Datierung (gezeichnet)" => "signature",
"Signatur mit Datierung (gedruckt)" => "signature",
"Signatur und Datierung (gedruckt)" => "signature",
"Signatur mit Datum (handschriftlich)" => "signature",
"Signatur mit Datum (gedruckt)" => "signature",
"Signatur mit Datum (gemalt)" => "signature",
"Signatur mit Datum (gestempelt)" => "signature",
"Signatur mit Datum (gezeichnet)" => "signature",
'signatur im Holzstock - Signatur' => 'signature', // Signature
'signatur im Stein - Signatur' => 'signature', // Signature
"Künstlersignatur" => "signature",
"Signatur (geritzt)" => "signature",
"Signatur mit Kugelschreiber" => "signature",
"handschriftlich mit Bleistift - Signatur" => "signature",
"im Stein - Signatur" => "signature",
'Signatur im Holzstock - Signatur' => "signature",
'Signatur im Stein - Signatur' => "signature",
'Signatur in der Platte - Signatur' => "signature",
# Watermark
"Wasserzeichen" => "watermark",
'Wasserzeichen - Wasserzeichen' => 'watermark', // Watermark
];
@@ -364,7 +506,8 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):string {
if (!isset(self::MARKING_TYPES_VERBOSE[$input])) {
throw new MDImporterMissingConcordance("Unknown marking type: " . $input);
MDImporterMissingConcordance::throw("marking", $input);
return "marking"; // Return default in dry-run mode
}
return self::MARKING_TYPES_VERBOSE[$input];
+945
View File
@@ -0,0 +1,945 @@
<?PHP
/**
* Constains lists for grouping measurement types.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Constains lists for grouping measurement types.
*/
final class MDConcMeasurementTypes implements MDImporterConcordanceListInterface {
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return MDMeasurementType|false
*/
public static function getConcordanceTarget(string $input):MDMeasurementType|false {
$output = match($input) {
// Just list entries
"Allgemein",
"Passepartout",
"Passepartout Standardformat",
"Objektmaß",
"Objektmass",
"Außenmaß",
"Außenmaß (Kiste)",
"Bildmaß",
"Bildmass",
"Bildmaß (HxB)",
"Auflagekarton (Höhe x Breite)",
"Passepartout Standardformat (Höhe x Breite)",
"Blattmaß",
"Blattmass",
"m",
"cm",
"mm",
"dm",
"Spieldauer (h___m___s)",
"Geschwindigkeit (Schallplatte)",
"Geschwindigkeit (Band)",
"Transportmaß (Breite x Höhe x Tiefe)",
"Transportmaß (Breite x Höhe x Tiefe)Transportmaß (Breite x Höhe x Tiefe)",
"Öffnung (Durchmesser)",
"Kartonformat (Höhe x Breite)",
"Negativformat (Breite x Lange)",
"Passepartout (Höhe x Breite)",
"Montage (Breite x Länge)",
"Verpackungsmaß (Breite x Höhe x Tiefe)Verpackungsmaß (Breite x Höhe x Tiefe)",
"Maße Transport (Höhe x Tiefe x Breite)",
"Volumen",
"Hohlmaß",
"Buchformat",
"Hohlmass",
"Kaliber",
"Zeit",
"Maßstab",
"Original",
"size",
"base",
"target",
"Modell",
"Rundformat",
"Quadratisch",
"Bauch",
"Oval",
"",
"Plattengröße (Höhe x Breite)",
"Sockel (Höhe x Tiefe x Breite)",
"Sockel (Höhe x Tiefe x Breite)",
"Außenmaß (Höhe x Tiefe x Breite)",
"Fläche",
"Tafelmaß",
"Tafelmass",
"Radius",
"Bemalte Fläche",
"Bemalte Bildfläche",
"Sockel",
"Höhe x Breite",
"Höhe x Durchmesser",
"Rahmenmaß (Höhe x
Breite)",
"Höhe x Breite x Tiefe",
"Höhe x Breite x Tiefe",
"Rahmenmaß",
"Rahmenmaß (Höhe x Breite)",
"Rahmenmaß (Höhe x Breite)",
"Rahmenmass",
"Rahmenmass (Höhe x Breite)",
"Rahmenaußenmaß (Höhe x Breite)",
"Rahmenaußenmaß (Länge x Durchmesser)",
"Höhe x Breite x Stärke",
"Rahmenaußenmaß",
"Rahmenaußenmass",
"Kartonformat",
"Kartonformat (Foto)",
"Auflagekarton",
"Bildformat (Foto)",
"Tafelmaß (Höhe x Breite)",
"Bemalte Bildfläche (Höhe x Breite)",
"Plattengröße (Foto)",
"Andere Maße",
"Halsweite (Unterlage)",
"Format",
"Stichhöhe",
"Maße Transport",
"Querformat",
"Hochformat",
"Länge x Breite x Höhe",
"Länge x Breite x Tiefe",
"Länge x Breite",
"Maße Transport (Höhe x Tiefe x Breite)",
"Blattmaß (Höhe x Breite)",
"Objektmaß (Höhe x Tiefe x Breite)",
"Objektmaß (Höhe x Tiefe x Breite)",
"Teil 1",
"Teil 2",
"Teil 3",
"Teil 4",
"Teil 5",
"Teil 6",
"Teil 7",
"Teil 8",
"Kistenmaß (Länge x Breite x Höhe)",
"Umfang",
"Umfang",
"Kaliber",
"Ölfarbe",
"2 kg-Gewicht",
"2. Hälfte 18. Jh.",
"14.1x9.2",
"14x9.1",
"cm",
"13.9x8.6",
"Grundfläche",
"Länge x Breite",
"Bildmaß (Höhe x Breite)",
"Bildformat (Höhe x Breite)",
"Glasmaß (Höhe x Breite)",
"Länge x Breite x Tiefe",
"Höhe x Durchmesser",
"Länge x Durchmesser",
"Breite x Höhe",
"Breite x Höhe x Tiefe",
"Breite x Höhe",
"Breite x Tiefe",
"Höhe x Breite",
"Höhe x Breite (aufgeschlagen)",
"Höhe x Breite x Tiefe",
"Durchmesser x Tiefe",
"Durchmesser x Tiefe",
"Gesamtmaß (Höhe x Breite x Tiefe)",
"Form",
"Andere",
"Prefix",
"Kartierung",
"Masstab",
"Sitzhöhe",
"Auflagekarton Standardformat",
"Bruttomass",
"Kistenmass",
"Kistenmass (Höhe)",
"Lichtmass",
"Randdurchmesser",
"Kistenmass (Tiefe)",
"Kistenmass (Breite)",
"Suffix",
"HxBxT",
"Objektmaß (HxB)",
"CC",
"Eisen",
"mm",
"Bauchdurchmesser",
"Größe",
"CdV",
"Stichhöhe (Höhe x Breite)" => false,
"Höhe",
"(Höhe)",
" (Höhe)",
"Höhe (gesamt)",
"Höhe (Gesamtmaß)",
"Höhe (Objekt)",
"Höhe (Etui)",
"Höhe (Heft)",
"Höhe (Foto)",
"Höhe (Dose)",
"Höhe (Außenmaß)",
"Höhe (netto)",
"Höhe (a mit b-d)",
"Höhe (e)",
"Höhe (S 6289/5a)",
"Höhe (S 6289/5b)",
"Höhe (S 6291/3)",
"Höhe (S 6291/4)",
"Höhe (S 6291/5)",
"Höhe (S 6291/6)",
"Höhe (S 6295/3)",
"Höhe (S 6295/4)",
"Höhe (S 6295/5)",
"Höhe (S 6316/1)",
"Höhe (S 6316/2)",
"Höhe (S 6316/3)",
"Höhe (S 6316/4)",
"Höhe (S 6316/5)",
"Höhe (S 6418a)",
"Höhe (aufgeklappt)",
"Höhe (S 6419a)",
"Höhe (a)",
"Höhe (a mit b)",
"Höhe (S 6519/1)",
"Höhe (S 6530/1)",
"Höhe (S 6542/1)",
"Höhe (S 6549/1-3)",
"Höhe (S 6552/1-5)",
"Höhe (je Band)",
"Höhe (ohne Schnur)",
"Höhe (S 6560/1a-c =)",
"Höhe (S 6561/10 = größter)",
"Höhe (S 6561/13, andere)",
"Höhe (S 6561/18,)",
"Höhe (Nadel auf Papier)",
"Höhe (Hose in Ver-)",
"Höhe (einzelnes Tütchen)",
"Höhe (1)",
"Höhe (a-c)",
"Höhe (Kanne)",
"Höhe (S 6832/1)",
"Höhe (a und b)",
"Höhe (je Bild)",
"Höhe (S 6844/1)",
"Höhe (S 6844/2)",
"Höhe (je Liste)",
"Höhe (je Plan außer 3b)",
"Höhe (Platte in Hülle)",
"Höhe (S 6852/1)",
"Höhe (Druckstock)",
"Höhe (Blatt/Platte)",
"Höhe (ausgeklappt)",
"Höhe (Velinpapier)",
"Höhe (Chinapapier)",
"Höhe (Blindplatte)",
"Höhe größtes Stück",
"height",
"height (overall)",
"Höhe (Trägermaterial)",
"Lichtmass (Höhe)",
"Bruttomass (Höhe)",
"Kartierung (Höhe)",
"Masstab (Höhe)",
"Sitzhöhe (Höhe)",
"Höhe (Platte)",
'Höhe (Untersatzkarton)',
"Außenmaß (Höhe)",
"Objektmaß (Höhe)",
"Objektmass (Höhe)",
'Höhe (Holzstock)',
'Höhe (Untersatzbogen)',
'Höhe (Buchblock)',
'Höhe (Buchblock ohne Einband)',
'Höhe (Buchblock mit Einband)',
'Höhe (Darstellung ohne Schrift)',
'Höhe (Stein)',
'Höhe (Schuber)',
'Höhe (Karton)',
'Höhe (Einleger)',
'Höhe (Einleger 1)',
'Höhe (Einleger 2)',
'Höhe (Einleger 3)',
'Höhe (EInleger 3)',
'Höhe (Einleger 4)',
'Höhe (Einleger 5)',
'Höhe (Einleger 6)',
'Höhe (Einleger 7)',
'Höhe (Einleger 4-6)',
'Höhe (Einleger 8)',
'Höhe (Einleger 9)',
'Höhe (Einleger 10)',
'Höhe (Einleger 11)',
'Höhe (Einleger 12)',
'Höhe (Einleger 13)',
'Höhe (Einleger 14)',
'Höhe (Einleger 15)',
'Höhe (Einleger 16)',
'Höhe (Einleger 17)',
'Höhe (Einleger 18)',
'Höhe (Einleger 19)',
'Höhe (Einleger 20)',
'Höhe (Einleger 21)',
'Höhe (Einleger 22)',
'Höhe (Einleger 23)',
'Höhe (Einleger 24)',
"Höhe (S 6530/2)",
"Höhe (S 6542/2)",
"Höhe (S 6549/4-5)",
"Höhe (S 6552/6)",
"Höhe (S 6832/2)",
"Höhe (S 6845/3b)",
"Höhe (S 6852/2a-b)",
"Höhe (S 6877/3)",
"Höhe (S 6914/2)",
"Höhe (S 6931/2)",
"Höhe (S 6941/2)",
"Höhe (S 6962/7)",
"Höhe (S 7083/2)",
"Höhe (S 7135/1b)",
"Höhe (5)",
"Höhe (S 6561/11)",
"Höhe (S 6542/5)",
"Höhe (S 7135/3)",
"Höhe (S 7141/2)",
"Höhe (Springerle in Tüte)",
"Höhe (b)",
"Höhe (e und f)",
"Höhe (eine Glühbirne)",
"Höhe (gesamter Stapel)",
"Höhe (gesamter Stapel)[67/4521]",
"Höhe (S 6877/1 u. 2)",
"Höhe (je Album)",
"Höhe (1)",
"Höhe (Griff, beide Hälften)",
"Höhe (1)",
"Höhe (S 6914/1)",
"Höhe (gesamter Bogen)",
"Höhe (Springerle)",
"Höhe (S 6931/1)",
"Höhe (S 6941/1)",
"Höhe (S 6962/1-6, je)",
"Höhe (a mit b)",
"Höhe (je Ziegel)",
"Höhe (S 6519/7)",
"Höhe (S 6519/8)",
"Höhe (S 6519/9)",
"Höhe (1-4)",
"Höhe (je)",
"Höhe (Tafel)",
"Höhe (Plakette)",
"Höhe (a)",
"Höhe (Insgesamt)",
"Höhe (S 7083/1)",
"Höhe (Stich ohne Rahmen)",
"Höhe (pro Plombe)",
"Höhe (3)",
"Höhe (3-4)",
"Höhe (Haube)",
"Höhe (S 6519/4)",
"Höhe (S 6542/4)",
"Höhe (S 7135/2)",
"Höhe (d)",
"Höhe (a-b)",
"Höhe (1)",
"Höhe (1)",
"Höhe (je Tuch)",
"Höhe (a)",
"Höhe (1 und 2, je a-b)",
"Höhe (S 7135/1a)",
"Höhe (S 7141/1)",
"Höhe (je Vierer-Bogen)",
"Höhe (a und b)",
"Höhe (a)",
"Höhe (b und d)",
"Höhe (S 7408/2)",
"Höhe (je Teller)",
"Höhe (a)",
"Höhe (a und c)",
"Höhe (Eimerchen)",
"Höhe (S 7408/1)",
"Höhe (a mit b)",
"Höhe (m. Rahmeninkl.Aufhä.)",
"Höhe (a)",
"Höhe (a mit b)",
'Höhe (Passepartout)',
'Höhe (Passepartout Standardformat)',
'Höhe (Unterlage)',
'Höhe (Buch)',
'Höhe (Jeder Druck)',
'Höhe (Gesamthöhe)',
"Höhe (1 Tassengedeck)",
"Höhe (1 und 2, je c-e)",
"Höhe (2)",
"Höhe (5-6)",
"Höhe (Nadeln in Verpack.)",
"Höhe (S 6418b)",
"Höhe (S 6419b)",
"Höhe (S 6542/3)",
"Höhe (S 6877/4)",
"Höhe (S 6914/3)",
"Höhe (S 6962/8)",
"Höhe (S 7083/3)",
"Höhe (S 7135/1c)",
"Höhe (Höhe)",
"Höhe (Mappe)",
"Höhe (c)",
"Höhe (g mit h)",
"Reliefhöhe" => MDMeasurementType::height,
"Länge",
"Länge OT",
"Länge H",
"Länge (1)",
"Länge (2)",
"Länge (3)",
"Länge (4)",
"Länge (5)",
"Länge (6)",
"Länge (7)",
"Länge (8)",
"Länge (a)",
"Länge (b)",
"Länge (c)",
"Länge (d)",
"Länge (e)",
"Länge (f)",
"Länge (g)",
"Länge (8)",
"Länge (1c)",
"Länge (Mappe)",
"Tiefe (Mappe)",
"Länge (S 6514/3)",
"Länge (S 6519/3)",
"Länge (S 7139/3)",
"Tiefe (S 6553/2)",
"Länge (S 6398/21)",
"Länge (S 6398/22)",
"Länge (1f)",
"Länge (S 6519/6)",
"Länge (S 7139/6)",
"Länge (S 7139/7)",
"Länge (S 7139/8)",
"Länge (S 7139/9)",
"Länge (ausgeklappt)",
"length",
"(Länge)",
" (Länge)",
"Länge/Tiefe",
"Länge / Tiefe",
"Lichtmass (Länge)",
"Lichtmass (Tiefe)",
"Tiefe",
"Tiefe (mit Hinterrad in Fahrtrichtung)",
"Tiefe (zusammengeklappt)",
"Tiefe (Etui)",
"Tiefe (Heft)",
"Tiefe (mit eingeklapptem Hinterrad)",
"Tiefe/Länge",
"Tiefe min",
"Tiefe max",
"Tiefe/Länge (Objekt)",
"Außenmaß (Tiefe)",
"Tiefe (Außenmaß)",
"Teife",
"length",
"Länge (1b)",
"Länge (S 6424/4)",
"Länge (S 6514/2)",
"Länge (S 6519/2)",
"Länge (S 6795/2a und b)",
"Länge (S 7069b)",
"Länge (S 7081/3)",
"Länge (S 7139/2)",
"Tiefe (S 6553/1)",
"Tiefe (per Päckchen)",
"Bruttomass (Länge)",
"Bruttomass (Tiefe)",
"Kartierung (Länge)",
"Kartierung (Tiefe)",
"Masstab (Länge)",
"Masstab (Tiefe)",
"Sitzhöhe (Länge)",
"Sitzhöhe (Tiefe)",
"Länge (Platte)",
"Tiefe (Platte)",
"Länge (Griff)",
"Tiefe (Griff)",
"Länge (Parierstange)",
"Tiefe (Parierstange)",
"Objektmaß (Länge)",
"Objektmaß (Tiefe)",
"Objektmass (Länge)",
"Objektmass (Tiefe)",
'Länge (Holzstock)',
'Tiefe (Holzstock)',
'Länge (Untersatzbogen)',
'Tiefe (Untersatzbogen)',
'Länge (Buchblock)',
'Tiefe (Buchblock)',
'Länge (Buchblock ohne Einband)',
'Tiefe (Buchblock ohne Einband)',
'Länge (Buchblock mit Einband)',
'Tiefe (Buchblock mit Einband)',
'Länge (Stein)',
'Tiefe (Stein)',
'Länge (Schuber)',
'Tiefe (Schuber)',
'Länge (Karton)',
'Tiefe (Karton)',
'Länge (Einleger)',
'Tiefe (Einleger)',
'Länge (Einleger 1)',
'Tiefe (Einleger 1)',
'Länge (Einleger 2)',
'Tiefe (Einleger 2)',
'Länge (Einleger 3)',
'Tiefe (Einleger 3)',
'Länge (Passepartout)',
'Tiefe (Passepartout)',
'Länge (Unterlage)',
'Tiefe (Unterlage)',
'Länge (Buch)',
'Tiefe (Buch)',
'Länge (Dose)',
'Tiefe (Dose)',
"Länge (1a)",
"Länge (S 7081/1-2)",
"Länge (S 7139/1)",
"Länge (S 6519/8a-e)",
"Länge (S 6514/1)",
"Länge (S 6424/3)",
"Länge (mit Kordel)",
"Länge (S 6795/1a und b)",
"Länge (1d)",
"Länge (S 6419c)",
"Länge (S 7139/4)",
"Länge (mit Handhabe)",
"Länge (1e)",
"Länge (S 6519/5)",
"Länge (S 6560/1b = Samtband)",
"Länge (S 7139/5)",
"Tiefe (kleinerer Größe)",
"Tiefe (etwas kleiner)",
"Tiefe (ähnlicher Größe)",
"depth",
"Dicke" => MDMeasurementType::length,
"Breite",
"Breite OT",
"Breite H",
"Breite (ausgeklappt)",
"Breite (Jeder Druck)",
"Breite (Etui)",
"Breite (Heft)",
"Breite (netto)",
"Breite (Außenmaß)",
"Breite (Foto)",
"Breite (a)",
"Breite (S 7069a)",
"Breite (aufgeschlagen)",
"Breite (S 6799/1)",
"Breite größtes Stück",
"Breite (gesamt)",
"Breite (Druckstock)",
"Breite (Gesamtmaß)",
"Breite (Objekt)",
"Breite (Platte)",
'Breite (Darstellung ohne Schrift)',
'Breite (China)',
'Breite (Untersatzkarton)',
"(Breite)",
"Lichtmass (Breite)",
" (Breite)",
"Breite (ein Nagel)",
"width",
"Breite (Breite)",
"Breite (Mappe)",
"Breite (S 6576/1)",
"Breite (mit Griffen)",
"Breite (mit Handhabe)",
"Breite (BH, S 6561/1 - 9 mit)",
"Breite (Ensemble im Kästchen)",
"Breite (Hüfthalter)",
"Breite (S 6561/19-20 mit)",
"Breite (S 6576/2a-b)",
"Breite (S 6799/2a-b)",
"Breite (S 7069a und b)",
"Breite (a-d)",
"Breite (b)",
"Breite (c)",
"Breite (gesamt mit Handhabe)",
"Breite (mit Henkel)",
"Breite (packung)",
"width (overall)",
"Breite (Griff)",
"Außenmaß (Breite)",
"Breite (Trägermaterial)",
"Bruttomass (Breite)",
"Objektmaß (Breite)",
"Objektmass (Breite)",
"Kartierung (Breite)",
"Masstab (Breite)",
"Sitzhöhe (Breite)",
"Breite (Velinpapier)",
"Breite (Chinapapier)",
"Breite (Blindplatte)",
'Breite (Holzstock)',
'Breite (Untersatzbogen)',
'Breite (Buchblock)',
'Breite (Buchblock ohne Einband)',
'Breite (Buchblock mit Einband)',
'Breite (Buchblock mit Einabnd)',
'Breite (Stein)',
'Breite (Schuber)',
"Breite (S 6560/1a = Anhänger)",
"Breite (vergleichbarer od.)",
'Breite (Karton)',
'Breite (Einleger)',
'Breite (Einleger 1)',
'Breite (Einleger 2)',
'Breite (Einleger 3)',
'Breite (Einleger 4)',
'Breite (EInleger 4)',
'Breite (Einleger 5)',
'Breite (Einleger 6)',
'Breite (EInleger 6)',
'Breite (Einleger 7)',
'Breite (EInleger 7)',
'Breite (Einleger 8)',
'Breite (Einleger 9)',
'Breite (Einleger 10)',
'Breite (Einleger 11)',
'Breite (Einleger 12)',
'Breite (Einleger 13)',
'Breite (Einleger 14)',
'Breite (Einleger 15)',
'Breite (Einleger 16)',
'Breite (EInleger 16)',
'Breite (Einleger 17)',
'Breite (Einleger 18)',
'Breite (Einleger 19)',
'Breite (Einleger 20)',
'Breite (Einleger 21)',
'Breite (Passepartout)',
'Breite (Passepartout Standardformat)',
'Breite (Unterlage)',
'Breite (Buch)',
'Breite (Dose)',
"Stärke",
"Schenkelbreite (Breite)" => MDMeasurementType::width,
"Durchmesser",
"Durchmesser (Schaft)",
"Durchm.",
"Durchmesser (mit Dicke)",
"Mündung (Durchmesser)",
"Rahmenaußenmaß Durchmesser",
"diameter",
"Durchmesser (a)",
"Durchmesser (b)",
"Durchmesser (c)",
"Durchmesser (d)",
"Durchmesser (e)",
"Durchmesser (f)",
"Durchmesser (g)",
"Durchmesser (1)",
"Durchmesser (2)",
"Durchmesser (3)",
"Durchmesser (4)",
"Durchmesser (S 7133/1)",
"Durchmesser (S 7133/3)",
"Durchmesser (S 7133/4)",
"Durchmesser (S 7134/1)",
"Durchmesser (S 7139/10)",
"Durchmesser (S 7139/11)",
"Durchmesser (S 6406/9a)",
"Durchmesser (S 6406/10a)",
"Durchmesser (S 6406/11a)",
"Durchmesser (S 6406/12a)",
"Durchmesser (S 6406/13a)",
"Durchmesser (S 6406/14a)",
"Durchmesser (S 6406/15a)",
"Durchmesser (S 6406/16a)",
"Durchmesser (S 6406/17a)",
"Durchmesser (S 6406/10c)",
"Durchmesser (S 6406/11c)",
"Durchmesser (S 6406/12c)",
"Durchmesser (S 6406/13c)",
"Durchmesser (S 6406/14c)",
"Durchmesser (S 6406/15b)",
"Durchmesser (S 6406/16b)",
"Durchmesser (S 6406/17b)",
"Durchmesser (S 6406/9c)",
"Durchmesser (S 6406/9d)",
"Durchmesser (S 6406/9e)",
"Durchmesser (S 6406/9f)",
"Durchmesser (S 6406/9g)",
"Durchmesser (Haube)",
"Durchmesser (S 6406/10d)",
"Durchmesser (S 6406/11d)",
"Durchmesser (Stand)",
"Durchmesser (Fuß)",
"Durchmesser (Rand /2)",
"Durchmesser (S 6406/10b)",
"Durchmesser (S 6406/11b)",
"Durchmesser (S 6406/12b)",
"Durchmesser (S 6406/13b)",
"Durchmesser (S 6406/14b)",
"Durchmesser (S 6406/9b)",
"Durchmesser (S 7133/2)",
"Durchmesser (S 7133/5)",
"Durchmesser (oberer Rand)",
"Durchmesser (Rand /1)",
"Durchmesser (Foto)",
"Außenmaß (Durchmesser)",
"Durchmesser in Richtung Bohrung",
"Durchmesser quer zur Bohrung",
"Durchmesser Fuß",
"Durchmesser Oben",
"Durchmesser oben",
"Durchmesser unten",
"Durchmesser (Höhe)",
"Durchmesser (Breite)",
"Durchmesser (Länge)",
"Durchmesser (Dose)",
"Objektmaß (Durchmesser)",
"Objektmass (Durchmesser)",
"Durchmesser (Blatt)",
"Durchmesser (Platte)",
"Durchmesser (Rand)",
"d",
"Ø" => MDMeasurementType::diameter,
"width of wall",
"Laufwandung",
"Stärke",
"Wandstärke (Durchmesser)" => MDMeasurementType::wall,
"Length of socle",
"Tiefe/Länge (Sockel)",
"Länge (Sockel)" => MDMeasurementType::length_socle,
"Height of socle",
"Höhe (Sockel)" => MDMeasurementType::height_socle,
"Width of socle",
"Breite (Sockel)" => MDMeasurementType::height_socle,
"Höhe (Blatt)",
"Höhe (Blattmaß)",
"Höhe (Blattmass)",
"Blattmaß (Höhe)",
"Höhe (Blatt/Platte)",
"Höhe (Blatt (mittig gefalzt))",
"Blattmass (Höhe)" => MDMeasurementType::height_sheet_size,
"Breite (Blatt)",
"Breite (Blattmass)",
"Breite (Blattmaß)",
"Blattmaß (Breite)",
"Breite (Batt)",
"Breite (Blatt/Platte)",
"Breite (Blattplatte)",
"Breite (Blatt (mittig gefalzt))",
"Blattmass (Breite)" => MDMeasurementType::width_sheet_size,
"Blattmaß (Länge)",
"Blattmaß (Tiefe)",
"Länge (Blatt)",
"Tiefe (Blatt)",
"Länge (Blattmaß)",
"Tiefe (Blattmaß)",
"Länge (Blattmass)",
"Tiefe (Blattmass)",
"Blattmass (Länge)",
"Tiefe/Länge (Blatt)",
"Blattmass (Tiefe)" => MDMeasurementType::length_sheet_size,
"Höhe (Bild)",
"Höhe (Bildmaß)",
"Höhe (Bildmass)",
"Höhe (Darstellung)",
"Höhe (Darsetllung)",
"Höhe (Blatt/Darstellung)",
"Bildmaß (Höhe)",
"Höhe (Grafik ohne Pass.)",
"Höhe (Grafik ohne Pass.)",
"Höhe (Grafik ohne Pass.)",
"Höhe (Grafik ohne Pass.)",
"Höhe (Grafik ohne Pass.)",
"Höhe (Grafik ohne Passep.)",
"Höhe (Grafik ohne Passep.)",
"Höhe (Platte/Bild)",
"Höhe (Druckstock/Bild)",
"Höhe max (Darstellung)",
"Höhe max (Platte/Bild)",
"Höhe (Chine collé)",
"Höhe (Batt)",
"Bildmass (Höhe)" => MDMeasurementType::height_image_size,
"Breite (Bild)",
"Breite (Bildmaß)",
"Breite (Bildmass)",
"Breite (Darstellung)",
"Breite (Darsetllung)",
"Breite (Blatt/Darstellung)",
"Bildmaß (Breite)",
"Breite (Platte/Bild)",
"Breite (Bild/Platte)",
"Breite (Druckstock/Bild)",
"Breite max (Darstellung)",
"Breite max (Platte/Bild)",
"Breite (Chine collé)",
"Bildmass (Breite)" => MDMeasurementType::width_image_size,
"Bildmaß (Länge)",
"Bildmaß (Tiefe)",
"Tiefe (Darstellung)",
"LängLängee (Darstellung)",
"Länge (Druckstock/Bild)",
"Tiefe (Druckstock/Bild)",
"Bildmass (Länge)",
"Bildmass (Tiefe)" => MDMeasurementType::length_image_size,
"Höhe (Rahmen)",
"Rahmenmaß (Höhe)",
"Rahmenmass (Höhe)" => MDMeasurementType::height_frame,
"Breite (Rahmen)",
"Rahmenmaß (Breite)",
"Rahmenmass (Breite)" => MDMeasurementType::width_frame,
"Tiefe (Rahmen)",
"Rahmenmaß (Länge)",
"Rahmenmaß (Tiefe)",
"Rahmenmass (Länge)",
"Rahmenmass (Tiefe)" => MDMeasurementType::length_frame,
"Höhe min.",
'Höhe min (Darstellung)',
'Höhe min (Druckstock)',
'Höhe min (Blatt)',
'Höhe min (Platte)',
'Höhe min (Einleger)',
'Höhe min (Einleger 1)',
'Höhe min (Einleger 2)',
'Höhe min (Einleger 3)',
'Höhe min (Einleger 4)',
'Höhe min (Einleger 5)',
"Höhe min (Platte/Bild)",
'Höhe min (Schuber)' => MDMeasurementType::height_min,
"Höhe max.",
'Höhe max (Darstellung)',
'Höhe max (Blatt)',
'Höhe max (Platte)',
'Höhe max (Druckstock)',
'Höhe max (Einleger)',
'Höhe max (Einleger 1)',
'Höhe max (Einleger 2)',
'Höhe max (Einleger 3)',
'Höhe max (Einleger 4)',
'Höhe max (Einleger 5)',
'Höhe max (Schuber)' => MDMeasurementType::height_max,
"Länge min.",
"Tiefe min.",
'Länge min (Blatt)',
'Tiefe min (Blatt)' => MDMeasurementType::length_min,
"Länge max.",
"Tiefe max.",
"Länge max (Blatt)",
"Tiefe max (Blatt)" => MDMeasurementType::length_max,
"Breite min.",
'Breite min (Blatt)',
'Breite min (Platte)',
'Breite min (Einleger)',
'Breite min (Darstellung)',
"Breite min (Druckstock)",
"Breite min (Platte/Bild)",
'Breite min (Schuber)' => MDMeasurementType::width_min,
"Breite max.",
'Breite max (Blatt)',
'Breite max (Platte)',
'Breite max (Einleger)',
'Breite max (Einleger 1)',
'Breite max (Einleger 2)',
'Breite max (Einleger 3)',
'Breite max (Einleger 4)',
'Breite max (Einleger 5)',
'Breite max (Einleger 4-6)',
'Breite max (Darstellung)',
"Breite max (Druckstock)",
'Breite max (Schuber)' => MDMeasurementType::width_max,
"Diameter min." => MDMeasurementType::diameter_min,
"Diameter max." => MDMeasurementType::diameter_max,
"Durchmesser (Rahmen)" => MDMeasurementType::diameter_frame,
"weight",
"Gewicht (Höhe)",
"Lauf (Gewicht)",
"Gewicht (Breite)",
"Gewicht (Tiefe)",
"Gewicht (Länge)",
"Gewicht" => MDMeasurementType::weight,
"number of pages",
"Seitenzahl",
"Seitenzahl (Höhe)",
"Seitenzahl (Breite)",
"Seitenzahl (Tiefe)",
"Paginierung" => MDMeasurementType::number_of_parts,
"Die Axis",
"die-axis",
"orientation",
"Stempelstellung" => MDMeasurementType::die_axis,
"Länge (Klinge)" => MDMeasurementType::length_blade,
"Breite (Klinge)" => MDMeasurementType::width_blade,
"Höhe (Klinge)" => MDMeasurementType::height_blade,
"Durchmesser (Darstellung)",
"Durchmesser (Bild)" => MDMeasurementType::diameter_image_size,
"Bodenhöhe",
"Höhe (Boden)" => MDMeasurementType::height_of_base,
"Bodenbreite",
"Breite (Boden)" => MDMeasurementType::width_of_base,
"Bodenlänge",
"Länge (Boden)" => MDMeasurementType::length_of_base,
"Bodendurchmesser",
"Durchmesser (Boden)" => MDMeasurementType::diameter_of_base,
default => null,
};
if ($output === null) {
MDImporterMissingConcordance::throw("measurements", $input);
return MDMeasurementType::diameter_of_base; // Return default in dry-run mode
}
return $output;
}
}
+36
View File
@@ -0,0 +1,36 @@
<?PHP
/**
* Constains lists for grouping object forms / shapes.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Constains lists for grouping object forms / shapes.
*/
final class MDConcObjectForms implements MDImporterConcordanceListInterface {
private const FORMS_LIST = [
'Würfel' => 'cube',
'Zylinder' => 'cylinder',
];
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return string
*/
public static function getConcordanceTarget(string $input):string {
if (!isset(self::FORMS_LIST[$input])) {
MDImporterMissingConcordance::throw("form/shape", $input);
return 'cube'; // Return default in dry-run mode
}
return self::FORMS_LIST[$input];
}
}
+116
View File
@@ -0,0 +1,116 @@
<?PHP
/**
* Constains lists for categorizing links between objects and tags.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Constains lists for categorizing links between objects and tags.
*/
final class MDConcObjectTagRelTypes implements MDImporterConcordanceListInterface {
private const RELATION_TYPE_NAMES = [
'' => 'tag',
'tag' => 'tag',
'schlagwort' => 'tag',
'Motivgattung' => 'tag',
'motivgattung' => 'tag',
'Assoziation' => 'tag',
'assoziation' => 'tag',
'description' => 'tag',
'Druckvorlage' => 'tag',
'emotion' => 'tag',
'atmosphäre' => 'tag',
'schwarz-grau' => 'tag',
'schwarzgrau' => 'tag',
'schwarz' => 'tag',
'hellbraun' => 'tag',
'schwarz-grau fleckig' => 'tag',
'schwarzbraun' => 'tag',
'rötlich' => 'tag',
'graubraun' => 'tag',
'schlagwort hist.ereignis' => 'tag',
'schlagwort thema' => 'tag',
'Objektart' => 'object_type',
'objektart' => 'object_type',
'object_type' => 'object_type',
"motive" => "display_subject",
"motiv" => "display_subject",
"display" => "display_subject",
"Bildelement" => "display_subject",
"display_subject" => "display_subject",
"material" => "material",
"technique" => "technique",
"technik" => "technique",
'thema' => 'topic',
'topic' => 'topic',
'erwähnt' => 'mentioned',
'mentioned' => 'mentioned',
'taxon' => 'taxon',
];
// Maps to event type
private const RELATION_TYPES_MAPPED_TO_EVENTS = [
'\'datierung\'' => ['event_type' => 24, 'target_section' => 'time'],
'datierung' => ['event_type' => 24, 'target_section' => 'time'],
'schlagwort zeitraum' => ['event_type' => 24, 'target_section' => 'time'],
'person' => ['event_type' => 23, 'target_section' => 'actor'],
];
/**
* Returns the mapped event type and event type target
* of a supposed tag-object relationship name.
*
* @param string $input Input string (relation type name).
*
* @return array{event_type: int, target_section: 'time'|'actor'|'place'}
*/
public static function getMappedEventType(string $input):array {
if (isset(self::RELATION_TYPES_MAPPED_TO_EVENTS[strtolower($input)])) {
return self::RELATION_TYPES_MAPPED_TO_EVENTS[strtolower($input)];
}
MDImporterMissingConcordance::throw("object-tag relationship", $input);
return ['event_type' => 24, 'target_section' => 'time'];
}
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return string
*/
public static function getConcordanceTarget(string $input):string {
if (isset(self::RELATION_TYPE_NAMES[$input])) {
return self::RELATION_TYPE_NAMES[$input];
}
if (isset(self::RELATION_TYPE_NAMES[trim(strtolower($input))])) {
return self::RELATION_TYPE_NAMES[trim(strtolower($input))];
}
if (is_numeric($input)) return 'tag';
if (isset(self::RELATION_TYPES_MAPPED_TO_EVENTS[strtolower($input)])) {
throw new MDImporterTagRelationTypeIsEventType("Tag-object relationship type is signifies not tags, but an event component.");
}
MDImporterMissingConcordance::throw("object-tag relationship", $input);
return 'tag'; // Return default in dry-run mode
}
}
+36 -3
View File
@@ -14,12 +14,41 @@ final class MDConcOwnershipStatus implements MDImporterConcordanceListInterface
private const OWNERSHIP_TYPES_VERBOSE = [
// 0: No known entry type
"Eigentum" => "owned",
"Geschenk" => "owned",
"Dauerleihe" => "permanent_loan",
"Dauerleihgabe" => "permanent_loan",
"Besitz" => "owned",
"Owned" => "owned",
"owned" => "owned",
"Kauf" => "owned",
"Fund" => "owned",
"Eigenleistung" => "owned",
"Eigentum des Museums" => "owned",
"j" => "owned",
"+" => "owned",
"Eigentum Land Berlin" => "owned",
// Permanent loans
"Dauerleihe" => "permanent_loan",
"Dauerleihgabe" => "permanent_loan",
"Permanent loan" => "permanent_loan",
"permanent loan" => "permanent_loan",
// Loans
"Leihe" => "borrowed",
"Leihgabe" => "borrowed",
"Ensemble soll bei Umzug des Möbeldepots an Senat zurückgegeben werden (Jan. 2009)" => "borrowed",
"Leihgabe 13.8.96" => "borrowed",
// Owned by others => third_party_property
'Third party property' => 'third_party_property',
'Fremdeigentum' => 'third_party_property',
// Deaccessed
'Deaccessed' => 'deaccessed',
'deakzessioniert' => 'deaccessed',
'Deakzessioniert' => 'deaccessed',
'Deakzession' => 'deaccessed',
'Deakzessiert' => 'deaccessed',
];
@@ -33,7 +62,11 @@ final class MDConcOwnershipStatus implements MDImporterConcordanceListInterface
public static function getConcordanceTarget(string $input):string {
if (!isset(self::OWNERSHIP_TYPES_VERBOSE[$input])) {
throw new MDImporterMissingConcordance("Unknown ownership type: " . $input);
if (isset(self::OWNERSHIP_TYPES_VERBOSE[trim($input)])) {
return self::OWNERSHIP_TYPES_VERBOSE[trim($input)];
}
MDImporterMissingConcordance::throw("ownership", $input);
return 'deaccessed'; // Return default in dry-run mode
}
return self::OWNERSHIP_TYPES_VERBOSE[$input];
+7 -13
View File
@@ -11,18 +11,6 @@ declare(strict_types = 1);
*/
final class MDConcPlace implements MDImporterConcordanceListInterface {
/**
* Substrings of an place name listed as a key in this array will be replaced
* by the corresponding value.
*/
const NAME_SANITIZATIONS = [
" - " => "-",
"unbekannt" => "",
"Unbekannt" => "",
"unknown" => "",
"Unknown" => "",
];
private const PLACE_ROLES_TO_EVENT_TYPE = [
// 22: Related place
@@ -38,7 +26,9 @@ final class MDConcPlace implements MDImporterConcordanceListInterface {
'Herkunft (Allgemein)' => 1,
'Herstellungsort' => 1,
'Herstellungsland' => 1,
'Herstellung' => 1,
'Entstehungsort' => 1,
'Herstellungsort Hose' => 1,
'Münzstätte' => 1,
// 2: Finding / was found
@@ -68,6 +58,9 @@ final class MDConcPlace implements MDImporterConcordanceListInterface {
// 20: Copied
// 21: Lived
'Firmensitz' => 22,
// 25: Commissioned
// 26: Printing
@@ -115,7 +108,8 @@ final class MDConcPlace implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):int {
if (!isset(self::PLACE_ROLES_TO_EVENT_TYPE[$input])) {
throw new MDImporterMissingConcordance("Unknown place type: " . $input);
MDImporterMissingConcordance::throw("place (in event)", $input);
return 1; // Return default in dry-run mode
}
return self::PLACE_ROLES_TO_EVENT_TYPE[$input];
+37
View File
@@ -0,0 +1,37 @@
<?PHP
/**
* Constains lists for grouping sexes.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Constains lists for grouping sexes.
*/
final class MDConcSex implements MDImporterConcordanceListInterface {
private const SEXES_LIST = [
'Männlich' => 'male',
'Weiblich' => 'female',
'diverse' => 'other',
];
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return string
*/
public static function getConcordanceTarget(string $input):string {
if (!isset(self::SEXES_LIST[$input])) {
MDImporterMissingConcordance::throw("sex", $input);
return 'other'; // Return default in dry-run mode
}
return self::SEXES_LIST[$input];
}
}
+75
View File
@@ -0,0 +1,75 @@
<?PHP
/**
* Constains lists for categorizing source types.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Provides a list for finding the source type for an input.
*/
final class MDConcSourceTypes implements MDImporterConcordanceListInterface {
private const SOURCE_TYPES = [
// Article
"document]article" => "article",
// Book / default
"" => "book",
"buch" => "book",
"literatur" => "book",
"document]book" => "book",
'Buchpublikation' => 'book', // Book
'Produkthandbuch' => 'book', // Book
'Produkthandbuch/ Zusatzmaterial??' => 'book', // Book
'Produkthandbuch ' => 'book', // Book
'Buchpublikation ' => 'book', // Book
'Produkthandbuch (Objektart Missing)' => 'book', // Book
'Ausstellungskatalog' => 'book', // Book
'Comicbuch' => 'book', // Book
'Katalog' => 'book', // Book
// Misc
"Weiteres" => "misc",
"document]avm" => "misc",
'Keine Angabe' => 'misc', // Miscelaneous
'Handschriften' => 'misc', // Miscelaneous
'Divers' => 'misc', // Miscelaneous
'Handschrift' => 'misc', // Miscelaneous
'Flyer/Poster' => 'misc', // Miscelaneous
'Comic' => 'misc', // Miscelaneous
'Ordner' => 'misc', // Miscelaneous
'Diskette' => 'misc', // Miscelaneous
'Wissenschaftliche Hausarbeit' => 'misc', // Miscelaneous
// Periodical
'Magazin' => 'periodical', // Periodical
// Proceedings
'Tagungsunterlagen' => 'proceedings', // Proceedings
];
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return string
*/
public static function getConcordanceTarget(string $input):string {
if (isset(self::SOURCE_TYPES[$input])) {
return self::SOURCE_TYPES[$input];
}
if (isset(self::SOURCE_TYPES[strtolower($input)])) {
return self::SOURCE_TYPES[strtolower($input)];
}
MDImporterMissingConcordance::throw("source", $input);
return 'proceedings'; // Return default in dry-run mode
}
}
+5 -1
View File
@@ -13,6 +13,9 @@ final class MDConcTime implements MDImporterConcordanceListInterface {
private const TIME_ROLES_TO_EVENT_TYPE = [
"Hersteller" => 1,
"Herstellung" => 1,
# General / not yet (?) categorized
"Laufzeit" => 24,
@@ -51,7 +54,8 @@ final class MDConcTime implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):int {
if (!isset(self::TIME_ROLES_TO_EVENT_TYPE[$input])) {
throw new MDImporterMissingConcordance("Unknown time type: " . $input);
MDImporterMissingConcordance::throw("time (in event)", $input);
return 1; // Return default in dry-run mode
}
return self::TIME_ROLES_TO_EVENT_TYPE[$input];
+13 -1
View File
@@ -16,9 +16,13 @@ final class MDConcTitleTypes implements MDImporterConcordanceListInterface {
// Empty
"" => "",
"Objekttitel" => "",
"Werktitel" => "",
"Werktitel deskriptiv" => "",
// Scientific names
"Science" => "Science",
"Wissenschaft" => "Science",
// Everyday speech
"Everyday speech" => "Everyday speech",
@@ -32,6 +36,13 @@ final class MDConcTitleTypes implements MDImporterConcordanceListInterface {
"mundartl" => "Dialect",
"mundartlich" => "Dialect",
// Professional jargon
'Professional' => 'Professional jargon',
// Sociolect
'Sociolect' => 'Sociolect',
'Soziolekt' => 'Sociolect',
];
/**
@@ -44,7 +55,8 @@ final class MDConcTitleTypes implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):string {
if (!isset(self::TITLE_TYPES[$input])) {
throw new MDImporterMissingConcordance("Unknown title type: " . $input);
MDImporterMissingConcordance::throw("title", $input);
return "Dialect"; // Return default in dry-run mode
}
return self::TITLE_TYPES[$input];
+36
View File
@@ -0,0 +1,36 @@
<?PHP
/**
* Constains lists for categorizing misspelled weight units.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Provides lists for categorizing misspelled sizes.
*/
final class MDConcWeights implements MDImporterConcordanceListInterface {
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return MDWeightUnit|false
*/
public static function getConcordanceTarget(string $input):MDWeightUnit|false {
return match($input) {
"cm" => false,
"Gramm",
"g",
"G",
"г" => MDWeightUnit::g,
default => throw new MDInvalidWeightUnit("Invalid weight unit " . $input),
};
}
}
@@ -0,0 +1,63 @@
<?PHP
/**
* Constains a blacklist for disallowed names of vocabularies (either nonsense
* ones or ones not supported by md).
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Constains a blacklist for disallowed names of vocabularies (either nonsense
* ones or ones not supported by md).
*/
final class MDBlacklistNodaRepositories implements MDImporterBlacklistInterface {
/**
* List of blacklisted repository names.
*/
private const BLACKLIST = [
'',
'actor.xtree',
'akl',
'akl-nummer',
'AKL',
'AKL-Nummer',
'bmpi', // What is this?
'Bildindex-KUE-Datei',
'digitales kunst- und kulturarchiv düsseldorf',
'Digitales Kunst- und Kulturarchiv Düsseldorf',
'digicult.web',
'digiCULT.web',
'digicult.vocnet.org',
'isil',
'ISIL',
'kue.id',
'kue.id.',
'md:term',
'term.museum-digital.de',
'RIA/SMB',
'swd-nummer',
'SWD-Nummer',
'webpage',
'wiki',
'Wiki',
'xtree'
];
/**
* Checks if the input string is blacklisted.
*
* @param string $input Input string.
*
* @return boolean
*/
public static function isBlacklisted(string $input):bool {
if (in_array($input, self::BLACKLIST, true)) {
return true;
}
return false;
}
}
+15 -5
View File
@@ -41,11 +41,6 @@ final class InterfaceImplementationTest extends TestCase {
/**
* Test all concordance lists for their implementation of MDImporterConcordanceListInterface.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
* @group ValidOutput
* @group HTMLOutput
* @group SafeForProduction
*
* @return void
*/
public function testListInterfaceIsImplemented():void {
@@ -61,4 +56,19 @@ final class InterfaceImplementationTest extends TestCase {
}
}
/**
* Ensure all tests throw the MDImporterMissingConcordance exception, if
* a new value is encountered.
*
* @return void
*/
public function testMDImporterMissingConcordanceIsThrownForNewValues():void {
foreach ($this->_lists as $list) {
$this->expectException(MDImporterMissingConcordance::class);
(new $list)::getConcordanceTarget("ThisInputShouldNotExist");
}
}
}