Author SHA1 Message Date
jrenslin 3fd9c181d9 Merge branch 'master' into ufladerer-patch-1 2026-11-05 01:04:25 +01:00
jrenslin 65f20a8726 Add ne concordance type for (measurement) precisions 2026-10-28 16:46:45 +01:00
ufladerer cf3113012c src/MDConcMarkingType.php aktualisiert
added mapping for "sewn"
2026-10-28 09:24:20 +01:00
jrenslin 1aa7af68e0 Add missing mappings 2026-10-28 01:37:10 +01:00
jrenslin 0486217257 Update MDConcEventTypes 2026-10-25 10:21:35 +01:00
jrenslin d299f156d7 Map "Durchmesser (Ring)" 2026-10-22 02:37:36 +02:00
jrenslin e9ba4bf4e1 Improve matching weights 2026-10-14 11:38:34 +02:00
jrenslin be53dd93af Extend MDConcFieldRelatedWorksType and MDConcLicenses 2026-10-01 17:33:09 +02:00
jrenslin a383f76ad8 Map new currencies 2026-10-01 14:49:39 +02:00
jrenslin 9a1a07fb14 Extend MDConcMarkingType 2026-09-07 16:11:13 +02:00
jrenslin 628ccabdf5 Extend concordance lists 2026-09-02 18:43:19 +02:00
jrenslin fc8f98ff23 Extend MDConcMarkingType 2026-08-20 17:13:49 +02:00
jrenslin 2d0554f67d Add mapping 2026-08-20 15:41:09 +02:00
jrenslin 85040ba53e Map "mititg rechts" 2026-08-19 17:42:40 +02:00
jrenslin 0561a8d0c9 Extend concordance lists 2026-08-16 00:13:38 +02:00
jrenslin 695c1899aa Update MDConcCloserLocationTypes 2026-08-12 12:23:12 +02:00
jrenslin ad531d9d07 Update MDConcOwnershipStatus 2026-08-12 10:35:59 +02:00
jrenslin 838d1f3dfc Extend event type concordance list 2026-08-05 18:04:44 +02:00
jrenslin fa569b4c14 Extend currency concordance list 2026-08-05 17:45:41 +02:00
jrenslin daba3e7120 Update MDConcEventTypes 2026-08-05 15:03:52 +02:00
jrenslin 3c1528e3b0 Extend MDConcActor 2026-08-05 14:52:49 +02:00
jrenslin 0b7231928f Extend currency concordance lists 2026-08-04 00:43:00 +02:00
jrenslin 7abf9c1255 Extend concordance lists 2026-08-03 23:54:35 +02:00
jrenslin c2707a840d Add concordance for FL > Dutch Guilders 2026-07-12 19:45:50 +02:00
jrenslin 43cdf79418 Extend list of licenses 2026-07-10 01:04:51 +02:00
jrenslin 5c8a65bec2 Map marking position "Rückseiten, unten" 2026-07-03 14:13:17 +02:00
jrenslin 23f7c9de0d Merge branch 'master' of gitea:museum-digital/MDImporterConcordanceLists 2026-07-02 13:32:13 +02:00
jrenslin 4fcbf26e7c Extend concordance lists 2026-07-02 13:27:12 +02:00
jrenslin 42a3cddd24 Extend concordance list 2026-07-01 16:22:39 +02:00
jrenslin df3b098f38 Update MDConcEventTypes 2026-07-01 15:07:12 +02:00
jrenslin 6702f249e6 Extend concordance lists 2026-07-01 14:33:40 +02:00
jrenslin e4c639b975 Extend concordance lists (actors, measurements) 2026-06-29 23:04:21 +02:00
jrenslin 5c5f52a8ed Extend measurement type concordance list 2026-06-25 15:22:27 +02:00
jrenslin 78540306a8 Extend concordance list for licenses 2026-06-24 13:13:40 +02:00
jrenslin e6e769d005 Extend list 2026-06-10 16:01:25 +02:00
jrenslin fa1cef5243 Extend measurement concordance list 2026-06-10 13:21:06 +02:00
jrenslin c8253713f8 Update MDConcMeasurementTypes 2026-05-20 16:31:20 +02:00
jrenslin e80dedd0d6 Extend concordance list for events 2026-05-19 21:45:37 +02:00
jrenslin 79493a2848 Extend concordance lists 2026-05-19 18:57:26 +02:00
jrenslin 992ccab8f3 Extend concordance lists 2026-05-16 16:17:32 +02:00
jrenslin 313174b218 Extend concordance lists 2026-05-15 18:25:39 +02:00
jrenslin 2415483ee6 Extend measurement concordance list 2026-05-14 18:14:28 +02:00
jrenslin 7c985749f0 Extend concordance lists 2026-05-14 01:06:50 +02:00
jrenslin fa2622302e Map "Ausformung" 2026-05-12 16:27:08 +02:00
jrenslin c5d4124495 Extend concordance lists 2026-05-12 15:31:47 +02:00
jrenslin 933f2aef40 Extend concordance lists 2026-05-08 14:33:54 +02:00
jrenslin 340c05f258 Extend mapping for event types 2026-05-06 15:52:34 +02:00
jrenslin 257d5395c1 Extend concordance lists 2026-05-05 12:28:51 +02:00
jrenslin f3b5f98f89 Extend concordance list for measurement types 2026-04-29 22:15:24 +02:00
jrenslin cd8fa5b073 Update MDConcEventTypes 2026-04-20 17:38:17 +02:00
jrenslin 4643ce667c Map more currencies, licenses 2026-04-13 18:09:13 +02:00
jrenslin 6fe6d2abfe Extend list of mapped licenses 2026-03-30 17:32:42 +02:00
jrenslin b830bfa83b Add mappings for new marking position "mock title" 2026-03-25 15:25:32 +01:00
jrenslin 7eb5b044df Den Import-Error auslösenden Begriff "spende" auf "1: Donation" gesetzt.
Den Import-Error auslösenden Begriff "spende" auf "1: Donation" gesetzt.
2026-03-25 00:30:40 +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
30 changed files with 7912 additions and 205 deletions

No files matched your search

