Compare commits

...

194 Commits

Author SHA1 Message Date
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
ca7ca028d2 src/MDConcMarkingType.php aktualisiert 2025-06-12 09:45:07 +02:00
ba0fe9d83a Add marking type concordance 2025-06-11 22:04:44 +02:00
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
2bd86abbdc src/MDConcMarkingPosition.php aktualisiert 2025-06-11 12:23:20 +02:00
1c903d7da3 Extend concordance lists 2025-06-02 12:33:43 +02:00
731a5a1b11 Extend concordance lists 2025-06-02 02:16:35 +02:00
bdbdf03821 Map currency FT > Hungarian Forinth 2025-05-27 18:18:19 +02:00
a9f4dccda8 Extend concordance lists 2025-05-27 01:33:44 +02:00
eb98610cb3 Map "Dekor vermutet" 2025-05-25 12:41:34 +02:00
f7fa5e26ee Remove duplicate array keys 2025-05-23 00:18:48 +02:00
1a8f7158f6 Map "Rükseite, oben mittig" (sic!) marking position 2025-05-22 16:27:35 +02:00
a74e02d8d6 Extend concordance list for event types 2025-05-21 13:25:23 +02:00
e34a8d2ab7 Map Bechriftung (gedruckt) 2025-05-21 12:54:05 +02:00
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
0cbcb46e47 src/MDConcActor.php aktualisiert
added a few more roles
2025-05-21 12:02:09 +02:00
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
2820cbcc23 Re-map acquisition to general ownership transferal over buying 2025-05-08 16:56:28 +02:00
9276d38d16 Extend concordance lists 2025-05-08 16:17:23 +02:00
f00569623a Remap LIDO terminology 00001 > general acquisition 2025-05-06 22:33:45 +02:00
d822d42107 Match 'Impulsgebende Person' 2025-05-02 16:19:23 +02:00
3fa31272c7 Extend list of concordances for current import 2025-05-02 16:06:35 +02:00
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
b8cff0b0be src/MDConcActor.php aktualisiert 2025-04-11 12:41:23 +02:00
93507da659 Map language en-GB 2025-04-07 18:44:12 +02:00
299b6fda6a Update MDConcMeasurementTypes 2025-04-07 18:01:36 +02:00
ce7662c29c Extend list of mapped entry types 2025-04-05 01:47:21 +02:00
9df78b457d Add Höhe (netto) to list of mapped measurement types 2025-04-03 12:54:22 +02:00
7a228423a8 Extend concordance list for measurement types 2025-03-19 15:23:51 +01:00
3c6f1c0592 Add two more measurement type mappings 2025-03-19 01:53:58 +01:00
fdb47f9f63 Add new class MDConcCertainty 2025-03-18 01:22:59 +01:00
7765ed2e96 Extend measurement type concordance list 2025-03-14 15:58:22 +01:00
8c01b42147 Extend list of mapped relation types 2025-03-12 02:44:44 +01:00
bb2206bb5b Extend concordance lists for related works types, measurement types 2025-03-11 17:44:03 +01:00
2f482acfa9 Merge branch 'master' of gitea:museum-digital/MDImporterConcordanceLists 2025-03-07 15:33:06 +01:00
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
a141cfe4b4 src/MDConcMarkingType.php aktualisiert 2025-03-07 12:20:14 +01:00
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
b4c57dbd00 src/MDConcMarkingType.php aktualisiert 2025-03-06 17:09:36 +01:00
69ac5af855 Remove duplicate array keys in MDConcMarkingPosition 2025-03-05 14:36:41 +01:00
da963da0de Map German "Schlagwort" to tag relation type tag 2025-03-03 18:03:33 +01:00
55c6d87423 Map "Pfd" > "Pfund" > Pound Sterling 2025-02-27 11:37:03 +01:00
bc02cd4ec6 Add mapping for third party property in MDConcOwnershipStatus 2025-02-24 18:13:35 +01:00
f496f40ac9 Add "Namensnennung 4.0 International - CC BY 4.0" to list of mapped
licenses
2025-02-21 15:16:51 +01:00
e22c9d3912 Merge: Fix mapping of full frontal marking position
Reviewed-on: #9
2025-02-19 14:31:23 +01:00
a9c4c23c4c src/MDConcMarkingPosition.php aktualisiert 2025-02-19 13:47:36 +01:00
d04f2c5f78 src/MDConcMarkingPosition.php aktualisiert 2025-02-19 13:45:34 +01:00
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
ab5200b24b src/MDConcMarkingType.php aktualisiert 2025-02-17 17:01:19 +01:00
73030b5ede Remove duplicate array keys 2025-02-15 13:40:46 +01:00
d2d9a84b19 Update event types list 2025-02-12 12:45:51 +01:00
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
add8be4463 src/MDConcActor.php aktualisiert 2025-02-05 15:49:33 +01:00
05bd6115c4 Merge branch 'ufladerer-patch-1' 2025-02-05 15:44:50 +01:00
72ea69d72f src/MDConcActor.php aktualisiert 2025-02-05 10:21:15 +01:00
20319ed8ee Map Objektmaß (HxB) 2025-02-01 15:37:13 +01:00
5547ea4e3a Extend concordance lists 2025-02-01 03:27:01 +01:00
6cc802ffc0 Extend concordance lists 2025-01-29 16:41:06 +01:00
78de55f1f8 Extend concordance lists 2025-01-24 10:55:27 +01:00
01945149cb src/MDConcMarkingType.php aktualisiert 2025-01-23 16:01:24 +01:00
2cb782cef4 Update years covered in license 2025-01-22 15:20:28 +01:00
eb7094ab9d Extend concordance lists for event types 2025-01-22 15:19:37 +01:00
0adcbd2d5d Update concordance lists 2025-01-17 12:34:23 +01:00
7bcb277e46 Extend concordance lists for actor roles > event types 2025-01-15 09:11:22 +01:00
8a26aa426b Extend concordance lists for languages, event types 2025-01-14 16:28:37 +01:00
217aa53edd Extend concordance lists 2025-01-14 14:48:51 +01:00
59298830ca Small extension of marking pos+type lists 2024-12-20 14:44:28 +01:00
3940614190 Extend concordance lists 2024-12-20 14:12:48 +01:00
d6fae4dd3d Extend list of mapped measurement types 2024-12-19 09:56:14 +01:00
17b81f6d00 src/MDConcMarkingType.php aktualisiert 2024-12-18 18:55:29 +01:00
0bf9049018 src/MDConcActor.php aktualisiert 2024-12-18 18:45:32 +01:00
7bcb4d4302 Extend list of mapped ownership types 2024-12-18 18:43:17 +01:00
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
f539df807a Merge branch 'master' into ufladerer-patch-1 2024-12-18 18:41:58 +01:00
e16a7b5db2 src/MDConcActor.php aktualisiert 2024-12-18 18:38:36 +01:00
7952b9362a src/MDConcActor.php aktualisiert 2024-12-18 17:48:57 +01:00
b94702d8d2 Remove duplicate array keys 2024-12-18 17:09:46 +01:00
a97557640b Extend concordance lists for measurement types, ownership 2024-12-18 16:58:43 +01:00
592c2d9d75 src/MDConcActor.php aktualisiert
added gendered versions of roles
2024-12-18 13:56:49 +01:00
7fef0f0ada Extend actor concordance list 2024-12-12 12:41:39 +01:00
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
54c64ed0f6 src/MDConcMarkingPosition.php aktualisiert 2024-12-11 18:07:06 +01:00
e4b6ae0c4a src/MDConcMarkingPosition.php aktualisiert 2024-12-11 18:05:33 +01:00
b65576a087 src/MDConcMarkingPosition.php aktualisiert
various terms for the reverse side added
2024-12-11 18:04:22 +01:00
4f25679bff src/MDConcMarkingType.php aktualisiert
added 1 case for drawn and moved "Bleistiftzeichnung" to drawn
2024-12-11 17:34:46 +01:00
3978113d26 src/MDConcActor.php aktualisiert 2024-12-11 17:01:59 +01:00
bf41e2f062 src/MDConcActor.php aktualisiert
Added a few new roles
2024-12-11 13:41:13 +01:00
50b3dff4cd Extend concordance lists 2024-12-10 02:34:44 +01:00
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
b62ef5f357 src/MDConcMarkingPosition.php aktualisiert
Added some top, bottom and rear_side options
2024-12-09 12:09:38 +01:00
f3bd620f85 Extend concordance lists for lengths, measurements, sources 2024-12-03 14:11:21 +01:00
c3e4581f2d Extend concordance lists for marking types, positions 2024-12-02 12:02:31 +01:00
0bb62c675f Extend event type concordance list 2024-12-02 11:41:23 +01:00
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
6da4ce1933 src/MDConcMarkingType.php aktualisiert
added new types, Blindstempel was relocated to embossing
2024-11-28 19:37:57 +01:00
3348228137 src/MDConcMarkingPosition.php aktualisiert
Added new positions
2024-11-28 19:13:12 +01:00
992312b39f Extend concordance sets 2024-11-28 09:29:21 +01:00
4beff90c42 Update concordance lists for new measurements implementation 2024-11-26 11:46:29 +01:00
866ef3c714 Map actor "Vorbesitzer (EXTERN)" 2024-11-25 10:11:23 +01:00
593b54c0a7 Add additional positions 2024-11-25 10:08:35 +01:00
10511d8b9b Map position "Keilrahmen untere Leiste" 2024-11-20 22:37:59 +01:00
a605d1c87f Remove duplicate array keys 2024-11-20 22:01:00 +01:00
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
2409a314e9 src/MDConcMarkingPosition.php aktualisiert
added marking positions
2024-11-20 19:15:11 +01:00
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
38a855ff27 Extend list of mapped marking positions 2024-11-20 17:33:50 +01:00
56bbeb8eba Map closer location type "früherer Ort" 2024-11-20 15:48:00 +01:00
62ff660d39 Extend lists of marking positions / types 2024-11-19 13:42:41 +01:00
08348dd148 Extend concordance list for languages 2024-11-15 17:22:05 +01:00
87a5d405f9 Remove duplicate array key 2024-11-14 17:19:56 +01:00
c106318d38 Add class MDConcObjectTagRelTypes for mapping strings to object-tag
relation types
2024-11-14 15:30:25 +01:00
f08ea28622 Extend concordance list for entry types 2024-11-13 17:16:55 +01:00
76c3ee052e Update concordance lists for source types and entry types 2024-11-13 16:32:37 +01:00
946f8d8352 Extend concordance lists 2024-11-08 18:10:22 +01:00
921acd303b Extend concordance set for entry types 2024-11-08 15:25:43 +01:00
9a1932a233 Merge branch 'master' of gitea:museum-digital/MDImporterConcordanceLists 2024-11-07 10:48:41 +01:00
069ccf43c3 Extend list of mapped license and event type names 2024-11-07 10:48:09 +01:00
82a0cb94d7 Extend concordance lists for licenses (CC BY-NC-ND) and event types
(Verkauf)
2024-11-03 16:40:47 +01:00
2223eefabb Update MDConcMeasurementTypes 2024-09-18 17:39:16 +02:00
cdac022d64 Extend concordance lists for event types and licenses 2024-09-08 21:33:43 +02:00
04b88d0456 Add source concordance name 2024-09-05 14:12:11 +02:00
91f5c04de3 Add new concordances 2024-09-05 13:24:21 +02:00
25ae398ce8 Extend list of actor / event type concordances 2024-07-03 12:39:25 +02:00
5dfafafc63 Extend list of actor roles 2024-07-03 12:28:01 +02:00
04a34e7424 Extend concordance lists for currencies, entry types 2024-06-19 23:05:33 +02:00
dfbf45097b Fix broken concordance for CC O > CC0 2024-06-05 11:58:54 +02:00
bd7dd5ed33 Add new entry type concordance 2024-06-02 00:59:28 +02:00
99488b022f Map emergency rescue in Hungarian to corresponding entry type 2024-05-28 16:14:57 +02:00
43d8c40829 Add new class for a concordance list for source types 2024-05-25 00:26:02 +02:00
2c100f497b Add license concordance for CC BY / 4.0 2024-05-23 03:23:10 +02:00
3671295ca9 Extend concordance lists for places and times 2024-04-19 16:37:58 +02:00
e735ee5800 Add further mapping in MDConcMeasurementTypes 2024-03-26 15:52:17 +01:00
9b269b4938 Cover measurement type "Außenmaß (Höhe)" 2024-03-26 03:04:01 +01:00
bd8026d111 Fix duplicate array index 2024-03-26 03:03:25 +01:00
6aca553aa5 Add event type concordance for "GOS-Mehrfacheintrag" 2024-03-13 14:43:04 +01:00
38e2779257 Update MDConcCurrencies 2024-03-12 00:50:58 +01:00
e578b7c66b Extend list of marking types 2024-03-07 12:53:56 +01:00
a163f54e2e Map RestauratorIn to restorated event 2024-03-05 15:11:59 +01:00
9a5741f0bb Add mapping for Außenmaß (Kiste) in MDConcMeasurementTypes 2024-03-01 00:10:36 +01:00
6809e64812 Extend measurement types concordance list 2024-03-01 00:03:39 +01:00
52c44157a5 Extend list of accepted actor roles => event types 2024-02-21 23:46:21 +01:00
3aadf7ef39 Add event types 'Entwurf; Vorlage' 2024-02-21 23:30:40 +01:00
77a5fa6dac Add new actor roles signaling template creation 2024-02-19 13:06:31 +01:00
11d76ca170 Add "place of finding" in hungarian to location types list 2024-02-07 16:29:52 +01:00
bffdb89719 Add hungarian "Place of finding" > Finding 2024-02-07 13:51:28 +01:00
cb45e22d3f Add "Verwendung" to list of actor and event type concordances 2024-02-07 13:41:48 +01:00
cf92e5a3d4 Extend entry types concordance map 2024-01-30 18:06:41 +01:00
ae364e5562 Add entry type "Depositorium" 2024-01-29 14:20:09 +01:00
4396c04f9c Extend concordance lists 2024-01-26 18:19:22 +01:00
ba7c0efa93 Extend entry types concordance list 2024-01-08 21:39:50 +01:00
7977cb8fde Add another name for CC BY-SA 2024-01-03 01:18:18 +01:00
505ea3853a Extend entry types concordance list 2024-01-01 01:41:16 +01:00
9f300a956f Add more Ukrainian-language mappings 2023-12-04 13:24:02 +01:00
85c6123eb3 Extend concordance lists with some values in Ukrainian 2023-12-03 23:33:59 +01:00
36a31c314a Add "Revers" and "Reverse" to list of mapped marking pos. 2023-12-01 15:33:37 +01:00
531b3a74d2 Extend concordance lists for actors and entry types 2023-11-30 01:57:34 +01:00
0132afbeff Remove name sanitization constants in MDConcActor, MDConcPlace 2023-11-26 00:55:20 +01:00
840c24af71 Extend currencies and entry types 2023-11-24 00:58:39 +01:00
016245722a Add blacklist for invalid damage types 2023-11-22 13:38:57 +01:00
881a3d6c9c Add "Korona (osztrák-magyar" to list of rewritten currencies 2023-11-20 13:55:36 +01:00
91303d0cc4 Extend list of known currency names 2023-11-14 17:37:09 +01:00
4b0336ade2 Add new name for CC BY-NC-SA 2023-11-12 16:14:24 +01:00
e0e2bc661f Add two new entries to ownership concordance list and title types one 2023-11-11 14:30:41 +01:00
6dfb0c6511 Map lowercase marking position 2023-11-10 03:11:55 +01:00
9e9492de82 Remove duplicate array key 2023-10-19 17:02:12 +02:00
2cb5d9171f Extend concordance lists 2023-10-19 16:15:44 +02:00
a3650b2bee Extend concodance lists 2023-10-19 03:27:31 +02:00
ffc5fd5992 Extend concordance lists 2023-10-18 23:13:58 +02:00
e2d2c1b2d1 Extend list of known invalid lengths 2023-10-18 02:15:39 +02:00
c75744f6be Update MDConcLengths 2023-10-17 15:50:35 +02:00
2d96e94d6d Fix defaults for length units, add weight unit concordance list 2023-10-17 00:35:50 +02:00
1b505437a4 Extend license and length lists 2023-10-16 22:39:16 +02:00
91a3c0e059 Extend lists, add MDConcFieldRelatedWorksType for specifying target
fields in imports with unspecified relatedWorks (like LIDO)
2023-10-16 16:46:17 +02:00
301efa38c3 Extend MDConcEventTypes 2023-10-15 18:29:37 +02:00
6557d499bb Extend event types concordance list 2023-10-15 03:08:30 +02:00
227d54d818 Extend concordance list for public domain statements 2023-10-13 11:39:03 +02:00
dcfee56fb1 Extend concordance lists 2023-10-12 23:05:10 +02:00
ba9b3bcaad Cover "Eigentum des Museums" in MDConcOwnershipStatus 2023-09-29 00:42:48 +02:00
bd8ed59033 Extend concordance lists 2023-09-18 12:47:29 +02:00
a3db74fc08 Update MDConcCurrencies 2023-09-10 04:06:29 +02:00
14473aedf6 Add "Bought" to concordance list for entry types 2023-09-09 17:02:17 +02:00
68c7ed06e2 Add concordance lists for colors, forms, sexes 2023-09-01 15:28:24 +02:00
21babdbd9d Remove duplicate mapping 2023-08-02 12:59:58 +02:00
3cb93a7142 Add concordance list entries for use 2023-07-31 19:41:55 +02:00
ec17e00e18 Add alternative language concordance for english 2023-07-31 18:30:27 +02:00
10ced24a8a Map more event types and licenses 2023-07-28 17:35:55 +02:00
7b052cb37b Extend concordance lists for event types and licenses 2023-07-27 19:24:45 +02:00
3f236d9f5e Extend concordance lists 2023-07-27 01:44:23 +02:00
0d9160f49d Update MDConcLicenses 2023-07-26 15:25:07 +02:00
491f705258 Extend concordance lists 2023-07-25 22:35:10 +02:00
7c98685551 Extend concordance lists 2023-07-19 17:18:09 +02:00
fbb1c35ad6 Fix link formatting in README 2023-06-24 00:24:49 +02:00
ff49f1f319 Extend README and add section on testing 2023-06-23 19:21:39 +02:00
6466aa9b98 Add test to ensure all concordance lists throw the same error
(MDImporterMissingConcordance)
2023-06-23 19:19:11 +02:00
30 changed files with 2598 additions and 101 deletions

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:

View File

@ -2,4 +2,26 @@
This directory contains concordance lists for accepted values. Where e.g. an entry type may be identified at museum-digital only by its ID, it is not realistic to expect providers of import data (which is to say: museums) to enter the entry type ID from museum-digital's relevant list. Hence, the lists contained in this subdirectory provide human-readable names for the IDs accepted by museum-digital as found in previous imports, so that they can be automatically translated to the IDs and names as used within the context of museum-digital.
The lists are grouped as class constants of their relevant entry type. All class names may be prefixed with _MDConc_.
The lists are grouped as (private) class constants of their relevant entry type.
- All class names may be prefixed with _MDConc_.
- All concordance list classes implement the MDImporterConcordanceListInterface interface.
- They can thus all be used using a static function `getConcordanceTarget(string $input)`. E.g.:
```
$checkType = MDConcCheckTypes::getConcordanceTarget("Vollständigkeit");
```
- All concordance lists can be found directly in the [`/src`](./src) directory.
## Environment and Purpose for Using a Separate Subrepository
This repository is intended to be used as a subrepository of MDImporter. Its full functionality is thus only available with the inclusion of some other subrepositories provided in the context of the importer (e.g. MDAllowedValueSets).
Editing can be done by simply adding to the lists however. It is hoped, that the publication of this subrepository as a standalone repository makes this process easier. Just clone this repository and enter the missing values in the relevant classes in the [`/src`](./src) directory.
## Testing
Tests exist to ensure that all concordance lists implement the MDImporterConcordanceListInterface interface and throw an MDImporterMissingConcordance exception, if a new, yet unknown value is encountered. If this repository is set up as part of an installation of the MDImporter, they can be run using:
```
phpunit tests
```

View File

@ -0,0 +1,18 @@
<?PHP
declare(strict_types = 1);
/**
* Exception thrown in case a requested concordance term is blacklisted.
*/
final class MDImporterBlacklistedConcordanceTerm extends Exception {
/**
* Error message.
*
* @return string
*/
public function errorMessage() {
//error message
return 'Blacklisted term requested for concordance list.';
}
}

View File

@ -0,0 +1,21 @@
<?PHP
/**
* Describes a blacklist for the importer.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Describes a blacklist for the importer.
*/
interface MDImporterBlacklistInterface {
/**
* Checks if the input string is blacklisted.
*
* @param string $input Input string.
*
* @return bool
*/
public static function isBlacklisted(string $input):bool;
}

View File