+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:
@@ -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 {
}
+584 -7
View File
File diff suppressed because it is too large. Load diff
+86
View File
@@ -0,0 +1,86 @@
<?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,
'Attributed' => false,
'circa' => false,
'Circa' => false,
'around' => false,
'geschätzt / unsicher / vermutet' => false,
'ca.' => false,
'?' => false,
// Certain
'sicher' => true,
'Herstellung' => true,
'gesichert' => true,
'nach Passepartoutnotiz' => true,
'Zusammenarbeit mit' => true,
'überarbeitet von' => true,
'Nachfolger von' => true,
'by' => true,
'.',
'1783',
'1875',
'1938',
'1945-05-01',
'1960',
'Anfang',
'Dezember',
'Ende',
'' => 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
@@ -20,6 +20,7 @@ final class MDConcCloserLocationTypes implements MDImporterConcordanceListInterf
# Place of recording
"1" => "1",
"Aufnahmeort" => "1",
"Place of recording" => "1",
# Finding place
@@ -31,6 +32,7 @@ final class MDConcCloserLocationTypes implements MDImporterConcordanceListInterf
# Former place
"3" => "3",
"Former place" => "3",
"Früherer Ort" => "3",
];
@@ -44,7 +46,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];
+2 -1
View File
@@ -26,7 +26,8 @@ final class MDConcColors implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):string {
if (!isset(self::COLORS_LIST[$input])) {
throw new MDImporterMissingConcordance("Unknown color: " . $input);
MDImporterMissingConcordance::throw("color", $input);
return "black"; // Return default in dry-run mode
}
return self::COLORS_LIST[$input];
+52 -1
View File
@@ -12,25 +12,73 @@ 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",
"CHF" => "ch-CHF",
"Swiss franc" => "ch-CHF",
"Schweizer Franken" => "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",
// Goldmark
'Deutsche Goldmark' => 'de-GM',
// Franc (France)
"French Franc" => "fr-FF",
"FF" => "fr-FF",
"FRF" => "fr-FF",
"Französischer Franc" => "fr-FF",
// Dutch Guilders
'fl' => 'nl-Gulden',
'FL' => 'nl-Gulden',
'Holländische Gulden' => 'nl-Gulden',
// Türkish Lira
'TRY' => 'tr-TRY',
'TL' => 'tr-TRY',
'Türkische Lira' => 'tr-TRY',
// Indian rupees
'INR' => 'in-INR',
'Indische Rupien' => 'in-INR',
// Nepalese rupees
'NPR' => 'np-NPR',
'Nepalesische Rupien' => 'np-NPR',
// Forint
"Forint" => "hu-Ft",
"FT" => "hu-Ft",
"Korona" => "hu-Korona",
"Austro-Hungarian krone" => "hu-Korona",
"Korona (osztrák-magyar" => "hu-Korona",
@@ -56,6 +104,8 @@ final class MDConcCurrencies implements MDImporterConcordanceListInterface {
"карбованці" => "ua-UAK",
"GBP" => "uk-GBP",
"uk-GBP" => "uk-GBP",
"Pfd" => "uk-GBP", // Pfund
"Pfund Sterling" => "uk-GBP", // Pfund
"USD" => "us-USD",
"US Dollar" => "us-USD",
"US dollar" => "us-USD",
@@ -75,7 +125,8 @@ final class MDConcCurrencies implements MDImporterConcordanceListInterface {
if (in_array($input, MDCurrenciesSet::CURRENCIES, true)) {
return $input;
}
throw new MDImporterMissingConcordance("Unknown currency: " . $input);
MDImporterMissingConcordance::throw("currency", $input);
return "eu-EUR"; // Return default in dry-run mode
}
return self::CURRENCIES_LIST[$input];
+2 -1
View File
@@ -37,7 +37,8 @@ final class MDConcDamageTypes implements MDImporterConcordanceListInterface {
throw new MDImporterBlacklistedConcordanceTerm("Invalid damage type: " . $input);
}
throw new MDImporterMissingConcordance("Unknown damage type: " . $input);
MDImporterMissingConcordance::throw("damage", $input);
return MDObjectDamageType::desiccation; // Return default in dry-run mode
}
return self::DAMAGE_TYPES[$input];
+179 -12
View File
@@ -17,10 +17,12 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"" => "0",
"ABM 95" => "0",
"Angebot" => "0",
"Armbrustersammlung" => "0",
"g" => "0",
"Herkunft unklar" => "0",
"keine Angaben" => "0",
"unbenannt" => "0",
"k.A." => "0",
"unbekannt" => "0",
"Unbekannt" => "0",
"05.03.07" => "0",
@@ -28,26 +30,77 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"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",
"Gift" => "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",
@@ -62,17 +115,65 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
// 2: Purchase
"Ankauf" => "2",
"Ankauf siehe Rechnung" => "2",
"Ankau" => "2",
"Auktion" => "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",
@@ -80,11 +181,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",
@@ -94,21 +204,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",
@@ -117,6 +239,7 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
// 6: Endowment
"Endowment" => "6",
"Stiftung" => "6",
"Stiftung (1930" => "6",
"Hivatalos átadás" => "6",
// Disposession
@@ -137,6 +260,7 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"Loan" => "9",
"Verliehen" => "9",
"Leihgabe vom" => "9",
"Leihvertrag mit Sonderregelung" => "9",
// 10: Exchange
"Austausch" => "10",
@@ -144,6 +268,7 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"csere" => "10",
"Exchange" => "10",
"Tausch" => "10",
"Sammeltausch" => "10",
// 11: In-house production
"Abzüge von alten Negativen" => "11",
@@ -152,14 +277,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",
@@ -172,48 +303,78 @@ 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",
"Depotfund" => "98",
"Sanierungsbestand Hornmoldhaus" => "98",
"To be checked" => "98",
"Eigentum" => "98",
"Ungeklärt" => "98",
"unklar" => "98",
"unklar, aus dem alten Bestand" => "98",
"?" => "98",
"Zugang ungeklärt" => "98",
"EigentumZCOM" => "98",
"Rechtsnachfolge" => "98",
// 99: Other legal acquisition
"Anderer rechtmäßiger Zugang" => "99",
"Bodenreform" => "99",
"sichergestellt" => "99",
"Other legal acquisition" => "99",
"Städt. Überlieferung" => "99",
"Städtische Überlieferung" => "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",
"um 1980 erworben" => "99",
"Einzelkauf/Schenkung" => "99",
"Schenkung / Leihgabe" => "99",
"Ersessen" => "99",
];
@@ -226,11 +387,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
}
}
+118 -10
View File
@@ -14,27 +14,75 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
private const EVENT_TYPE_NAMES_TO_ID = [
// 1: Created
'' => 1,
'Hergestellt' => 1,
'Hergestellt vermutlich' => 1,
'Herstellung Fassung' => 1,
'Herstellung' => 1,
'Ausführung und Herstellung' => 1,
'Ausführung vermutet' => 1,
'vermuteter Ausführungsort' => 1,
'Ausführung
Herstellung' => 1,
'Entwurf und Ausführung' => 1,
'Entwurf und Herstellung' => 1,
'zugeschrieben' => 1,
'ehem. zugeschrieben' => 1,
'Mitarbeit' => 1,
'Dekor' => 1,
"event" => 1,
"Ausführungsort" => 1,
"Entwurf, Ausführung und Herstellung" => 1,
"Event" => 1,
"Створено" => 1,
'http://terminology.lido-schema.org/lido00007',
'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,
"Hertellung" => 1,
'Bearbeitung' => 1,
'bearbeitet' => 1,
'gestempelt (' => 1,
'gestempelt (\'' => 1,
'Beginning of existence' => 1,
'creation' => 1,
'Ausformung' => 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,
'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
'Auffinden' => 2, // Finding
@@ -45,6 +93,8 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
'Finding' => 2,
'Finding (Activity)' => 2,
'Gefunden' => 2,
'gefunden' => 2,
'Auffindungsort' => 2,
"Виявлення" => 2,
"Виявленнґ" => 2,
'Finding
@@ -57,6 +107,11 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
'Published' => 3,
'Veröffentlicht' => 3,
'Veröffentlichung' => 3,
'Veröffentlicht vermutet' => 3,
'Verleger' => 3,
'Verlagsort' => 3,
'Verlag' => 3,
'Verlag vermutet' => 3,
'published' => 3,
'http://terminology.lido-schema.org/eventType/publication' => 3,
'Publikation' => 3,
@@ -68,11 +123,27 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
// 4: Template creation
'Template creation' => 4,
'Vorlagenerstellung' => 4,
'Vorlagenerstellung vermutet' => 4,
'Stichvorlage' => 4,
'Vorlage' => 4,
'nach' => 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,
@@ -80,6 +151,7 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
'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,
@@ -96,6 +168,10 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
'Written' => 7,
'Geschrieben' => 7,
'Verfasst' => 7,
'Text verfasst' => 7,
'geschrieben' => 7,
'verfasst' => 7,
'Autor/in' => 7, // written by
// 8: Collected
'Collected' => 8,
@@ -105,6 +181,8 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
'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
@@ -114,24 +192,32 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
'Передавання' => 8, // Transmission
// 9: => Painted
'Painted' => 8,
'Gemalt' => 8,
'Painted' => 9,
'Gemalt' => 9,
"Malerei" => 9,
// 10: Recorded
'Fotografische Aufnahme' => 10,
'Aufnahme' => 10,
'Aufgenommen' => 10,
'Зроблено знімок' => 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,
"Hat Druckplatte hergestellt" => 12,
'Herstellung der Druckform/Form' => 12,
'Kupferstecher' => 12,
"Hat Druckplatte erstellt" => 12,
"Hat Druckplatte hergestellt vermutet" => 12,
'http://terminology.lido-schema.org/lido00484' => 12,
// '13' => Sent
@@ -157,10 +243,13 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
// '19' => Drawn
'Drawn' => 19,
'Gezeichnet' => 19,
'Gezeichnet vermutet' => 19,
'Zeichnen' => 19,
// 20: Copied
'Copied' => 20,
'Kopiert' => 20,
'Kopie' => 20,
'Abgeschrieben' => 20,
// 21: Lived
@@ -181,6 +270,7 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
// 26 => Printed
'Printed' => 26,
'Gedruckt' => 26,
'Nachdruck' => 26,
// 27 => Recorded
'Recorded song' => 27,
@@ -189,6 +279,7 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
'Sung' => 28,
'Gesungen' => 28,
'Gesprochen' => 28, // ?
'Sprecher' => 28, // ?
// 29 => Decor designed
'Decor designed' => 29,
@@ -199,6 +290,7 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
'Form entworfen' => 30,
// 31 => Modelled
'Modell' => 31,
'Modelled' => 31,
'Modelliert' => 31,
@@ -218,18 +310,25 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
'Design' => 35,
'design' => 35,
'Designing' => 35,
'komponiert' => 35,
'Entwerfen' => 35,
'Entwurf' => 35,
'vermuteter Entwurfsort' => 35,
'Geistige Schöpfung' => 35,
'Geistige Schöpfung vermutet' => 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,
@@ -248,16 +347,9 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
'Wurde versteigert' => 40,
// 41: Was Bought
'Erwerb' => 41,
'Erwerbung' => 41,
'Acquisition' => 41,
'Acquisition (Activity)' => 41,
'http://terminology.lido-schema.org/lido00001' => 41,
'Bodenreform' => 41,
'Kauf' => 41,
'Gekauft' => 41,
'acquisition_Kauf' => 41,
'acquisition_Diener' => 41,
// 42: Owned
'acquisition_unbekannt' => 42,
@@ -283,6 +375,7 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
// 43: Was sold
'was sold' => 43,
'Verkauft' => 43,
'Verkauf' => 43,
'Acquisition / Selling' => 43,
'Vertrieb' => 43,
@@ -298,6 +391,8 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
// 48: Edited
'Herausgegeben' => 48,
'Verlag zugeschrieben' => 48,
"publication" => 48,
// 49: Gifted, donated
'Schenkung' => 49,
@@ -311,6 +406,18 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
'acquisition_Übergabe' => 49,
'acquisition_Stiftung' => 49,
'acquisition_Bodenreform' => 49,
'Gespendet / gespendet' => 49,
'Пожертвувано / подаровано' => 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,
];
@@ -324,7 +431,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 event type: '" . $input . "'");
MDImporterMissingConcordance::throw("event", $input);
return 1; // Return default in dry-run mode
}
return self::EVENT_TYPE_NAMES_TO_ID[$input];
+61 -2
View File
@@ -17,6 +17,7 @@ enum MDConcFieldRelatedWorksType {
case series;
case literature;
case weblink;
case tag;
case undefined;
/**
@@ -28,7 +29,7 @@ enum MDConcFieldRelatedWorksType {
*/
public static function fromString(string $input):MDConcFieldRelatedWorksType {
return match($input) {
$output = match($input) {
"Dokumentiert in",
"dokumentiert in",
@@ -40,16 +41,26 @@ enum MDConcFieldRelatedWorksType {
"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',
"Gehört thematisch zu",
"beschrieben in" => self::literature,
"Teil von",
"ist Teil von",
"ist physischer Teil von",
"Gehört zu",
"gehört zu",
"Sammlung",
"Gehört zu Sammlung",
"gehört zu Sammlung",
"Part of",
@@ -58,6 +69,8 @@ enum MDConcFieldRelatedWorksType {
"Photoserie",
"Mappe",
"series",
"Nachlass",
"Vorlass",
"Konvolut",
"http://digicult.vocnet.org/terminology/ter00235",
"Serie" => self::series,
@@ -67,7 +80,28 @@ enum MDConcFieldRelatedWorksType {
"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",
@@ -115,6 +149,8 @@ enum MDConcFieldRelatedWorksType {
"Recto von",
"ist Teil desselben konzeptuellen Ganzen mit",
"ist vorbereitende Studie für",
"hat vorbereitende Studie",
"basiert auf",
"Druck",
"Referenz",
"Haupttafel",
@@ -128,9 +164,23 @@ enum MDConcFieldRelatedWorksType {
'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',
@@ -145,6 +195,8 @@ enum MDConcFieldRelatedWorksType {
"Zusammen ein Ganzes bildend mit",
"Vorlage" => self::related_works_freetext,
"Film" => self::tag,
"Weblink",
"Web link",
"Fachportal",
@@ -154,8 +206,15 @@ enum MDConcFieldRelatedWorksType {
"" => self::undefined,
default => throw new MDpageParameterNotFromListException("Unknown target field for related works type: " . $input),
default => null,
};
if ($output === null) {
MDImporterMissingConcordance::throw("related work type", $input);
return self::undefined; // Return default in dry-run mode
}
return $output;
}
}
+50 -1
View File
@@ -14,18 +14,66 @@ 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',
];
/**
@@ -38,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];
+105 -100
View File
@@ -10,114 +10,119 @@ declare(strict_types = 1);
* Provides lists for categorizing misspelled sizes.
*/
final class MDConcLengths implements MDImporterConcordanceListInterface {
private const LENGTHS_LIST = [
// 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" => "",
// cm
"cn" => "cm",
",cm" => "cm",
"5cm" => "cm",
"Zentimeter" => "cm",
"см" => "cm",
"ca" => "cm", // This is likely a typo
"Meter" => "m",
"Meters" => "m",
"meter" => "m",
"meters" => "m",
"Milimeter" => "mm",
"Milimeters" => "mm",
"Millimeter" => "mm",
"Millimeters" => "mm",
"мм" => "mm",
"ma" => "mm", // Either a typo for mm, or miliamper?
"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(trim($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",
"g",
"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",
"ca. cm",
",cm",
"cm",
"5cm",
"Zentimeter",
"см",
"",
"ca" => MDLengthUnit::cm,
"Meter",
"Meters",
"meter",
"meters" => MDLengthUnit::m,
"Milimeter",
"Milimeters",
"Millimeter",
"Millimeters",
"мм",
"ma" => MDLengthUnit::mm,
"inch",
"Inch",
"inches",
"Inches",
"Zoll",
"zoll" => MDLengthUnit::in,
"Fuß",
"ft" => MDConcLengths::ft,
default => throw new MDInvalidLengthUnit("Invalid length unit '" . $input . "'"),
};
}
}
+52 -2
View File
@@ -12,14 +12,23 @@ declare(strict_types = 1);
final class MDConcLicenses implements MDImporterConcordanceListInterface {
private const LICENSES_LIST = [
"CCO" => "CC0",
"CC 0" => "CC0",
"CC_0" => "CC0",
"CC O" => "CC",
"CC O" => "CC0",
"CC0 1.0" => "CC0",
"CC 0 1.0" => "CC0",
"CC_0 1.0" => "CC0",
"CC0 1.0 Foto: SKKG 2020" => "CC0",
"CC0 1.0 Foto: SKKG 2021" => "CC0",
"CC0 1.0 Foto: SKKG 2022" => "CC0",
"CC0 1.0 Foto: SKKG 2023" => "CC0",
"CC0 1.0 Foto: SKKG 2024" => "CC0",
"CC0 1.0 Foto: SKKG 2025" => "CC0",
"CC0 1.0 Foto: SKKG 2026" => "CC0",
"CC0 1.0 Universell" => "CC0",
"CC0 1.0 Universell (CC0 1.0)" => "CC0",
"CC0 1.0 Universal (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",
@@ -31,6 +40,13 @@ final class MDConcLicenses implements MDImporterConcordanceListInterface {
"CC_BY" => "CC BY",
"CC-BY" => "CC BY",
"CC.BY" => "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",
"CC BY 4.0 Erbengemeinschaft Hans Jörg LimbachFoto: SKKG 2022" => "CC BY",
"CC BY 4.0 Erbengemeinschaft Hans Jörg LimbachFoto: SKKG 2023" => "CC BY",
"CC BY 4.0 Erbengemeinschaft Hans Jörg Limbach" => "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",
@@ -39,6 +55,9 @@ final class MDConcLicenses implements MDImporterConcordanceListInterface {
"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",
@@ -48,6 +67,15 @@ final class MDConcLicenses implements MDImporterConcordanceListInterface {
"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",
@@ -65,7 +93,9 @@ final class MDConcLicenses implements MDImporterConcordanceListInterface {
"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 - 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",
@@ -73,6 +103,7 @@ final class MDConcLicenses implements MDImporterConcordanceListInterface {
"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",
@@ -85,18 +116,25 @@ final class MDConcLicenses implements MDImporterConcordanceListInterface {
"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",
"http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de" => "CC BY-NC-SA",
"https://creativecommons.org/licenses/by-nc-sa/4.0/" => "CC BY-NC-SA",
"https://creativecommons.org/licenses/by-nc-sa/4.0/deed.de" => "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",
@@ -109,25 +147,36 @@ final class MDConcLicenses implements MDImporterConcordanceListInterface {
"https://www.europeana.eu/rights/rr-f/" => "RR-F",
"Rechte vorbehalten - Freier Zugang" => "RR-F",
"Rechte vorbehalten – Freier Zugang" => "RR-F",
"Rechte vorbehalten (InC 1.0)" => "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",
"©" => "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',
'http://creativecommons.org/publicdomain/mark/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',
];
@@ -141,7 +190,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];
+767 -10
View File
@@ -19,9 +19,22 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"mittig auf Schild" => "center",
"Vorderseite, mittig" => "center",
"beidseitig mittig" => "center",
'Auf Vorderseite der Parierstange mittig' => 'center', // Center
'Mitte bis oberes Drittel' => 'center', // Center
'Schmutztitelseite, mittig' => 'center', // Center
'Unterseite mittig' => 'center', // Center
"untere Passpartoutkante, mittig" => "center",
"Mitte" => "center",
'mittig auf der Schale' => 'center', // Center
"vorn am Kasten, mittig, einseitig" => "center",
"an Gehäuse mittig" => "center",
'mitte' => 'center', // Center
'Vorderseite mittig' => 'center', // Center
'Vorderseite, Mitte ' => 'center', // Center
'Mittig auf S 7083/1' => 'center', // Center
'Mittig auf S 7083/2' => 'center', // Center
'Mittig auf dem durchsichtigen Haubendom' => 'center', // Center
'Mittig zentral' => 'center', // Center
// Left
"Links" => "left",
@@ -29,38 +42,187 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"linke Ecke im Aquarell" => "left",
"linkes, blaues Schleifenband" => "left",
"linkes, grünes Schleifenband" => "left",
'an der linken Seite der Plinthe' => 'left', // Left
'linke Aussenseite' => 'left', // Left
'Sockel links' => 'left', // Left
'vorne links in Hohlkehle' => 'left', // 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
'Vorderseite links' => 'left', // Left
'am linken Bildrand' => 'left', // Left
'im linken Hebel' => 'left', // Left
'linke Seite am Hals' => 'left', // Left
'linker Ärmel' => 'left', // Left
// Right
"mittig rechts" => "right",
"Rechts" => "right",
"rechts" => "right",
"mititg rechts" => "right",
"rechts neben Bildnis" => "right",
'Vorderseite, rechts neben der Schulter' => 'right',
'S 2560/2 am Bund vorne rechts' => 'right', // Right
'auf dem rechten Rand' => 'right', // Right
"Rechter Bildrand" => "right",
'rechte Schulter' => 'right', // Right
'rechte Längsseite' => 'right', // Right
'Über dem rechten Glasfenster.' => 'right', // Right
"Balken rechts" => "right",
'Mitte rechts' => 'right', // Right
'Frontseite, rechts' => 'right', // Right
'Sockel rechts' => 'right', // Right
'am rechten Bildrand' => 'right', // Right
'Vorderseite rechts' => 'right', // Right
'Vorderseite, rechts' => 'right', // Right
// Bottom
"unten" => "bottom",
'Mitte unten' => 'bottom', // Bottom
'unten links u. rechts' => 'bottom', // Bottom
'unten rechts/links' => 'bottom', // Bottom
'Unten auf den Schminkstiften' => 'bottom', // Bottom
'Unterhalb der Schraube auf der Vorderseite' => 'bottom', // Bottom
'auf dem Tassenboden' => 'bottom', // Bottom
'unten am Hals' => 'bottom', // Bottom
'Erste Seite unten' => 'bottom', // Bottom
'Fuß' => 'bottom', // Bottom
'Seite zwei unten' => 'bottom', // Bottom
'Sitzfläche unten' => 'bottom', // Bottom
'Vorderseite, unten' => 'bottom', // Bottom
'Vorderseite, unterer Bildrand' => 'bottom', // Bottom
'auf Seite drei untere Hälfte' => 'bottom', // Bottom
'Unterseite Becher' => 'bottom', // Bottom
'Unterseite Tablett' => 'bottom', // Bottom
'Bildrand unten mittig' => 'bottom', // Bottom
'Bildrand unten' => 'bottom',
'Bildrand unten, \'auf dem Kopf\'' => 'bottom', // Bottom
'auf der Unterseite, am rechten hinteren Fußsockel' => 'bottom', // Bottom
'Vorderseite unten mittig' => 'bottom', // Bottom
'Vorderseite, u. ' => 'bottom', // Bottom
'Vorderseite, unten mittig' => 'bottom', // Bottom
'unten mitten ' => 'bottom', // Bottom
'mittig unten' => 'bottom', // Bottom/bot
'außen auf unterer Hälfte der Holzwandung' => 'bottom', // Bottom
'Inschriftenseite, Mitte unten' => 'bottom', // Bottom
'auf S 58901/1 = Medaille, Seite m. Portraitdarstellung unten' => 'bottom', // Bottom
'unterhalb der Abbildung' => 'bottom', // Bottom
'unterhalb einer Wolkenreihe' => 'bottom', // Bottom
'vorne, unten am Hals' => 'bottom', // Bottom
'im unteren Bereich des Stiel;' => 'bottom', // Bottom
"unter der Zeichnung" => "bottom",
'Sockel vorne' => 'bottom', // Bottom
"unter der Bild" => "bottom",
"unterer Bildrand" => "bottom",
'Vorderseite u.l. und u.r. ' => 'bottom', // Bottom
'Vorderseite unten' => 'bottom', // Bottom
'Vorderseite, unten links und rechts' => 'bottom', // Bottom
"Unterer Bildrand" => "bottom",
"unterer Bildrand, mittig" => "bottom",
"unten mitte" => "bottom",
"Unterkante Bild" => "bottom",
"Boden, unten" => "bottom",
"unterer Blattrand" => "bottom",
'Hals unten' => 'bottom', // Bottom
'Sockel unten mittig' => 'bottom', // Bottom
'Vorderseite Sockel' => 'bottom', // Bottom
'vorne unten' => 'bottom', // 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",
'S 662a___ auf der Rückwand; S 662c___ auf Deckel nb. Knauf' => 'top', // Top
'Schenkel, Aussenseite' => 'top', // Top
'im oberen Bereich das Blatt' => 'top', // Top
'oberer Schaft' => 'top', // Top
'Außen auf der Wandung, obere Hälfte.' => 'top', // Top
'Griff oben' => 'top', // Top
'Seite zwei oben' => 'top', // Top
'Seite eins oben' => 'top', // Top
'Stuhllehne oben' => 'top', // Top
"oben mittig" => "top",
"Oben mittig" => "top",
"oberer Rand" => "top",
'obere Schale, Oberseite' => 'top', // Top
'obere Schale, Oberseite Mitte' => 'top', // Top
'Oben' => 'top', // Top
'An der Oberkante von S 6781/4' => 'top', // Top
'Vorderseite oben' => 'top', // Top
'Oberhalb des Haubendoms' => 'top', // Top
'Platte auf der Oberseite' => 'top', // Top
'Wandung oben' => 'top', // Top
"oberer Balken" => "top",
'Kopfseite' => 'top', // Top
'im oberen Bereich des Messers' => 'top', // Top
"Flasche und Verschluß" => "top",
"obere Abdeckung" => "top",
'Vorderseite, oben' => 'top', // Top
"Mittig oben" => "top",
"mittig oben" => "top",
// Inside
'Standsockel innen' => 'inside', // Inside
'Innenseite Griff' => 'inside', // Inside
'Innenseite Hohlfuß' => 'inside', // Inside
'Innenseite der Knopfleiste' => 'inside', // Inside
'innen Spiegelrand, S 3921/3' => 'inside', // Inside
'Bund, Innen, S 5492c' => 'inside', // Inside
'Innen, Halsauschnitt' => 'inside', // Inside
'Innenbund, S 5495b' => 'inside', // Inside
'Innenseite Deckel' => 'inside', // Inside
'Innenseite, S 5491d' => 'inside', // Inside
'Innenseite, Endteil, S 5491d' => 'inside', // Inside
'Innentasche links, Innen, S 5495a' => 'inside', // Inside
'Innentasche links, S 5491a' => 'inside', // Inside
'Innentasche rechts, S 5495a' => 'inside', // Inside
'Innentasche, links, S 5492a' => 'inside', // Inside
'In der Schatulle' => 'inside', // Inside
'Laffen Innenseite' => 'inside', // Inside
'Futter Innenseite ' => 'inside', // Inside
'Erste Innenseite links oben' => 'inside', // Inside
'Hemd innen' => 'inside', // Inside
'Hose innen' => 'inside', // Inside
'Innen - sowohl in der Jacke als auch in der Weste' => 'inside', // Inside
'Innenseite Rand unter Griff' => 'inside', // Inside
'Innenseite Schaufel' => 'inside', // Inside
'Innenseite Standfuß' => 'inside', // Inside
'Innentasche Jacke' => 'inside', // Inside
'Innerhalb der Abbildung' => 'inside', // Inside
'Jacke innen' => 'inside', // Inside
'Kanneninneres, Boden' => 'inside', // Inside
'Standring innen' => 'inside', // Inside
'im Innenteil, auf der Rückenpartie' => 'inside', // Inside
'innen, am Revers' => 'inside', // Inside
'innen, eingeschobener Zettel im' => 'inside', // Inside
'Innentasche, links, S 5493a' => 'inside', // Inside
'Innentasche, links, S 5494a' => 'inside', // Inside
'Innentasche, links, S 5495a' => 'inside', // Inside
'Zylinder innen' => 'inside', // Inside
'auf der Innenseite des Hutschachteldeckels' => 'inside', // Inside
'Einband innen, oben und unten links' => 'inside', // Inside
'Innen auf der vierten Seiten links oben' => 'inside', // Inside
'Innen auf der zweiten Seite' => 'inside', // Inside
'Innenseite der Klappe' => 'inside', // Inside
'Innenseiten, Leinenfutter, Steifel a' => 'inside', // Inside
'Innenseiten, Leinenfutter, Steifel b' => 'inside', // Inside
'Reißverschluss Innenseite oben' => 'inside', // Inside
'Schlaufe Innenseite rückwärtiger Teil des Bundes' => 'inside', // Inside
'Umschlaginnenseiten' => 'inside', // Inside
'Vordere Umschlagseite, innen' => 'inside', // Inside
'aufgeklebtes Stück Papier; Innenseite, Ablagefläche' => 'inside', // Inside
'im Inneren, auf dem Boden des runden Faches' => 'inside', // Inside
// Bottom left
"links unter der Zeichnung" => "bottom_left",
@@ -69,41 +231,218 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"linker, unterer Bildrand" => "bottom_left",
"linker, unterer Bildrand (über dem Knie)" => "bottom_left",
"linke, untere Passpartoutkante" => "bottom_left",
'vorne am Sockel' => 'bottom_left', // Bottom left
'Auf dem Gemälde unten links.' => 'bottom_left', // Bottom left
'Brief, links unten' => 'bottom_left', // Bottom left
'Recto links unten' => 'bottom_left', // Bottom left
'Vorderseite, unten links' => 'bottom_left', // Bottom left
"linke, untere Ecke" => "bottom_left",
"Links unten" => "bottom_left",
"Unten links" => "bottom_left",
'linke untere Ecke' => 'bottom_left', // Bottom left
"unten links" => "bottom_left",
'Bildrand unten links' => 'bottom_left', // Bottom left
'Vorderseite unten links' => 'bottom_left', // Bottom left
'Vorderseite u.l.' => 'bottom_left', // Bottom left
'Vorderseite, u.l.' => 'bottom_left', // Bottom left
// Bottom right
"im Bild unten rechts" => "bottom_right",
"rechts unten Signatur" => "bottom_right",
"untern rechts" => "bottom_right",
"verso unten rechts" => "bottom_right",
"unten rehcts" => "bottom_right",
"unterer Bildrand rechts" => "bottom_right",
"Bildrand rechts unten" => "bottom_right",
"Rechts unten" => "bottom_right",
'Forderseite auf Karton unten rechts.' => 'bottom_right', // Bottom right
'Recto rechts unten' => 'bottom_right', // Bottom right
'Vorderseite S 3910/2, rechte untere Ecke' => 'bottom_right', // Bottom right
'Vorderseite S 3910/3, rechte untere Ecke' => 'bottom_right', // Bottom right
'Vorderseite, rechts unten' => 'bottom_right', // Bottom right
'rechte Ecke unten / S 3910/4' => 'bottom_right', // Bottom right
'bei zwei Zeichnungen unten rechts' => 'bottom_right', // Bottom right
'rechte untere Ecke' => 'bottom_right', // Bottom right
'Bildrand unten rechts' => 'bottom_right', // Bottom right
"rechts unten" => "bottom_right",
"Unten rechts" => "bottom_right",
"unten rechts" => "bottom_right",
"untenb rechts" => "bottom_right",
'Vorderseite, u.r.' => 'bottom_right', // Bottom right
'auf Hintergrund der Illustrationen unten rechts' => 'bottom_right', // Bottom right
'ganz unten rechts' => 'bottom_right', // Bottom right
'Vorderseite u.r' => 'bottom_right', // Bottom right
'Vorderseite u.r.' => 'bottom_right', // Bottom right
'Vorderseite unten rechts' => 'bottom_right', // Bottom right
'Vorderseite, unten rechts' => 'bottom_right', // Bottom right
'Vorderseite, untere Ecke rechts' => 'bottom_right', // Bottom right
// Top Left
"linker, oberer Bildrand" => "top_left",
"oben links auf Malschicht" => "top_left",
"Links oben" => "top_left",
'2. Seite, oben links' => 'top_left', // Top left
'Letzte Seite hinten, oben links.' => 'top_left', // Top left
'S 3912/2, Vorderseite, links oben' => 'top_left', // Top left
'Vorderseite o.l.' => 'top_left', // Top left
'Umschlaginnenseite, oben links' => 'top_left', // Top left
"Oben links" => "top_left",
"oben links" => "top_left",
"oben links im Bild" => "top_left",
'Vorderseite, o.l.' => 'top_left', // 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",
'Einschlag, links oben' => 'top_right', // Top right
'rechts oben' => 'top_right', // Top right
'Einschlag, rechts unten' => 'top_right', // Top right
'S 3912/1, Vorderseite, rechts oben' => 'top_right', // Top right
'Seite eins oben rechts' => 'top_right', // Top right
'Vorderseite oben rechts' => 'top_right', // Top right
'Vorderseite, oben rechts' => 'top_right', // Top right
'Vorsatzblatt, rechts oben' => 'top_right', // Top right
'Vorderseite o.r. ' => 'top_right', // Top right
'Vorderseite, obere Ecke, rechts' => 'top_right', // Top right
// Edge
"Rand" => "edge",
"linker Rand Pergaminhülle (für Kleinbildfilmstreifen)" => "edge",
"linker Rand Pergaminhülle (für Diapositive im Mittelformat)" => "edge",
"linker Rand Kunststoffhülle (für Kleinbildfilmstreifen)" => "edge",
'Seitenrand des Fußes' => 'edge', // Edge
'Seitenrand' => 'edge', // Edge
'Rand Standfuß' => 'edge', // Edge
'Rückseite Rahmen' => 'edge', // Edge
'Rückseite Rand' => 'edge', // Edge
'Rückseite, Rahmen' => 'edge', // Edge
'Rand des Fußes' => 'edge', // Edge
'Sockelrand' => 'edge', // Edge
'Stutenkopf und Sockel' => 'edge', // Edge
'am Rand vom Fuß' => 'edge', // Edge
"Schildkante vorn, innen" => "edge",
'Buchrücken' => 'edge', // Edge
'Rahmen' => 'edge', // Edge
'Rücken' => 'edge', // Edge
'Seitlich Handbesen' => 'edge', // Edge
'Tablett, Randbereich' => 'edge', // Edge
'Rückseite, Rahmen ' => 'edge', // Edge
'Rückseite, Rahmen und Bilderträger' => 'edge', // Edge
'Vorderseite, unterer Bildrand ' => 'edge', // Edge
'am unteren Rahmenrand, mittig' => 'edge', // Edge
"Schildkante hinten, innen" => "edge",
'Außenrand Fuß' => 'edge', // Edge
'Fuß, Rand' => 'edge', // Edge
'Keilrahmen' => 'edge', // Edge
'Rand ' => 'edge', // Edge
'Rand, Außenseite' => 'edge', // Edge
"äußerer Rand" => "edge",
"Auflage für Brief am äußeren Rand" => "edge",
"äußerer Gefäßrand" => "edge",
"Tellerrand" => "edge",
'oberer Außenrand des nierenschälchenförmigen Einsatzes' => 'edge', // Edge
'unterer Rand' => 'edge', // Edge
'Vorderseite unterer Rand der Schulter' => 'edge', // Edge
'seitlich' => 'edge', // Edge
'seitlich links' => 'edge', // Edge
'seitlich rechts' => 'edge', // Edge
"Fußrand, außen" => "edge",
"unterer seitlicher Rand" => "edge",
"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",
'Vorderseite, Ecke' => 'front_front', // Full front
'Vorderseite Karte S 4300d' => 'front_front', // Full front
'Vorderseite Schirm' => 'front_front', // Full front
'Vorderseite auf Passepartout, rechts unter dem Bild.' => 'front_front', // Full front
'Vorderseite der Tasche unter der Klappe' => 'front_front', // Full front
'an der Vorderseite der Plinthe' => 'front_front', // Full front
'auf der Vorderseite' => 'front_front', // Full front
"Volle Vorderseite" => "front_front",
"Volle Frontseite" => "front_front",
"Vorderseite" => "front_front",
"Forderseite" => "front_front",
'Titelblatt' => 'front_front', // Full front
'Vorderseite von S 7083/3' => 'front_front', // Full front
'Vorderseite, unterhalb der Schulter' => 'front_front', // Full 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",
'Rückseite Deckel' => 'rear_side', // Rear side
'Rückseite des Schubers, mittig' => 'rear_side', // Rear side
'Rückseite auf S 8741/36' => 'rear_side',
'Auf Rückeseite, rechter Bildrand' => 'rear_right', // Rear side: right
'Rückseite, Mitte rechts' => 'rear_right', // Rear side: right
'Auf Rückseite der Fotografie im Textfeld.' => 'rear_side', // Rear side
'Auf Rückseite im Adressfeld' => 'rear_side', // Rear side
'Auf Rückseite im Textfeld' => 'rear_side', // Rear side
'Auf Rückwand des Uhrwerks' => 'rear_side', // Rear side
'Auf der Rückseite' => 'rear_side', // Rear side
'Auf der Rückseite im Adressfeld' => 'rear_side', // Rear side
'Auf der Rückseite im Textfeld' => 'rear_side', // Rear side
'Medaillon Rückseite' => 'rear_side', // Rear side
'Rückseite o.r.' => 'rear_side', // Rear side
'Rückseite, Bildträger' => 'rear_side', // Rear side
'auf Rückseite Faltpapier' => 'rear_side', // Rear side
'Bilderrahmen Rückseite oben rechts sowie unten' => 'rear_side', // Rear side
'Auf der Rückseite (ohne Zähne) des Mittelteils' => 'rear_side', // Rear side
'Rückseite, in dem Uhrenkasten ' => 'rear_side', // Rear side
'Vorderseite, Rückseite' => 'rear_side', // Rear side
'Auf der Rückseite des Spiegels' => 'rear_side', // Rear side
'Auf der Rückseite von S 7135/1b-c' => 'rear_side', // Rear side
'Griff Rückseite' => 'rear_side', // Rear side
'Rückseite Griff' => 'rear_side', // Rear side
'Rückseite S 7134/5' => 'rear_side', // Rear side
'Rückseite des Griff' => 'rear_side', // Rear side
'Rückseite von S 7083/3' => 'rear_side', // Rear side
'Unterhalb der Schraube auf der Rückseite' => 'rear_side', // Rear side
'Aufkleber Rückseite' => 'rear_side', // Rear side
'Rückseite Plakette' => 'rear_side', // Rear side
'Rückseite Schale, Innenseite Etuideckel' => 'rear_side', // Rear side
'Filter hinten' => 'rear_side', // Rear side
'Keilrahmen Rückseite' => 'rear_side', // Rear side
'Radrückseite, auf einer Speiche' => 'rear_side', // Rear side
'Rückseite Fotografien von S 4300d' => 'rear_side', // Rear side
'Rückseite Mitte' => 'rear_side', // Rear side
'Rückseite S 4300e' => 'rear_side', // Rear side
'Rückseite S 4300f' => 'rear_side', // Rear side
'Rückseite S 4301/7 und S 4301/10' => 'rear_side', // Rear side
'Rückseite von S 4300e-f' => 'rear_side', // Rear side
'Rückseite, Aufkleber' => 'rear_side', // Rear side
'Rückseite, auf dem Rahmen oben links' => 'rear_side', // Rear side
'Rückseite___ oben, unten, mittig' => 'rear_side', // Rear side
'Umschlag-Rückseite' => 'rear_side', // Rear side
'a und b, Rückseite' => 'rear_side', // Rear side
'a, Rückseite' => 'rear_side', // Rear side
'hinten' => 'rear_side', // Rear side
'b, Rückseite' => 'rear_side', // Rear side
"Recto" => "rear_side",
'Rückseite Griff, nahe Kelle' => 'rear_side', // Rear side
'Rückseite Schulter' => 'rear_side', // Rear side
'hinten rechte Schulter' => 'rear_side', // Rear side
"Revers" => "rear_side",
"Reverse" => "rear_side",
"rs Umschrift" => "rear_side",
@@ -112,24 +451,433 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"Rückseite Kalender" => "rear_side",
"Rückseite Keilrahmen" => "rear_side",
"Rükseite" => "rear_side",
"Rückseite, unter Doublierung" => "rear_side",
'Rückseite Lichtnäpfen (S 146b) und Lichtnapf (S 146d)' => 'rear_side', // 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ückseiten, unten" => "rear_bottom",
'Rückseite S 5499/1-2, Mitte unten' => 'rear_bottom', // Rear side: bottom
'hinten unten' => 'rear_bottom', // Rear side: bottom
'Rückseite Sockel' => 'rear_bottom', // Rear side: bottom
"Rückseite, mittig unten" => "rear_bottom",
'Auf Rückseite mittig unten' => 'rear_bottom', // Rear side: bottom
'Rückseite unten,Ecken links und rechts' => 'rear_bottom', // Rear side: bottom
'Rückseite, unten Mitte' => 'rear_bottom', // Rear side: bottom
'Rückseite, unten, mittig' => 'rear_bottom', // Rear side: bottom
'Sockel hinten' => 'rear_bottom', // Rear side: bottom
// rear_bottom_left
"Rückseite unten links" => "rear_bottom_left",
"Rückseite, unten links" => "rear_bottom_left",
'Auf Rückseite des Rahmens unten links.' => 'rear_bottom_left', // Rear side: bottom left
"Rückseite links unten" => "rear_bottom_left",
"Rückseite, links unten" => "rear_bottom_left",
'Rückseite u.l.' => 'rear_bottom_left', // Rear side: bottom left
'links unten' => 'bottom_left', // Bottom left
'rechts unten auf Seite mit Bischofsfigur' => 'bottom_right', // Bottom right
"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",
'Auf Rückseite unten rechts.' => 'rear_bottom_right', // Rear side: bottom right
'Rückseite u.r.' => 'rear_bottom_right', // Rear side: bottom right
"Rückseite, rechts unten" => "rear_bottom_right",
"Rückseite rechte untere Ecke" => "rear_bottom_right",
'Auf Bodenplatte hinten rechts' => 'rear_bottom_right', // Rear side: bottom right
'rechts unten Rückseite' => 'rear_bottom_right', // Rear side: bottom right
'Vorderseite, Rückseite u. r.' => 'rear_bottom_right', // Rear side: bottom right
// rear_center
"Rückseite mittig" => "rear_center",
"Rückseite, mittig" => "rear_center",
"Rükseite, mittig" => "rear_center",
'Auf Rückseite der Parierstange mittig' => 'rear_center', // Rear side: center
'Auf Rückseite mittig.' => 'rear_center', // Rear side: center
'Mitte Rückseite' => 'rear_center', // Rear side: center
'Rückseite S 5499/1, Mitte' => 'rear_center', // Rear side: center
'Rückseite mittig, zwischen Text und Adressfeld' => 'rear_center', // Rear side: center
'Rückseite, Mitte' => 'rear_center', // Rear side: center
'Rückseite, mittig.' => 'rear_center', // Rear side: center
'Rückseite, oben, mittig' => 'rear_center', // Rear side: 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ückwand oben (S 146a)' => 'rear_top', // Rear side: top
"Rückseite oben" => "rear_top",
'Auf Rückseite im oberem Adressfeld.' => 'rear_top', // Rear side: top
'Auf der Rückseite im oberem Textfeld.' => 'rear_top', // Rear side: top
'Rückseite S 5499/1-2, Mitte oben' => 'rear_top', // Rear side: top
'Rückseite, oben, Mitte' => 'rear_top', // Rear side: top
'Rückseite obere Hälfte' => 'rear_top', // Rear side: top
'Rückseite, Mitte oben' => 'rear_top', // Rear side: top
'Rückseite, oben Mitte' => 'rear_top', // Rear side: top
'hinten oben' => 'rear_top', // Rear side: 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",
'Auf der Rückseite oben' => 'rear_top', // Rear side: top
"Rückseite, mittig oben" => "rear_top",
// rear_top_left
"Rückseite links oben" => "rear_top_left",
"Rückseite, links oben" => "rear_top_left",
'Auf Rückseite oben links' => 'rear_top_left', // Rear side: top left
'Auf der Rahmenrückseite oben links' => 'rear_top_left', // Rear side: top left
'Rückseite des Buchdeckels, oben links' => 'rear_top_left', // Rear side: top left
'Rückseite des Rahmens oben links' => 'rear_top_left', // Rear side: top left
'Rückseite, obere linke Ecke' => 'rear_top_left', // Rear side: top left
"Rückseite oben links" => "rear_top_left",
'Rückseite o.l.' => 'rear_top_left', // Rear side: 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",
'Auf Rückseite oben rechts.' => 'rear_top_right', // Rear side: top right
'Auf der Rückseite der Fotografie, obere rechte Ecke.' => 'rear_top_right', // Rear side: top right
'Rückseite des Rahmens oben rechts' => 'rear_top_right', // Rear side: top right
"Rückseite rechte obere Ecke" => "rear_top_right",
// topside
"Oberseite" => "topside",
"oberhalb" => "topside",
'Oberseite Griff' => 'topside', // Topside
'Oberseite Deckel' => 'topside', // Topside
'Deckel mittig' => 'topside', // Topside
'Oberseite Deckel vorne' => 'topside', // Topside
'Oberseite des Fuß' => 'topside', // Topside
'Oberseite des Griff' => 'topside', // Topside
'Oberseite des Stiel' => 'topside', // Topside
'Gehäuse, Oberseite' => 'topside', // Topside
'Griff, Oberseite' => 'topside', // Topside
'Auf den Münzen' => 'topside', // Topside
'Auf den Serviettenringen' => 'topside', // Topside
// underside
"Unterseite" => "underside",
"unterhalb" => "underside",
'Unterseite Hohlfuß' => 'underside', // Underside
'Boden, Unterseite' => 'underside', // Underside
'Unterseite Boden' => 'underside', // Underside
'Scharnier, Unterseite' => 'underside', // Underside
'auf der Unterseite des Schreibkastens' => 'underside',
'Unterseite Fahne' => 'underside', // Underside
'Außen auf Boden' => 'underside', // Underside
'Boden S 3921/1, Mitte' => 'underside', // Underside
'Boden S 3921/2, Mitte' => 'underside', // Underside
'Boden unten' => 'underside', // Underside
'Boden, Mitte' => 'underside', // Underside
'Boden, Mitte' => 'underside', // Underside
'Boden, S 3921/1' => 'underside', // Underside
'Unterseite aller Teile' => 'underside', // Underside
'Boden außen mittig' => 'underside', // Underside
'Fußmitte unten' => 'underside', // Underside
'unter der Platte' => 'underside', // Underside
'unter der Vase' => 'underside', // Underside
'Boden, S 3921/2' => 'underside', // Underside
'Auf dem Boden der Untertasse' => 'underside', // Underside
'Auf der Unterseite der Untertasse' => 'underside', // Underside
'Auf der Unterseite von S 7135/3' => 'underside', // Underside
'Boden Unbterseite' => 'underside', // Underside
'Schalenboden' => 'underside', // Underside
'Unterseite Flaschenboden' => 'underside', // Underside
'Unterseite Porzellantasse' => 'underside', // Underside
'Unterseite S 6858/1' => 'underside', // Underside
'Unterseite S 6858/2' => 'underside', // Underside
'Unterseite S 6858/3' => 'underside', // Underside
'Unterseite a und b' => 'underside', // Underside
'Unterseite des Bodens' => 'underside', // Underside
'Unterseite des Griff' => 'underside', // Underside
'Unterseite des Stiels' => 'underside', // Underside
'auf der Unterseite' => 'underside', // Underside
'auf der Unterseite Herstellerprägung' => 'underside', // Underside
'auf der Unterseite, am Schneidekopf' => 'underside', // Underside
'Boden Ständer' => 'underside', // Underside
'Boden Unterseite' => 'underside', // Underside
'Bodenunterseite' => 'underside', // Underside
'Mitte Unterseite' => 'underside', // Underside
'Unterseite Boden des Bechers' => 'underside', // Underside
'Unterseite Tellerboden' => 'underside', // Underside
'auf Unterseite Medaille Einprägung' => 'underside', // Underside
'mittig auf der Unterseite' => 'underside', // Underside
'Boden, S 3921/3' => 'underside', // Underside
'Boden, Standfuß' => 'underside', // Underside
'Boden, unterhalb von Schriftzug "Cafe Olga-Ecke"' => 'underside', // Underside
'Unterseite Boden Terrine' => 'underside', // Underside
'Auf Griff Unterseite' => 'underside', // Underside
'Unterseite Grundplatte' => 'underside', // Underside
'Unterseite Grundplatte und Etikett Unterseite Grundplatte' => 'underside', // Underside
'Unterseite Umbo' => 'underside', // Underside
'auf Standfläche' => 'underside', // Underside
'jeweils Unterseite Boden' => 'underside', // Underside
'Becher Unterseite' => 'underside', // Underside
'in einem der Blätter, am Boden' => 'underside', // Underside
'in einer der Kugel, Richtung Fußzone' => 'underside', // Underside
'untere Schale, Unterseite' => 'underside', // Underside
'Griff Unterseite' => 'underside', // Underside
'Unterseite Griff' => 'underside', // Underside
'Unterseite Kelle' => 'underside', // Underside
// mock title
'mock title' => 'mock_title',
'Bastardtitle' => 'mock_title',
'Schmutztitel' => 'mock_title',
'Vorsatztitel' => 'mock_title',
// Misc.
"x" => "other",
"Vorderseite" => "other",
"Forderseite" => "other",
'Anhänger Nr. 18' => 'other', // Other
'graviert' => 'other', // Other
'Außenseite Henkel' => 'other',
"VS" => "other",
'Aussenseite' => 'other', // Other
'befestigt an der Lederschlaufe' => 'other', // Other
'beide Aussenseiten' => 'other', // Other
'beide Längsseiten' => 'other', // Other
'auf Platte vor Federhalter' => 'other', // Other
'Aufhängeöse' => 'other', // Other
'Aufschrift auf dem Etui' => 'other', // Other
'Inschift auf dem Etui' => 'other', // Other
'auf dem Etui' => 'other', // Other
'auf dem Teller, Kreisrund' => 'other', // Other
'kreisrund' => 'other', // Other
'Auf dem Besteck' => 'other', // Other
'Dritte Seite' => 'other', // Other
'Erste Seite' => 'other', // Other
'Klinge, Seite' => 'other', // Other
'Prägefläche' => 'other', // Other
'Scheide' => 'other', // Other
'verschieden' => 'other', // Other
'Kette' => 'other', // Other
'unklar' => 'other', // Other
'unter dem Henkel' => 'other', // Other
'Übergang Kelle, Stiel' => 'other', // Other
'Gefäß' => 'other', // Other
'Laffe' => 'other', // Other
'Medaillons' => 'other', // Other
'Stiel' => 'other', // Other
'Vorsatzblatt' => 'other', // Other
'am Henkel' => 'other', // Other
'auf Schnalle' => 'other', // Other
'auf einer Leiste' => 'other', // Other
'beim Henkel' => 'other', // Other
'direkt unter dem Bild' => 'other', // Other
'im Deckel' => 'other', // Other
'in dritter Reihe unter dem Bild' => 'other', // Other
'in zweiter Reihe unter dem Bild' => 'other', // Other
'letze Seite' => 'other', // Other
'umlaufend ' => 'other', // Other
'unterm Henkel' => 'other', // Other
'Feder' => 'other', // Other
'Rückseite; Vorderseite' => 'other', // Other
'Vorderseite u.l. und u.r. ; Rückseite' => 'other', // Other
'Vorderseite, obere Ecke, links und Rückseite (aufgeklebt)' => 'other', // Other
'in der Zeichnung' => 'other', // Other
'Am Griff' => 'other', // Other
'An der Naht oben befestigt' => 'other', // Other
'Auf der Schauseite' => 'other', // Other
'Auf der Schauseite S 7135/1a' => 'other', // Other
'Auf der Schauseite voN S 7135/2' => 'other', // Other
'Außenseite Henkel oben' => 'other', // Other
'Beidseitig auf jeweils einem Griff' => 'other', // Other
'Fahne' => 'other', // Other
'Gabeln' => 'other', // Other
'Glocke' => 'other', // Other
'Griffbereich' => 'other', // Other
'Griffende' => 'other', // Other
'Käsemessergriff' => 'other', // Other
'Käsemesserheft' => 'other', // Other
'Links oben, rechts unten' => 'other', // Other
'Löffel' => 'other', // Other
'Messer' => 'other', // Other
'Messerheft' => 'other', // Other
'Papierhülle der Schallplatte, Papiertetikett auf Platte' => 'other', // Other
'Plan' => 'other', // Other
'Rand aussen' => 'other', // Other
'S 7134/2' => 'other', // Other
'S 7134/3' => 'other', // Other
'S 7134/6' => 'other', // Other
'S 7134/7' => 'other', // Other
'S 7134/8' => 'other', // Other
'S 7134/8, linke untere Ecke' => 'other', // Other
'S 7134/9' => 'other', // Other
'S 7140/1' => 'other', // Other
'S 7140/10' => 'other', // Other
'S 7140/11' => 'other', // Other
'S 7140/2 sowie S 7140/3' => 'other', // Other
'S 7140/4' => 'other', // Other
'S 7140/5' => 'other', // Other
'S 7140/6' => 'other', // Other
'S 7140/7' => 'other', // Other
'S 7140/8' => 'other', // Other
'S 7140/9' => 'other', // Other
'Standring außen' => 'other', // Other
'Teelöffelgriff' => 'other', // Other
'Teesieb' => 'other', // Other
'Vor- und Rückseite' => 'other', // Other
'an der kurzen Seite des Erhitzers' => 'other', // Other
'auf dem Kamerakorpus hinten' => 'other', // Other
'auf den Negativstreifen' => 'other', // Other
'auf der Schachtelober- und Unterseite' => 'other', // Other
'auf der Schauseite S 7134/4' => 'other', // Other
'beidseitig auf beiden Handknäufen' => 'other', // Other
'im Nachhinein angebrachtes Pappschild' => 'other', // Other
'je auf Deckel und Schüssel' => 'other', // Other
'linker Ärmel und in der linken Innentasche' => 'other', // Other
'links, rechts und unterhalb des Fotos' => 'other', // Other
'unten rechts auf dem Schachteldeckel & unten links im Deckel' => 'other', // Other
'unter dem Hals' => 'other', // Other
'unterhalb des Gelenks' => 'other', // Other
'unterhalb des Porträts' => 'other', // Other
'Brosche oben, Anhänger unten' => 'other', // Other
'S 5493b' => 'other', // Other
'S 5494d, Innen' => 'other', // Other
'S 5495c, breite Spitze' => 'other', // Other
'S 5499/1-2, rechter unterer Bildrand' => 'other', // Other
'S 5499/2, Rückseite mittig' => 'other', // Other
'S 5501/1; Rückwand' => 'other', // Other
'S 5501/2; Rückseite, oben links' => 'other', // Other
'S 5501/3, linker unterer Bildrand' => 'other', // Other
'S 5502/1-2, Rückseite Mitte' => 'other', // Other
'S 5502/2, rechts unterhalb der Fotografie' => 'other', // Other
'S 5503/1; Rückseite mittig' => 'other', // Other
'S 5504/1, Rückseite, rechts unten' => 'other', // Other
'S 5504/1; Rückseite links oben' => 'other', // Other
'S 5504/2, Rückseite links oben' => 'other', // Other
'S 5504/2, Rückseite, rechts unten' => 'other', // Other
'S 5504/2; Rückseite, rechts unten' => 'other', // Other
'S 5506/3, untere Ecke links' => 'other', // Other
'Schachtel' => 'other', // Other
'auf einem Griff' => 'other', // Other
'aussen und innen auf dem Etuideckel; Umschrift Plakette' => 'other', // Other
'1. Bronzemedaille auf Aufsatz' => 'other', // Other
'1. Seite' => 'other', // Other
'2. Bronzemedaille' => 'other', // Other
'Am Ende der Parierstange unmittelbar unter dem Endknauf.' => 'other', // Other
'An der Seite des Behälters, unterhalb des Henkels' => 'other', // Other
'Anfang der Klinge unmittelbar unter dem Griff.' => 'other', // Other
'Auf Haken am Eisenmundblech' => 'other', // Other
'Auf der Parierstange, Höhe Griff.' => 'other', // Other
'Auf unterem Messinggriff' => 'other', // Other
'Außen am Rahmen' => 'other', // Other
'Drehturm' => 'other', // Other
'Einband vorne, innen oben' => 'other', // Other
'Erste Silbermedaille auf Aufsatz' => 'other', // Other
'Etikett Innenseite Kragen Rückenteil' => 'other', // Other
'Gehäuse, kurze Seite' => 'other', // Other
'Glaskörper' => 'other', // Other
'Hinten unter der Schulter' => 'other', // Other
'Kanone, beidseitig' => 'other', // Other
'Kuppa' => 'other', // Other
'Kupparand' => 'other', // Other
'Lafette' => 'other', // Other
'Lafette, hinten' => 'other', // Other
'Rechts unter dem Bild auf dem Karton.' => 'other', // Other
'S 3917/1' => 'other', // Other
'S 3917/1, Griff Unterseite' => 'other', // Other
'S 3917/1, Griff, Unterseite' => 'other', // Other
'S 3917/2, Griff, Unterseite' => 'other', // Other
'S 3917/3a Henkel, Oberseite' => 'other', // Other
'S 3917/3a, Deckel' => 'other', // Other
'S 3917/4-6, Hals' => 'other', // Other
'S 3917/7-8, Hals' => 'other', // Other
'S 3917/9, Hals' => 'other', // Other
'S 3918/1, Standring innen' => 'other', // Other
'S 3918/1-2, Boden' => 'other', // Other
'S 3918/1-2; Boden' => 'other', // Other
'S 3918/2, Standring innen' => 'other', // Other
'S 3918/3, Boden' => 'other', // Other
'S 3918/4, Boden' => 'other', // Other
'S 4014a___ Auf Rückseite oben links.' => 'other', // Other
'S 4014a___ Auf Rückseite, unter Hakenmontierung.' => 'other', // Other
'S 4301/1 Unter der Fotografie' => 'other', // Other
'S 4301/2 unter der Fotografie' => 'other', // Other
'S 4301/4 Rückseite' => 'other', // Other
'S 4301/5 Rückseite' => 'other', // Other
'Schlüssel' => 'other', // Other
'Seite' => 'other', // Other
'Sohle' => 'other', // Other
'Spiegel, neben Figur' => 'other', // Other
'Standfläche' => 'other', // Other
'Standfläche vorne; Kufen aussen' => 'other', // Other
'Stirnseite am Laternendach' => 'other', // Other
'Unterhalb der Urkunde.' => 'other', // Other
'Unterseite, Griff' => 'other', // Other
'Unterseite, Griffende' => 'other', // Other
'Wandung Kuppa' => 'other', // Other
'Zweite Silbermedaille auf Aufsatz' => 'other', // Other
'am Fuß stilisierten Lilie' => 'other', // Other
'am Hals hinten' => 'other', // Other
'auf der Halterung des Würfelbechers' => 'other', // Other
'auf der Plinthe' => 'other', // Other
'beidseitig Kanone' => 'other', // Other
'oberhalb des Boden, unterhalb der Engel' => 'other', // Other
'unter einem Trennungsstern des Zitats' => 'other', // Other
'Übergang Stiel zu Kuppa' => 'other', // Other
'über Adresse' => 'other', // Other
'umlaufend' => 'other', // Other:w
'Auf dem Bügel beidseitig.' => 'other', // Other
'Fuß und Deckel' => 'other', // Other
'Griff, hinten' => 'other', // Other
'Griff, hinteres Ende' => 'other', // Other
'Griff, vorne' => 'other', // Other
'Klinge' => 'other', // Other
'Nacken' => 'other', // Other
'Objektiv S 2513/1c' => 'other', // Other
'Projektor' => 'other', // Other
'S 2561/2' => 'other', // Other
'Widmungsschild 5' => 'other', // Other
'am breiten Ende' => 'other', // Other
'an den Kodeln befestigtes textiles Schild' => 'other', // Other
'Öffnung des Kopfkissenbezugs' => 'other', // Other
"VS:" => "other",
"vs" => "other",
"vs:" => "other",
"vs." => "other",
'Auf Löffelgriff' => 'other', // Other
'Auf dem Ende des Griffs' => 'other', // Other
'spatelartiges Stielende' => 'other', // Other
"VS und RS" => "other",
"vs: oben/ unten" => "other",
"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",
@@ -148,6 +896,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",
@@ -191,7 +941,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",
@@ -282,10 +1031,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",
@@ -295,10 +1044,17 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"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",
];
/**
@@ -311,7 +1067,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];
+407 -27
View File
@@ -16,30 +16,126 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
// Default: Handwritten
"-" => "handwritten",
"x" => "handwritten",
'1202 / 1' => "handwritten",
"Autograph (handschriftlich" => "handwritten",
"Autograph (handschriftlich)" => "handwritten",
"Beschriftung auf Zettel (handschriftlich)" => "handwritten",
'Unterglasur - Marke' => 'handwritten', // Handwritten
'handschriftlich - Herstellernachweis' => 'handwritten', // Handwritten
'handschriftlich - Künstlermarke' => 'handwritten', // Handwritten
'Herstellernachweis' => 'handwritten',
'Handschriftlich mit Bleistift - Signatur' => 'handwritten', // Handwritten
"schwarz" => "handwritten",
"Aufkleber, handschriftlich" => "handwritten",
"Aufkleber, handschriftlich & gedruckt" => "handwritten",
"braun" => "handwritten",
'Handarbeit, Halbmond, Krone 800 AMD' => 'handwritten', // Handwritten
'handschriftlicher Zettel' => 'handwritten', // Handwritten
"handschriftlich auf Rückwand" => "handwritten",
"Leinenarbeit" => "handwritten",
'eingelegter Zettel, handschriftlicher Vermerk' => 'handwritten', // Handwritten
'evtl. auch Papier oder Tierhaut?' => 'handwritten', // Handwritten
"oben, Mitte, unten" => "handwritten",
"graphisches Dekor" => "handwritten",
"Abbild" => "handwritten",
"Karikatur" => "handwritten",
"Signatur" => "handwritten",
"Zettel handschriftlich" => "handwritten",
"Zettel, handschriftlich und gedruckt" => "handwritten",
"Relief" => "handwritten",
'Eigentumsnachweis' => 'handwritten', // Handwritten
'beschrieben - Beschriftung' => 'handwritten', // Handwritten
'handschriftlich - Eigentumsnachweis' => 'handwritten', // Handwritten
'montiert - Herstellernachweis' => 'handwritten', // Handwritten
"hersteller" => "handwritten",
"mit braunem Leinen überzogen" => "handwritten",
"mit grünem Papier überzogen" => "handwritten",
'Bleistift, jeweils auf der Vorderseite' => 'handwritten', // Handwritten
'Druck und handschriftlich' => 'handwritten', // Handwritten
'Handschriftlich, Bleistift' => 'handwritten', // Handwritten
'Weller / 1953' => 'handwritten', // Handwritten
'bezeichnet' => 'handwritten', // Handwritten
'eventuell handschriftlich' => 'handwritten', // Handwritten
'evtl. handschriftlich' => 'handwritten', // Handwritten
'handschriftlich (Bleistift)' => 'handwritten', // Handwritten
'handschriftlich bzw. gedruckt' => 'handwritten', // Handwritten
'handschriftlich, Aufkleber' => 'handwritten', // Handwritten
'handschriftlich, Bleistift' => 'handwritten', // Handwritten
'handschriftlich, Bleistift, Signatur' => 'handwritten', // Handwritten
'handschriftlich, Kugelschreiber' => 'handwritten', // Handwritten
'handschriftlich, Signatur' => 'handwritten', // Handwritten
'handschriftlich, Tusche' => 'handwritten', // Handwritten
'handschriftlich, mit Stift' => 'handwritten', // Handwritten
'iris / MADE IN ITALY' => 'handwritten', // Handwritten
'vermutlich Bleistift' => 'handwritten', // Handwritten
'von jenseits der Absperrung' => 'handwritten', // Handwritten
'Firmenzeichen' => 'handwritten', // Handwritten
'geknotet - Etikett' => 'handwritten', // Handwritten
'geknotet - Preisschild' => 'handwritten', // Handwritten
'gewebt - Eigentumsnachweis' => 'handwritten', // Handwritten
'gewebt - Hersteller-Etikett' => 'handwritten', // Handwritten
'geätzt - Signatur' => 'handwritten', // Handwritten
'Hochdrucktechnik - Firmenzeichen' => 'handwritten', // Handwritten
'Schriftzug' => 'handwritten', // Handwritten
'handschriftlich - Schriftzug' => 'handwritten', // Handwritten
'handschriftlich - Signatur' => 'handwritten', // Handwritten
'handschriftlich - Widmung' => 'handwritten', // Handwritten
"mit weißen Papier überzogen" => "handwritten",
'handschriftlich - Beschriftung' => 'handwritten', // Handwritten
"schwarz bedruckten Leinen" => "handwritten",
"rot gemasert" => "handwritten",
'handschriftlich - Etikett' => 'handwritten', // Handwritten
"ornamentiert" => "handwritten",
"handschriftlich; aufgeklebt" => "handwritten",
'Beschauzeichen' => 'handwritten', // Handwritten
'handschriftlich - alte Inventarnummer' => 'handwritten', // 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",
@@ -51,7 +147,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",
@@ -64,15 +159,17 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"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",
@@ -83,7 +180,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",
@@ -113,7 +209,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",
@@ -129,10 +225,14 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"verschlungenes Monogramm" => "handwritten",
# Scratchings
"Beschriftung (geritzt)" => "scratch",
"kratzen, Filzstift" => "scratch",
"gekratzt" => "scratch",
"eingeritztes Kreuzchen" => "scratch",
"eingekratzt" => "scratch",
'Ritzverzierung' => 'scratch', // Scratching
'ritzverziert' => 'scratch', // Scratching
'tremolierstichverziert - Gravur' => 'scratch', // Scratching
"geschnitzt" => "scratch",
"Glas geschliffen vom Boden bis zur Hälfte" => "scratch",
"Scratching" => "scratch",
@@ -142,22 +242,70 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Bemalung" => "painted",
"bemalt" => "painted",
"gemalt" => "painted",
"Gemalt" => "painted",
"signiert, gemalt" => "painted",
'gemalt - Schriftzug' => 'painted', // Painted
'gemalt - Aphorismus' => 'painted', // Painted
'gemalt - Beschriftung' => 'painted', // Painted
'gemalt - Signatur' => 'painted', // Painted
'gemalt - Widmung' => 'painted', // Painted
'gefärbt - Schriftzug' => 'painted', // Painted
'handgemalt / 323' => 'painted', // Painted
"Wappen (gemalt)" => "painted",
# Drawn
"Wappen (gezeichnet)" => "drawn",
"Bleistiftzeichnung" => "drawn",
# Glued
"aufgeklebter Druck" => "glued",
"Aufkleber" => "glued",
"aufgeklebt" => "glued",
"geklebt" => "glued",
"aufgeklebter Zettel" => "glued",
"Aufkleber weiß, rechteckig" => "glued",
'aufgeklebt - Firmenzeichen' => 'glued', // Glued
"Papieraufkleber" => "glued",
"Abziehbild" => "glued",
'Herstellermarke' => 'glued', // Glued
'Stadtmarke' => 'glued', // Glued
"Aufschrift auf aufgeklebtes Schildchen" => "glued",
"aufgeklebtes Schild" => "glued",
"Etikett" => "glued", // This whole value doesn't make sense
"Etiketten" => "glued",
'Hersteller- und Beschaumarken' => 'glued', // Glued
'Zettel mit Informationen zur Verleihung innenliegend' => 'glued', // Glued
'Aufkleber auf der Schachtel' => 'glued', // Glued
'Aufkleber und handschriftlich' => 'glued', // Glued
'Zettel' => 'glued', // Glued
'beklebt' => 'glued', // Glued
"Aufkleber, mit Computer geschriebene Schrift" => "glued",
'Papier geklept' => 'glued', // Glued
'Post It' => 'glued', // Glued
'RA 140,- / 09x55' => 'glued', // Glued
'Schild im Inneren der Schatulle' => 'glued', // Glued
'Sticker' => 'glued', // Glued
'Sticker geklebt' => 'glued', // Glued
'angeklebter Zettel' => 'glued', // Glued
"gestochen (?), aufgeklebt" => "glued",
"etikettiert" => "glued",
'aufgeklebt - Etikett' => 'glued',
"schriftlich - Aufkleber" => "glued",
"Abbildung hinterlegt mit Holz; Holzplatte umklebt mit Papier" => "glued",
"Papier hinterklebt (Rückseite); gestickt (Vorderseite)" => "glued",
'aufgeklebt - Hersteller-Etikett' => 'glued', // Glued
'geklebt - Hersteller-Etikett' => 'glued', // Glued
'Hersteller-Etikett' => 'glued', // Glued
'Hersteller-Etikette' => 'glued', // Glued
'geklebt - Beschriftung' => 'glued', // Glued
'geklebt - Eigentumsnachweis' => 'glued', // Glued
'geklebt - Etikett' => 'glued', // Glued
'geklebt - Exlibris' => 'glued', // Glued
'geklebt - Herstellernachweis' => 'glued', // Glued
'geklebt - Prüfmarke' => 'glued', // Glued
"Adressaufkleber des Voreigentümers" => "glued",
"Klebezettel (maschienengeschrieben)" => "glued",
"Blau gerändertes helles Etikett" => "glued",
"Papieretikett, Klebeetikett" => "glued",
@@ -165,38 +313,90 @@ 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",
"Guß" => "cast",
"gegossen" => "cast",
'gegossen - Marke' => 'cast', // Cast
"eingegossen" => "cast",
'im Guss' => 'cast', // Cast
'gegossen - Firmenzeichen' => 'cast', // Cast
"mit eingegossen" => "cast",
'gegossen - Schriftzug' => 'cast', // Cast
"Marke in Unterglasur- und Aufglasurmalerei" => "cast",
"Passepartout" => "cast",
'Legierung' => 'cast', // Cast
# Printed
"Druck" => "overprint",
"gedruckt" => "overprint",
"Signatur (gedrucktt)" => "overprint",
"gedruckt; geklebt" => "overprint",
"Aufkleber, gedruckt" => "overprint",
"bedruckt" => "overprint",
"bedruckt und Tinte" => "overprint",
"aufgedruckt" => "overprint",
'gedruckt - Eigentumsnachweis' => 'overprint', // Overprint
"Gedruckt" => "overprint",
"Tiefdruck" => "overprint",
"gestochen/gedruckt" => "overprint",
"Tiefdruck, weiß" => "overprint",
"Aufdruck" => "overprint",
"eingedruckt" => "overprint",
"mit schwarzer Farbe bedruckt" => "overprint",
'Druck "Umschlag"' => 'overprint', // Overprint
"Druck und glasiert" => "overprint",
"Zettel bedruckt" => "overprint",
'gedruckt (spiegelverkehrt)' => 'overprint', // Overprint
'gedruckt und somit nur auf dem Original vorhanden.' => 'overprint', // Overprint
'nicht handschriftlich' => 'overprint', // Overprint
"bedruckte Zettelchen" => "overprint",
"gedruckt/gestochen?" => "overprint",
"Beschrifung (gedruckt)" => "overprint",
"Druck, weiße Schrift" => "overprint",
"gedruckt und geprägt" => "overprint",
"gdruckt" => "overprint",
"Signatur (gedruckt)" => "overprint",
'Druck - Aphorismus' => 'overprint', // Overprint
'Druck - Beschriftung' => 'overprint', // Overprint
'Druck - Herstellernachweis' => 'overprint', // Overprint
'Siebdruck' => 'overprint', // Overprint
'bedruckt - Beschriftung' => 'overprint', // Overprint
'bedruckt - Eigentumsnachweis' => 'overprint', // Overprint
'bedruckt - Herstellermarke' => 'overprint', // Overprint
'bedruckt - Herstellernachweis' => 'overprint', // Overprint
'bedruckt - Schriftzug' => 'overprint', // Overprint
'gedruckt - Hersteller-Etikette' => 'overprint', // Overprint
'gedruckt - Schriftzug' => 'overprint', // Overprint
'gedruckt - Inschrift' => 'overprint', // Overprint
'bedruckt - Etikett' => 'overprint', // Overprint
'bedruckt - Hersteller-Etikette' => 'overprint', // Overprint
'bedruckt - Preisschild' => 'overprint', // Overprint
'gedruckt - Etikett' => 'overprint', // Overprint
'gedruckt - Firmenzeichen' => 'overprint', // Overprint
'gedruckt - Hersteller-Etikett' => 'overprint', // Overprint
'gedruckt - Herstellernachweis' => 'overprint', // Overprint
'gedruckt - Marke' => '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",
"auf kleine Zettelchen gedruckt" => "overprint",
"Textaufdruck" => "overprint",
"gedruckt und gestempelt" => "overprint",
"enthält Textaufdruck" => "overprint",
@@ -213,46 +413,101 @@ 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",
"aufgenäht" => "sewn",
"Beschriftung (gestickt)" => "sewn",
"bestickter viereckiger Aufnäher" => "sewn",
"eingestickt" => "sewn",
"Fußsohle: gestickt, Fähnchen: angenäht" => "sewn",
'genäht - Eigentumsnachweis' => 'sewn', // Sewn
'genäht - Herstellernachweis' => 'sewn', // Sewn
'genäht - Beschriftung' => 'sewn', // Sewn
'genäht - Hersteller-Etikett' => 'sewn', // Sewn
'genäht - Etikett' => 'sewn', // Sewn
"gestickt/genäht" => "sewn",
"gedruckt/genäht" => "sewn",
"genäht" => "sewn",
"maschinell gestickt bzw. aufgenähr" => "sewn",
"maschinell gestickt bzw. aufgenäht" => "sewn",
'eingenähter Zettel' => 'sewn', // Sewn
"schwarze Stickerei" => "sewn",
# Burnt in
"eingebrannt" => "burnt_in",
"Brandstempel" => "burnt_in",
"Brennstempel" => "burnt_in",
'gebrannt - Beschriftung' => 'burnt_in', // Burnt in
'Brandstempel - Eigentumsnachweis' => 'burnt_in', // 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 - Herstellernachweis' => 'stamp', // Stamped
'gestempelt - Marke' => 'stamp', // Stamped
"gestempelt" => "stamp",
"Marke" => "stamp",
'gestempelt - Beschriftung' => 'stamp', // Stamped
"Blindstempel" => "stamp",
"Marke und Werbestempel" => "stamp",
"mit Metallstempel eingedrückt" => "stamp",
"Prägestempel" => "stamp",
"Prägestempel des Fotografen" => "stamp",
"vermutlich Stempel" => "stamp",
'2 Stempel, durchgestrichen' => 'stamp', // Stamped
'2 x Stempel, durchgestrichen' => 'stamp', // Stamped
'Stempel auf Porzellan' => 'stamp', // Stamped
'Stempel auf Silber' => 'stamp', // Stamped
'Stempel, durchgestrichen' => 'stamp', // Stamped
'u.a. Stempel' => 'stamp', // Stamped
"Prägestempel des Fotografen" => "stamp",
'gestempelt - Eigentumsnachweis' => 'stamp', // Stamped
'gestempelt - Feingehaltszeichen' => 'stamp', // Stamped
'gestempelt - Firmenzeichen' => 'stamp', // Stamped
'gestempelt - Herstellermarke' => 'stamp', // Stamped
'gestempelt - Modellnummer' => 'stamp', // Stamped
'gestempelt - Reichsstempel' => 'stamp', // Stamped
"roter Stempel" => "stamp",
"schwarz gestempelt" => "stamp",
"Signaturenstempel" => "stamp",
"stamped" => "stamp",
'gestempelt - Beschauzeichen' => 'stamp', // Stamped
'gestempelt - Meisterzeichen' => 'stamp', // Stamped
'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",
@@ -260,10 +515,26 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Gravierung" => "engraving",
"eingraviert" => "engraving",
"aufgraviert" => "engraving",
'Gravur etc., Initialen' => 'engraving', // Engraving
"vorne gestochen (?); hinten aufgeklebt" => "engraving",
'graviert - Aphorismus' => 'engraving', // Engraving
'graviert - Beschriftung' => 'engraving', // Engraving
'graviert - Monogramm' => 'engraving', // Engraving
'graviert - Prägung' => 'engraving', // Engraving
'graviert - Widmung' => 'engraving', // Engraving
'graviert - Gravur' => 'engraving', // Engraving
'graviert - Schriftzug' => 'engraving', // Engraving
'graviert - Signatur' => 'engraving', // Engraving
'graviert - Tremulierstich' => 'engraving', // Engraving
'graviert - Eigentumsnachweis' => 'engraving', // Engraving
'graviert - Marke' => 'engraving', // Engraving
"graviert und gestempelt" => "engraving",
'Gravur/ Stempel' => 'engraving', // Engraving
'Legierung/Gravur' => 'engraving', // Engraving
"Nummer graviert, gedruckt" => "engraving",
"eingraviert und geätzt" => "engraving",
"Schnitt" => "engraving",
"Beschriftung (graviert)" => "engraving",
# Screwed on
"angeschraubt" => "screwed",
@@ -285,6 +556,7 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
# Riveted
"Angenietet" => "riveted",
'genietet - Herstellernachweis' => 'riveted', // Riveted
"Metallschild angenietet" => "riveted",
# Embossing
@@ -292,9 +564,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",
@@ -303,6 +575,20 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Marke mit Stempel eingeschlagen" => "embossing",
"geprägt auf Schleife" => "embossing",
"eingeprägt, Umschrift um mittiges Löwen-Wappentier" => "embossing",
'geprägt - Beschriftung' => 'embossing', // Embossing
'geprägt - Gravur' => 'embossing', // Embossing
'geprägt - Hersteller-Etikette' => 'embossing', // Embossing
'geprägt - Herstellermarke' => 'embossing', // Embossing
'geprägt - Eigentumsnachweis' => 'embossing', // Embossing
'geprägt - Etikett' => 'embossing', // Embossing
'geprägt - Herstellernachweis' => 'embossing', // Embossing
'geprägt - Marke' => 'embossing', // Embossing
'geprägt - Prägung' => 'embossing', // Embossing
'geprägt - Signatur' => 'embossing', // Embossing
'geprägt - Fabrikmarke' => 'embossing', // Embossing
'geprägt - Punze' => 'embossing', // Embossing
'Punze' => 'embossing',
'geprägt - Schriftzug' => 'embossing', // Embossing
"geprägt, Frakturschrift" => "embossing",
"Goldprägung" => "embossing",
"Golddruck und Prägung" => "embossing",
@@ -320,43 +606,136 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"gestickt" => "embroidered",
"bestickt" => "embroidered",
"maschinell gestickt" => "embroidered",
'gestickt - Beschriftung' => 'embroidered', // Embroidered
'gestickt - Monogramm' => 'embroidered', // Embroidered
'gestickt - Schriftzug' => 'embroidered', // Embroidered
'gestickt - Etikett' => 'embroidered', // Embroidered
'gestickt - Eigentumsnachweis' => 'embroidered', // Embroidered
'gestickt - Herstellernachweis' => 'embroidered', // Embroidered
"mit Goldfaden bestickt" => "embroidered",
"Jugendstilornamente" => "embroidered",
# Punched
"gestanzt" => "punched",
"geschlagen" => "punched",
"gehämmert" => "punched",
"Beschriftung (ziseliert)" => "punched",
"eingestanzt" => "punched",
"eingestanzt; ziseliert" => "punched",
"gehämmert" => "punched",
"geschlagen" => "punched",
'gestanzt - Herstellernachweis' => 'punched', // Punched
'gestanzt - Marke' => 'punched', // Punched
'gestanzt - Produktname' => 'punched', // Punched
'gestanzt - Prägung' => 'punched', // Punched
'gestanzt - Signatur' => 'punched', // Punched
"gestanzt" => "punched",
"gestanzt und bemalt" => "punched",
"ziseliert" => "punched",
'gestanzt?' => 'punched', // Punched
# Scarified
"geritzt" => "scarified",
"eingeritzt" => "scarified",
"handschliff" => "scarified",
"Schliff" => "scarified",
"geritzt" => "scarified",
"eingeritzt" => "scarified",
"handschliff" => "scarified",
"Schliff" => "scarified",
'Signatur geritzt - Signatur' => 'scarified', // Scarified
'geritzt - Gravur' => 'scarified', // Scarified
'Schnitzerei' => 'scarified', // Scarified
'geschnitzt - Monogramm' => 'scarified', // Scarified
'beschnitzt' => 'scarified', // Scarified
'beschnitzt - Eigentumsnachweis' => 'scarified', // Scarified
'geschnitzt - Schriftzug' => 'scarified', // Scarified
'Signatur geritzt in der Platte - Signatur' => 'scarified', // Scarified
'geritzt - Beschriftung' => 'scarified', // Scarified
'geritzt - alte Inventarnummer' => 'scarified',
'geritzt - Inschrift' => 'scarified', // Scarified
'geritzt - Marke' => 'scarified', // Scarified
'geritzt - Signatur' => 'scarified', // Scarified
'Tremulierstich' => 'scarified', // Scarified
'geschnitzt - Eigentumsnachweis' => 'scarified', // Scarified
'geritzt in der Platte - Beschriftung' => 'scarified', // Scarified
'geritzt in der Platte - Signatur' => 'scarified', // Scarified
# Hallmarked
"gepunzt" => "hallmarked",
"eingepunzt" => "hallmarked",
"gepunzt/gestanzt" => "hallmarked",
"punziert" => "hallmarked",
"getrieben und ziseliert" => "hallmarked",
"gepunzt" => "hallmarked",
"gepunzt - Eigentumsnachweis" => "hallmarked",
"eingepunzt" => "hallmarked",
"gepunzt/gestanzt" => "hallmarked",
'gepunzt - Beschauzeichen' => 'hallmarked', // Punched
'gepunzt - Künstlermarke' => 'hallmarked', // Punched
'gepunzt - Marke' => 'hallmarked', // Punched
'gemarkt' => 'hallmarked', // Punched
'gepunzt - Herstellermarke' => 'hallmarked',
'gepunzt - Stadtmarke' => 'hallmarked', // Punched
'punziert - Feingehaltszeichen' => 'hallmarked', // Punched
'punziert - Herstellermarke' => 'hallmarked', // Punched
'punziert - Stadtmarke' => 'hallmarked', // Punched
"punziert" => "hallmarked",
"getrieben und ziseliert" => "hallmarked",
'Marke und Punze' => 'hallmarked', // Hallmarked
'Marken' => 'hallmarked', // Hallmarked
'gepunzt - Punze' => 'hallmarked', // Hallmarked
'gepunzt - Punzen' => 'hallmarked', // Hallmarked
# Nailed
"genagelt" => "nailed",
"angenagelt" => "nailed",
"eingenagelt" => "nailed",
'genagelt - Fabrikmarke' => 'nailed', // Nailed
# Signature
"Signatur" => "signature",
"signiert" => "signature",
"farbig bemalt und glasiert" => "signature",
'geruckt - Signatur' => 'signature', // Signature
"gemalt und glasiert" => "signature",
'beschrieben - Signatur' => '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 (ebenfalls als Fotokopie)' => 'signature', // Signature
'Signatur (fotokopiert)' => 'signature', // Signature
'Signatur mit Pinsel aufgetragen' => 'signature', // Signature
'Signatur und Titel' => 'signature', // Signature
'bezeichnet, Signatur' => 'signature', // Signature
'handschriftliche Signatur' => 'signature', // Signature
'handschriftliche Signatur, Bleistift' => 'signature', // 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
'Glasur' => 'glaze', // Glaze
'geschliffen' => 'sanded', // Sanded
'Ätzdekor gebläut und vergoldet' => 'etched', // Etched
'Ätzverzierung' => 'etched', // Etched
'Ätzverzierung und Monogramm' => 'etched', // Etched
];
/**
@@ -369,7 +748,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];
File diff suppressed because it is too large. Load diff
+2 -1
View File
@@ -26,7 +26,8 @@ final class MDConcObjectForms implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):string {
if (!isset(self::FORMS_LIST[$input])) {
throw new MDImporterMissingConcordance("Unknown form type: " . $input);
MDImporterMissingConcordance::throw("form/shape", $input);
return 'cube'; // Return default in dry-run mode
}
return self::FORMS_LIST[$input];
+118
View File
@@ -0,0 +1,118 @@
<?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',
'Struktur' => 'tag',
'Farbe' => '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
}
}
+43 -3
View File
@@ -14,14 +14,50 @@ final class MDConcOwnershipStatus implements MDImporterConcordanceListInterface
private const OWNERSHIP_TYPES_VERBOSE = [
// 0: No known entry type
"Eigentum" => "owned",
"EigentumZCOM" => "owned",
"Geschenk" => "owned",
"Besitz" => "owned",
"Dauerleihe" => "permanent_loan",
"Dauerleihgabe" => "permanent_loan",
"Owned" => "owned",
"owned" => "owned",
"Kauf" => "owned",
"Fund" => "owned",
"Eigenleistung" => "owned",
"Eigentum des Museums" => "owned",
"Eigentum des Museums - TEST" => "owned",
"j" => "owned",
"+" => "owned",
"EigentumForum" => "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',
// To check
'ungeklärt' => 'to_check',
// None
'k.A.' => 'owned',
];
@@ -35,7 +71,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 -1
View File
@@ -26,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
@@ -56,6 +58,9 @@ final class MDConcPlace implements MDImporterConcordanceListInterface {
// 20: Copied
// 21: Lived
'Firmensitz' => 22,
// 25: Commissioned
// 26: Printing
@@ -103,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];
+62
View File
@@ -0,0 +1,62 @@
<?PHP
declare(strict_types = 1);
/**
* Provides the mapping for precision values.
*/
final class MDConcPrecision implements MDImporterConcordanceListInterface {
/**
* Throws the appropriate error in case of unmatched precision values.
*
* @param string $input Input string.
*
* @return boolean
*/
private static function markMissingPrecision(string $input):bool {
MDImporterMissingConcordance::throw("precision", $input);
return false; // Return default in dry-run mode
}
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return boolean
*/
public static function getConcordanceTarget(string $input):bool {
return match($input) {
'verso bedruckt',
'mm',
'cm',
'Höhe',
'^',
'max.',
'min.',
'Breite',
'maximal',
'Türblatt',
'mit Verschluss',
'mit Aufhängung',
'max, mit Türklinke',
'17,6',
'11,5',
'Maße ohne Rahmen',
"Kassette",
"Schöpfkelle",
"Vorlegelöffel",
"aufgeklappt",
'mit Brett',
'' => true,
'schwer messbar, Schätzung',
'ca',
'ca.' => false,
default => self::markMissingPrecision($input),
};
}
}
+3 -1
View File
@@ -13,6 +13,7 @@ final class MDConcSex implements MDImporterConcordanceListInterface {
private const SEXES_LIST = [
'Männlich' => 'male',
'Weiblich' => 'female',
'diverse' => 'other',
];
@@ -26,7 +27,8 @@ final class MDConcSex implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):string {
if (!isset(self::SEXES_LIST[$input])) {
throw new MDImporterMissingConcordance("Unknown sex type: " . $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];
+85 -1
View File
@@ -16,6 +16,82 @@ final class MDConcTitleTypes implements MDImporterConcordanceListInterface {
// Empty
"" => "",
"Objekttitel" => "",
"Objekttitel, Objekttitel" => "",
"Objekttitel, Vormaliger Objekttitel" => "",
"Werktitel" => "",
"Werktitel deskriptiv" => "",
"Werktitel, Werktitel deskriptiv" => "",
"Werktitel deskriptiv, Legendentitel" => "",
'Legendentitel' => '',
'Objekttitel, Legendentitel' => '', //
'Objekttitel, Legendentitel, Legendentitel' => '', //
'Objekttitel, Legendentitel, Legendentitel, Legendentitel' => '', //
'Objekttitel, Legendentitel, Legendentitel, Legendentitel, Legendentitel, Legendentitel' => '', //
'Objekttitel, Objekttitel, Legendentitel' => '', //
'Objekttitel, Objekttitel, Objekttitel' => '', //
'Objekttitel, Objekttitel, Objekttitel, Objekttitel' => '', //
'Objekttitel, Objekttitel, Objekttitel, Vormaliger Objekttitel' => '', //
'Objekttitel, Objekttitel, Vormaliger Objekttitel' => '', //
'Objekttitel, Vormaliger Objekttitel, Legendentitel' => '', //
'Objekttitel, Vormaliger Werktitel SKKG' => '', //
'Objekttitel, Werktitel alternativ' => '', //
'Titel provisorisch' => '', //
'Vormaliger Objekttitel' => '', //
'Vormaliger Werktitel SKKG' => '', //
'Werktitel alternativ' => '', //
'Werktitel alternativ, Werktitel alternativ' => '', //
'Werktitel deskriptiv, Objekttitel' => '', //
'Werktitel deskriptiv, Vormaliger Werktitel SKKG' => '', //
'Werktitel deskriptiv, Werktitel alternativ' => '', //
'Werktitel deskriptiv, Werktitel deskriptiv' => '', //
'Werktitel deskriptiv, Werktitel deskriptiv, Werktitel deskriptiv' => '', //
'Werktitel Übersetzung' => '', //
'Werktitel Übersetzung, Objekttitel' => '', //
'Werktitel, Werktitel diskriminierungskritisch' => '',
'Werktitel, Werktitel Übersetzung, Werktitel alternativ, Vormaliger Werktitel SKKG' => '',
'Werktitel, Werktitel Übersetzung, Werktitel alternativ, Werktitel alternativ' => '',
'Werktitel, Werktitel Übersetzung, Werktitel Übersetzung, Werktitel alternativ' => '',
'Werktitel, Werktitel, Werktitel alternativ, Werktitel alternativ' => '',
'Werktitel, Werktitel, Werktitel Übersetzung, Vormaliger Werktitel SKKG' => '',
'Werktitel Übersetzung, Objekttitel, Objekttitel' => '', //
'Werktitel, Legendentitel' => '', //
'Werktitel, Objekttitel' => '', //
'Werktitel, Objekttitel, Werktitel alternativ' => '', //
'Werktitel, Vormaliger Objekttitel' => '', //
'Werktitel, Vormaliger Werktitel SKKG' => '', //
'Werktitel, Vormaliger Werktitel SKKG, Vormaliger Werktitel SKKG' => '', //
'Werktitel, Werktitel' => '', //
'Werktitel, Werktitel alternativ' => '', //
'Werktitel, Werktitel alternativ, Vormaliger Werktitel SKKG' => '', //
'Werktitel, Werktitel alternativ, Vormaliger Werktitel SKKG, Vormaliger Werktitel SKKG' => '', //
'Werktitel, Werktitel alternativ, Werktitel alternativ' => '', //
'Werktitel, Werktitel alternativ, Werktitel alternativ, Werktitel alternativ' => '', //
'Werktitel, Werktitel deskriptiv, Legendentitel' => '', //
'Werktitel, Werktitel deskriptiv, Objekttitel' => '', //
'Werktitel, Werktitel deskriptiv, Vormaliger Werktitel SKKG' => '', //
'Werktitel, Werktitel deskriptiv, Werktitel alternativ' => '', //
'Werktitel, Werktitel deskriptiv, Werktitel alternativ, Werktitel diskriminierungskritisch' => '', //
'Werktitel, Werktitel deskriptiv, Werktitel deskriptiv' => '', //
'Werktitel, Werktitel deskriptiv, Werktitel Übersetzung' => '', //
'Werktitel, Werktitel Übersetzung' => '', //
'Werktitel, Werktitel Übersetzung, Vormaliger Werktitel SKKG' => '', //
'Werktitel, Werktitel Übersetzung, Werktitel alternativ' => '', //
'Werktitel, Werktitel Übersetzung, Werktitel Übersetzung' => '', //
'Werktitel, Werktitel Übersetzung
, Werktitel Übersetzung' => '', //
'Werktitel, Werktitel, Objekttitel' => '', //
'Werktitel, Werktitel, Vormaliger Werktitel SKKG' => '', //
'Werktitel, Werktitel, Werktitel' => '', //
'Werktitel, Werktitel, Werktitel alternativ' => '', //
'Werktitel, Werktitel, Werktitel alternativ, Vormaliger Werktitel SKKG' => '', //
'Werktitel, Werktitel, Werktitel alternativ, Werktitel alternativ, Vormaliger Werktitel SKKG' => '', //
'Werktitel, Werktitel, Werktitel deskriptiv' => '', //
'Werktitel, Werktitel, Werktitel deskriptiv, Werktitel alternativ' => '', //
'Werktitel, Werktitel, Werktitel deskriptiv, Werktitel deskriptiv' => '', //
'Werktitel, Werktitel, Werktitel deskriptiv, Werktitel Übersetzung' => '', //
'Werktitel, Werktitel, Werktitel Übersetzung' => '', //
'Werktitel, Werktitel, Werktitel, Werktitel alternativ' => '', //
// Scientific names
"Science" => "Science",
@@ -33,6 +109,13 @@ final class MDConcTitleTypes implements MDImporterConcordanceListInterface {
"mundartl" => "Dialect",
"mundartlich" => "Dialect",
// Professional jargon
'Professional' => 'Professional jargon',
// Sociolect
'Sociolect' => 'Sociolect',
'Soziolekt' => 'Sociolect',
];
/**
@@ -45,7 +128,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];
+35 -10
View File
@@ -11,26 +11,51 @@ declare(strict_types = 1);
*/
final class MDConcWeights implements MDImporterConcordanceListInterface {
private const WEIGHTS_LIST = [
"cm" => "", // Default
"Gramm" => "g",
"г" => "g",
];
/**
* Matches.
*
* @param string $input Input string.
*
* @return MDWeightUnit|false
*/
private static function _match(string $input):MDWeightUnit|false {
return match($input) {
"mm",
"cm" => false,
"Gramm",
"g",
"G",
"г" => MDWeightUnit::g,
default => throw new MDInvalidWeightUnit("Invalid weight unit " . $input),
};
}
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return string
* @return MDWeightUnit|false
*/
public static function getConcordanceTarget(string $input):string {
public static function getConcordanceTarget(string $input):MDWeightUnit|false {
if (!isset(self::WEIGHTS_LIST[$input])) {
throw new MDImporterMissingConcordance("Unknown weight type: " . $input);
try {
return self::_match($input);
}
catch (MDInvalidWeightUnit $e) {
return self::WEIGHTS_LIST[$input];
if (is_numeric($input) || is_numeric(strtr($input, ['.' => '', ',' => '']))) {
return false;
}
return self::_match(trim($input));
}
}
}