@ -11,38 +11,57 @@ declare(strict_types = 1);
*/
final class MDConcActor implements MDImporterConcordanceListInterface {
/**
* Substrings of an actor name listed as a key in this array will be replaced
* by the corresponding value.
*/
const NAME_SANITIZATIONS = [
"mythologische Figur" => "Mythologie",
"Mythologische Figur" => "Mythologie",
"Mythologische Gestalt" => "Mythologie",
"()" => "",
];
private const ACTOR_ROLES_TO_EVENT_TYPE = [
// 1: Created
"Aktionskünstler" => 1,
"Aktionskünstlerin" => 1,
"Aktionskünstler*in" => 1,
"Allgemeine Schriftleitung" => 1,
"Architekt" => 1,
"Architektin" => 1,
"Architekt*in" => 1,
'Architekt/in' => 1, // created by
"Ausführer" => 1,
"Ausführerin" => 1,
"Ausführer*in" => 1,
"Ausführende" => 1,
"Ausführung" => 1,
"Ausstellende Instanz" => 1,
"Ausstellende Behörde" => 1,
"Ausstellung von Bezugsscheinen" => 1,
"Bearbeiter" => 1,
"Bearbeiterin" => 1,
"Bearbeiter*in" => 1,
"Bearbeitende" => 1,
"Bindung" => 1,
"Binder" => 1,
"Binderin" => 1,
"Binder*in" => 1,
"Blechblasinstrumentenbauer" => 1,
"Bossierer" => 1,
"Bossierin" => 1,
"Bossier*in" => 1,
"Bossierung" => 1,
"Bronzegießer" => 1,
"Bronzegießerin" => 1,
"Bronzegießer*in" => 1,
"Bronzeguss" => 1,
"Buchbinder" => 1,
"Buchbinderin" => 1,
"Buchbinder*in" => 1,
"Buchbindung" => 1,
"Büchsenmacher" => 1,
"Creator" => 1,
"creator" => 1,
"deutscher Baumeister, Ingenieur, Holzschneider, Kupferstecher, Zeichner, Topograph und Militärschrif" => 1,
"Elfenbeindrechsler" => 1,
"Elfenbeindrechslerin" => 1,
"Elfenbeindrechsler*in" => 1,
"Elfenbeinschnitzer" => 1,
"Elfenbeinschnitzerin" => 1,
"Elfenbeinschnitzer*in" => 1,
"Elfenbeinschnitzerei" => 1,
"Entwurf und Ausführung" => 1,
"Fabrik" => 1,
"Fayencemanufaktur" => 1,
@ -51,17 +70,37 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Gesamtleitung" => 1,
"Gestaltung" => 1,
"Gewichtmacher" => 1,
"Gewichtmacherin" => 1,
"Gießer" => 1,
"Gießerin" => 1,
"Gießer*in" => 1,
"Glashütte" => 1,
"Glasgestalter" => 1,
"Glasgestalterin" => 1,
"Glasgestalter*in" => 1,
"Glasgraveur" => 1,
"Glasgraveurin" => 1,
"Glasgraveur*in" => 1,
"Glasmanufaktur" => 1,
"Goldschmied" => 1,
"Goldschmiedin" => 1,
"Goldschmied*in" => 1,
"Goldwaagenmacher" => 1,
"Goldwaagenmacherin" => 1,
"Goldwaagenmacher*in" => 1,
"Grafiker" => 1,
"Grafikerin" => 1,
"Grafiker*in" => 1,
"Grafiker/in" => 1,
"Graveur" => 1,
"Graveurin" => 1,
"Graveur*in" => 1,
"Guss" => 1,
"Guß" => 1,
"Hersteller" => 1,
"Herstellerin" => 1,
"Hersteller*in" => 1,
'Hersteller/in' => 1, // created by
"Hersteller/Künstler" => 1,
"Herstellung" => 1,
"Herstrellung" => 1,
@ -74,94 +113,188 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Herstellung ?" => 1,
"Herseller" => 1,
"Hersteller & Produzent" => 1,
"Herstellung des später beigefügten Uhrwerkes" => 1,
"Haretslleung" => 1,
"Hersteller?" => 1,
"Technischer Hersteller" => 1,
"Herstellung elektr. Ausrüstung" => 1,
"Holzschneider" => 1,
"Holzschneiderin" => 1,
"Holzschneider*in" => 1,
"Ingenieur" => 1,
"Ingenieurin" => 1,
"Ingenieur*in" => 1,
'Ingenieur/in' => 1, // conceived by
"Ingenieur und Fachdolmetscher" => 1,
"Ingenieur in der Sowjetarmee" => 1,
"Interpret" => 1,
"Interpretin" => 1,
"Interpret*in" => 1,
"Interpret (B)" => 1,
"Interpret & Produzent" => 1,
"Interviewer" => 1,
"Interviewerin" => 1,
"Interviewer*in" => 1,
"Juwelier und Uhrmacher" => 1,
"Katograf" => 1,
"Keramiker" => 1,
"Keramikerin" => 1,
"Keramiker*in" => 1,
"Kolorist" => 1,
"Koloristin" => 1,
"Kolorist*in" => 1,
"Konstrukteur" => 1,
"Kunstler" => 1,
"Künstler" => 1,
"Künstlerin" => 1,
"Künstler*in" => 1,
"Künstler/in" => 1,
"Künstler (Bilder)" => 1,
"Künstler (Einband)" => 1,
"Kunsthandwerker" => 1,
"Kunsthandwerkerin" => 1,
"Kunsthandwerker*in" => 1,
"Laufschmied" => 1,
"Leitung" => 1,
"Malez" => 1,
"Maschinenfabrik" => 1,
"Mechanische Fabrik" => 1,
"Mechanische Werkstatt" => 1,
"Meister" => 1,
"Meisterin" => 1,
"Meister*in" => 1,
"Medailleur" => 1,
"Medailleurin" => 1,
"Medailleur*in" => 1,
"Metallwarenfabrik" => 1,
"Metallwarenfabrik und Apparatebau" => 1,
"Metallwarenfabrik und Waagenhersteller" => 1,
"Mechanikus" => 1,
'Mitarbeit' => 1, // created by
"Möbelbauer" => 1,
"Möbelbauerin" => 1,
"Möbelbauer*in" => 1,
"Musik" => 1,
"Musiker" => 1,
"Musikerin" => 1,
"Musiker*in" => 1,
"Münzmeister" => 1,
"Münzmeisterin" => 1,
"Münzmeister*in" => 1,
"Münzwardein" => 1,
"Oberingenieur" => 1,
"Oberingenieurin" => 1,
"Oberingenieur*in" => 1,
"Objektkünstler" => 1,
"Objektkünstlerin" => 1,
"Objektkünstler*in" => 1,
"Papiermacher" => 1,
"Papiermacherin" => 1,
"Papiermacher*in" => 1,
'Papierverarbeitungswerk' => 1, // created by
"Porzellanhersteller" => 1,
"Porzellanherstellerin" => 1,
"Porzellanhersteller*in" => 1,
"Porzellankünstler" => 1,
"Porzellankünstlerin" => 1,
"Porzellankünstler*in" => 1,
"Porzellanmanufaktur" => 1,
"Porzellanfabrik Burggrub" => 1,
"Prägeanstalt" => 1,
"Produzent" => 1,
"Produzentin" => 1,
"Produzent*in" => 1,
"Produktionsleiter" => 1,
"Produktionsleiterin" => 1,
"Produktionsleiter*in" => 1,
"Produktionsleitung" => 1,
"Produktion und Vertrieb" => 1,
"Regie und Schnitt" => 1,
"Regisseuer" => 1,
"Regisseuerin" => 1,
"Regisseuer*in" => 1,
"Reparatur" => 1,
"Reproduktion" => 1,
"Scherenschneider" => 1,
"Scherenschneiderin" => 1,
"Scherenschneider*in" => 1,
"Schneider" => 1,
"Schneiderin" => 1,
"Schneider*in" => 1,
"Schnitzer" => 1,
"Schnitzerin" => 1,
"Schnitzer*in" => 1,
"Silberschmied" => 1,
"Silberschmiedin" => 1,
"Silberschmied*in" => 1,
"Schmiede und Waagenbau" => 1,
"Spezialwaagenfabrik" => 1,
"Spezialfabrik für Zähl- und Wägemaschinen" => 1,
"Spielwarenhersteller" => 1,
"Spielwarenherstellerin" => 1,
"Spielwarenhersteller*in" => 1,
"Steinbildhauer" => 1,
"Steinbildhauerin" => 1,
"Steinbildhauer*in" => 1,
"Steinmetz" => 1,
"Steinmetzin" => 1,
"Steinmetz*in" => 1,
"Steingutfabrik" => 1,
"Stempelschneider" => 1,
"Stempelschneiderin" => 1,
"Stempelschneider*in" => 1,
"Strumpfwirkerei" => 1,
"Textbearbeitung" => 1,
"Textgestalter" => 1,
"Textgestalterin" => 1,
"Textgestalter*in" => 1,
"Tischler" => 1,
"Tischlerin" => 1,
"Tischler*in" => 1,
"Uhrmachermeister" => 1,
"Uhrmachermeisterin" => 1,
"Uhrmachermeister*in" => 1,
"Waagmacher" => 1,
"Waagmacherin" => 1,
"Waagmacher*in" => 1,
"Waagenfabrik" => 1,
"Waagen- und Maschinenfabrik" => 1,
"Waagenhersteller" => 1,
"Wardein" => 1,
"Wäschemangel, Waschmaschinenfabrik" => 1,
"Weber" => 1,
"Weberin" => 1,
"Weber*in" => 1,
"Werkstatt" => 1,
"Werkzeugmacher" => 1,
"Werkzeugmacherin" => 1,
"Werkzeugmacher*in" => 1,
"Zeug- und Sägeschmiede" => 1,
"Zinngießer" => 1,
"Zinngießerin" => 1,
"Zinngießer*in" => 1,
"Zinngießermeister" => 1,
"Zinngießermeisterin" => 1,
"Zinngießermeister*in" => 1,
// 2: Was found
"Ausgräber" => 2,
"Ausgräberin" => 2,
"Ausgräber*in" => 2,
"Finder" => 2,
"Finderin" => 2,
"Finder*in" => 2,
"Grabung" => 2,
"Grabungsleiter" => 2,
"Grabungsleiterin" => 2,
"Grabungsleiter*in" => 2,
"Grabungsleitung" => 2,
// 3: Published
"Verlag" => 3,
"Verleger" => 3,
"Verlegerin" => 3,
"Verleger*in" => 3,
"Dolmetscher und Verleger" => 3,
"Druck / Verlag (Postkarte)" => 3,
"Kupferstecher und Verleger" => 3,
@ -171,21 +304,35 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
// 4: Template creation
"Entwerfer" => 4,
"Entwerferin" => 4,
"Entwerfer*in" => 4,
"Entwicklung" => 4,
"Entwurf" => 4,
"Entwurf; Vorlage" => 4,
'Entwerfer/in' => 4, // conceived by
'Entwerfer/in ?' => 4, // conceived by
"Original / Entwurf nach" => 4,
"Original / Kopie nach" => 4,
"Künstler der Vorlage" => 4,
"Künstlerin der Vorlage" => 4,
"nach einem Gemälde von Werner Lenz" => 4,
"Maler der Vorlage" => 4,
"Modellbauer" => 4,
"Modellbauerin" => 4,
"Modellbauer*in" => 4,
"nach" => 4,
'Original / Vorlage' => 4,
'Original / Vorlage zu' => 4,
"Schöpfer der Vorlage" => 4,
"Schöpferin der Vorlage" => 4,
"Schöpfer*in der Vorlage" => 4,
"Schöpfer der Scherenschnitte" => 4,
"Schöpferin der Scherenschnitte" => 4,
"Stecher der Vorlage" => 4,
"Vorlagenkünstler" => 4,
"Zeichner der Vorlage" => 4,
"Kopie nach" => 4,
"Kopievariante nach" => 4,
'Zeichnung nach' => 4,
// 5: Displayed actor
"Abgebildet" => 5,
@ -203,58 +350,89 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Datsrellung" => 5,
"Dastellung" => 5,
"Dartsellung" => 5,
"dargestellt" => 5,
"Dargestellt" => 5,
"Dargestellte Personen" => 5,
"Person (Ikonographie)" => 5,
"Wurde abgebildet (Akteur)" => 5,
// 6: Was used
"Aussteller" => 6,
"Ausssteller" => 6,
"Ausstellerin" => 6,
"Aussteller*in" => 6,
"Ausstellung" => 6,
"Auswahl" => 6,
"Bearbeitung" => 6,
"Bearbeiter der Sache" => 6,
"bearbeitet von" => 6,
"Forscher" => 6,
"Forscherin" => 6,
"Forscher*in" => 6,
"Gebrauch" => 6,
"Kommentar" => 6,
'Miniatur zugeschrieben an' => 6,
"Nutzer" => 6,
"Nutzerin" => 6,
"Nutzer*in" => 6,
"Nutzung" => 6,
"Nutzung durch" => 6,
"Verwendung" => 6,
"Projektmitarbeiter" => 6,
"Produzent & Autor des Kommentars" => 6,
"Referent" => 6,
"Verwendung" => 6,
'Verteiler/in' => 6, // was used by
"Verwender" => 6,
"Verwenderin" => 6,
"Verwender*in" => 6,
"Verwendet von" => 6,
"Verwendung" => 6,
"Veranstalter" => 6,
'Veranstalter/in' => 6, // [general]
"wissenschaftliche Leitung" => 6,
"Zusammensteller" => 6,
"Zusammenstellerin" => 6,
"Zusammensteller*in" => 6,
"Ausstellungsgestaltung" => 6,
"Karte ausgestellt auf u.g.P." => 6,
// 7: Written
"Autor" => 7,
"Autorin" => 7,
"Autor*in" => 7,
'Autor/in' => 7, // written by
"Autor & Herausgeber" => 7,
"Autor, Wehrmachtsangehöriger" => 7,
"Autor, Illustrator" => 7,
"Author" => 7,
"Autoren" => 7,
"Autorenschaft" => 7,
"Autor des deutschen Textes" => 7,
"Aufnahmen, Zusammenstellung, Erläuterung" => 7,
"deutscher Schriftsteller" => 7,
"Dichter" => 7,
"Dichterin" => 7,
"Dichter*in" => 7,
"Dichtung" => 7,
"Freie Autorin" => 7,
"Freie Autor*in" => 7,
"Freier Autor" => 7,
"Journalist ?" => 7,
"Kalligraf" => 7,
"Kalligrafin" => 7,
"Kalligraf*in" => 7,
"Kalligraph" => 7,
"Kalligraphin" => 7,
"Kalligraph*in" => 7,
"Komponist" => 7,
"Komponistin" => 7,
"Komponist*in" => 7,
"Korrespondenz" => 7,
"Manuskript" => 7,
"Schreiber" => 7,
"Schriftsteller" => 7,
"Schriftstellerin" => 7,
"Schriftsteller*in" => 7,
"sow. Schriftsteller" => 7,
"sowj. Kriegsberichterstatter" => 7,
"Text" => 7,
@ -263,6 +441,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Text und Bildunterschriften" => 7,
"Verfasser" => 7,
"Verfasserin" => 7,
"Verfasser*in" => 7,
"Verfasser, Göttinger Universitätsprofessor" => 7,
"Verfasser, Direktor des Stadtarchivs" => 7,
"Verfasser, Verleger" => 7,
@ -270,7 +449,10 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Verfasserin (Texte)" => 7,
"vf [Verfasser/in] [nicht dokumentiert]" => 7,
"Vorwortverfasser" => 7,
"Vorwortverfasserin" => 7,
"Vorwortverfasser*in" => 7,
"vf [nicht dokumentiert]" => 7,
"Widmungsschreiber" => 7,
// 8: Collected
"Besitzer des Originals" => 8,
@ -281,36 +463,71 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"ehemaliger Leihgeber" => 8,
"ehemals Besitzer des Originals" => 8,
"Leihgeber" => 8,
"Leihgeberin" => 8,
"Leihgeber*in" => 8,
"Leihgabe" => 8,
"Privatsammler" => 8,
"Privatsammlerin" => 8,
"Privatsammler*in" => 8,
"Sammler" => 8,
"Sammlerin" => 8,
"Sammler*in" => 8,
"Kompilator" => 8,
"Sammler (Zuordnung unsicher)" => 8,
"Sammler des Originals" => 8,
"Vermittler" => 8,
"Vermittlerin" => 8,
"Vermittler*in" => 8,
"Vermittlung" => 8,
"Herkunft" => 8,
// 9: Painted
"Buchmaler" => 9,
"Buchmalerin" => 9,
"Buchmaler*in" => 9,
"Buchmalerei" => 9,
"Graphiker und Maler" => 9,
"Graveurin, Malerin" => 9,
"Fayencemaler" => 9,
"Fayencemalerin" => 9,
"Fayencemaler*in" => 9,
"Fayencemalerei" => 9,
"Kunstmaler" => 9,
"Kunstmalerin" => 9,
"Kunstmaler*in" => 9,
"Kunstmalerei" => 9,
"Maler" => 9,
"Malerei" => 9,
"Maler, seit 1972 Bühnenbildner und Regisseur" => 9,
"Maler der Fälschung" => 9,
"Malerin" => 9,
"Maler*in" => 9,
'Maler/in' => 9, // painted by
"Malerin, Grafikerin" => 9,
"Malermeister" => 9,
"Malermeisterin" => 9,
"Malermeister*in" => 9,
"Prospektmaler" => 9,
"Prospektmalerin" => 9,
"Prospektmaler*in" => 9,
"Porzellanmaler" => 9,
"Porzellanmalerei" => 9,
"Porzellanmalerin" => 9,
"Porzellanmaler*in" => 9,
// 10: Recorded / image taken
"Filmaufnahme" => 10,
"Fotograf" => 10,
"Fotografin" => 10,
"Fotograph" => 10,
"Fotografen" => 10,
"Photograph" => 10,
"Fotografin" => 10,
"Fotograf*in" => 10,
"photographer" => 10,
'Fotograf/in' => 10, // photographed by
"Fotografie" => 10,
"Fotograph" => 10,
"Fotographin" => 10,
"Fotograph*in" => 10,
"Fotograph/in" => 10,
"Fotograf (Wehrmachtssoldat)" => 10,
"Fotograf(en) ?" => 10,
"Hofphotograph, Königsberg" => 10,
@ -320,8 +537,11 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
'Fotokorrespondent der Zeitung "Krasnaja Swesda"' => 10,
"Foto und Design" => 10,
"Fotokorrespondent der Zeitung \"Krasnaja Swjesda\"" => 10,
"Foto Krüger Inh. K. Schildmann" => 10,
"Photograph" => 10,
"Photographin" => 10,
"Photograph*in" => 10,
'Militärfotograf der WGT' => 10,
"Musikerin" => 10,
'Reichsbildberichterstatter der NSDAP' => 10,
"Schnitt" => 10,
"Atelier" => 10,
@ -332,6 +552,14 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
// 11: Received
"Adressat" => 11,
'Adressat/in' => 11, // received by
"Beschenkte Person" => 11,
"Beschenkte Person (Geburtstag)" => 11,
"Beschenkte Person (Hochzeitstag)" => 11,
"Beschenkte Person (Jahrestag)" => 11,
"Beschenkte Person (Jubiläum)" => 11,
"Beschenkte Person (Namenstag)" => 11,
"Beschenkte Person (Weihnachten)" => 11,
"Dartsellung & Empfänger" => 11,
"Empfäger" => 11,
"Empfänger" => 11,
@ -340,17 +568,43 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Emrfänger" => 11,
"Empfaenger" => 11,
"Empfängerin" => 11,
"Empfänger*in" => 11,
"Korrespondenzp Empfänger" => 11,
"Korrespondenzpartner" => 11,
"Korrespondenzpartnerin" => 11,
"Korrespondenzpartner*in" => 11,
"Widmungsempfangende Person" => 11,
"Widmungsempfänger" => 11,
"Widmungsempfängerin" => 11,
"Widmungsempfänger*in" => 11,
// 12: Printing plate produced
"Formschneider" => 12,
"Formschneiderin" => 12,
"Formschneider*in" => 12,
"Formschnitt" => 12,
"Inventor & Stecher" => 12,
"Kupferstecher" => 12,
"Kupferstecherin" => 12,
"Kupferstecher*in" => 12,
"Kupferstich" => 12,
"Lithograf" => 12,
"Lithograf & Verleger" => 12,
"Lithografin" => 12,
"Lithograf*in" => 12,
"Lithografie" => 12,
"Lithograph" => 12,
"Lithographie" => 12,
"Lithographin" => 12,
"Lithograph*in" => 12,
"Radierer" => 12,
"Radiererin" => 12,
"Radierer*in" => 12,
"Radierung" => 12,
"Stecher" => 12,
"Stecherin" => 12,
"Stecher*in" => 12,
"Stich" => 12,
"Stecher & Verleger" => 12,
"Typograph" => 12, // Problematic
"Typograf" => 12, // Problematic
@ -359,18 +613,30 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
// 13: Sent
"Absender" => 13,
"Absenderin" => 13,
"Absender*" => 13,
"Verleiher" => 13,
"Verleiherin" => 13,
"Verleiher*in" => 13,
"Verleher" => 13,
"Vorlage" => 13,
"Vorleger" => 13,
"Vorlegerin" => 13,
"Vorleger*in" => 13,
// 14: Issued
"ausstellende Körperschaft" => 14, // Issued
// 15: Signed
"Antragsteller" => 15,
"Antragstellerin" => 15,
"Antragsteller*in" => 15,
"Mitunterzeichner" => 15,
"Mitunterzeichnerin" => 15,
"Mitunterzeichner*in" => 15,
"Unterschrift" => 15,
"Unterzeichner" => 15,
"Unterzeichnerin" => 15,
"Unterzeichner*in" => 15,
// 16: First description
@ -378,6 +644,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Zeichner" => 19,
"Zeichnerin" => 19,
"Zeichner*in" => 19,
'Zeichner/in' => 19, // drawn by
"Zeichner / Inventor" => 19,
"Zeichner, Autor der Dekoration" => 19,
"Zeichner und Grafiker" => 19,
@ -388,16 +655,27 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Gesamtgestaltung, Zeichnungen und Verse" => 19,
"Inventor & Zeichner" => 19,
"Ornamentzeichner" => 19,
"Ornamentzeichnerin" => 19,
"Ornamentzeichner*in" => 19,
"Stecher & Zeichner" => 19,
"Zeichner u. Stecher" => 19,
// 20: Copied
"Übersetzer" => 20,
"Übersetzerin" => 20,
"Übersetzer*in" => 20,
'Übersetzer/in' => 20, // [general]
'Übrsetzer/in' => 20, // [general]
"Übersetung" => 20,
// 21: Lived
// 25: Commissioned
"Auftrag" => 25,
"Auftraggeber" => 25,
"Auftraggebende Person" => 25,
"Auftraggeberin" => 25,
"Auftraggeber*in" => 25,
"Auftraggeber/in" => 25,
"ausgestellt für" => 25,
"Bestellung" => 25,
@ -406,15 +684,21 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Bestelling" => 25,
"Bestellung ?" => 25,
"Besteller" => 25,
"Bestellerin" => 25,
"Besteller*in" => 25,
"Münzherr" => 25,
"Münzherrschaft" => 25,
// 26: Printed
"Buchdruckerei" => 26,
"Buchdruck" => 26,
"Druck" => 26,
"Drucker" => 26,
"Drucker & Verleger" => 26,
"Druckerei" => 26,
"Druckereien" => 26,
"Druckerin" => 26,
"Drucker*in" => 26,
"Druck (Bilder)" => 26,
"Druck (Text)" => 26,
"Bearbeitung und Druck" => 26,
@ -432,7 +716,10 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Sänger (Bordun)" => 28,
"Sänger u. Instrumentalist" => 28,
"Sänger und Instrumentalist" => 28,
"Sängerin" => 28,
"Sänger*in" => 28,
"Vorsänger" => 28,
'Sprecher' => 28, // ?
"(Rufe)" => 28,
// 29: Decor designed
@ -440,13 +727,23 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
// 30: Form designed
"Bildhauer und Mosaizist" => 30,
"Bildhauer" => 30,
"Bildhauerei" => 30,
"Bildhauerin" => 30,
"Bildhauer*in" => 30,
'Bildhauer/in' => 30, // modelled by
// 31: Modelled
"Bildhauer, Modelleur" => 31,
"Modell" => 31,
"Modelleur" => 31,
"Modelleurin" => 31,
"Modelleur*in" => 31,
"Porzellanmodelleur" => 31,
"Porzellanmodelleurin" => 31,
"Porzellanmodelleur*in" => 31,
"Töpfermeister" => 31,
"Töpfermeisterin" => 31,
"Töpfermeister*in" => 31,
// 32: Autographed / signed
"signiert, aber Kopie!" => 32,
@ -457,6 +754,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"d [nicht dokumentiert]" => 33,
"Erwähnt" => 33,
"erwähnt" => 33,
"Genannte Person" => 33,
"Ertwähnt" => 33,
"Erwaehnt" => 33,
"Erwähnung" => 33,
@ -466,40 +764,79 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Wappen" => 33,
// 34: Buried
"Grabmal" => 34,
// 35: Intellectual creation
"Autor & Produzent" => 35,
"Design" => 35,
"Designer" => 35,
"Designerin" => 35,
"Designer*in" => 35,
"Erfinder" => 35,
"Erfinderin" => 35,
"Erfinder*in" => 35,
"Erfindung" => 35,
"Gestalter" => 35,
"Gestalterin" => 35,
"Gestalter*in" => 35,
"Gestaltung" => 35,
"Inventor" => 35,
"Inventorin" => 35,
"Inventor*in" => 35,
"Inventor des ursprünglichen Entwurfs" => 35,
"Idee und Gestaltung" => 35,
"Interpret & Komponist" => 35,
"Kartograf" => 35,
"Kartografin" => 35,
"Kartograf*in" => 35,
'Konzept' => 35, // conceived by
"Modedesign" => 35,
"Modedesigner" => 35,
"Modedesignerin" => 35,
"Modedesigner*in" => 35,
"Schriftentwerfer" => 35,
"Schriftentwerferin" => 35,
"Schriftentwerfer*in" => 35,
"Schriftentwurf" => 35,
"Texter" => 35,
"Urheber" => 35,
// 37: Painted on
"Bemalung" => 37,
"Glasmaler" => 37,
"Glasmalerin" => 37,
"Glasmaler*in" => 37,
"Glasmalerei" => 37,
"Porzellanmaler" => 37,
"Porzellanmalerei" => 37,
"Porzellanmalerin" => 37,
"Porzellanmaler*in" => 37,
"Porzellanplatte mit Grisaille-Malerei" => 37,
// 38: Illustrated
"Illustration" => 38,
"Illustrator" => 38,
"Illustratorin" => 38,
"Illustrator*in" => 38,
'Illustrator/in' => 38, // painted by
// 39: Assembled
"Instrumentenbau" => 39,
"Instrumentenbauer" => 39,
"Instrumentenbauerin" => 39,
"Instrumentenbauer*in" => 39,
"Kompilator" => 39,
"Kompilatorin" => 39,
"Kompilator*in" => 39,
"Kompilation" => 39,
"Musikinstrumentenbauer" => 39,
"Musikinstrumentenbauerin" => 39,
"Musikinstrumentenbauer*in" => 39,
"Zusammenstellung" => 39,
"Zusmaensteller" => 39,
"Zusmaenstellerin" => 39,
"Zusmaensteller*in" => 39,
"Zusmaenstellung" => 39,
// 40: Auctioned
"Auktionshaus" => 41,
@ -512,18 +849,34 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
// 42: Owned
"Besitzer" => 42,
"Besitz" => 42,
"Besizer" => 42,
"Besitzerin" => 42,
"Besitzer*in" => 42,
"ehem. Besitzer" => 42,
"ehem. Besitzer/Provenienz" => 42,
"ehem. Besitzer / Provenienz" => 42,
"Eigentum" => 42,
"Eigentüm" => 42,
"Eigentümer" => 42,
"Eigentümerin" => 42,
"Eigentümer*in" => 42,
"Eigentumer" => 42,
"Inhaber" => 42,
"Inhaberin" => 42,
"Inhaber*in" => 42,
"Rechteinhaber" => 42,
"Rechteinhaberin" => 42,
"Rechteinhaber*in" => 42,
"Schenker" => 42,
"Schenkerin" => 42,
"Schenker*in" => 42,
"Stifter" => 42,
"Stifterin" => 42,
"Stifter*in" => 42,
"Treuhänder" => 42,
"Treuhänderin" => 42,
"Treuhänder*in" => 42,
"Verwaltung" => 42,
"Verwalung" => 42,
"Vrwaltung" => 42,
@ -538,7 +891,10 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Verwalzung" => 42,
"Verwaltutung" => 42,
"Vertwaltung" => 42,
"Vorbesitz" => 42,
"Vorbesitzer" => 42,
"Vorbesitzerin" => 42,
"Vorbesitzer*in" => 42,
"Vrrbesitzer" => 42,
"VerwaltungVorbesitzer" => 42,
"Vorbesitzer (historische Angabe)" => 42,
@ -554,17 +910,23 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"zweiter Vorbesitzer" => 42,
"1. Vorbesitzer" => 42,
"2. Vorbesitzer" => 42,
"Vorbesitzer (EXTERN)" => 42,
"Voreigentümer" => 42,
// 43: Sold
"händler" => 43,
"Verkäufer" => 43,
"Verkäuferin" => 43,
"Verkäufer*in" => 43,
"vertrieb" => 43,
"Vertrieb" => 43,
// 44: Restorated
"Restaurator" => 44,
"RestauratorIn" => 44,
"Restauratorin" => 44,
"Restaurator*in" => 44,
"Restaurierung" => 44,
// 45: Damaged
@ -577,7 +939,11 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Zusammenstelung und Herausgabe" => 48,
"Zusammenstellung und Einleitung" => 48,
"Herausgeber" => 48,
"Herausgeberin" => 48,
"Herausgeber*in" => 48,
'Herausgeber/in' => 48, // edited by
"Heraugeber" => 48,
"publication" => 48,
"Herausgeber (deutscher Anthropologe, Prof. Dr.)" => 48,
// 23: Related actor
@ -592,6 +958,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Mit dem Objekt verbunden" => 23,
"Abteilungsleiter der Abteilung III/2 Vortragswesen, Rednervermittlung im Amt Deutsches Volksbildungswerk, Berlin-Wilmersdorf, Kaiserallee 25" => 23,
"Abgebildestes Werk von" => 23,
"Admiral" => 23,
"Arzt" => 23,
"Angehöriger der Deutschen Wehrmacht" => 23,
@ -615,6 +982,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Bezirksvorsteher Revier 70/3" => 23,
"Bezirksbürgermeister von Berlin-Tiergarten" => 23,
"Bezug zu" => 23,
"Bezugsperson" => 23,
"Bezugaberechtigter" => 23,
"Brigadenführer auf dem MTS Ciorani, Region Prahova (Volksrepublik Rumänien)" => 23,
"Bürgermeister von Lastrup" => 23,
@ -627,9 +995,11 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Chef der Garnison der Stadt Dresden" => 23,
"Chemische und Seifenfabrik" => 23,
"Denkmal" => 23,
"Der Gebietskommissar und kom. Oberbürgermeister der Stadt Riga" => 23,
"Division und Wehrbereichskommando VIII" => 23,
"Divisionskommandeur" => 23,
'Dozent/in' => 23, // [general]
"Dozent an der Deutschen Hochschule für Politik in Berlin" => 23,
"Dr. jur." => 23,
@ -639,6 +1009,8 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"ehem. Wehrmachtsangehöriger, Kraftfahrer" => 23,
"Erster Sekretär des Zentralkomitees der SED" => 23,
"Exilpolitiker" => 23,
'Impulsgebende Person' => 23,
"zugeschrieben" => 23,
"Feldwebel" => 23,
"Feuerwehrmann im 2. Weltkrieg" => 23,
@ -714,6 +1086,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Leiter des Museums der Verteidigung der Festung Brest (1959)" => 23,
"Leiter einer Abteilung des Ministeriums für Staatssicherheit der UdSSR, Gardeoberst" => 23,
"Leitung des Theaters" => 23,
"Lektüre" => 23,
"letzte Funktion___ 1. Stellvertreter des Leiters der Bezirksverwaltung des MfS, Frankfurt (Oder)" => 23,
"Leutnant" => 23,
"Leutnant der Deutschen Wehrmacht" => 23,
@ -723,6 +1096,8 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Leutnant der Wehrmacht" => 23,
"Leutnant der 422. Artillerieabteilung der 18. Panzerdivision" => 23,
"Leutnant des 4. Schützenregiments der XX. Division" => 23,
'Lizenz' => 23, // [general]
'LÖSCHEN' => 23, // [general]
"Luftstreitkräfte der Sowjetunion" => 23,
"Major und Kompaniechef im Infanterie-Regiment 1" => 23,
@ -772,6 +1147,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
25" => 23,
"Oberstudiendirektor" => 23,
"Offizier der schw. Art. Abt. 816, speziell 4. schw. Ers.-Batt.Art. Ers. Abt. 59 (mot)" => 23,
"Ordensstifter" => 23,
"Organ der Kreisleitung Bor" => 23,
"O.T. Linienchef der Dg.IV, der Abschnittsbauleiter" => 23,
@ -798,6 +1174,12 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"russischer Kriegsgefangene" => 23,
"Sanitätsoffizier" => 23,
"Schenkende Person" => 23,
"Schenkende Person (Geburtstag)" => 23,
"Schenkende Person (Jahrestag)" => 23,
"Schenkende Person (Jubiläum)" => 23,
"Schenkende Person (Namenstag)" => 23,
"Schenkende Person (Weihnachten)" => 23,
"Sekretär der Parteiorganisation des Hauses der Offiziere, Major" => 23,
"Sekretär der Wohnparteiorganisation 42" => 23,
"1. Sekretär der Kreisleitung, Oberst" => 23,
@ -854,6 +1236,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Vorsteher des Lagers der Kriegsgefangenen der Stadt Pretzsch (Hauptmann)" => 23,
"Wehrbezirkskommandeur, Oberst" => 23,
'Werkbundmitglied' => 23, // [general]
"Wehrmacht" => 23,
"Wehrmachtssoldat" => 23,
"Wehrmachtsoffizier" => 23,

61
src/MDConcCertainty.php Normal file
View File

@ -0,0 +1,61 @@
<?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 {
private const MAPPING = [
// Uncertain
'fraglich' => false,
'nach' => false,
'Umkreis von' => false,
'möglicherweise von' => false,
'alternative Zuschreibung' => false,
'Art des' => false,
'Atelier von' => false,
'ehemals zugeschrieben' => false,
'Stil des' => false,
'Schule von' => false,
'Schule des' => false,
'traditionelle Zuschreibung' => false,
'Werkstatt von' => false,
'zugeschriebe' => false,
'zugeschrieben' => false,
'zugeschrieben an' => false,
// Certain
'sicher' => true,
'Zusammenarbeit mit' => true,
'überarbeitet von' => true,
'Nachfolger von' => true,
'by' => true,
];
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return boolean
*/
public static function getConcordanceTarget(string $input):bool {
if (!isset(self::MAPPING[$input])) {
throw new MDImporterMissingConcordance("Unknown certainty identifier: " . $input);
}
return self::MAPPING[$input];
}
}

View File

@ -26,10 +26,12 @@ final class MDConcCloserLocationTypes implements MDImporterConcordanceListInterf
"2" => "2",
"Fundort" => "2",
"Place of discovery" => "2",
"Lelőhely" => "2",
# Former place
"3" => "3",
"Former place" => "3",
"Früherer Ort" => "3",
];

35
src/MDConcColors.php Normal file
View File

@ -0,0 +1,35 @@
<?PHP
/**
* Constains lists for grouping colors.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Constains lists for grouping colors.
*/
final class MDConcColors implements MDImporterConcordanceListInterface {
private const COLORS_LIST = [
'Gelb' => 'yellow',
'Schwarz' => 'black',
];
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return string
*/
public static function getConcordanceTarget(string $input):string {
if (!isset(self::COLORS_LIST[$input])) {
throw new MDImporterMissingConcordance("Unknown color: " . $input);
}
return self::COLORS_LIST[$input];
}
}

View File

@ -12,21 +12,25 @@ 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',
"SFR" => "ch-CHF",
"French Franc" => "fr-FF",
"Forint" => "hu-Ft",
"Korona" => "hu-Korona",
"Austro-Hungarian krone" => "hu-Korona",
"Pengő" => "hu-Pengő",
"pengő" => "hu-Pengő",
"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",
@ -34,18 +38,39 @@ final class MDConcCurrencies implements MDImporterConcordanceListInterface {
"RM" => "de-RM",
"Reichsmark" => "de-RM",
"Reichsmark (Deutsches Reich)" => "de-RM",
"French Franc" => "fr-FF",
"Forint" => "hu-Ft",
"FT" => "hu-Ft",
"Korona" => "hu-Korona",
"Austro-Hungarian krone" => "hu-Korona",
"Korona (osztrák-magyar" => "hu-Korona",
"Pengő" => "hu-Pengő",
"pengő" => "hu-Pengő",
"Indonesian Ruphian" => 'id-IDR',
"EUR" => "eu-EUR",
"euro" => "eu-EUR",
"Euro" => "eu-EUR",
"EURO" => "eu-EUR",
"Євро" => "eu-EUR",
"eu-EUR" => "eu-EUR",
"" => "eu-EUR",
"Mark (DDR)" => "ddr-Mark",
"Mark (DDR" => "ddr-Mark",
"DDRMk" => "ddr-Mark",
"ddr-Mark" => "ddr-Mark",
"Ukrainian hryvnia" => "ua-UAH",
"грн" => "ua-UAH",
"гривня" => "ua-UAH",
"гривні" => "ua-UAH",
"грн." => "ua-UAH",
"карбованці" => "ua-UAK",
"GBP" => "uk-GBP",
"uk-GBP" => "uk-GBP",
"Pfd" => "uk-GBP", // Pfund
"USD" => "us-USD",
"US Dollar" => "us-USD",
"US dollar" => "us-USD",
"$ USA" => "us-USD",
];
/**
@ -58,6 +83,9 @@ final class MDConcCurrencies implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):string {
if (!isset(self::CURRENCIES_LIST[$input])) {
if (in_array($input, MDCurrenciesSet::CURRENCIES, true)) {
return $input;
}
throw new MDImporterMissingConcordance("Unknown currency: " . $input);
}

View File

@ -13,6 +13,13 @@ final class MDConcDamageTypes implements MDImporterConcordanceListInterface {
private const DAMAGE_TYPES = [
"breakage" => MDObjectDamageType::breakage,
"Wasserschaden" => MDObjectDamageType::water_damage,
"Austrocknung" => MDObjectDamageType::desiccation,
"Desiccation" => MDObjectDamageType::desiccation,
];
private const DAMAGE_TYPES_BLACKLIST = [
'keine',
];
/**
@ -25,6 +32,11 @@ final class MDConcDamageTypes implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):MDObjectDamageType {
if (!isset(self::DAMAGE_TYPES[$input])) {
if (in_array($input, self::DAMAGE_TYPES_BLACKLIST, true)) {
throw new MDImporterBlacklistedConcordanceTerm("Invalid damage type: " . $input);
}
throw new MDImporterMissingConcordance("Unknown damage type: " . $input);
}

View File

@ -17,6 +17,7 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"" => "0",
"ABM 95" => "0",
"Angebot" => "0",
"Armbrustersammlung" => "0",
"g" => "0",
"Herkunft unklar" => "0",
"keine Angaben" => "0",
@ -27,43 +28,143 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"22.09.2009" => "0",
"23.09.2009" => "0",
"1959" => "0",
"Zugangsart (MPlus) - als: (MDigital" => "0",
"Kutatást igényel" => "0", // Google TL: "It requires research"
"Leipzig" => "0",
"lt." => "0",
"Grotewohlring" => "0",
"FLM" => "0",
"Schriftliches" => "0",
"schriftliches" => "0",
"Export_Eingangsart" => "0",
"Verlagerung" => "0",
"Sc" => "0",
"Seiffen" => "0",
"aus" => "0",
"Gerd" => "0",
"D-Einsiedel" => "0",
"D-Einsiedel," => "0",
"Hersteller" => "0",
"Ungeklärt" => "0",
"Dorfmuseum Marzahn" => "0",
"Märkisches Museum" => "0",
"Sanierungsbestand Hornmoldhaus" => "0",
"unklar" => "0",
"unklar, aus dem alten Bestand" => "0",
"?" => "0",
"To be checked" => "0",
"Zugang ungeklärt" => "0",
// 1: Donation
"Ajándék" => "1",
"Ajándékozás" => "1",
"ajándékozás" => "1",
"Abgabe" => "1",
"Donation" => "1",
"Geschenk" => "1",
"Geschenk 2010" => "1",
"Geschenk (Lederscheide" => "1",
"Geschenk 20.10.03" => "1",
"Schenkung" => "1",
"Schenkung/abgeschr. B. DHM" => "1",
"Schenkung an die Stadt Ravensburg" => "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",
"Anonyme Spende" => "1",
"Kostenlose" => "1",
"Überlassung" => "1",
"Übertragung" => "1",
"Spendenquittung" => "1",
"Spendenbescheinigung" => "1",
"Передача" => "1", // UK: Transfer
"передача" => "1", // UK: Transfer
"Передавання" => "1", // UK: Transmission.
"Передавання." => "1", // UK: Transmission.
"Передано Інститутом археології АН УРСР (нині ІА НАНУ" => "1", // Submitted by the Institute of Archeology of the Academy of Sciences of the Ukrainian SSR (now - IA of the National Academy of Sciences
"Передано Інститутом археології АН УРСР (нині - ІА НАНУ" => "1", // Submitted by the Institute of Archeology of the Academy of Sciences of the Ukrainian SSR (now - IA of the National Academy of Sciences
"Передано з фондів Державного історичного музею УРСР" => "1", // Transferred from the funds of the State Historical Museum of the Ukrainian SSR
// 2: Purchase
"Ankauf" => "2",
"Ankau" => "2",
"3Ankauf" => "2",
"Ankauf Peitz" => "2",
"Ankauf Sagar" => "2",
"Anakuf" => "2",
"Anakauf" => "2",
"Abkauf" => "2",
"ANKAUF" => "2",
"Anlauf" => "2",
"Ankauf," => "2",
"Ankaufspreis:" => "2",
"Ankauf, 50€" => "2",
"Bought" => "2",
"Bestellung" => "2",
"Kauf Verein" => "2",
"Kauf - Ebay" => "2",
"Kaufvertrag" => "2",
"Einkauf" => "2",
"Einzelkauf" => "2",
"Einzelkauf, Ebay" => "2",
"Erwerb" => "2",
"Gekauft" => "2",
"Großankauf" => "2",
"Globalankauf" => "2",
"Gesamtankauf" => "2",
"Globalankaufl" => "2",
"Gobalankauf" => "2",
"Global-Ankauf" => "2",
"Globalnkauf" => "2",
"Glopalankauf" => "2",
"Globalkauf" => "2",
"Globalanlkauf" => "2",
"Globlankauf" => "2",
"Gloalankauf" => "2",
"globalankauf" => "2",
"lobalankauf" => "2",
"Gloabalankauf" => "2",
"Glkobalankauf" => "2",
"Globalanakuf" => "2",
"Globalanakauf" => "2",
"Gl.-Ankauf" => "2",
"kauf" => "2",
"Kauf" => "2",
"Kauf-global-1025,-" => "2",
"Kauf-global-10,-" => "2",
"kauf-global-10,-" => "2",
"Kauf-global-50,-" => "2",
"Kauf-global-250,-" => "2",
"Kauf-global-250.-" => "2",
"Kauf-glöbal-250,-" => "2",
"kauf-global-250,-." => "2",
"kauf-global-250,-" => "2",
"Kauf-global-2560,-" => "2",
"kauf-globval-250,-" => "2",
"Kauf-.global-250,-" => "2",
"Kauf/Sammelkauf" => "2",
"Kauf/Sammelkauf Klebs" => "2",
"Kauf 2006" => "2",
"Kauf 2009" => "2",
"Kauf d.Förderverein" => "2",
@ -71,11 +172,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",
@ -86,17 +196,23 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"Feltárás" => "3",
"Grabung" => "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",
"Übergabe & Nachlass lt. Testament" => "5",
@ -108,6 +224,7 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
// 6: Endowment
"Endowment" => "6",
"Stiftung" => "6",
"Stiftung (1930" => "6",
"Hivatalos átadás" => "6",
// Disposession
@ -124,9 +241,11 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"Leihgabe" => "9",
"Leihgabwe" => "9",
"Leiggabe" => "9",
"Leihnahme" => "9",
"Loan" => "9",
"Verliehen" => "9",
"Leihgabe vom" => "9",
"Leihvertrag mit Sonderregelung" => "9",
// 10: Exchange
"Austausch" => "10",
@ -134,6 +253,7 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"csere" => "10",
"Exchange" => "10",
"Tausch" => "10",
"Sammeltausch" => "10",
// 11: In-house production
"Abzüge von alten Negativen" => "11",
@ -142,13 +262,20 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"Eigenfertigung" => "11",
"Eigenfertigung des Museums" => "11",
"Eigenproduktion" => "11",
"Eigene" => "11",
"Fotokopie" => "11",
"hausintern" => "11",
"In-house production" => "11",
"Lehrwerkst." => "11",
"Neuanfertigung" => "11",
"Herstellung" => "11",
"Eigenherstelung" => "11",
"Eigenherstellung" => "11",
"Preßglas" => "11",
"Hergestellt im Auftrag des Heimatvereins" => "11",
"Saját előállítás" => "11",
"Xerox-Kopie" => "11",
"Interner Zugang" => "11",
// 12: Material Strain (Törzsanyag)
"Törzsanyag" => "12",
@ -161,41 +288,67 @@ 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",
"Tartós leltét" => "16",
// 98: Other legal acquisition
// 98: Old belongings
"Altbestand" => "98",
"Altebestand" => "98",
"alter Bestand" => "98",
"Alter Bestand" => "98",
"Altbestand Domäne Dahlem" => "98",
"Altbestand Kapitulationsmuseum" => "98",
"Altbestand, Zugangsart unbekannt" => "98",
"Altbestand, Herkunft unklar" => "98",
"Altbestand MM" => "98",
"Altbestand Dorfmuseum Marzahn" => "98",
"Altbestand Märkisches Museum" => "98",
"Altbestand Domäne MM" => "98",
"altbestand Domäne Dahlem" => "98",
"Besitz" => "98",
"Depositum" => "98",
"gefunden im Großdepot R. 104" => "98",
"Museums Altbestand" => "98",
"To be checked" => "98",
"Depotfund" => "98",
"Eigentum" => "98",
"Ungeklärt" => "98",
"unklar" => "98",
"unklar, aus dem alten Bestand" => "98",
"?" => "98",
"Zugang ungeklärt" => "98",
// 99: Other legal acquisition
"Anderer rechtmäßiger Zugang" => "99",
"Bodenreform" => "99",
"sichergestellt" => "99",
"Other legal acquisition" => "99",
"Egyéb hivatalos megszerzés" => "99",
"Global" => "99",
"Zurückgegeben" => "99",
"Übernahme" => "99",
"Übernahme von Betrieb" => "99",
"Teilbetrag" => "99",
"mitgenommen" => "99",
"Übernhame" => "99",
"bernahme" => "99",
"unbekant" => "99",
"Ünernahme" => "99",
"Übergabe" => "99",
"Übergabe abgeschr.B. DHM" => "99",
"gyűjtés" => "99",
"sch" => "99",
"Auftragsarbeit für Museum" => "99",
"Einzelkauf/Schenkung" => "99",
"Schenkung / Leihgabe" => "99",
];
@ -208,11 +361,16 @@ 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];
}
throw new MDImporterMissingConcordance("Unknown entry type: " . $input);
}
}

View File

@ -15,27 +15,142 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
// 1: Created
'Hergestellt' => 1,
'Hergestellt vermutlich' => 1,
'Herstellung Fassung' => 1,
'Herstellung' => 1,
'Ausführung und Herstellung' => 1,
'Ausführung
Herstellung' => 1,
'Entwurf und Ausführung' => 1,
'Entwurf und Herstellung' => 1,
'zugeschrieben' => 1,
'ehem. zugeschrieben' => 1,
'Mitarbeit' => 1,
'Dekor' => 1,
'Dekor vermutet' => 1,
'Technischer Hersteller' => 1,
'Herstellung vermutlich' => 1,
'Herstellungsort' => 1,
'vermuteter Herstellungsort' => 1,
'vermuteter Herstellungsort
vermuteter Herstellungsort' => 1,
'Production' => 1,
'production' => 1,
'Herstellung des Exemplars' => 1,
'Bearbeitung' => 1,
'Erschaffung/Herstellung' => 1,
'creation' => 1,
'bearbeitet' => 1,
'gestempelt (' => 1,
'gestempelt (\'' => 1,
'Beginning of existence' => 1,
'creation' => 1,
'Erschaffung/Herstellung' => 1,
'Architekt/in' => 11, // created by
"Guss" => 1,
"Guß" => 1,
'http://terminology.lido-schema.org/eventType/production' => 1,
'Leipoldt, J.' => 1,
'Produktion' => 1,
'Rohleder, Walter, Reichenbach' => 1,
'vermutet' => 1,
// "Unknown event"
'Aktivität' => 1,
"Katograf" => 1,
'http://terminology.lido-schema.org/lido00004' => 1,
'Ereignis' => 1,
'http://terminology.lido-schema.org/lido00003' => 1,
'Herstellung des Abzugs/der Abformung' => 1,
'Ausführung' => 1,
'Gos-Mehrfacheintrag' => 1,
'vermuteter Herstellungsort Fassung' => 1,
'Kupferstecher' => 1,
'Herstellungsort Fassung' => 1,
'Herstellungsort Münze' => 1,
'Herstellung oder Vertrieb' => 1,
'Herstellung zugeschrieben' => 1,
'Umkreis' => 1,
'Herstellungsort Parametisches Modell' => 1,
'Herstellungsort Druck, Guss und Nachbearbeitung' => 1,
// 2: Was found
'Fund' => 2,
'Auffinden' => 2, // Finding
'Ausgrabung' => 2, // Excavation
'Excavation' => 2,
'Fund' => 2, // Finding
'Fund (Aktivität)' => 2,
'Ausgrabung' => 2,
'Finding' => 2,
'Finding (Activity)' => 2,
'Gefunden' => 2,
'Auffindungsort' => 2,
"Виявлення" => 2,
"Виявленнґ" => 2,
'Finding
(Activity)' => 2,
'http://terminology.lido-schema.org/lido00002' => 2,
'Розкопки' => 2, // Excavation
'Знахідка' => 2, // Find
// 3: Published
'Published' => 3,
'Veröffentlicht' => 3,
'Veröffentlichung' => 3,
'Verleger' => 3,
'Verlag' => 3,
'published' => 3,
'http://terminology.lido-schema.org/eventType/publication' => 3,
'Publikation' => 3,
'Publishing' => 3,
'Publication' => 3,
'Publication Event' => 3,
'Publication (Event)' => 3,
// 4: Template creation
'Template creation' => 4,
'Vorlagenerstellung' => 4,
'Stichvorlage' => 4,
'Vorlage' => 4,
'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,
'Displayed actor' => 5,
'Darstellung' => 5,
// 6: Was used
'Aufführung' => 6,
'Ausstellung' => 6,
'Ausstellung (Aktivität)' => 6,
'http://terminology.lido-schema.org/lido00225' => 6,
'Verwendungsort' => 6,
'Miniatur zugeschrieben an' => 6,
'Move of object' => 6,
'Wurde genutzt' => 6,
'Verwendung' => 6,
'gebrauch' => 6,
'Gebrauch' => 6,
'Use' => 6,
'http://terminology.lido-schema.org/eventType/use' => 6,
'Diener' => 6,
'Digitalisierung' => 6,
'Дослідження' => 6, // Research
'Дослідження:' => 6, // Research
// 7: Written
'Written' => 7,
'Geschrieben' => 7,
'Verfasst' => 7,
'Text verfasst' => 7,
'geschrieben' => 7,
'verfasst' => 7,
'Autor/in' => 7, // written by
// 8: Collected
'Collected' => 8,
@ -43,14 +158,74 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
'Sammeln' => 8,
'Collecting' => 8,
'Sammeltätigkeit' => 8,
'Sammelereignis' => 8,
'http://terminology.lido-schema.org/lido00010' => 8,
'Zuordnung zu einem kuratierten Bestand' => 8,
'http://terminology.lido-schema.org/lido01146' => 8,
'Збирання/колекціонування' => 8, // Gathering/collecting
'Знайдення' => 8, // Finding
'знайдення' => 8, // Finding
'Передача' => 8, // Transfer
'передача' => 8, // Transfer
'Привезена' => 8,
'Передавання' => 8, // Transmission
// 9: => Painted
'Painted' => 9,
'Gemalt' => 9,
"Malerei" => 9,
// 10: Recorded
'Fotografische Aufnahme' => 10,
'Aufnahme' => 10,
'Aufgenommen' => 10,
'Herstellung (Aufnahme)' => 10,
// '11' => Received
'Adressat/in' => 11, // received by
'Received' => 11,
'Empfangen' => 11,
'empfangen' => 11,
'Отримання' => 11, // Receiving
// 12 => Printing plate produced
'Printing plate produced' => 12,
'Druckplatte hergestellt' => 12,
'Herstellung der Druckform/Form' => 12,
'http://terminology.lido-schema.org/lido00484' => 12,
// '13' => Sent
'Sent' => 13,
'Gesendet' => 13,
'Versendet' => 13,
'Abgeschickt' => 13,
// '14' => Issued
'Issued' => 14,
'Ausgefertigt' => 14,
// '15' => Signed
'Signed' => 15,
'Unterzeichnet' => 15,
// '16' => First description
'First description' => 16,
'Erstbeschreibung' => 16,
'Typuszuweisung' => 16,
'http://terminology.lido-schema.org/lido00023' => 16,
// '19' => Drawn
'Drawn' => 19,
'Gezeichnet' => 19,
// 20: Copied
'Copied' => 20,
'Kopiert' => 20,
'Abgeschrieben' => 20,
// 21: Lived
'Lived' => 21,
'Gelebt' => 21,
// 22: Related place
'Geografischer Bezug' => 22,
@ -61,16 +236,153 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
'Auftrag' => 25,
'Commissioning' => 25,
'Beauftragung' => 25,
'Beauftragt' => 25,
// 26 => Printed
'Printed' => 26,
'Gedruckt' => 26,
// 27 => Recorded
'Recorded song' => 27,
// 28 => Sung
'Sung' => 28,
'Gesungen' => 28,
'Gesprochen' => 28, // ?
'Sprecher' => 28, // ?
// 29 => Decor designed
'Decor designed' => 29,
'Dekor entworfen' => 29,
// 30 => Form designed
'Form designed' => 30,
'Form entworfen' => 30,
// 31 => Modelled
'Modell' => 31,
'Modelled' => 31,
'Modelliert' => 31,
// 32 => Autographed/Signed
'Autographed/Signed' => 32,
'Signiert' => 32,
// 33 => Mentioned
'Mentioned' => 33,
'Wurde erwähnt' => 33,
// 34 => Buried
'Buried' => 34,
'Vergraben' => 34,
// 35: Intellectual creation
'Design' => 35,
'design' => 35,
'Designing' => 35,
'komponiert' => 35,
'Entwerfen' => 35,
'Entwurf' => 35,
'Geistige Schöpfung' => 35,
'Kulturelle Zuschreibung' => 35,
'Merkmalszuweisung' => 35,
'http://terminology.lido-schema.org/lido00024' => 35,
'http://terminology.lido-schema.org/lido00224' => 35,
// 36 => Was depicted
'Was depicted (place)' => 36,
'Wurde abgebildet (Ort)' => 36,
// 37 => Painted on
'Painted on' => 37,
'Bemalt' => 37,
"Porzellanplatte mit Grisaille-Malerei" => 37,
// 38 => Illustrated
'Illustrated' => 38,
'Illustriert' => 38,
// 39 => Assembled
'Assembled' => 39,
'Was assembled' => 39,
'zusammengefügt' => 39,
'Wurde zusammengefügt' => 39,
// 40 => Auctioned
'Auctioned' => 40,
'Was auctioned' => 40,
'Versteigert' => 40,
'Wurde versteigert' => 40,
// 41: Was Bought
'Erwerb' => 41,
'Acquisition (Activity)' => 41,
'Kauf' => 41,
'Gekauft' => 41,
'acquisition_Kauf' => 41,
// 42: Owned
'acquisition_unbekannt' => 42,
'acquisition_Leipoldt' => 42,
'acquisition_Mehlig, P.' => 42,
'acquisition_Krone, Hermann' => 42,
'acquisition_Schlegel, Charlotte' => 42,
'acquisition_Schröder' => 42,
'acquisition_Meier, Th.J.' => 42,
'acquisition_Schaarschuh, Dresden' => 42,
'acquisition_Schönfelder, R.' => 42,
'acquisition_Neumeister' => 42,
'acquisition_Oehmichen' => 42,
'acquisition_Photo-Schröder' => 42,
'acquisition_Rohleder' => 42,
'acquisition_Mehlig' => 42,
'Provenienz' => 42,
'Provenance' => 42,
'Besessen' => 42,
'VorbesitzerIn' => 42,
'http://terminology.lido-schema.org/lido00227' => 42,
// 43: Was sold
'was sold' => 43,
'Verkauft' => 43,
'Verkauf' => 43,
'Acquisition / Selling' => 43,
'Vertrieb' => 43,
// 44: Restorated
'Restaurierung' => 44,
'Restauriert' => 44,
'wurde restauriert' => 44,
// 45: Damaged
'Damaged' => 44,
'Beschädigung' => 44,
'wurde beschädigt' => 44,
// 48: Edited
'Herausgegeben' => 48,
"publication" => 48,
// 49: Gifted, donated
'Schenkung' => 49,
'Nachlass' => 49,
'Übergabe' => 49,
'Stiftung' => 49,
'Donation' => 49,
'Gespendet / Geschenkt' => 49,
'acquisition_Schenkung' => 49,
'acquisition_Nachlass' => 49,
'acquisition_Übergabe' => 49,
'acquisition_Stiftung' => 49,
'acquisition_Bodenreform' => 49,
// General acquisition
'Erwerb' => 56,
'Erwerbung' => 56,
'http://terminology.lido-schema.org/lido01151' => 56,
'http://terminology.lido-schema.org/lido00001' => 56,
'Acquisition' => 56,
'Acquisition (Activity)' => 56,
'Bodenreform' => 56,
'acquisition_Diener' => 56,
];
@ -84,7 +396,7 @@ final class MDConcEventTypes implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):int {
if (!isset(self::EVENT_TYPE_NAMES_TO_ID[$input])) {
throw new MDImporterMissingConcordance("Unknown entry type: " . $input);
throw new MDImporterMissingConcordance("Unknown event type: '" . $input . "'");
}
return self::EVENT_TYPE_NAMES_TO_ID[$input];

View File

@ -0,0 +1,202 @@
<?PHP
/**
* Represents a possible target for importing related works
* as defined by LIDO.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Represents a possible target for importing related works
* as defined by LIDO.
*/
enum MDConcFieldRelatedWorksType {
case related_works_freetext;
case series;
case literature;
case weblink;
case undefined;
/**
* Returns a target field value of this type based on a string.
*
* @param string $input Input to get a value from.
*
* @return MDConcFieldRelatedWorksType
*/
public static function fromString(string $input):MDConcFieldRelatedWorksType {
return match($input) {
"Dokumentiert in",
"dokumentiert in",
'is documented in',
"Erwähnung in",
":iterature",
"Beschrieben in",
"Literatur",
"Literatur in Zusammenhang",
'Literatur zum Stück',
'Standardzitierwerk',
'beschrieben in',
"Reproduziert in: ",
"reproduziert in: ",
"reproduced in: ",
"Reproduziert in",
"reproduziert in",
"reproduced in",
"wird beschrieben in",
'http://digicult.vocnet.org/terminology/ter01113',
'http://terminology.lido-schema.org/lido00617',
'Quelle',
"beschrieben in" => self::literature,
"Teil von",
"ist Teil von",
"ist physischer Teil von",
"Gehört zu",
"gehört zu",
"Gehört zu Sammlung",
"gehört zu Sammlung",
"Part of",
"Gesamtwerk",
"part of",
"Photoserie",
"Mappe",
"series",
"Konvolut",
"http://digicult.vocnet.org/terminology/ter00235",
"Serie" => self::series,
"hat Vorlage",
"Kopie von",
"Objekt",
"ist Version von",
"inhaltlicher Bezug zu",
'Vorlage für',
'hat Studie',
'vorbereitend für',
'Entwurf für',
'hat Reproduktion',
'abgeleitet von',
'auf einem Blatt mit',
'hat Entwurf',
'Skizze für',
'hat Skizze',
'hat Druckplatte',
'Reproduktion von',
'Druckplatte für',
'Studie für',
'Beinhaltet',
'hat Gegendruck',
'Gegendruck zu',
'Wiedergabe von',
'Wiedergabe für',
"Teil",
'verso von',
'recto von',
"Teil 1",
"Teil 2",
"Teil 3",
"Teil 4",
"hat Teil",
"has part",
"Dublette",
"Objektbezug",
"Vergleiche",
"Umfasst",
"Entwurf",
"Vorderseite",
"Rückseite",
"Paarweise mit",
"Zustandsdruck",
"Foto",
"Original",
"Variante",
"Aufnahme Objekt",
"Zusammen mit",
"Ausführung",
"Related objects",
"Abbildung identisch",
'http://digicult.vocnet.org/terminology/ter00223',
"Join",
"Hauptobjekt",
"Akte",
"Vorgang",
"Form",
"Identisch mit",
"Kopie",
"Gegenstück zu",
"hat Version",
"hat Kopie",
"ist Verso von",
"ist Recto von",
"ist Kopie nach",
"ist Quelle für",
"in Beziehung zu",
"ist abgeleitet von",
"ist vorbereitend für",
"Enthalten in",
"Enthält",
"Verso von",
"Recto von",
"ist Teil desselben konzeptuellen Ganzen mit",
"ist vorbereitende Studie für",
"hat vorbereitende Studie",
"basiert auf",
"Druck",
"Referenz",
"Haupttafel",
"Faksimile",
"Blatt",
"Photo",
"Einzelteil",
'Objekt identisch',
'Form von',
'Formprodukt von',
'Abbildung weitgehend identisch',
'abgebildet auf/in',
'bildet ab',
'basierend auf',
'Pendant zu',
'ist Pendant zu',
'Ist Pendant zu',
'Pendant von',
'ist Pendant von',
'Ist Pendant von',
'enthält',
'hat Bezug zu',
'Abzug',
'weiterer Abzug',
'exemplifies',
'bezogen auf',
'http://terminology.lido-schema.org/lido00263',
'http://digicult.vocnet.org/terminology/ter00224',
'http://digicult.vocnet.org/terminology/ter00225',
'http://digicult.vocnet.org/terminology/ter00230',
'http://digicult.vocnet.org/terminology/ter00231',
'http://digicult.vocnet.org/terminology/ter00233',
'http://digicult.vocnet.org/terminology/ter00234',
'http://digicult.vocnet.org/terminology/ter00243',
'http://digicult.vocnet.org/terminology/ter00238',
'http://digicult.vocnet.org/terminology/ter01237',
"verwandt mit",
"Zusammen ein Ganzes bildend mit",
"Vorlage" => self::related_works_freetext,
"Weblink",
"Web link",
"Fachportal",
'Externer Link',
'http://digicult.vocnet.org/terminology/ter01391'
=> self::weblink,
"" => self::undefined,
default => throw new MDpageParameterNotFromListException("Unknown target field for related works type: " . $input),
};
}
}

View File

@ -12,8 +12,68 @@ declare(strict_types = 1);
final class MDConcLanguages implements MDImporterConcordanceListInterface {
private const LANGUAGES_LIST = [
# English
'English' => 'en',
'englisch' => 'en',
'Englisch' => 'en',
'Englisch\'' => 'en',
'eng' => 'en',
'EN' => 'en',
'ENG' => 'en',
'eng; ger' => 'en',
'en-GB' => 'en',
# German
'Deutsch' => 'de',
'deutsch' => 'de',
'German' => 'de',
'ger' => 'de',
'deu' => 'de',
'Buch' => 'de',
'Deutsch, Latein' => 'de',
'deutsch, französisch' => 'de',
'deutsch, russisch' => 'de',
'deutsch u. plattdeutsch' => 'de',
'deutsch / englisch' => 'de',
'deurtsch' => 'de',
'lat; ger' => 'de',
'ger; lat' => 'de',
'ger; eng' => 'de',
# Latin
'lat' => 'la',
# Russian
'rus' => 'ru',
# Hungarian
'Hungarian' => 'hu',
'Magyar' => 'hu',
# Czech
'Tschechisch' => 'cs',
'tschechisch' => 'cs',
'cz' => 'cs',
# Plattdeutsch / Niederdeutsch
'plattdeutsch' => 'nds',
# Latin
'Latein' => 'la',
'Latein, Deutsch, Italenisch, Spanisch, Englisch' => 'la',
# French
'fra' => 'fr',
'fre' => 'fr',
'Französisch' => 'fr',
'französisch' => 'fr',
# Italian
'ita' => 'it',
'it-it' => 'it',
'italienisch' => 'it',
'Italienisch' => 'it',
];
/**

View File

@ -10,31 +10,110 @@ declare(strict_types = 1);
* Provides lists for categorizing misspelled sizes.
*/
final class MDConcLengths implements MDImporterConcordanceListInterface {
private const LENGTHS_LIST = [
"cn" => "cm",
",cm" => "cm",
"5cm" => "cm",
"inch" => "in",
"Zoll" => "in",
"zoll" => "in",
];
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return string
* @return MDLengthUnit|false
*/
public static function getConcordanceTarget(string $input):string {
public static function getConcordanceTarget(string $input):MDLengthUnit|false {
if (!isset(self::LENGTHS_LIST[$input])) {
throw new MDImporterMissingConcordance("Unknown length type: " . $input);
}
return match($input) {
// Default: Empty
"Breite",
"breite",
"Width",
"width",
"Höhe",
"höhe",
"Height",
"height",
"´´´",
"Theater",
"Oper",
"min",
"-",
"a)",
"/",
"geöffnet",
"Scheibe",
"Trageöse",
"ohneRahmen",
"mitRahmen",
"ohne Rahmen",
"mit Rahmen",
"Verpackung",
"mitFassung",
"ohneFassung",
"mit Fassung",
"ohne Fassung",
"nichtfeststellbar",
"nicht feststellbar",
"amBodenhinten",
"am Bodenhinten",
"am Boden hinten",
"andenSchildzapfen",
"an den Schildzapfen",
"anderMündung",
"an der Mündung",
"Fuß",
"Innendurchmesser",
"mitStulpe",
"mit Stulpe",
"mitHolzrahmen",
"mit Holzrahmen",
"mitStahlrahmen",
"mit Stahlrahmen",
"Pfeilhöhe",
"Klingenbreite",
"bis",
"vorne",
"hinten",
"zwischenund",
"Standring",
"kleinsterDurchmesser",
"größterDurchmesser",
"kleinster Durchmesser",
"größter Durchmesser",
"Klinge",
"Henkel",
"mitFaden",
"mit Faden",
"ohneFaden",
"ohne Faden",
"nichtmessbar",
"nicht messbar",
"Stoffbreite" => false,
return self::LENGTHS_LIST[$input];
// cm
"cn",
",cm",
"5cm",
"Zentimeter",
"см",
"",
"ca" => MDLengthUnit::cm,
"Meter",
"Meters",
"meter",
"meters" => MDLengthUnit::m,
"Milimeter",
"Milimeters",
"Millimeter",
"Millimeters",
"мм",
"ma" => MDLengthUnit::mm,
"inch",
"Zoll",
"zoll" => MDLengthUnit::ft,
default => throw new MDInvalidLengthUnit("Invalid length unit " . $input),
};
}
}

View File

@ -12,17 +12,40 @@ declare(strict_types = 1);
final class MDConcLicenses implements MDImporterConcordanceListInterface {
private const LICENSES_LIST = [
"CCO" => "CC0",
"CC 0" => "CC0",
"CC_0" => "CC0",
"CC O" => "CC0",
"CC0 1.0" => "CC0",
"CC 0 1.0" => "CC0",
"CC_0 1.0" => "CC0",
"CC0 1.0 Universell" => "CC0",
"CC0 1.0 Universell (CC0 1.0)" => "CC0",
"kein Copyright / Public domain (CC0 1.0)" => "CC0",
"http://creativecommons.org/publicdomain/zero/1.0" => "CC0",
"http://creativecommons.org/publicdomain/zero/1.0/" => "CC0",
"http://creativecommons.org/publicdomain/zero/1.0/deed.de" => "CC0",
"https://creativecommons.org/publicdomain/zero/1.0" => "CC0",
"https://creativecommons.org/publicdomain/zero/1.0/" => "CC0",
"https://creativecommons.org/publicdomain/zero/1.0/deed.de" => "CC0",
"CC_BY" => "CC BY",
"CC-BY" => "CC BY",
"CC.BY" => "CC BY",
"https://creativecommons.org/licenses/by-sa/4.0/" => "CC BY",
"CC BY 4.0" => "CC BY",
"CC_BY 4.0" => "CC BY",
"CC-BY 4.0" => "CC BY",
"CC.BY 4.0" => "CC BY",
"http://creativecommons.org/licenses/by/4.0" => "CC BY",
"http://creativecommons.org/licenses/by/4.0/" => "CC BY",
"http://creativecommons.org/licenses/by/4.0/de" => "CC BY",
"http://creativecommons.org/licenses/by/4.0/deed.de" => "CC BY",
"https://creativecommons.org/licenses/by/4.0" => "CC BY",
"https://creativecommons.org/licenses/by/4.0/" => "CC BY",
"https://creativecommons.org/licenses/by/4.0/de" => "CC BY",
"https://creativecommons.org/licenses/by/4.0/deed.de" => "CC BY",
"Namensnennung 4.0. International (CC BY 4.0)" => "CC BY",
"Namensnennung 4.0 International - CC BY 4.0" => "CC BY",
"CC BY SA" => "CC BY-SA",
"CC BY-SA-" => "CC BY-SA",
@ -31,20 +54,52 @@ final class MDConcLicenses implements MDImporterConcordanceListInterface {
"CC-BY-SA" => "CC BY-SA",
"CC.BY-SA" => "CC BY-SA",
"CC BY-SA 4.0" => "CC BY-SA",
"CC BY SA 4.0" => "CC BY-SA",
"CC BY-SA 4.1" => "CC BY-SA",
"CC BY-SA 4.2" => "CC BY-SA",
"CC BY-SA 4.3" => "CC BY-SA",
"CC BY-SA 4.4" => "CC BY-SA",
"CC BY-SA 4.5" => "CC BY-SA",
"CC BY-SA 4.6" => "CC BY-SA",
"CC BY-SA 4.7" => "CC BY-SA",
"CC BY-SA 4.8" => "CC BY-SA",
"CC BY-SA 4.9" => "CC BY-SA",
"http://creativecommons.org/licenses/by-sa/3.0/" => "CC BY-SA",
"http://creativecommons.org/licenses/by-sa/3.0/de" => "CC BY-SA",
"http://creativecommons.org/licenses/by-sa/3.0/de/" => "CC BY-SA",
"http://creativecommons.org/licenses/by-sa/3.0/deed.de" => "CC BY-SA",
"https://creativecommons.org/licenses/by-sa/3.0/" => "CC BY-SA",
"https://creativecommons.org/licenses/by-sa/3.0/de" => "CC BY-SA",
"https://creativecommons.org/licenses/by-sa/3.0/de/" => "CC BY-SA",
"https://creativecommons.org/licenses/by-sa/3.0/deed.de" => "CC BY-SA",
"http://creativecommons.org/licenses/by-sa/4.0/" => "CC BY-SA",
"http://creativecommons.org/licenses/by-sa/4.0/de" => "CC BY-SA",
"http://creativecommons.org/licenses/by-sa/4.0/de/" => "CC BY-SA",
"http://creativecommons.org/licenses/by-sa/4.0/deed.de" => "CC BY-SA",
"https://creativecommons.org/licenses/by-sa/4.0/" => "CC BY-SA",
"https://creativecommons.org/licenses/by-sa/4.0/de" => "CC BY-SA",
"https://creativecommons.org/licenses/by-sa/4.0/de/" => "CC BY-SA",
"https://creativecommons.org/licenses/by-sa/4.0/deed.de" => "CC BY-SA",
"Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International (CC BY-SA 4.0)" => "CC BY-SA",
"Namensnennung 4.0 International (CC BY 4.0)" => "CC BY-SA",
"CC BY_NC" => "CC BY-NC",
"CC_BY_NC" => "CC BY-NC",
"CC-BY-NC" => "CC BY-NC",
"CC.BY-NC" => "CC BY-NC",
"http://creativecommons.org/licenses/by-nc/4.0/" => "CC BY-NC",
"https://creativecommons.org/licenses/by-nc/4.0/" => "CC BY-NC",
"CC BY_NC_SA" => "CC BY-NC-SA",
"CC_BY_NC_SA" => "CC BY-NC-SA",
"CC BY NC SA" => "CC BY-NC-SA",
"CC-BY-NC-SA" => "CC BY-NC-SA",
"CC.BY-NC-SA" => "CC BY-NC-SA",
"CC BY-NC-SA 3.0" => "CC BY-NC-SA",
"CC BY-NC-SA 3.0 AT" => "CC BY-NC-SA",
"CC BY-NC-SA 4.0" => "CC BY-NC-SA",
"http://creativecommons.org/licenses/by-nc-sa/3.0/" => "CC BY-NC-SA",
"http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de" => "CC BY-NC-SA",
"http://creativecommons.org/licenses/by-nc-sa/4.0/" => "CC BY-NC-SA",
"https://creativecommons.org/licenses/by-nc-sa/4.0/" => "CC BY-NC-SA",
"Namensnennung - Nicht kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International (CC BY-NC-SA 4.0)" => "CC BY-NC-SA",
@ -53,21 +108,48 @@ final class MDConcLicenses implements MDImporterConcordanceListInterface {
"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",
"https://www.deutsche-digitale-bibliothek.de/content/lizenzen/rv-fz" => "RR-F",
"https://www.deutsche-digitale-bibliothek.de/content/lizenzen/rv-fz/" => "RR-F",
"https//www.deutsche-digitale-bibliothek.de/content/lizenzen/rv-fz" => "RR-F",
"http://www.deutsche-digitale-bibliothek.de/lizenzen/rv-fz/" => "RR-F",
"https://www.deutsche-digitale-bibliothek.de/content/lizenzen/rv-ez" => "RR-F",
"https://www.deutsche-digitale-bibliothek.de/content/lizenzen/rv-ez/" => "RR-F",
"https//www.deutsche-digitale-bibliothek.de/content/lizenzen/rv-ez" => "RR-F",
"http://www.deutsche-digitale-bibliothek.de/lizenzen/rv-ez/" => "RR-F",
"http://www.europeana.eu/rights/rr-f/" => "RR-F",
"https://www.europeana.eu/rights/rr-f/" => "RR-F",
"Rechte vorbehalten - Freier Zugang" => "RR-F",
"Rechte vorbehalten Freier Zugang" => "RR-F",
"http://rightsstatements.org/vocab/InC/1.0/" => "RR-F",
"http://rightsstatements.org/page/InC/1.0/" => "RR-F",
"https://rightsstatements.org/page/InC/1.0/" => "RR-F",
"Alle Rechte vorbehalten" => "RR-F",
"Alle Rechte vorbehalten." => "RR-F",
"Alle Rechte vorbehalten - Urhebererechtlich geschütztes Werk" => "RR-F",
"IN COPYRIGHT" => "RR-P",
"Rechtsstatus unbekannt" => "RR-P",
"none" => "RR-F",
"http://www.europeana.eu/rights/rr-r/" => "RR-R",
"https://www.europeana.eu/rights/rr-r/" => "RR-R",
'PDM' => 'Public Domain Mark',
'Public Domain Mark 1.0' => 'Public Domain Mark',
'PDM 1.0' => 'Public Domain Mark',
'https://creativecommons.org/public-domain/pdm/' => 'Public Domain Mark',
'https://creativecommons.org/publicdomain/mark/1.0' => 'Public Domain Mark',
'https://creativecommons.org/publicdomain/mark/1.0/' => 'Public Domain Mark',
'https://creativecommons.org/publicdomain/mark/1.0/deed.de' => 'Public Domain Mark',
'https://creativecommons.org/publicdomain/mark/1.0/deed.de/' => 'Public Domain Mark',
'Public Domain Mark 1.0 - Weltweit frei von bekannten urheberrechtlichen Einschränkungen' => 'Public Domain Mark',
];
/**

View File

@ -25,41 +25,54 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
// Left
"Links" => "left",
"links" => "left",
"linke Ecke im Aquarell" => "left",
"linkes, blaues Schleifenband" => "left",
"linkes, grünes Schleifenband" => "left",
"linkes Band" => "left",
"mittig links" => "left",
"Waagebalken links" => "left",
"Vorderseite links (Brusthöhe)" => "left",
"an Skala links und am Gehäuse Fronseite" => "left",
// Right
"mittig rechts" => "right",
"Rechts" => "right",
"rechts" => "right",
"rechts neben Bildnis" => "right",
"Rechter Bildrand" => "right",
"Balken rechts" => "right",
// Bottom
"unten" => "bottom",
"unter der Zeichnung" => "bottom",
"unter der Bild" => "bottom",
"unterer Bildrand" => "bottom",
"Unterer Bildrand" => "bottom",
"unterer Bildrand, mittig" => "bottom",
"Unterkante Bild" => "bottom",
"Boden, unten" => "bottom",
"unterer Blattrand" => "bottom",
"Boden" => "bottom",
"Boden und Standring" => "bottom",
"Unterseite" => "bottom",
"untere Passpartoutkante und untere linke Ecke auf Foto" => "bottom",
"Unterboden" => "bottom",
"vs unten" => "bottom",
"untere Passpartoutkante" => "bottom",
"unten mittig" => "bottom",
"Unten mittig" => "bottom",
"Unten mittig auf Platte" => "bottom",
// Top
"Oberseite" => "top",
"oben" => "top",
"oben mittig" => "top",
"Oben mittig" => "top",
"oberer Rand" => "top",
"oberer Balken" => "top",
"Flasche und Verschluß" => "top",
"obere Abdeckung" => "top",
"Mittig oben" => "top",
"mittig oben" => "top",
// Bottom left
"links unter der Zeichnung" => "bottom_left",
@ -68,17 +81,32 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"linker, unterer Bildrand" => "bottom_left",
"linker, unterer Bildrand (über dem Knie)" => "bottom_left",
"linke, untere Passpartoutkante" => "bottom_left",
"linke, untere Ecke" => "bottom_left",
"Links unten" => "bottom_left",
"Unten links" => "bottom_left",
"unten links" => "bottom_left",
// Bottom right
"im Bild unten rechts" => "bottom_right",
"rechts unten Signatur" => "bottom_right",
"unterer Bildrand rechts" => "bottom_right",
"Bildrand rechts unten" => "bottom_right",
"Rechts unten" => "bottom_right",
"Unten rechts" => "bottom_right",
"unten rechts" => "bottom_right",
// Top Left
"linker, oberer Bildrand" => "top_left",
"oben links auf Malschicht" => "top_left",
"Links oben" => "top_left",
"Oben links" => "top_left",
"oben links" => "top_left",
// Top Right
"Oben rechts" => "top_right",
"oben rechts" => "top_right",
"Rechts oben" => "top_right",
"Rechte obere Ecke" => "top_right",
"vorn, oben, rechts am Gehäuse" => "top_right",
// Edge
@ -97,22 +125,126 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"oberer Rand, aussen" => "edge",
"oberer und unterer Rand" => "edge",
"Passepartout" => "edge",
"Keilrahmen untere Leiste" => "edge",
"Keilrahmen unterer Schenkel" => "edge",
"Keilrahmen, unterer Schenkel" => "edge",
"Keilrahmen oberer Schenkel" => "edge",
"Keilrahmen, oberer Schenkel" => "edge",
// Full Front
"Front" => "front_front",
"Frontal" => "front_front",
"Frontseite" => "front_front",
"Frontalseite" => "front_front",
"Stirnseite" => "front_front",
"Volle Vorderseite" => "front_front",
"Volle Frontseite" => "front_front",
"Vorderseite" => "front_front",
"Forderseite" => "front_front",
"Vorderseite / Stirn" => "front_front",
"Vorn" => "front_front",
"vorn" => "front_front",
"Vorne" => "front_front",
"vorne" => "front_front",
// Rear
"Leinwandrückseite" => "rear_side",
"Rückseite" => "rear_side",
"RS" => "rear_side",
"rs" => "rear_side",
"Recto" => "rear_side",
"Revers" => "rear_side",
"Reverse" => "rear_side",
"rs Umschrift" => "rear_side",
"Rückseite der Leinwand" => "rear_side",
"Rückseitig auf ovalem Keilrahmen oben links und rechts" => "rear_side",
"Rückseite Kalender" => "rear_side",
"Rückseite Keilrahmen" => "rear_side",
"Rükseite" => "rear_side",
"Rückseite, unter Doublierung" => "rear_side",
// rear_bottom
"Rückseite unten" => "rear_bottom",
"Rückseite, unten" => "rear_bottom",
"Rückseite unten mittig" => "rear_bottom",
"Rückseite, unten mittig" => "rear_bottom",
"Rückseite mittig unten" => "rear_bottom",
"Rückseite, mittig unten" => "rear_bottom",
// rear_bottom_left
"Rückseite unten links" => "rear_bottom_left",
"Rückseite, unten links" => "rear_bottom_left",
"Rückseite links unten" => "rear_bottom_left",
"Rückseite, links unten" => "rear_bottom_left",
"Rückseite linke untere Ecke" => "rear_bottom_left",
// rear_bottom_right
"Rückseite unten rechts" => "rear_bottom_right",
"Rückseite, unten rechts" => "rear_bottom_right",
"Rückseite rechts unten" => "rear_bottom_right",
"Rückseite, rechts unten" => "rear_bottom_right",
"Rückseite rechte untere Ecke" => "rear_bottom_right",
// rear_center
"Rückseite mittig" => "rear_center",
"Rückseite, mittig" => "rear_center",
"Rükseite, mittig" => "rear_center",
// rear_left
"Rückseite links" => "rear_left",
"Rückseite, links" => "rear_left",
"Rückseite mittig links" => "rear_left",
"Rückseite, mittig links" => "rear_left",
"Rückseite links mittig" => "rear_left",
"Rückseite, links mittig" => "rear_left",
// rear_right
"Rückseite rechts" => "rear_right",
"Rückseite, rechts" => "rear_right",
"Rückseite mittig rechts" => "rear_right",
"Rückseite, mittig rechts" => "rear_right",
"Rückseite rechts mittig" => "rear_right",
"Rückseite, rechts mittig" => "rear_right",
"Rückseitig rechts" => "rear_right",
"Rückseitig, rechts" => "rear_right",
"Rückseitig mittig rechts" => "rear_right",
"Rückseitig, mittig rechts" => "rear_right",
"Rückseitig rechts mittig" => "rear_right",
"Rückseitig, rechts mittig" => "rear_right",
// rear_top
"Rückseite oben" => "rear_top",
"Rückseite, oben" => "rear_top",
"Rückseite oben mittig" => "rear_top",
"Rückseite, oben mittig" => "rear_top",
"Rükseite, oben mittig" => "rear_top",
"Rückseite mittig oben" => "rear_top",
"Rückseite, mittig oben" => "rear_top",
// rear_top_left
"Rückseite links oben" => "rear_top_left",
"Rückseite, links oben" => "rear_top_left",
"Rückseite oben links" => "rear_top_left",
"Rückseite, oben links" => "rear_top_left",
"Rückseite linke obere Ecke" => "rear_top_left",
// rear_top_right
"Rückseite oben rechts" => "rear_top_right",
"Rückseite, oben rechts" => "rear_top_right",
"Rückseite rechts oben" => "rear_top_right",
"Rückseite, rechts oben" => "rear_top_right",
"Rückseite rechte obere Ecke" => "rear_top_right",
// topside
"Oberseite" => "topside",
"oberhalb" => "topside",
// underside
"Unterseite" => "underside",
"unterhalb" => "underside",
// Misc.
"x" => "other",
"Vorderseite" => "other",
"Forderseite" => "other",
"VS" => "other",
"VS:" => "other",
"vs" => "other",
@ -123,9 +255,8 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"VS Fahne" => "other",
"Balken" => "other",
"Zugbalken" => "other",
"Front" => "other",
"Vorderseite / Stirn" => "other",
"vorn" => "other",
"innen" => "other",
"Innen" => "other",
"inneres Lederfutter" => "other",
"Innenseite" => "other",
"unter Gewichtsauflagenschale" => "other",
@ -187,7 +318,6 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"Oberseite Holzsohle, mittig im oberer Drittel" => "other",
"Vorderseite Ziffernblatt" => "other",
"Boden, außen" => "other",
"innen" => "other",
"außen" => "other",
"aussen" => "other",
"am Gehäuse" => "other",
@ -278,10 +408,10 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"Oberseite Kiste" => "other",
"beidseitig am Waagengestell, Waagebalken, auf Abdeckung" => "other",
"vs Umschrift" => "other",
"Frontseite" => "other",
"Vorderseite Akkordeon" => "other",
"mittig am Fußgestell" => "other",
"Balkenskala links" => "other",
"Signatur (gedruckt)" => "other",
"auf Passpartout" => "other",
"auf Papp-Schmuckrahmen" => "other",
"Fotomitte" => "other",
@ -289,9 +419,13 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"Flasche" => "other",
"auf dem Kontaktbogen unter dem jeweiligen Bild" => "other",
"Waage" => "other",
"Weiteres" => "other",
"auf Kunststoffhülle (für Kleinbildfilmstreifen)" => "other",
"Textplatte" => "other",
"oberer Holzkasten" => "other",
"Verso" => "other",
"Avers" => "other",
"Text" => "other",
];
/**

View File

@ -23,7 +23,6 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"graphisches Dekor" => "handwritten",
"Abbild" => "handwritten",
"Karikatur" => "handwritten",
"Signatur" => "handwritten",
"Relief" => "handwritten",
"hersteller" => "handwritten",
"mit braunem Leinen überzogen" => "handwritten",
@ -32,6 +31,20 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"schwarz bedruckten Leinen" => "handwritten",
"rot gemasert" => "handwritten",
"ornamentiert" => "handwritten",
"handschriftlich; aufgeklebt" => "handwritten",
"Beschriftung auf Plakette (handschriftlich)" => "handwritten",
"Beschriftung" => "handwritten",
"Beschriftung (handschriftlich)" => "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",
# Handwriting
@ -39,6 +52,8 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Aufschrift" => "handwritten",
"Aufschrift (Bleistift)" => "handwritten",
"Aufschrift mit Tinte" => "handwritten",
"Beischrift" => "handwritten",
"Benennung" => "handwritten",
"beschrieben" => "handwritten",
"beschriftet" => "handwritten",
"Beschriftet" => "handwritten",
@ -50,7 +65,6 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Bleistift" => "handwritten",
"Bleisitft" => "handwritten",
"Bleistiftbeschriftung" => "handwritten",
"Bleistiftzeichnung" => "handwritten",
"Bleistift,Kugelschreiber" => "handwritten",
"Bleistift und Buntstift bzw. kann auch Tinte sein" => "handwritten",
"Bleistiftbeschriftung auf der Rückseite" => "handwritten",
@ -59,17 +73,21 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Einkreisung mit wasserfestem Marker" => "handwritten",
"ev. Tinte" => "handwritten",
"Federtusche" => "handwritten",
"Faserstift ?" => "handwritten",
"Filzstiftnotiz" => "handwritten",
"Füllerbeschriftung auf der Rückseite" => "handwritten",
"Goldschrift" => "handwritten",
"Handschrift" => "handwritten",
"handschrifltich" => "handwritten",
"Handschriftlich" => "handwritten",
"handschriflich" => "handwritten",
"handschriftlich" => "handwritten",
"handschriftlich, Kleber" => "handwritten",
"handschriftliche Notiz" => "handwritten",
"handschriftlich Notiz" => "handwritten",
"handschriftlich + geklebt" => "handwritten",
"handschriftlich, mit blauer Tinte" => "handwritten",
"Handschriftlich mit Bleistift" => "handwritten",
"handschriftliche Notiz" => "handwritten",
"Schrift" => "handwritten",
"roter wasserfester Stift" => "handwritten",
"keine Inschrift" => "handwritten",
@ -126,12 +144,15 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"verschlungenes Monogramm" => "handwritten",
# Scratchings
"Beschriftung (geritzt)" => "scratch",
"Signatur (geritzt)" => "scratch",
"kratzen, Filzstift" => "scratch",
"gekratzt" => "scratch",
"eingeritztes Kreuzchen" => "scratch",
"eingekratzt" => "scratch",
"geschnitzt" => "scratch",
"Glas geschliffen vom Boden bis zur Hälfte" => "scratch",
"Scratching" => "scratch",
# Overpaint
"painted" => "painted",
@ -139,6 +160,12 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"bemalt" => "painted",
"gemalt" => "painted",
"signiert, gemalt" => "painted",
"Wappen (gemalt)" => "painted",
# Drawn
"Wappen (gezeichnet)" => "drawn",
"Bleistiftzeichnung" => "drawn",
# Glued
"aufgeklebter Druck" => "glued",
@ -154,6 +181,7 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Etiketten" => "glued",
"etikettiert" => "glued",
"Adressaufkleber des Voreigentümers" => "glued",
"Klebezettel (maschienengeschrieben)" => "glued",
"Blau gerändertes helles Etikett" => "glued",
"Papieretikett, Klebeetikett" => "glued",
@ -161,6 +189,13 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Typenschild Alum." => "glued",
"Messing-Typenschild" => "glued",
"Kartoniert, mit schwarzem, genarbtem Papier überzogen" => "glued",
"Klebezettel" => "glued",
"Klebezettel (gedruckt)" => "glued",
"Klebezettel (gestempelt)" => "glued",
"Klebezettel (handschriftlich)" => "glued",
"Klebezettel (maschinengeschrieben)" => "glued",
"Klebezettelreste" => "glued",
"Klebezettel (Rest)" => "glued",
# Cast (e.g. iron cast)
"Guss" => "cast",
@ -175,6 +210,7 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
# Printed
"Druck" => "overprint",
"gedruckt" => "overprint",
"gedruckt; geklebt" => "overprint",
"bedruckt" => "overprint",
"bedruckt und Tinte" => "overprint",
"aufgedruckt" => "overprint",
@ -191,6 +227,7 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"gerduckt" => "overprint",
"goldener Druck mit Ornamenten und Zierrahmen" => "overprint",
"Golddruck" => "overprint",
"Bechriftung (gedruckt)" => "overprint",
"Seriennummer" => "overprint",
"Textaufdruck" => "overprint",
"gedruckt und gestempelt" => "overprint",
@ -211,6 +248,14 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"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",
"Wappen (gedruckt)" => "overprint",
"Widmung (gedruckt)" => "overprint",
# Sewn
"aufgestickt" => "sewn",
@ -231,24 +276,37 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Brennstempel" => "burnt_in",
# Stamped
"stamped" => "stamp",
"gestempelt" => "stamp",
"Stempel (rund)" => "stamp",
"Stempel" => "stamp",
"Beschriftung (geprägt)" => "stamp",
"blauer Stempel" => "stamp",
"Eichstempel" => "stamp",
"Eingangstempel (rot)" => "stamp",
"Farbstempel" => "stamp",
"Stempel,Kugelschreiber" => "stamp",
"mit Metallstempel eingedrückt" => "stamp",
"gestempelt" => "stamp",
"Marke" => "stamp",
"Marke und Werbestempel" => "stamp",
"mit Metallstempel eingedrückt" => "stamp",
"Prägestempel" => "stamp",
"Prägestempel des Fotografen" => "stamp",
"roter Stempel" => "stamp",
"schwarz gestempelt" => "stamp",
"Signaturenstempel" => "stamp",
"stamped" => "stamp",
"Stempel" => "stamp",
"Stempel (rund)" => "stamp",
"Stempel,Kugelschreiber" => "stamp",
"Stempel eingeprägt" => "stamp",
"Stempelaufdruck" => "stamp",
"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",
"graviert" => "engraving",
@ -287,7 +345,6 @@ 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",
"schwarze Prägung" => "embossing",
@ -310,6 +367,7 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Inschrift/geprägt" => "embossing",
"Inschrift/ geprägt" => "embossing",
"Inschrift / geprägt" => "embossing",
"Blindstempel" => "stamp",
# Embroidery
"gestickt" => "embroidered",
@ -319,12 +377,14 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Jugendstilornamente" => "embroidered",
# Punched
"gestanzt" => "punched",
"geschlagen" => "punched",
"gehämmert" => "punched",
"Beschriftung (ziseliert)" => "punched",
"eingestanzt" => "punched",
"eingestanzt; ziseliert" => "punched",
"gehämmert" => "punched",
"geschlagen" => "punched",
"gestanzt" => "punched",
"gestanzt und bemalt" => "punched",
"ziseliert" => "punched",
# Scarified
"geritzt" => "scarified",
@ -345,9 +405,24 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"eingenagelt" => "nailed",
# Signature
"Signatur" => "signature",
"signiert" => "signature",
"farbig bemalt und glasiert" => "signature",
"gemalt und glasiert" => "signature",
"Signatur (handschriftlich)" => "signature",
"Signatur (gedruckt)" => "signature",
"Signatur (gemalt)" => "signature",
"Signatur (gezeichnet)" => "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 Datum (handschriftlich)" => "signature",
"Signatur mit Datum (gedruckt)" => "signature",
"Signatur mit Datum (gemalt)" => "signature",
"Signatur mit Datum (gestempelt)" => "signature",
"Signatur mit Datum (gezeichnet)" => "signature",
# Watermark
"Wasserzeichen" => "watermark",

View File

@ -0,0 +1,510 @@
<?PHP
/**
* Constains lists for grouping measurement types.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Constains lists for grouping measurement types.
*/
final class MDConcMeasurementTypes implements MDImporterConcordanceListInterface {
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return MDMeasurementType|false
*/
public static function getConcordanceTarget(string $input):MDMeasurementType|false {
return match($input) {
// Just list entries
"Allgemein",
"Passepartout",
"Passepartout Standardformat",
"Objektmaß",
"Objektmass",
"Außenmaß",
"Außenmaß (Kiste)",
"Bildmaß",
"Bildmass",
"Bildmaß (HxB)",
"Auflagekarton (Höhe x Breite)",
"Passepartout Standardformat (Höhe x Breite)",
"Blattmaß",
"Blattmass",
"m",
"cm",
"mm",
"dm",
"Spieldauer (h___m___s)",
"Geschwindigkeit (Schallplatte)",
"Geschwindigkeit (Band)",
"Transportmaß (Breite x Höhe x Tiefe)",
"Transportmaß (Breite x Höhe x Tiefe)Transportmaß (Breite x Höhe x Tiefe)",
"Öffnung (Durchmesser)",
"Kartonformat (Höhe x Breite)",
"Negativformat (Breite x Lange)",
"Passepartout (Höhe x Breite)",
"Montage (Breite x Länge)",
"Verpackungsmaß (Breite x Höhe x Tiefe)Verpackungsmaß (Breite x Höhe x Tiefe)",
"Maße Transport (Höhe x Tiefe x Breite)",
"Volumen",
"Hohlmaß",
"Buchformat",
"Hohlmass",
"Kaliber",
"Zeit",
"Maßstab",
"Original",
"size",
"base",
"target",
"Modell",
"",
"Plattengröße (Höhe x Breite)",
"Sockel (Höhe x Tiefe x Breite)",
"Sockel (Höhe x Tiefe x Breite)",
"Außenmaß (Höhe x Tiefe x Breite)",
"Fläche",
"Tafelmaß",
"Tafelmass",
"Radius",
"Bemalte Fläche",
"Bemalte Bildfläche",
"Sockel",
"Höhe x Breite",
"Höhe x Durchmesser",
"Rahmenmaß (Höhe x
Breite)",
"Höhe x Breite x Tiefe",
"Höhe x Breite x Tiefe",
"Rahmenmaß",
"Rahmenmaß (Höhe x Breite)",
"Rahmenmaß (Höhe x Breite)",
"Rahmenmass",
"Rahmenmass (Höhe x Breite)",
"Rahmenaußenmaß (Höhe x Breite)",
"Rahmenaußenmaß (Länge x Durchmesser)",
"Höhe x Breite x Stärke",
"Rahmenaußenmaß",
"Rahmenaußenmass",
"Kartonformat",
"Kartonformat (Foto)",
"Auflagekarton",
"Bildformat (Foto)",
"Tafelmaß (Höhe x Breite)",
"Bemalte Bildfläche (Höhe x Breite)",
"Plattengröße (Foto)",
"Andere Maße",
"Format",
"Stichhöhe",
"Maße Transport",
"Länge x Breite x Höhe",
"Länge x Breite x Tiefe",
"Länge x Breite",
"Maße Transport (Höhe x Tiefe x Breite)",
"Blattmaß (Höhe x Breite)",
"Objektmaß (Höhe x Tiefe x Breite)",
"Objektmaß (Höhe x Tiefe x Breite)",
"Teil 1",
"Teil 2",
"Teil 3",
"Teil 4",
"Teil 5",
"Teil 6",
"Teil 7",
"Teil 8",
"Kistenmaß (Länge x Breite x Höhe)",
"Umfang",
"Umfang",
"Kaliber",
"Ölfarbe",
"2 kg-Gewicht",
"2. Hälfte 18. Jh.",
"14.1x9.2",
"14x9.1",
"cm",
"13.9x8.6",
"Grundfläche",
"Länge x Breite",
"Bildmaß (Höhe x Breite)",
"Bildformat (Höhe x Breite)",
"Glasmaß (Höhe x Breite)",
"Länge x Breite x Tiefe",
"Höhe x Durchmesser",
"Länge x Durchmesser",
"Breite x Höhe",
"Breite x Höhe x Tiefe",
"Breite x Höhe",
"Breite x Tiefe",
"Höhe x Breite",
"Höhe x Breite (aufgeschlagen)",
"Höhe x Breite x Tiefe",
"Durchmesser x Tiefe",
"Durchmesser x Tiefe",
"Gesamtmaß (Höhe x Breite x Tiefe)",
"Form",
"Andere",
"Prefix",
"Kartierung",
"Masstab",
"Sitzhöhe",
"Auflagekarton Standardformat",
"Bruttomass",
"Kistenmass",
"Kistenmass (Höhe)",
"Lichtmass",
"Kistenmass (Tiefe)",
"Kistenmass (Breite)",
"Suffix",
"HxBxT",
"Objektmaß (HxB)",
"CC",
"Eisen",
"mm",
"Größe",
"CdV",
"Stichhöhe (Höhe x Breite)" => false,
"Höhe",
"(Höhe)",
" (Höhe)",
"Höhe (gesamt)",
"Höhe (Objekt)",
"Höhe (Etui)",
"Höhe (netto)",
"Höhe (ausgeklappt)",
"Höhe größtes Stück",
"height",
"height (overall)",
"Lichtmass (Höhe)",
"Bruttomass (Höhe)",
"Kartierung (Höhe)",
"Masstab (Höhe)",
"Sitzhöhe (Höhe)",
"Höhe (Platte)",
"Außenmaß (Höhe)",
"Objektmaß (Höhe)",
"Objektmass (Höhe)",
'Höhe (Holzstock)',
'Höhe (Untersatzbogen)',
'Höhe (Buchblock)',
'Höhe (Buchblock ohne Einband)',
'Höhe (Buchblock mit Einband)',
'Höhe (Stein)',
'Höhe (Schuber)',
'Höhe (Karton)',
'Höhe (Einleger)',
'Höhe (Einleger 1)',
'Höhe (Einleger 2)',
'Höhe (Einleger 3)',
'Höhe (EInleger 3)',
'Höhe (Einleger 4)',
'Höhe (Einleger 5)',
'Höhe (Einleger 6)',
'Höhe (Einleger 7)',
'Höhe (Einleger 4-6)',
'Höhe (Einleger 8)',
'Höhe (Einleger 9)',
'Höhe (Einleger 10)',
'Höhe (Einleger 11)',
'Höhe (Einleger 12)',
'Höhe (Einleger 13)',
'Höhe (Einleger 14)',
'Höhe (Einleger 15)',
'Höhe (Einleger 16)',
'Höhe (Einleger 17)',
'Höhe (Einleger 18)',
'Höhe (Einleger 19)',
'Höhe (Einleger 20)',
'Höhe (Einleger 21)',
'Höhe (Einleger 22)',
'Höhe (Einleger 23)',
'Höhe (Einleger 24)',
"Reliefhöhe" => MDMeasurementType::height,
"Länge",
"Länge OT",
"Länge H",
"Länge (ausgeklappt)",
"length",
"(Länge)",
" (Länge)",
"Länge/Tiefe",
"Länge / Tiefe",
"Lichtmass (Länge)",
"Lichtmass (Tiefe)",
"Tiefe",
"Tiefe (mit Hinterrad in Fahrtrichtung)",
"Tiefe (zusammengeklappt)",
"Tiefe (Etui)",
"Tiefe (mit eingeklapptem Hinterrad)",
"Tiefe/Länge",
"Tiefe min",
"Tiefe max",
"Tiefe/Länge (Objekt)",
"Außenmaß (Tiefe)",
"Teife",
"length",
"Bruttomass (Länge)",
"Bruttomass (Tiefe)",
"Kartierung (Länge)",
"Kartierung (Tiefe)",
"Masstab (Länge)",
"Masstab (Tiefe)",
"Sitzhöhe (Länge)",
"Sitzhöhe (Tiefe)",
"Länge (Platte)",
"Tiefe (Platte)",
"Objektmaß (Länge)",
"Objektmaß (Tiefe)",
"Objektmass (Länge)",
"Objektmass (Tiefe)",
'Länge (Holzstock)',
'Tiefe (Holzstock)',
'Länge (Untersatzbogen)',
'Tiefe (Untersatzbogen)',
'Länge (Buchblock)',
'Tiefe (Buchblock)',
'Länge (Buchblock ohne Einband)',
'Tiefe (Buchblock ohne Einband)',
'Länge (Buchblock mit Einband)',
'Tiefe (Buchblock mit Einband)',
'Länge (Stein)',
'Tiefe (Stein)',
'Länge (Schuber)',
'Tiefe (Schuber)',
'Länge (Karton)',
'Tiefe (Karton)',
'Länge (Einleger)',
'Tiefe (Einleger)',
'Länge (Einleger 1)',
'Tiefe (Einleger 1)',
'Länge (Einleger 2)',
'Tiefe (Einleger 2)',
'Länge (Einleger 3)',
'Tiefe (Einleger 3)',
"depth",
"Dicke" => MDMeasurementType::length,
"Breite",
"Breite OT",
"Breite H",
"Breite (ausgeklappt)",
"Breite (Etui)",
"Breite (netto)",
"Breite (aufgeschlagen)",
"Breite größtes Stück",
"Breite (gesamt)",
"Breite (Objekt)",
"Breite (Platte)",
"(Breite)",
"Lichtmass (Breite)",
" (Breite)",
"width",
"width (overall)",
"Außenmaß (Breite)",
"Bruttomass (Breite)",
"Objektmaß (Breite)",
"Objektmass (Breite)",
"Kartierung (Breite)",
"Masstab (Breite)",
"Sitzhöhe (Breite)",
'Breite (Holzstock)',
'Breite (Untersatzbogen)',
'Breite (Buchblock)',
'Breite (Buchblock ohne Einband)',
'Breite (Buchblock mit Einband)',
'Breite (Buchblock mit Einabnd)',
'Breite (Stein)',
'Breite (Schuber)',
'Breite (Karton)',
'Breite (Einleger)',
'Breite (Einleger 1)',
'Breite (Einleger 2)',
'Breite (Einleger 3)',
'Breite (Einleger 4)',
'Breite (EInleger 4)',
'Breite (Einleger 5)',
'Breite (Einleger 6)',
'Breite (EInleger 6)',
'Breite (Einleger 7)',
'Breite (EInleger 7)',
'Breite (Einleger 8)',
'Breite (Einleger 9)',
'Breite (Einleger 10)',
'Breite (Einleger 11)',
'Breite (Einleger 12)',
'Breite (Einleger 13)',
'Breite (Einleger 14)',
'Breite (Einleger 15)',
'Breite (Einleger 16)',
'Breite (EInleger 16)',
'Breite (Einleger 17)',
'Breite (Einleger 18)',
'Breite (Einleger 19)',
'Breite (Einleger 20)',
'Breite (Einleger 21)',
"Stärke",
"Schenkelbreite (Breite)" => MDMeasurementType::width,
"Durchmesser",
"Durchm.",
"Durchmesser (mit Dicke)",
"Durchmesser (Boden)",
"Mündung (Durchmesser)",
"Rahmenaußenmaß Durchmesser",
"diameter",
"Außenmaß (Durchmesser)",
"Durchmesser in Richtung Bohrung",
"Durchmesser quer zur Bohrung",
"Durchmesser Fuß",
"Durchmesser Oben",
"Durchmesser oben",
"Durchmesser unten",
"Durchmesser (Höhe)",
"Durchmesser (Breite)",
"Durchmesser (Tiefe)",
"Durchmesser (Länge)",
"Objektmaß (Durchmesser)",
"Objektmass (Durchmesser)",
"d",
"Ø" => MDMeasurementType::diameter,
"width of wall",
"Laufwandung",
"Stärke",
"Wandstärke (Durchmesser)" => MDMeasurementType::wall,
"Length of socle",
"Tiefe/Länge (Sockel)",
"Länge (Sockel)" => MDMeasurementType::length_socle,
"Height of socle",
"Höhe (Sockel)" => MDMeasurementType::height_socle,
"Width of socle",
"Breite (Sockel)" => MDMeasurementType::height_socle,
"Höhe (Blatt)",
"Blattmaß (Höhe)",
"Blattmass (Höhe)" => MDMeasurementType::height_sheet_size,
"Breite (Blatt)",
"Blattmaß (Breite)",
"Blattmass (Breite)" => MDMeasurementType::width_sheet_size,
"Blattmaß (Länge)",
"Blattmaß (Tiefe)",
"Blattmass (Länge)",
"Tiefe/Länge (Blatt)",
"Blattmass (Tiefe)" => MDMeasurementType::length_sheet_size,
"Höhe (Bild)",
"Höhe (Darstellung)",
"Bildmaß (Höhe)",
"Bildmass (Höhe)" => MDMeasurementType::height_image_size,
"Breite (Bild)",
"Breite (Darstellung)",
"Bildmaß (Breite)",
"Bildmass (Breite)" => MDMeasurementType::width_image_size,
"Bildmaß (Länge)",
"Bildmaß (Tiefe)",
"Tiefe (Darstellung)",
"LängLängee (Darstellung)",
"Bildmass (Länge)",
"Bildmass (Tiefe)" => MDMeasurementType::length_image_size,
"Höhe (Rahmen)",
"Rahmenmaß (Höhe)",
"Rahmenmass (Höhe)" => MDMeasurementType::height_frame,
"Breite (Rahmen)",
"Rahmenmaß (Breite)",
"Rahmenmass (Breite)" => MDMeasurementType::width_frame,
"Tiefe (Rahmen)",
"Rahmenmaß (Länge)",
"Rahmenmaß (Tiefe)",
"Rahmenmass (Länge)",
"Rahmenmass (Tiefe)" => MDMeasurementType::length_frame,
"Höhe min.",
'Höhe min (Blatt)',
'Höhe min (Einleger)',
'Höhe min (Einleger 1)',
'Höhe min (Einleger 2)',
'Höhe min (Einleger 3)',
'Höhe min (Einleger 4)',
'Höhe min (Einleger 5)',
'Höhe min (Schuber)' => MDMeasurementType::height_min,
"Höhe max.",
'Höhe max (Blatt)',
'Höhe max (Einleger)',
'Höhe max (Einleger 1)',
'Höhe max (Einleger 2)',
'Höhe max (Einleger 3)',
'Höhe max (Einleger 4)',
'Höhe max (Einleger 5)',
'Höhe max (Schuber)' => MDMeasurementType::height_max,
"Länge min.",
"Tiefe min.",
'Länge min (Blatt)',
'Tiefe min (Blatt)' => MDMeasurementType::length_min,
"Länge max.",
"Tiefe max.",
"Länge max (Blatt)",
"Tiefe max (Blatt)" => MDMeasurementType::length_max,
"Breite min.",
'Breite min (Blatt)',
'Breite min (Einleger)',
'Breite min (Schuber)' => MDMeasurementType::width_min,
"Breite max.",
'Breite max (Blatt)',
'Breite max (Einleger)',
'Breite max (Einleger 1)',
'Breite max (Einleger 2)',
'Breite max (Einleger 3)',
'Breite max (Einleger 4)',
'Breite max (Einleger 5)',
'Breite max (Einleger 4-6)',
'Breite max (Schuber)' => MDMeasurementType::width_max,
"Diameter min." => MDMeasurementType::diameter_min,
"Diameter max." => MDMeasurementType::diameter_max,
"Durchmesser (Rahmen)" => MDMeasurementType::diameter_frame,
"weight",
"Gewicht (Höhe)",
"Gewicht (Breite)",
"Gewicht (Tiefe)",
"Gewicht (Länge)",
"Gewicht" => MDMeasurementType::weight,
"number of pages",
"Seitenzahl",
"Seitenzahl (Höhe)",
"Seitenzahl (Breite)",
"Seitenzahl (Tiefe)",
"Paginierung" => MDMeasurementType::number_of_parts,
"Die Axis",
"die-axis",
"orientation",
"Stempelstellung" => MDMeasurementType::die_axis,
default => throw new MDImporterMissingConcordance("Unmapped specific measurement type: " . $input),
};
}
}

35
src/MDConcObjectForms.php Normal file
View File

@ -0,0 +1,35 @@
<?PHP
/**
* Constains lists for grouping object forms / shapes.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Constains lists for grouping object forms / shapes.
*/
final class MDConcObjectForms implements MDImporterConcordanceListInterface {
private const FORMS_LIST = [
'Würfel' => 'cube',
'Zylinder' => 'cylinder',
];
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return string
*/
public static function getConcordanceTarget(string $input):string {
if (!isset(self::FORMS_LIST[$input])) {
throw new MDImporterMissingConcordance("Unknown form type: " . $input);
}
return self::FORMS_LIST[$input];
}
}

View File

@ -0,0 +1,58 @@
<?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',
'emotion' => 'tag',
'atmosphäre' => 'tag',
"motive" => "display_subject",
"motiv" => "display_subject",
"display" => "display_subject",
"Bildelement" => "display_subject",
"material" => "material",
"technique" => "technique",
"technik" => "technique",
];
/**
* 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[strtolower($input)])) {
return self::RELATION_TYPE_NAMES[strtolower($input)];
}
throw new MDImporterMissingConcordance("Unknown object-tag relationship type: " . $input);
}
}

View File

@ -14,12 +14,30 @@ final class MDConcOwnershipStatus implements MDImporterConcordanceListInterface
private const OWNERSHIP_TYPES_VERBOSE = [
// 0: No known entry type
"Eigentum" => "owned",
"Geschenk" => "owned",
"Dauerleihe" => "permanent_loan",
"Dauerleihgabe" => "permanent_loan",
"Besitz" => "owned",
"Kauf" => "owned",
"Fund" => "owned",
"Eigenleistung" => "owned",
"Eigentum des Museums" => "owned",
"j" => "owned",
"+" => "owned",
"Eigentum Land Berlin" => "owned",
// Permanent loans
"Dauerleihe" => "permanent_loan",
"Dauerleihgabe" => "permanent_loan",
// 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',
];
@ -33,6 +51,9 @@ final class MDConcOwnershipStatus implements MDImporterConcordanceListInterface
public static function getConcordanceTarget(string $input):string {
if (!isset(self::OWNERSHIP_TYPES_VERBOSE[$input])) {
if (isset(self::OWNERSHIP_TYPES_VERBOSE[trim($input)])) {
return self::OWNERSHIP_TYPES_VERBOSE[trim($input)];
}
throw new MDImporterMissingConcordance("Unknown ownership type: " . $input);
}

View File

@ -11,18 +11,6 @@ declare(strict_types = 1);
*/
final class MDConcPlace implements MDImporterConcordanceListInterface {
/**
* Substrings of an place name listed as a key in this array will be replaced
* by the corresponding value.
*/
const NAME_SANITIZATIONS = [
" - " => "-",
"unbekannt" => "",
"Unbekannt" => "",
"unknown" => "",
"Unknown" => "",
];
private const PLACE_ROLES_TO_EVENT_TYPE = [
// 22: Related place
@ -38,6 +26,7 @@ final class MDConcPlace implements MDImporterConcordanceListInterface {
'Herkunft (Allgemein)' => 1,
'Herstellungsort' => 1,
'Herstellungsland' => 1,
'Herstellung' => 1,
'Entstehungsort' => 1,
'Münzstätte' => 1,
@ -68,6 +57,9 @@ final class MDConcPlace implements MDImporterConcordanceListInterface {
// 20: Copied
// 21: Lived
'Firmensitz' => 22,
// 25: Commissioned
// 26: Printing

35
src/MDConcSex.php Normal file
View File

@ -0,0 +1,35 @@
<?PHP
/**
* Constains lists for grouping sexes.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Constains lists for grouping sexes.
*/
final class MDConcSex implements MDImporterConcordanceListInterface {
private const SEXES_LIST = [
'Männlich' => 'male',
'diverse' => 'other',
];
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return string
*/
public static function getConcordanceTarget(string $input):string {
if (!isset(self::SEXES_LIST[$input])) {
throw new MDImporterMissingConcordance("Unknown sex type: " . $input);
}
return self::SEXES_LIST[$input];
}
}

49
src/MDConcSourceTypes.php Normal file
View File

@ -0,0 +1,49 @@
<?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",
// Misc
"document]avm" => "misc",
];
/**
* 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)];
}
throw new MDImporterMissingConcordance("Unknown source type: " . $input);
}
}

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,

View File

@ -19,6 +19,7 @@ final class MDConcTitleTypes implements MDImporterConcordanceListInterface {
// Scientific names
"Science" => "Science",
"Wissenschaft" => "Science",
// Everyday speech
"Everyday speech" => "Everyday speech",

36
src/MDConcWeights.php Normal file
View File

@ -0,0 +1,36 @@
<?PHP
/**
* Constains lists for categorizing misspelled weight units.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Provides lists for categorizing misspelled sizes.
*/
final class MDConcWeights implements MDImporterConcordanceListInterface {
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return MDWeightUnit|false
*/
public static function getConcordanceTarget(string $input):MDWeightUnit|false {
return match($input) {
"cm" => false,
"Gramm",
"g",
"G",
"г" => MDWeightUnit::g,
default => throw new MDInvalidWeightUnit("Invalid weight unit " . $input),
};
}
}

View File

@ -0,0 +1,63 @@
<?PHP
/**
* Constains a blacklist for disallowed names of vocabularies (either nonsense
* ones or ones not supported by md).
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Constains a blacklist for disallowed names of vocabularies (either nonsense
* ones or ones not supported by md).
*/
final class MDBlacklistNodaRepositories implements MDImporterBlacklistInterface {
/**
* List of blacklisted repository names.
*/
private const BLACKLIST = [
'',
'actor.xtree',
'akl',
'akl-nummer',
'AKL',
'AKL-Nummer',
'bmpi', // What is this?
'Bildindex-KUE-Datei',
'digitales kunst- und kulturarchiv düsseldorf',
'Digitales Kunst- und Kulturarchiv Düsseldorf',
'digicult.web',
'digiCULT.web',
'digicult.vocnet.org',
'isil',
'ISIL',
'kue.id',
'kue.id.',
'md:term',
'term.museum-digital.de',
'RIA/SMB',
'swd-nummer',
'SWD-Nummer',
'webpage',
'wiki',
'Wiki',
'xtree'
];
/**
* Checks if the input string is blacklisted.
*
* @param string $input Input string.
*
* @return boolean
*/
public static function isBlacklisted(string $input):bool {
if (in_array($input, self::BLACKLIST, true)) {
return true;
}
return false;
}
}

View File

@ -41,11 +41,6 @@ final class InterfaceImplementationTest extends TestCase {
/**
* Test all concordance lists for their implementation of MDImporterConcordanceListInterface.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
* @group ValidOutput
* @group HTMLOutput
* @group SafeForProduction
*
* @return void
*/
public function testListInterfaceIsImplemented():void {
@ -61,4 +56,19 @@ final class InterfaceImplementationTest extends TestCase {
}
}
/**
* Ensure all tests throw the MDImporterMissingConcordance exception, if
* a new value is encountered.
*
* @return void
*/
public function testMDImporterMissingConcordanceIsThrownForNewValues():void {
foreach ($this->_lists as $list) {
$this->expectException(MDImporterMissingConcordance::class);
(new $list)::getConcordanceTarget("ThisInputShouldNotExist");
}
}
}