Compare commits

...

101 Commits

Author SHA1 Message Date
9797bad66a src/MDConcEntryTypes.php aktualisiert
Den Import-Error auslösenden Begriff "spende" auf "1: Donation" gesetzt.
2026-03-24 09:40:45 +01:00
08d71ac7f4 Extend mapping for alternative titles 2026-03-23 18:12:43 +01:00
019817f54e Extend concordance lists 2026-03-19 17:49:09 +01:00
45e2dc20f2 Map Beschriftung (mittig) 2026-03-16 19:39:28 +01:00
f5b6dbb106 Merge pull request 'ufladerer-patch-1' (#18) from ufladerer-patch-1 into master
Reviewed-on: #18
2026-02-19 14:19:34 +01:00
718e915218 src/MDConcLicenses.php aktualisiert 2026-02-19 11:20:00 +01:00
47c59c0222 src/MDConcLicenses.php aktualisiert
added new rights statements
2026-02-19 11:12:38 +01:00
4a9f51761b Map further concordances 2026-02-17 23:21:34 +01:00
c2912644f9 Extend mapping 2026-02-09 18:11:18 +01:00
5dcfbaa0a1 Ignore fully numeric inputs in MDConcObjectTagRelTypes, map them to
general tags
2026-02-06 00:20:00 +01:00
7630e46a36 src/MDConcEntryTypes.php aktualisiert
Merge pull request 'src/MDConcEntryTypes.php aktualisiert' (#17) from cpitzen-patch-1 into master
Reviewed-on: #17
2026-01-22 18:23:44 +01:00
36db6f2213 src/MDConcEntryTypes.php aktualisiert 2026-01-21 15:40:01 +01:00
be5a2b84a8 Extend MDConcMarkingType 2025-12-22 18:22:54 +01:00
312826259e Update concordance lists 2025-12-17 16:49:47 +01:00
7ea8d14689 Add quotes around error-causing text / unmapped value in MDImporterMissingConcordance 2025-12-17 15:44:35 +01:00
38a732de6d Extend concordance lists 2025-12-16 12:38:45 +01:00
1c2c25f45b Map "zugeschrieben an" 2025-12-15 17:31:26 +01:00
1ce75c2c9c Add function for getting and cleaning missing concordance list 2025-12-15 17:29:00 +01:00
b122288127 Extend concordance list for event types 2025-12-11 14:12:19 +01:00
c93f18a7df Map Durchmesser (Rand) 2025-12-11 13:42:13 +01:00
9787a79c33 Update concordance lists 2025-12-02 15:26:40 +01:00
64018fd9a2 Extend concordance lists, link concordance.museum-digital.org in error
messages
2025-11-27 15:36:05 +01:00
98e5a85fb8 Extend MDConcLicenses 2025-11-18 17:34:17 +01:00
d8d59adb66 Fix variable comment 2025-11-13 10:28:34 +01:00
cb0684da05 Collect unmapped entries in dry-run mode
See museum-digital/importer#235
2025-11-13 00:28:24 +01:00
db3a659fa9 Extend mapping for MDConcObjectTagRelTypes 2025-11-11 18:19:19 +01:00
36803da776 Add type / value to MDImporterMissingConcordance 2025-11-11 13:27:27 +01:00
21c25ff3f3 Extend mapping for source types 2025-10-27 16:43:24 +01:00
c03a60d05a Allow public access to MDConcCertainty::MAPPING 2025-10-27 16:29:08 +01:00
000b8db862 Extend concordance list for actor roles 2025-10-27 15:45:14 +01:00
5aa2980600 Update concordance lists 2025-10-17 12:35:03 +02:00
d6a3c50e2a Merge branch 'master' of gitea:museum-digital/MDImporterConcordanceLists 2025-10-17 10:47:13 +02:00
e88a7ef43c Extend mapping in MDConcMeasurementTypes 2025-10-17 10:44:24 +02:00
a35262428e Update marking type, measurement type concordance lists 2025-10-11 12:02:33 +02:00
0fb9743328 Add marking type "handschriftlich - Beschriftung durch Hersteller*in" 2025-10-11 02:24:49 +02:00
183e4b2e08 Extend concordance lists 2025-10-07 14:25:33 +02:00
5b0da66287 Extend concordance lists 2025-10-05 11:46:30 +02:00
821a6b4e6d Extend MDConcMeasurementTypes 2025-09-30 14:47:35 +02:00
9568f58b7b Update MDConcMeasurementTypes 2025-09-30 11:38:13 +02:00
1cbf0dec8a Extend MDConcMeasurementTypes 2025-09-17 13:43:15 +02:00
da8dfe079e Extend concordance lists 2025-09-02 16:51:29 +02:00
b6b883420c Map literature type "Weiteres" 2025-09-02 13:14:48 +02:00
c63e9df9b3 Extend mappings 2025-09-02 11:54:04 +02:00
7e57ee2363 Map ownership type "Deakzessiert" 2025-09-02 11:18:46 +02:00
a0f4a2b159 Map ownership status for deaccession 2025-09-01 14:28:45 +02:00
f83b1aeb9f Update concordance lists 2025-08-14 21:45:43 +02:00
b323e10d9b Update MDConcMeasurementTypes 2025-08-14 16:22:21 +02:00
52f861c739 Map Länge (Griff) to length 2025-08-13 14:42:52 +02:00
50772ae02f Extend list of marking type concordances 2025-08-06 14:55:08 +02:00
46817aca32 Map Halsweite (Unterlage) as measurement type 2025-07-29 12:29:42 +02:00
b2a5bec110 Add marking position and two actor roles 2025-07-29 00:36:35 +02:00
e3db74e734 Extend marking position and tag relation type concordances 2025-07-25 17:25:58 +02:00
0555dcd94f Extend MDConcMarkingType 2025-07-25 01:31:39 +02:00
091f5016aa Add new concordances for height and width 2025-07-21 13:52:56 +02:00
3bb3ba4d70 Merge branch 'master' of gitea:museum-digital/MDImporterConcordanceLists 2025-07-18 13:05:14 +02:00
c2a433588f Extend concordance list 2025-07-18 13:03:30 +02:00
399f345888 Extend mappings for currencies and entry types 2025-07-15 10:39:02 +02:00
1d85ab3921 Map new sizes for blades 2025-07-14 17:17:51 +02:00
5796322692 Map concordance for license statement "Keine Verwendung erlaubt" 2025-07-11 21:08:08 +02:00
f9c94926c8 Extend MDConcMeasurementTypes 2025-07-09 14:46:56 +02:00
1635d4130a Add exception mode to redirect from object-tag relation type to
object-event relation (generic, e.g. if the tag is actually a time)
2025-06-26 14:34:18 +02:00
b7330634d7 Extend marking types list 2025-06-26 01:22:14 +02:00
a7ed284c26 Extend MDConcEntryTypes 2025-06-23 16:20:32 +02:00
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
55c6d87423 Map "Pfd" > "Pfund" > Pound Sterling 2025-02-27 11:37:03 +01:00
26 changed files with 1255 additions and 65 deletions

View File

@@ -5,6 +5,79 @@ declare(strict_types = 1);
* Exception thrown in case an update failed.
*/
final class MDImporterMissingConcordance extends Exception {
public string $target_type;
public string $value_to_map;
/** @var array<string, array<string>> */
private static array $_missing_concordances = [];
public static bool $suppress_shutdown_function = false;
private static bool $_shutdown_function_registered = false;
/**
* Gets the text for registering shutdown functions.
*
* @return string
*/
public static function getCleanMissingConcordanceReport():string {
if (empty(self::$_missing_concordances)) return '';
$output = PHP_EOL . PHP_EOL . "There are unmapped concordances. Please map them before proceeding." . PHP_EOL . "You may use https://concordance.museum-digital.org/ to do the mapping" . PHP_EOL . PHP_EOL;
foreach (self::$_missing_concordances as $key => $values) {
sort($values);
$output .= PHP_EOL . PHP_EOL . $key . PHP_EOL . PHP_EOL;
$output .= implode(PHP_EOL, array_unique($values));
}
$output .= PHP_EOL;
// Reset missing concordance report.
self::$_missing_concordances = [];
return $output;
}
/**
* Sets up an error.
*
* @param string $target_type Target type (e.g. "measurements").
* @param string $value_to_map Value to map.
*
* @return void
*/
public static function throw(string $target_type, string $value_to_map):void {
if (class_exists("MD_IMPORTER_CONF") && MD_IMPORTER_CONF::$dry_run === true) {
if (self::$_shutdown_function_registered === false) {
// Register printing at the end
register_shutdown_function(function() {
if (self::$suppress_shutdown_function === true) return;
echo self::getCleanMissingConcordanceReport();
});
self::$_shutdown_function_registered = true;
}
if (!isset(self::$_missing_concordances[$target_type])) {
self::$_missing_concordances[$target_type] = [];
}
self::$_missing_concordances[$target_type][] = $value_to_map;
return;
}
$exception = new MDImporterMissingConcordance("Unmapped specific value of type " . $target_type . ": '" . $value_to_map . '\'' . PHP_EOL . "Please consult https://concordance.museum-digital.org for filling out missing concordances");
$exception->target_type = $target_type;
$exception->value_to_map = $value_to_map;
throw $exception;
}
/**
* Error message.
*

View File

@@ -0,0 +1,9 @@
<?PHP
declare(strict_types = 1);
/**
* Exception thrown in case a name entered for the relation between tag
* and object is actually an event type.
*/
final class MDImporterTagRelationTypeIsEventType extends Exception {
}

View File

@@ -32,6 +32,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Ausstellung von Bezugsscheinen" => 1,
"Bearbeiter" => 1,
"Bearbeiterin" => 1,
"Konstruktion" => 1,
"Bearbeiter*in" => 1,
"Bearbeitende" => 1,
"Bindung" => 1,
@@ -51,9 +52,11 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Buchbinderin" => 1,
"Buchbinder*in" => 1,
"Buchbindung" => 1,
"Büchsenmacher" => 1,
"Creator" => 1,
"creator" => 1,
"deutscher Baumeister, Ingenieur, Holzschneider, Kupferstecher, Zeichner, Topograph und Militärschrif" => 1,
"Drechsler" => 1,
"Elfenbeindrechsler" => 1,
"Elfenbeindrechslerin" => 1,
"Elfenbeindrechsler*in" => 1,
@@ -61,6 +64,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Elfenbeinschnitzerin" => 1,
"Elfenbeinschnitzer*in" => 1,
"Elfenbeinschnitzerei" => 1,
"Emailleur" => 1,
"Entwurf und Ausführung" => 1,
"Fabrik" => 1,
"Fayencemanufaktur" => 1,
@@ -134,7 +138,9 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Interviewer" => 1,
"Interviewerin" => 1,
"Interviewer*in" => 1,
"Juwelier" => 1,
"Juwelier und Uhrmacher" => 1,
"K" => 1,
"Katograf" => 1,
"Keramiker" => 1,
"Keramikerin" => 1,
@@ -153,6 +159,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Kunsthandwerker" => 1,
"Kunsthandwerkerin" => 1,
"Kunsthandwerker*in" => 1,
"Laufschmied" => 1,
"Leitung" => 1,
"Malez" => 1,
"Maschinenfabrik" => 1,
@@ -190,6 +197,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Papiermacherin" => 1,
"Papiermacher*in" => 1,
'Papierverarbeitungswerk' => 1, // created by
'Plattner' => 1, // created by
"Porzellanhersteller" => 1,
"Porzellanherstellerin" => 1,
"Porzellanhersteller*in" => 1,
@@ -213,15 +221,18 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Regisseuer*in" => 1,
"Reparatur" => 1,
"Reproduktion" => 1,
"Schäfter" => 1,
"Scherenschneider" => 1,
"Scherenschneiderin" => 1,
"Scherenschneider*in" => 1,
"Schlossschmied" => 1,
"Schneider" => 1,
"Schneiderin" => 1,
"Schneider*in" => 1,
"Schnitzer" => 1,
"Schnitzerin" => 1,
"Schnitzer*in" => 1,
"Seidensticker" => 1,
"Silberschmied" => 1,
"Silberschmiedin" => 1,
"Silberschmied*in" => 1,
@@ -236,6 +247,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Steinbildhauer*in" => 1,
"Steinmetz" => 1,
"Steinmetzin" => 1,
"Steinschneider" => 1,
"Steinmetz*in" => 1,
"Steingutfabrik" => 1,
"Stempelschneider" => 1,
@@ -320,6 +332,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"nach" => 4,
'Original / Vorlage' => 4,
'Original / Vorlage zu' => 4,
'Kopie nach / Orginal Figurengruppe' => 4,
"Schöpfer der Vorlage" => 4,
"Schöpferin der Vorlage" => 4,
"Schöpfer*in der Vorlage" => 4,
@@ -348,6 +361,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Datsrellung" => 5,
"Dastellung" => 5,
"Dartsellung" => 5,
"Dargestellte Person" => 5,
"dargestellt" => 5,
"Dargestellt" => 5,
"Dargestellte Personen" => 5,
@@ -374,6 +388,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Nutzerin" => 6,
"Nutzer*in" => 6,
"Nutzung" => 6,
"Nutzung durch" => 6,
"Verwendung" => 6,
"Projektmitarbeiter" => 6,
"Produzent & Autor des Kommentars" => 6,
@@ -501,6 +516,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Maler*in" => 9,
'Maler/in' => 9, // painted by
"Malerin, Grafikerin" => 9,
"Maler (zugeschrieben)" => 9,
"Malermeister" => 9,
"Malermeisterin" => 9,
"Malermeister*in" => 9,
@@ -550,6 +566,8 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
// 11: Received
"Adressat" => 11,
'Adressat/in' => 11, // received by
"Beschenkter" => 11,
"Beschenkte Person" => 11,
"Beschenkte Person (Geburtstag)" => 11,
"Beschenkte Person (Hochzeitstag)" => 11,
"Beschenkte Person (Jahrestag)" => 11,
@@ -585,6 +603,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Kupferstecher*in" => 12,
"Kupferstich" => 12,
"Lithograf" => 12,
"Lithograf & Verleger" => 12,
"Lithografin" => 12,
"Lithograf*in" => 12,
"Lithografie" => 12,
@@ -592,6 +611,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Lithographie" => 12,
"Lithographin" => 12,
"Lithograph*in" => 12,
"Lithograph & Verleger" => 12,
"Radierer" => 12,
"Radiererin" => 12,
"Radierer*in" => 12,
@@ -640,6 +660,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Zeichnerin" => 19,
"Zeichner*in" => 19,
'Zeichner/in' => 19, // drawn by
'Zeichnung' => 19, // drawn by
"Zeichner / Inventor" => 19,
"Zeichner, Autor der Dekoration" => 19,
"Zeichner und Grafiker" => 19,
@@ -656,6 +677,8 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Zeichner u. Stecher" => 19,
// 20: Copied
"Abgeschrieben" => 20,
"Kopist" => 20,
"Übersetzer" => 20,
"Übersetzerin" => 20,
"Übersetzer*in" => 20,
@@ -668,6 +691,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
// 25: Commissioned
"Auftrag" => 25,
"Auftraggeber" => 25,
"Auftraggebende Person" => 25,
"Auftraggeberin" => 25,
"Auftraggeber*in" => 25,
"Auftraggeber/in" => 25,
@@ -758,6 +782,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Wappen" => 33,
// 34: Buried
"Grabmal" => 34,
// 35: Intellectual creation
"Autor & Produzent" => 35,
@@ -951,6 +976,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Mit dem Objekt verbunden" => 23,
"Abteilungsleiter der Abteilung III/2 Vortragswesen, Rednervermittlung im Amt Deutsches Volksbildungswerk, Berlin-Wilmersdorf, Kaiserallee 25" => 23,
"Abgebildestes Werk von" => 23,
"Admiral" => 23,
"Arzt" => 23,
"Angehöriger der Deutschen Wehrmacht" => 23,
@@ -974,6 +1000,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Bezirksvorsteher Revier 70/3" => 23,
"Bezirksbürgermeister von Berlin-Tiergarten" => 23,
"Bezug zu" => 23,
"Bezugsperson" => 23,
"Bezugaberechtigter" => 23,
"Brigadenführer auf dem MTS Ciorani, Region Prahova (Volksrepublik Rumänien)" => 23,
"Bürgermeister von Lastrup" => 23,
@@ -986,7 +1013,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Chef der Garnison der Stadt Dresden" => 23,
"Chemische und Seifenfabrik" => 23,
"Denakmal" => 23,
"Denkmal" => 23,
"Der Gebietskommissar und kom. Oberbürgermeister der Stadt Riga" => 23,
"Division und Wehrbereichskommando VIII" => 23,
"Divisionskommandeur" => 23,
@@ -1000,7 +1027,9 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"ehem. Wehrmachtsangehöriger, Kraftfahrer" => 23,
"Erster Sekretär des Zentralkomitees der SED" => 23,
"Exilpolitiker" => 23,
'Impulsgebende Person' => 23,
"zugeschrieben" => 23,
"zugeschrieben an" => 23,
"Feldwebel" => 23,
"Feuerwehrmann im 2. Weltkrieg" => 23,
@@ -1025,7 +1054,6 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
"Generalsekretär des Zentralkomitees der Sozialistischen Einheitspartei Deutschlands" => 23,
"General der Artillerie, kommandierender General des LI. Armeekorps, Präsident des Bundes Deutscher Offiziere" => 23,
"Geschäftsführer" => 23,
"Grabmal" => 23,
"Hamburger Fremdeblatt Broschek und Co." => 23,
"Hauptfeldwebel" => 23,
@@ -1138,6 +1166,7 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
25" => 23,
"Oberstudiendirektor" => 23,
"Offizier der schw. Art. Abt. 816, speziell 4. schw. Ers.-Batt.Art. Ers. Abt. 59 (mot)" => 23,
"Ordensstifter" => 23,
"Organ der Kreisleitung Bor" => 23,
"O.T. Linienchef der Dg.IV, der Abschnittsbauleiter" => 23,
@@ -1164,6 +1193,7 @@ 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,
@@ -1253,7 +1283,8 @@ final class MDConcActor implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):int {
if (!isset(self::ACTOR_ROLES_TO_EVENT_TYPE[$input])) {
throw new MDImporterMissingConcordance("Unknown actor role: " . $input);
MDImporterMissingConcordance::throw("actor role", $input);
return 1; // Return default in dry-run mode
}
return self::ACTOR_ROLES_TO_EVENT_TYPE[$input];

70
src/MDConcCertainty.php Normal file
View File

@@ -0,0 +1,70 @@
<?PHP
/**
* Mapping for certainty-expressing fields to certainty in events.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Mapping for certainty-expressing fields to certainty in events.
*/
final class MDConcCertainty implements MDImporterConcordanceListInterface {
// Public for access in concordance.museum-digital.org
public const MAPPING = [
// Uncertain
'alternative Zuschreibung' => false,
'Art des' => false,
'Atelier von' => false,
'ehemals zugeschrieben' => false,
'fraglich' => false,
'möglicherweise von' => false,
'nach' => false,
'nach Literatur UND alternativ' => false,
'Stil des' => false,
'Schule von' => false,
'Schule des' => false,
'traditionelle Zuschreibung' => false,
'Umkreis von' => false,
'Werkstatt von' => false,
'zugeschriebe' => false,
'zugeschrieben' => false,
'zugeschrieben an' => false,
'Ausführung' => false,
'Entwurf' => false,
'geschätzt / unsicher / vermutet' => false,
// Certain
'sicher' => true,
'Herstellung' => true,
'gesichert' => true,
'nach Passepartoutnotiz' => true,
'Zusammenarbeit mit' => true,
'überarbeitet von' => true,
'Nachfolger von' => true,
'by' => true,
];
/**
* Require a function for getting the concordance target.
*
* @param string $input Input string.
*
* @return boolean
*/
public static function getConcordanceTarget(string $input):bool {
if (!isset(self::MAPPING[$input])) {
MDImporterMissingConcordance::throw("certainty identifier", $input);
return true; // Return default in dry-run mode
}
return self::MAPPING[$input];
}
}

View File

@@ -25,7 +25,8 @@ final class MDConcCheckTypes implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):MDObjectCheckType {
if (!isset(self::CHECK_TYPES[$input])) {
throw new MDImporterMissingConcordance("Unknown check type: " . $input);
MDImporterMissingConcordance::throw("check", $input);
return MDObjectCheckType::completeness_check; // Return default in dry-run mode
}
return self::CHECK_TYPES[$input];

View File

@@ -45,7 +45,8 @@ final class MDConcCloserLocationTypes implements MDImporterConcordanceListInterf
public static function getConcordanceTarget(string $input):string {
if (!isset(self::LOCATION_TYPES_VERBOSE[$input])) {
throw new MDImporterMissingConcordance("Unknown location type: " . $input);
MDImporterMissingConcordance::throw("location", $input);
return "3"; // Return default in dry-run mode
}
return self::LOCATION_TYPES_VERBOSE[$input];

View File

@@ -26,7 +26,8 @@ final class MDConcColors implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):string {
if (!isset(self::COLORS_LIST[$input])) {
throw new MDImporterMissingConcordance("Unknown color: " . $input);
MDImporterMissingConcordance::throw("color", $input);
return "black"; // Return default in dry-run mode
}
return self::COLORS_LIST[$input];

View File

@@ -12,6 +12,7 @@ declare(strict_types = 1);
final class MDConcCurrencies implements MDImporterConcordanceListInterface {
private const CURRENCIES_LIST = [
"" => "",
"^" => "",
"-" => "",
"_" => "",
@@ -23,7 +24,13 @@ final class MDConcCurrencies implements MDImporterConcordanceListInterface {
"23.117,55" => "",
"15.01.1900" => "",
"Belarussischer Rubel" => 'by-BYN',
// Schweizer Franken / Swiss Franc
"SFR" => "ch-CHF",
"CHF" => "ch-CHF",
"Swiss franc" => "ch-CHF",
// Deutsche Mark
"DM" => "de-DM",
"dM" => "de-DM",
"Dm" => "de-DM",
@@ -34,11 +41,19 @@ final class MDConcCurrencies implements MDImporterConcordanceListInterface {
"Mark" => "de-DM",
"de-DM" => "de-DM",
"Deutsche Mark" => "de-DM",
// Reichsmark (Deutschland)
"RM" => "de-RM",
"Reichsmark" => "de-RM",
"Reichsmark (Deutsches Reich)" => "de-RM",
"Reichsmark (Deutsches Reich" => "de-RM",
// Franc (France)
"French Franc" => "fr-FF",
// Forint
"Forint" => "hu-Ft",
"FT" => "hu-Ft",
"Korona" => "hu-Korona",
"Austro-Hungarian krone" => "hu-Korona",
"Korona (osztrák-magyar" => "hu-Korona",
@@ -64,6 +79,7 @@ final class MDConcCurrencies implements MDImporterConcordanceListInterface {
"карбованці" => "ua-UAK",
"GBP" => "uk-GBP",
"uk-GBP" => "uk-GBP",
"Pfd" => "uk-GBP", // Pfund
"USD" => "us-USD",
"US Dollar" => "us-USD",
"US dollar" => "us-USD",
@@ -83,7 +99,8 @@ final class MDConcCurrencies implements MDImporterConcordanceListInterface {
if (in_array($input, MDCurrenciesSet::CURRENCIES, true)) {
return $input;
}
throw new MDImporterMissingConcordance("Unknown currency: " . $input);
MDImporterMissingConcordance::throw("currency", $input);
return "eu-EUR"; // Return default in dry-run mode
}
return self::CURRENCIES_LIST[$input];

View File

@@ -37,7 +37,8 @@ final class MDConcDamageTypes implements MDImporterConcordanceListInterface {
throw new MDImporterBlacklistedConcordanceTerm("Invalid damage type: " . $input);
}
throw new MDImporterMissingConcordance("Unknown damage type: " . $input);
MDImporterMissingConcordance::throw("damage", $input);
return MDObjectDamageType::desiccation; // Return default in dry-run mode
}
return self::DAMAGE_TYPES[$input];

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",
@@ -35,6 +36,7 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"FLM" => "0",
"Schriftliches" => "0",
"schriftliches" => "0",
"Export_Eingangsart" => "0",
"Verlagerung" => "0",
"Sc" => "0",
"Seiffen" => "0",
@@ -43,6 +45,15 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"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",
@@ -52,27 +63,41 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"Donation" => "1",
"Geschenk" => "1",
"Geschenk 2010" => "1",
"Geschenk (Lederscheide" => "1",
"Geschenk 20.10.03" => "1",
"Schenkung" => "1",
"Schenkung / Spende" => "1",
"Schenkung/abgeschr. B. DHM" => "1",
"Schenkung an die Stadt Ravensburg" => "1",
"Schenkung & Nachlass lt. Testament vom 18.09.2001" => "1",
"Schhenkung" => "1",
"Schnekung" => "1",
"Schenung" => "1",
"Schenkungn" => "1",
"Schenkung/" => "1",
"Schenkung / Nachlass" => "1",
"Schenkung an" => "1",
"Schenkung-Ver" => "1",
"Schenkung 2010" => "1",
"Schenkung-BB" => "1",
"Schenkkung" => "1",
"Schenkg" => "1",
"Schenkung, intern" => "1",
"Zugabe" => "1",
"Übereignung" => "1",
"Schenkung/ Kauf" => "1",
"Schenkung bzw. Rückgabe" => "1",
"Schenkung an den Förderverein" => "1",
"Schenkung Briefkasten Museum" => "1",
"Schenkung 03/06 v.Ostereiermarkt" => "1",
"Schenkung von Johannes Cornel" => "1",
"Schenkung/abgeschr.B. DHM" => "1",
"Sachspende" => "1",
"Spende" => "1",
"spende" => "1",
"Sepnde" => "1",
"Spene" => "1",
"Anonyme Spende" => "1",
"Kostenlose" => "1",
"Überlassung" => "1",
"Übertragung" => "1",
@@ -99,12 +124,15 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"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",
@@ -140,6 +168,8 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"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",
@@ -151,6 +181,12 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"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",
@@ -164,9 +200,11 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"Excavation" => "3",
"Feltárás" => "3",
"Grabung" => "3",
"Grabungsfund" => "3",
"Grabungsfund Arch. Landesamt" => "3",
"Bergung" => "3",
// 4: Emergenccy Rescue
// 4: Emergenncy Rescue
"Notbergung" => "4",
"Sürgősségi értékmentés" => "4",
@@ -183,7 +221,12 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"Nachlaßübernahme" => "5",
"Nachlass Dr. Enste" => "5",
"Stiftung/Nachlass" => "5",
"Ankauf & Nachlass v. Steffen Lange" => "5",
"Übergabe & Nachlass Otto Garten (lt. Testament - gez. vom 18.09. 20018" => "5",
"Übergabe & Nachlass Otto Garten (lt. Testament - gez. vom 18.09. 2001" => "5",
"Übergabe & Nachlass lt. Testament" => "5",
"Übergabe & Nachlass lt. Testament vom 18.09.2001" => "5",
"übergabe & Nachlass lt. Testament vom 18.09.2001" => "5",
"Vermächtnis" => "5",
"Erbschaft / Nachlass" => "5",
"Hagyaték" => "5",
@@ -192,6 +235,7 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
// 6: Endowment
"Endowment" => "6",
"Stiftung" => "6",
"Stiftung (1930" => "6",
"Hivatalos átadás" => "6",
// Disposession
@@ -212,6 +256,7 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"Loan" => "9",
"Verliehen" => "9",
"Leihgabe vom" => "9",
"Leihvertrag mit Sonderregelung" => "9",
// 10: Exchange
"Austausch" => "10",
@@ -241,6 +286,7 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"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",
@@ -254,38 +300,44 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"Fund" => "15",
"Fundstück" => "15",
"Fundstücke" => "15",
"Baufund MHQ" => "15",
"Lelőhely" => "15",
"Räumung" => "15",
"Begehungsfund" => "15",
"Sperrmüll" => "15",
"Fund bei der Renovierung des Spitalturms 1993" => "15",
"Streufund aus dem Garten Rosenstr. 31, RV" => "15",
// 16: Permanent Loan
"Dauerleihe" => "16",
"Dauerleihgabe" => "16",
"Dauerausleihe" => "16",
"Dauerleihgabe von Privat" => "16",
"Letét" => "16",
"Permanent loan" => "16",
"permanent loan" => "16",
"Tartós leltét" => "16",
// 98: Other legal acquisition
// 98: Old belongings
"Altbestand" => "98",
"Altebestand" => "98",
"alter Bestand" => "98",
"Alter Bestand" => "98",
"Altbestand Domäne Dahlem" => "98",
"Altbestand Kapitulationsmuseum" => "98",
"Altbestand, Zugangsart unbekannt" => "98",
"Altbestand, Herkunft unklar" => "98",
"Altbestand MM" => "98",
"Altbestand Dorfmuseum Marzahn" => "98",
"Altbestand Märkisches Museum" => "98",
"Altbestand Domäne MM" => "98",
"altbestand Domäne Dahlem" => "98",
"Besitz" => "98",
"Depositum" => "98",
"gefunden im Großdepot R. 104" => "98",
"Museums Altbestand" => "98",
"Depotfund" => "98",
"Sanierungsbestand Hornmoldhaus" => "98",
"To be checked" => "98",
"Eigentum" => "98",
"Ungeklärt" => "98",
"unklar" => "98",
"unklar, aus dem alten Bestand" => "98",
"?" => "98",
"Zugang ungeklärt" => "98",
// 99: Other legal acquisition
"Anderer rechtmäßiger Zugang" => "99",
@@ -296,6 +348,8 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"Global" => "99",
"Zurückgegeben" => "99",
"Übernahme" => "99",
"Übernahme 1986" => "99",
"Übernahme von Betrieb" => "99",
"Teilbetrag" => "99",
"mitgenommen" => "99",
"Übernhame" => "99",
@@ -303,7 +357,14 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
"unbekant" => "99",
"Ünernahme" => "99",
"Übergabe" => "99",
"Unbezeichnet" => "99",
"unbezeichnet" => "99",
"Übergabe abgeschr.B. DHM" => "99",
"gyűjtés" => "99",
"sch" => "99",
"Auftragsarbeit für Museum" => "99",
"Einzelkauf/Schenkung" => "99",
"Schenkung / Leihgabe" => "99",
];
@@ -325,7 +386,8 @@ final class MDConcEntryTypes implements MDImporterConcordanceListInterface {
return self::ENTRY_TYPES_VERBOSE[$inputTrimmed];
}
throw new MDImporterMissingConcordance("Unknown entry type: " . $input);
MDImporterMissingConcordance::throw("entry (to museum)", $input);
return "99"; // Return default in dry-run mode
}
}

View File

@@ -27,11 +27,16 @@ Herstellung' => 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,
'bearbeitet' => 1,
'gestempelt (' => 1,
@@ -39,14 +44,15 @@ Herstellung' => 1,
'Beginning of existence' => 1,
'creation' => 1,
'Erschaffung/Herstellung' => 1,
'Architekt/in' => 11, // created by
'Entwurf, Herstellung und Verlag' => 1,
'Herstellung und Verlag' => 1,
'Architekt/in' => 1, // created by
"Guss" => 1,
"Guß" => 1,
'http://terminology.lido-schema.org/eventType/production' => 1,
'Leipoldt, J.' => 1,
'Produktion' => 1,
'Rohleder, Walter, Reichenbach' => 1,
'vermuteter Herstellungsort' => 1,
'vermutet' => 1,
// "Unknown event"
'Aktivität' => 1,
@@ -60,6 +66,7 @@ Herstellung' => 1,
'vermuteter Herstellungsort Fassung' => 1,
'Kupferstecher' => 1,
'Herstellungsort Fassung' => 1,
'Herstellungsort Hose' => 1,
'Herstellungsort Münze' => 1,
'Herstellung oder Vertrieb' => 1,
'Herstellung zugeschrieben' => 1,
@@ -90,6 +97,7 @@ Herstellung' => 1,
'Veröffentlicht' => 3,
'Veröffentlichung' => 3,
'Verleger' => 3,
'Verlag' => 3,
'published' => 3,
'http://terminology.lido-schema.org/eventType/publication' => 3,
'Publikation' => 3,
@@ -103,6 +111,7 @@ Herstellung' => 1,
'Vorlagenerstellung' => 4,
'Stichvorlage' => 4,
'Vorlage' => 4,
'Vorlage vermutet' => 4,
'Entwurf; Vorlage' => 4,
'Entwurfsort' => 4,
'Entwurf Umkreis' => 4,
@@ -116,6 +125,7 @@ Herstellung' => 1,
// 5: Displayed actor
'Was displayed (actor)' => 5,
'Wurde abgebildet (Akteur)' => 5,
'dargestellte Person' => 5,
'Displayed actor' => 5,
'Darstellung' => 5,
@@ -310,16 +320,9 @@ Herstellung' => 1,
'Wurde versteigert' => 40,
// 41: Was Bought
'Erwerb' => 41,
'Erwerbung' => 41,
'Acquisition' => 41,
'Acquisition (Activity)' => 41,
'http://terminology.lido-schema.org/lido00001' => 41,
'Bodenreform' => 41,
'Kauf' => 41,
'Gekauft' => 41,
'acquisition_Kauf' => 41,
'acquisition_Diener' => 41,
// 42: Owned
'acquisition_unbekannt' => 42,
@@ -361,6 +364,7 @@ Herstellung' => 1,
// 48: Edited
'Herausgegeben' => 48,
'Verlag zugeschrieben' => 48,
"publication" => 48,
// 49: Gifted, donated
@@ -376,6 +380,16 @@ Herstellung' => 1,
'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,
];
/**
@@ -388,7 +402,8 @@ Herstellung' => 1,
public static function getConcordanceTarget(string $input):int {
if (!isset(self::EVENT_TYPE_NAMES_TO_ID[$input])) {
throw new MDImporterMissingConcordance("Unknown event type: '" . $input . "'");
MDImporterMissingConcordance::throw("event", $input);
return 1; // Return default in dry-run mode
}
return self::EVENT_TYPE_NAMES_TO_ID[$input];

View File

@@ -28,7 +28,7 @@ enum MDConcFieldRelatedWorksType {
*/
public static function fromString(string $input):MDConcFieldRelatedWorksType {
return match($input) {
$output = match($input) {
"Dokumentiert in",
"dokumentiert in",
@@ -40,6 +40,13 @@ enum MDConcFieldRelatedWorksType {
"Literatur in Zusammenhang",
'Literatur zum Stück',
'Standardzitierwerk',
'beschrieben in',
"Reproduziert in: ",
"reproduziert in: ",
"reproduced in: ",
"Reproduziert in",
"reproduziert in",
"reproduced in",
"wird beschrieben in",
'http://digicult.vocnet.org/terminology/ter01113',
'http://terminology.lido-schema.org/lido00617',
@@ -48,6 +55,7 @@ enum MDConcFieldRelatedWorksType {
"Teil von",
"ist Teil von",
"ist physischer Teil von",
"Gehört zu",
"gehört zu",
"Gehört zu Sammlung",
@@ -67,7 +75,28 @@ enum MDConcFieldRelatedWorksType {
"Objekt",
"ist Version von",
"inhaltlicher Bezug zu",
'Vorlage für',
'hat Studie',
'vorbereitend für',
'Entwurf für',
'hat Reproduktion',
'abgeleitet von',
'auf einem Blatt mit',
'hat Entwurf',
'Skizze für',
'hat Skizze',
'hat Druckplatte',
'Reproduktion von',
'Druckplatte für',
'Studie für',
'Beinhaltet',
'hat Gegendruck',
'Gegendruck zu',
'Wiedergabe von',
'Wiedergabe für',
"Teil",
'verso von',
'recto von',
"Teil 1",
"Teil 2",
"Teil 3",
@@ -115,6 +144,8 @@ enum MDConcFieldRelatedWorksType {
"Recto von",
"ist Teil desselben konzeptuellen Ganzen mit",
"ist vorbereitende Studie für",
"hat vorbereitende Studie",
"basiert auf",
"Druck",
"Referenz",
"Haupttafel",
@@ -128,9 +159,23 @@ enum MDConcFieldRelatedWorksType {
'Abbildung weitgehend identisch',
'abgebildet auf/in',
'bildet ab',
'basierend auf',
'Pendant zu',
'ist Pendant zu',
'Ist Pendant zu',
'Pendant von',
'ist Pendant von',
'Ist Pendant von',
'enthält',
'hat Bezug zu',
'Abzug',
'weiterer Abzug',
"Teil desselben Werkprozesses",
"part of the same work process",
"ist Abzug von Druckform",
"hat physischen Teil",
'exemplifies',
'bezogen auf',
'http://terminology.lido-schema.org/lido00263',
'http://digicult.vocnet.org/terminology/ter00224',
'http://digicult.vocnet.org/terminology/ter00225',
@@ -154,8 +199,15 @@ enum MDConcFieldRelatedWorksType {
"" => self::undefined,
default => throw new MDpageParameterNotFromListException("Unknown target field for related works type: " . $input),
default => null,
};
if ($output === null) {
MDImporterMissingConcordance::throw("related work type", $input);
return self::undefined; // Return default in dry-run mode
}
return $output;
}
}

View File

@@ -21,6 +21,7 @@ final class MDConcLanguages implements MDImporterConcordanceListInterface {
'EN' => 'en',
'ENG' => 'en',
'eng; ger' => 'en',
'en-GB' => 'en',
# German
'Deutsch' => 'de',
@@ -85,7 +86,8 @@ final class MDConcLanguages implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):string {
if (!isset(self::LANGUAGES_LIST[$input])) {
throw new MDImporterMissingConcordance("Unknown language type: " . $input);
MDImporterMissingConcordance::throw("language", $input);
return "de"; // Return default in dry-run mode
}
return self::LANGUAGES_LIST[$input];

View File

@@ -46,6 +46,7 @@ final class MDConcLicenses implements MDImporterConcordanceListInterface {
"https://creativecommons.org/licenses/by/4.0/deed.de" => "CC BY",
"Namensnennung 4.0. International (CC BY 4.0)" => "CC BY",
"Namensnennung 4.0 International - CC BY 4.0" => "CC BY",
"Namensnennung 4.0 International - (CC BY 4.0)" => "CC BY",
"CC BY SA" => "CC BY-SA",
"CC BY-SA-" => "CC BY-SA",
@@ -82,6 +83,7 @@ final class MDConcLicenses implements MDImporterConcordanceListInterface {
"https://creativecommons.org/licenses/by-sa/4.0/deed.de" => "CC BY-SA",
"Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International (CC BY-SA 4.0)" => "CC BY-SA",
"Namensnennung 4.0 International (CC BY 4.0)" => "CC BY-SA",
"CC BY-SA 4.0 - Namensnennung, Weitergabe unter gleichen Bedingungen" => "CC BY-SA",
"CC BY_NC" => "CC BY-NC",
"CC_BY_NC" => "CC BY-NC",
@@ -89,6 +91,7 @@ final class MDConcLicenses implements MDImporterConcordanceListInterface {
"CC.BY-NC" => "CC BY-NC",
"http://creativecommons.org/licenses/by-nc/4.0/" => "CC BY-NC",
"https://creativecommons.org/licenses/by-nc/4.0/" => "CC BY-NC",
"CC BY-NC 4.0 - Namensnennung, nicht kommerziell, keine Bearbeitung" => "CC BY-NC",
"CC BY_NC_SA" => "CC BY-NC-SA",
"CC_BY_NC_SA" => "CC BY-NC-SA",
@@ -103,6 +106,7 @@ final class MDConcLicenses implements MDImporterConcordanceListInterface {
"http://creativecommons.org/licenses/by-nc-sa/4.0/" => "CC BY-NC-SA",
"https://creativecommons.org/licenses/by-nc-sa/4.0/" => "CC BY-NC-SA",
"Namensnennung - Nicht kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International (CC BY-NC-SA 4.0)" => "CC BY-NC-SA",
"CC BY-NC-SA 4.0 - Namensnennung, nicht kommerziell, Weitergabe unter gleichen Bedingungen" => "CC BY-NC-SA",
"CC BY_NC_ND" => "CC BY-NC-ND",
"CC_BY_NC_ND" => "CC BY-NC-ND",
@@ -115,6 +119,8 @@ final class MDConcLicenses implements MDImporterConcordanceListInterface {
"https://creativecommons.org/licenses/by-nc-nd/4.0/deed.de" => "CC BY-NC-ND",
"https://creativecommons.org/licenses/by-nc-nd/3.0/de/" => "CC BY-NC-ND",
"CC BY-ND 4.0 - Namensnennung, Keine Bearbeitungen 4.0" => "CC BY-ND",
"https://www.deutsche-digitale-bibliothek.de/content/lizenzen/rv-fz" => "RR-F",
"https://www.deutsche-digitale-bibliothek.de/content/lizenzen/rv-fz/" => "RR-F",
"https//www.deutsche-digitale-bibliothek.de/content/lizenzen/rv-fz" => "RR-F",
@@ -133,14 +139,20 @@ final class MDConcLicenses implements MDImporterConcordanceListInterface {
"Alle Rechte vorbehalten" => "RR-F",
"Alle Rechte vorbehalten." => "RR-F",
"Alle Rechte vorbehalten - Urhebererechtlich geschütztes Werk" => "RR-F",
"Urheberrechtsschutz (InC)" => "RR-F",
"IN COPYRIGHT" => "RR-P",
"Rechtsstatus unbekannt" => "RR-P",
"none" => "RR-F",
"http://www.europeana.eu/rights/rr-r/" => "RR-R",
"https://www.europeana.eu/rights/rr-r/" => "RR-R",
"Keine Verwendung erlaubt" => "RR-R",
"Orphan Work" => "Orphan Work",
"Urheberrechtsschutz - Verwaistes Werk EU (InC-OW-EU)" => "Orphan Work",
'PDM' => 'Public Domain Mark',
'Public Domain Mark 1.0' => 'Public Domain Mark',
'PDM 1.0' => 'Public Domain Mark',
'https://creativecommons.org/public-domain/pdm/' => 'Public Domain Mark',
'https://creativecommons.org/publicdomain/mark/1.0' => 'Public Domain Mark',
@@ -161,7 +173,8 @@ final class MDConcLicenses implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):string {
if (!isset(self::LICENSES_LIST[$input])) {
throw new MDImporterMissingConcordance("Unknown licence type: " . $input);
MDImporterMissingConcordance::throw("licence", $input);
return "RR-F"; // Return default in dry-run mode
}
return self::LICENSES_LIST[$input];

View File

@@ -31,7 +31,8 @@ final class MDConcLoanTypes implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):string {
if (!isset(self::LOAN_TYPES[$input])) {
throw new MDImporterMissingConcordance("Unknown loan type: " . $input);
MDImporterMissingConcordance::throw("loan", $input);
return "outgoing"; // Return default in dry-run mode
}
return self::LOAN_TYPES[$input];

View File

@@ -20,8 +20,10 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"Vorderseite, mittig" => "center",
"beidseitig mittig" => "center",
"untere Passpartoutkante, mittig" => "center",
"Mitte" => "center",
"vorn am Kasten, mittig, einseitig" => "center",
"an Gehäuse mittig" => "center",
'mitte' => 'center', // Center
// Left
"Links" => "left",
@@ -34,6 +36,7 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"Waagebalken links" => "left",
"Vorderseite links (Brusthöhe)" => "left",
"an Skala links und am Gehäuse Fronseite" => "left",
'mitte links' => 'left', // Left
// Right
"mittig rechts" => "right",
@@ -42,18 +45,24 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"rechts neben Bildnis" => "right",
"Rechter Bildrand" => "right",
"Balken rechts" => "right",
'Mitte rechts' => 'right', // Right
// Bottom
"unten" => "bottom",
'Mitte unten' => 'bottom', // Bottom
'unten links u. rechts' => 'bottom', // Bottom
'unten rechts/links' => 'bottom', // Bottom
"unter der Zeichnung" => "bottom",
"unter der Bild" => "bottom",
"unterer Bildrand" => "bottom",
"Unterer Bildrand" => "bottom",
"unterer Bildrand, mittig" => "bottom",
"unten mitte" => "bottom",
"Unterkante Bild" => "bottom",
"Boden, unten" => "bottom",
"unterer Blattrand" => "bottom",
"Boden" => "bottom",
"Bodenmarke" => "bottom",
"Boden und Standring" => "bottom",
"untere Passpartoutkante und untere linke Ecke auf Foto" => "bottom",
"Unterboden" => "bottom",
@@ -89,11 +98,14 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
// Bottom right
"im Bild unten rechts" => "bottom_right",
"rechts unten Signatur" => "bottom_right",
"verso unten rechts" => "bottom_right",
"unterer Bildrand rechts" => "bottom_right",
"Bildrand rechts unten" => "bottom_right",
"Rechts unten" => "bottom_right",
"rechts unten" => "bottom_right",
"Unten rechts" => "bottom_right",
"unten rechts" => "bottom_right",
"untenb rechts" => "bottom_right",
// Top Left
"linker, oberer Bildrand" => "top_left",
@@ -162,6 +174,7 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"Rückseite Keilrahmen" => "rear_side",
"Rükseite" => "rear_side",
"Rückseite, unter Doublierung" => "rear_side",
'verso' => 'rear_side', // Rear side
// rear_bottom
"Rückseite unten" => "rear_bottom",
@@ -217,6 +230,7 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"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",
@@ -255,6 +269,7 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"Balken" => "other",
"Zugbalken" => "other",
"innen" => "other",
"Innen" => "other",
"inneres Lederfutter" => "other",
"Innenseite" => "other",
"unter Gewichtsauflagenschale" => "other",
@@ -273,6 +288,8 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"auf Skala" => "other",
"Vorderseite Eisengestell" => "other",
"Außenwand" => "other",
"Wandung" => "other",
"Ansichtsseite" => "other",
"Aufkleber" => "other",
"unter Ausgußtülle" => "other",
"Glasaußenseite" => "other",
@@ -419,11 +436,17 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
"Waage" => "other",
"Weiteres" => "other",
"auf Kunststoffhülle (für Kleinbildfilmstreifen)" => "other",
"Signatur" => "other",
"Legende" => "other",
"Schriftband" => "other",
"Textplatte" => "other",
"oberer Holzkasten" => "other",
"Verso" => "other",
"In Bild Beschriftung" => "other",
"Bauch" => "other",
"Avers" => "other",
"Text" => "other",
"auf dem Original-Fotobox" => "other",
];
/**
@@ -436,7 +459,8 @@ final class MDConcMarkingPosition implements MDImporterConcordanceListInterface
public static function getConcordanceTarget(string $input):string {
if (!isset(self::MARKING_POSITIONS_VERBOSE[$input])) {
throw new MDImporterMissingConcordance("Unknown marking position: " . $input);
MDImporterMissingConcordance::throw("marking position", $input);
return "other"; // Return default in dry-run mode
}
return self::MARKING_POSITIONS_VERBOSE[$input];

View File

@@ -16,6 +16,7 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
// Default: Handwritten
"-" => "handwritten",
"x" => "handwritten",
'Handschriftlich mit Bleistift - Signatur' => 'handwritten', // Handwritten
"schwarz" => "handwritten",
"braun" => "handwritten",
"Leinenarbeit" => "handwritten",
@@ -32,9 +33,14 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"rot gemasert" => "handwritten",
"ornamentiert" => "handwritten",
"handschriftlich; aufgeklebt" => "handwritten",
"handschriftlich mit Bleistift" => "handwritten",
"mit schwarzer Kreide" => "handwritten",
"mit schwarzer Kreide - Signatur" => "handwritten",
"Beschriftung auf Plakette (handschriftlich)" => "handwritten",
"handschriftlich - Beschriftung durch Hersteller*in" => "handwritten",
"Beschriftung" => "handwritten",
"Beschriftung (handschriftlich)" => "handwritten",
"Beschriftung (mittig)" => "handwritten",
"Beschriftung (spiegelverkehrt und gedreht)" => "handwritten",
"Beschriftung (spiegelverkehrt)" => "handwritten",
"Beschriftung auf Montierung (handschriftlich)" => "handwritten",
@@ -45,12 +51,33 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Titel (handschriftlich)" => "handwritten",
"Widmung (handschriftlich)" => "handwritten",
"Text" => "handwritten",
"im Stein" => "handwritten",
"im Stein - Beschriftung" => "handwritten",
# Handwriting
"aufgemalt/geschrieben" => "handwritten",
"Aufschrift" => "handwritten",
"Aufschrift (Bleistift)" => "handwritten",
'handschirftlich - Handschrift' => 'handwritten', // Handwritten
'handschirftlich mit Bleistift - Signatur' => 'handwritten', // Handwritten
'handschriflich mit Bleistift - Handschrift' => 'handwritten', // Handwritten
'handschriflich mit Bleistift - Signatur' => 'handwritten', // Handwritten
'handschrifltich mit Bleistift - Signatur' => 'handwritten', // Handwritten
'handschriftich mit Bleistift - Signatur' => 'handwritten', // Handwritten
'handschriftlich - Handschrift' => 'handwritten', // Handwritten
'handschriftlich mit Bleisift - Signatur' => 'handwritten', // Handwritten
'handschriftlich mit Bleistift - Beschriftung' => 'handwritten', // Handwritten
'handschriftlich mit Bleistift - Handschrift' => 'handwritten', // Handwritten
'handschriftlich mit Feder - Signatur' => 'handwritten', // Handwritten
'handschriftlich mit Kohle - Signatur' => 'handwritten', // Handwritten
'handschriftlich mit Kugelschreiber - Handschrift' => 'handwritten', // Handwritten
'handschriftlich mit schwarzer Kreide - Signatur' => 'handwritten', // Handwritten
'handschriftliche Dedikation - Handschrift' => 'handwritten', // Handwritten
'handschriftllich mit Bleistift - Handschrift' => 'handwritten', // Handwritten
'handschriftllich mit Bleistift - Signatur' => 'handwritten', // Handwritten
'hanschriftlich mit Bleistift - Signatur' => 'handwritten', // Handwritten
'marking' => 'handwritten', // Handwritten
"Aufschrift mit Tinte" => "handwritten",
"Beischrift" => "handwritten",
"Benennung" => "handwritten",
@@ -98,7 +125,6 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"geschrieben (schwarzer Filzstift)" => "handwritten",
"geschrieben mit schwarzer Ölfarbe" => "handwritten",
"geschrieben mit schwarzer Farbe" => "handwritten",
"Künstlersignatur" => "handwritten",
"Kugelschreiber,Bleistift" => "handwritten",
"Kugelschreiber" => "handwritten",
"Kulibeschriftung auf der Rückseite" => "handwritten",
@@ -128,7 +154,7 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"signiert und datiert" => "handwritten",
"Signiert" => "handwritten",
"signiert, mit Bleistift geschrieben" => "handwritten",
"Signatur mit Kugelschreiber" => "handwritten",
"handschriftlich mit Bleistift - Marke" => "handwritten",
"signiert, mit blauer Tinte geschrieben" => "handwritten",
"signiert, mit schwarzer Tinte geschrieben" => "handwritten",
"Tinte" => "handwritten",
@@ -158,6 +184,7 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Bemalung" => "painted",
"bemalt" => "painted",
"gemalt" => "painted",
"Gemalt" => "painted",
"signiert, gemalt" => "painted",
"Wappen (gemalt)" => "painted",
@@ -179,6 +206,7 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Etikett" => "glued", // This whole value doesn't make sense
"Etiketten" => "glued",
"etikettiert" => "glued",
"schriftlich - Aufkleber" => "glued",
"Adressaufkleber des Voreigentümers" => "glued",
"Klebezettel (maschienengeschrieben)" => "glued",
@@ -223,9 +251,17 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Druck, weiße Schrift" => "overprint",
"gedruckt und geprägt" => "overprint",
"gdruckt" => "overprint",
'gedruckt - Inschrift' => 'overprint', // Overprint
'gedruckt - Signatur' => 'overprint', // Overprint
'gedruckt - Stempel' => 'overprint', // Overprint
'gedruckt im Stein - Beschriftung' => 'overprint', // Overprint
'gedruckt im Stein - Inschrift' => 'overprint', // Overprint
'gedruckt im Stein - Signatur' => 'overprint', // Overprint
"gerduckt" => "overprint",
"goldener Druck mit Ornamenten und Zierrahmen" => "overprint",
"Golddruck" => "overprint",
"Titel mit Signatur (gedruckt)" => "overprint",
"Bechriftung (gedruckt)" => "overprint",
"Seriennummer" => "overprint",
"Textaufdruck" => "overprint",
"gedruckt und gestempelt" => "overprint",
@@ -243,6 +279,7 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"schwarzer Aufdruck" => "overprint",
"schwwarzer Aufdruck" => "overprint",
"geplottert" => "overprint",
"gedruckt - Beschriftung" => "overprint",
"gedruckt und eingeschoben" => "overprint",
"gedruckt und eingeschoben, kursiv" => "overprint",
"Druckerei-Vermerk" => "overprint",
@@ -252,6 +289,7 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Beschriftung auf Schmuckrahmen (gedruckt)" => "overprint",
"Datierung (gedruckt)" => "overprint",
"Titel (gedruckt)" => "overprint",
"Titel (gedruckt)" => "overprint",
"Wappen (gedruckt)" => "overprint",
"Widmung (gedruckt)" => "overprint",
@@ -274,25 +312,30 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Brennstempel" => "burnt_in",
# Stamped
"stamped" => "stamp",
"gestempelt" => "stamp",
"Stempel (rund)" => "stamp",
"Stempel" => "stamp",
"Beschriftung (geprägt)" => "stamp",
"blauer Stempel" => "stamp",
"Eichstempel" => "stamp",
"Eingangstempel (rot)" => "stamp",
"Farbstempel" => "stamp",
"Stempel,Kugelschreiber" => "stamp",
"mit Metallstempel eingedrückt" => "stamp",
"gestempelt" => "stamp",
"Marke" => "stamp",
"Marke und Werbestempel" => "stamp",
"mit Metallstempel eingedrückt" => "stamp",
"Prägestempel" => "stamp",
"Prägestempel des Fotografen" => "stamp",
"roter Stempel" => "stamp",
"schwarz gestempelt" => "stamp",
"Signaturenstempel" => "stamp",
"stamped" => "stamp",
'gestemnpelt - Stempel' => 'stamp', // Stamped
'gestempelt - Signatur' => 'stamp', // Stamped
'gestempelt - Stempel' => 'stamp', // Stamped
"Stempel" => "stamp",
"Stempel (rund)" => "stamp",
"Stempel,Kugelschreiber" => "stamp",
"Stempel eingeprägt" => "stamp",
"Stempelaufdruck" => "stamp",
'Signatur gestempelt - Signatur' => 'stamp', // Stamped
"Beschriftung (gestempelt)" => "stamp",
"Beschriftung auf Montierung (gestempelt)" => "stamp",
@@ -314,6 +357,7 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Nummer graviert, gedruckt" => "engraving",
"eingraviert und geätzt" => "engraving",
"Schnitt" => "engraving",
"Beschriftung (graviert)" => "engraving",
# Screwed on
"angeschraubt" => "screwed",
@@ -344,6 +388,7 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Prägung" => "embossing",
"geflechelt" => "embossing",
"Inschrift, geprägt" => "embossing",
"Signatur (geprägt)" => "embossing",
"schwarze Prägung" => "embossing",
"aufgesetzt und genutet, eingeprägt" => "embossing",
"mit eingeprägtem Golddruck" => "embossing",
@@ -374,18 +419,28 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Jugendstilornamente" => "embroidered",
# Punched
"gestanzt" => "punched",
"geschlagen" => "punched",
"gehämmert" => "punched",
"Beschriftung (ziseliert)" => "punched",
"eingestanzt" => "punched",
"eingestanzt; ziseliert" => "punched",
"gehämmert" => "punched",
"geschlagen" => "punched",
"gestanzt" => "punched",
"gestanzt und bemalt" => "punched",
"ziseliert" => "punched",
# Scarified
"geritzt" => "scarified",
"eingeritzt" => "scarified",
"handschliff" => "scarified",
"Schliff" => "scarified",
'Signatur geritzt - Signatur' => 'scarified', // Scarified
'Signatur geritzt in der Platte - Signatur' => 'scarified', // Scarified
'geritzt - Beschriftung' => 'scarified', // Scarified
'geritzt - Inschrift' => 'scarified', // Scarified
'geritzt - Marke' => 'scarified', // Scarified
'geritzt - Signatur' => 'scarified', // Scarified
'geritzt in der Platte - Beschriftung' => 'scarified', // Scarified
'geritzt in der Platte - Signatur' => 'scarified', // Scarified
# Hallmarked
"gepunzt" => "hallmarked",
@@ -403,19 +458,41 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
"Signatur" => "signature",
"signiert" => "signature",
"farbig bemalt und glasiert" => "signature",
'geruckt - Signatur' => 'signature', // Signature
"gemalt und glasiert" => "signature",
'Signatur gedruckt im Stein - Signatur' => 'signature', // Signature
"Signatur (handschriftlich)" => "signature",
"Signatur (gedruckt)" => "signature",
"Signatur (gemalt)" => "signature",
"Signatur (gezeichnet)" => "signature",
"Gez. u. gest. v. F. Foltz in Darmstadt., Andernach." => "signature",
"Signatur mit Datierung" => "signature",
"Signatur mit Datierung (handschriftlich)" => "signature",
"Signatur mit Datierung (gedruckt)" => "signature",
"Signatur mit Datierung (gemalt)" => "signature",
"Signatur mit Datierung (gestempelt)" => "signature",
"Signatur mit Datierung (gezeichnet)" => "signature",
"Signatur mit Datierung (gedruckt)" => "signature",
"Signatur und Datierung (gedruckt)" => "signature",
"Signatur mit Datum (handschriftlich)" => "signature",
"Signatur mit Datum (gedruckt)" => "signature",
"Signatur mit Datum (gemalt)" => "signature",
"Signatur mit Datum (gestempelt)" => "signature",
"Signatur mit Datum (gezeichnet)" => "signature",
'signatur im Holzstock - Signatur' => 'signature', // Signature
'signatur im Stein - Signatur' => 'signature', // Signature
"Künstlersignatur" => "signature",
"Signatur (geritzt)" => "signature",
"Signatur mit Kugelschreiber" => "signature",
"handschriftlich mit Bleistift - Signatur" => "signature",
"im Stein - Signatur" => "signature",
'Signatur im Holzstock - Signatur' => "signature",
'Signatur im Stein - Signatur' => "signature",
'Signatur in der Platte - Signatur' => "signature",
# Watermark
"Wasserzeichen" => "watermark",
'Wasserzeichen - Wasserzeichen' => 'watermark', // Watermark
];
@@ -429,7 +506,8 @@ final class MDConcMarkingType implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):string {
if (!isset(self::MARKING_TYPES_VERBOSE[$input])) {
throw new MDImporterMissingConcordance("Unknown marking type: " . $input);
MDImporterMissingConcordance::throw("marking", $input);
return "marking"; // Return default in dry-run mode
}
return self::MARKING_TYPES_VERBOSE[$input];

View File

@@ -19,7 +19,7 @@ final class MDConcMeasurementTypes implements MDImporterConcordanceListInterface
*/
public static function getConcordanceTarget(string $input):MDMeasurementType|false {
return match($input) {
$output = match($input) {
// Just list entries
"Allgemein",
@@ -64,6 +64,10 @@ final class MDConcMeasurementTypes implements MDImporterConcordanceListInterface
"base",
"target",
"Modell",
"Rundformat",
"Quadratisch",
"Bauch",
"Oval",
"",
"Plattengröße (Höhe x Breite)",
"Sockel (Höhe x Tiefe x Breite)",
@@ -100,9 +104,12 @@ final class MDConcMeasurementTypes implements MDImporterConcordanceListInterface
"Bemalte Bildfläche (Höhe x Breite)",
"Plattengröße (Foto)",
"Andere Maße",
"Halsweite (Unterlage)",
"Format",
"Stichhöhe",
"Maße Transport",
"Querformat",
"Hochformat",
"Länge x Breite x Höhe",
"Länge x Breite x Tiefe",
"Länge x Breite",
@@ -158,6 +165,7 @@ final class MDConcMeasurementTypes implements MDImporterConcordanceListInterface
"Kistenmass",
"Kistenmass (Höhe)",
"Lichtmass",
"Randdurchmesser",
"Kistenmass (Tiefe)",
"Kistenmass (Breite)",
"Suffix",
@@ -166,6 +174,7 @@ final class MDConcMeasurementTypes implements MDImporterConcordanceListInterface
"CC",
"Eisen",
"mm",
"Bauchdurchmesser",
"Größe",
"CdV",
"Stichhöhe (Höhe x Breite)" => false,
@@ -174,37 +183,287 @@ final class MDConcMeasurementTypes implements MDImporterConcordanceListInterface
"(Höhe)",
" (Höhe)",
"Höhe (gesamt)",
"Höhe (Gesamtmaß)",
"Höhe (Objekt)",
"Höhe (Etui)",
"Höhe (Heft)",
"Höhe (Foto)",
"Höhe (Dose)",
"Höhe (Außenmaß)",
"Höhe (netto)",
"Höhe (a mit b-d)",
"Höhe (e)",
"Höhe (S 6289/5a)",
"Höhe (S 6289/5b)",
"Höhe (S 6291/3)",
"Höhe (S 6291/4)",
"Höhe (S 6291/5)",
"Höhe (S 6291/6)",
"Höhe (S 6295/3)",
"Höhe (S 6295/4)",
"Höhe (S 6295/5)",
"Höhe (S 6316/1)",
"Höhe (S 6316/2)",
"Höhe (S 6316/3)",
"Höhe (S 6316/4)",
"Höhe (S 6316/5)",
"Höhe (S 6418a)",
"Höhe (aufgeklappt)",
"Höhe (S 6419a)",
"Höhe (a)",
"Höhe (a mit b)",
"Höhe (S 6519/1)",
"Höhe (S 6530/1)",
"Höhe (S 6542/1)",
"Höhe (S 6549/1-3)",
"Höhe (S 6552/1-5)",
"Höhe (je Band)",
"Höhe (ohne Schnur)",
"Höhe (S 6560/1a-c =)",
"Höhe (S 6561/10 = größter)",
"Höhe (S 6561/13, andere)",
"Höhe (S 6561/18,)",
"Höhe (Nadel auf Papier)",
"Höhe (Hose in Ver-)",
"Höhe (einzelnes Tütchen)",
"Höhe (1)",
"Höhe (a-c)",
"Höhe (Kanne)",
"Höhe (S 6832/1)",
"Höhe (a und b)",
"Höhe (je Bild)",
"Höhe (S 6844/1)",
"Höhe (S 6844/2)",
"Höhe (je Liste)",
"Höhe (je Plan außer 3b)",
"Höhe (Platte in Hülle)",
"Höhe (S 6852/1)",
"Höhe (Druckstock)",
"Höhe (Blatt/Platte)",
"Höhe (ausgeklappt)",
"Höhe (Velinpapier)",
"Höhe (Chinapapier)",
"Höhe (Blindplatte)",
"Höhe größtes Stück",
"height",
"height (overall)",
"Höhe (Trägermaterial)",
"Lichtmass (Höhe)",
"Bruttomass (Höhe)",
"Kartierung (Höhe)",
"Masstab (Höhe)",
"Sitzhöhe (Höhe)",
"Höhe (Platte)",
'Höhe (Untersatzkarton)',
"Außenmaß (Höhe)",
"Objektmaß (Höhe)",
"Objektmass (Höhe)",
'Höhe (Holzstock)',
'Höhe (Untersatzbogen)',
'Höhe (Buchblock)',
'Höhe (Buchblock ohne Einband)',
'Höhe (Buchblock mit Einband)',
'Höhe (Darstellung ohne Schrift)',
'Höhe (Stein)',
'Höhe (Schuber)',
'Höhe (Karton)',
'Höhe (Einleger)',
'Höhe (Einleger 1)',
'Höhe (Einleger 2)',
'Höhe (Einleger 3)',
'Höhe (EInleger 3)',
'Höhe (Einleger 4)',
'Höhe (Einleger 5)',
'Höhe (Einleger 6)',
'Höhe (Einleger 7)',
'Höhe (Einleger 4-6)',
'Höhe (Einleger 8)',
'Höhe (Einleger 9)',
'Höhe (Einleger 10)',
'Höhe (Einleger 11)',
'Höhe (Einleger 12)',
'Höhe (Einleger 13)',
'Höhe (Einleger 14)',
'Höhe (Einleger 15)',
'Höhe (Einleger 16)',
'Höhe (Einleger 17)',
'Höhe (Einleger 18)',
'Höhe (Einleger 19)',
'Höhe (Einleger 20)',
'Höhe (Einleger 21)',
'Höhe (Einleger 22)',
'Höhe (Einleger 23)',
'Höhe (Einleger 24)',
"Höhe (S 6530/2)",
"Höhe (S 6542/2)",
"Höhe (S 6549/4-5)",
"Höhe (S 6552/6)",
"Höhe (S 6832/2)",
"Höhe (S 6845/3b)",
"Höhe (S 6852/2a-b)",
"Höhe (S 6877/3)",
"Höhe (S 6914/2)",
"Höhe (S 6931/2)",
"Höhe (S 6941/2)",
"Höhe (S 6962/7)",
"Höhe (S 7083/2)",
"Höhe (S 7135/1b)",
"Höhe (5)",
"Höhe (S 6561/11)",
"Höhe (S 6542/5)",
"Höhe (S 7135/3)",
"Höhe (S 7141/2)",
"Höhe (Springerle in Tüte)",
"Höhe (b)",
"Höhe (e und f)",
"Höhe (eine Glühbirne)",
"Höhe (gesamter Stapel)",
"Höhe (gesamter Stapel)[67/4521]",
"Höhe (S 6877/1 u. 2)",
"Höhe (je Album)",
"Höhe (1)",
"Höhe (Griff, beide Hälften)",
"Höhe (1)",
"Höhe (S 6914/1)",
"Höhe (gesamter Bogen)",
"Höhe (Springerle)",
"Höhe (S 6931/1)",
"Höhe (S 6941/1)",
"Höhe (S 6962/1-6, je)",
"Höhe (a mit b)",
"Höhe (je Ziegel)",
"Höhe (S 6519/7)",
"Höhe (S 6519/8)",
"Höhe (S 6519/9)",
"Höhe (1-4)",
"Höhe (je)",
"Höhe (Tafel)",
"Höhe (Plakette)",
"Höhe (a)",
"Höhe (Insgesamt)",
"Höhe (S 7083/1)",
"Höhe (Stich ohne Rahmen)",
"Höhe (pro Plombe)",
"Höhe (3)",
"Höhe (3-4)",
"Höhe (Haube)",
"Höhe (S 6519/4)",
"Höhe (S 6542/4)",
"Höhe (S 7135/2)",
"Höhe (d)",
"Höhe (a-b)",
"Höhe (1)",
"Höhe (1)",
"Höhe (je Tuch)",
"Höhe (a)",
"Höhe (1 und 2, je a-b)",
"Höhe (S 7135/1a)",
"Höhe (S 7141/1)",
"Höhe (je Vierer-Bogen)",
"Höhe (a und b)",
"Höhe (a)",
"Höhe (b und d)",
"Höhe (S 7408/2)",
"Höhe (je Teller)",
"Höhe (a)",
"Höhe (a und c)",
"Höhe (Eimerchen)",
"Höhe (S 7408/1)",
"Höhe (a mit b)",
"Höhe (m. Rahmeninkl.Aufhä.)",
"Höhe (a)",
"Höhe (a mit b)",
'Höhe (Passepartout)',
'Höhe (Passepartout Standardformat)',
'Höhe (Unterlage)',
'Höhe (Buch)',
'Höhe (Jeder Druck)',
'Höhe (Gesamthöhe)',
"Höhe (1 Tassengedeck)",
"Höhe (1 und 2, je c-e)",
"Höhe (2)",
"Höhe (5-6)",
"Höhe (Nadeln in Verpack.)",
"Höhe (S 6418b)",
"Höhe (S 6419b)",
"Höhe (S 6542/3)",
"Höhe (S 6877/4)",
"Höhe (S 6914/3)",
"Höhe (S 6962/8)",
"Höhe (S 7083/3)",
"Höhe (S 7135/1c)",
"Höhe (Höhe)",
"Höhe (Mappe)",
"Höhe (c)",
"Höhe (g mit h)",
"Reliefhöhe" => MDMeasurementType::height,
"Länge",
"Länge OT",
"Länge H",
"Länge (1)",
"Länge (2)",
"Länge (3)",
"Länge (4)",
"Länge (5)",
"Länge (6)",
"Länge (7)",
"Länge (8)",
"Länge (a)",
"Länge (b)",
"Länge (c)",
"Länge (d)",
"Länge (e)",
"Länge (f)",
"Länge (g)",
"Länge (8)",
"Länge (1c)",
"Länge (Mappe)",
"Tiefe (Mappe)",
"Länge (S 6514/3)",
"Länge (S 6519/3)",
"Länge (S 7139/3)",
"Tiefe (S 6553/2)",
"Länge (S 6398/21)",
"Länge (S 6398/22)",
"Länge (1f)",
"Länge (S 6519/6)",
"Länge (S 7139/6)",
"Länge (S 7139/7)",
"Länge (S 7139/8)",
"Länge (S 7139/9)",
"Länge (ausgeklappt)",
"length",
"(Länge)",
" (Länge)",
"Länge/Tiefe",
"Länge / Tiefe",
"Lichtmass (Länge)",
"Lichtmass (Tiefe)",
"Tiefe",
"Tiefe (mit Hinterrad in Fahrtrichtung)",
"Tiefe (zusammengeklappt)",
"Tiefe max.",
"Tiefe min.",
"Tiefe (Etui)",
"Tiefe (Heft)",
"Tiefe (mit eingeklapptem Hinterrad)",
"Tiefe/Länge",
"Tiefe (Rahmen)",
"Tiefe min",
"Tiefe max",
"Tiefe/Länge (Objekt)",
"Außenmaß (Tiefe)",
"Tiefe (Außenmaß)",
"Teife",
"length",
"Länge (1b)",
"Länge (S 6424/4)",
"Länge (S 6514/2)",
"Länge (S 6519/2)",
"Länge (S 6795/2a und b)",
"Länge (S 7069b)",
"Länge (S 7081/3)",
"Länge (S 7139/2)",
"Tiefe (S 6553/1)",
"Tiefe (per Päckchen)",
"Bruttomass (Länge)",
"Bruttomass (Tiefe)",
"Kartierung (Länge)",
@@ -213,10 +472,67 @@ final class MDConcMeasurementTypes implements MDImporterConcordanceListInterface
"Masstab (Tiefe)",
"Sitzhöhe (Länge)",
"Sitzhöhe (Tiefe)",
"Länge (Platte)",
"Tiefe (Platte)",
"Länge (Griff)",
"Tiefe (Griff)",
"Länge (Parierstange)",
"Tiefe (Parierstange)",
"Objektmaß (Länge)",
"Objektmaß (Tiefe)",
"Objektmass (Länge)",
"Objektmass (Tiefe)",
'Länge (Holzstock)',
'Tiefe (Holzstock)',
'Länge (Untersatzbogen)',
'Tiefe (Untersatzbogen)',
'Länge (Buchblock)',
'Tiefe (Buchblock)',
'Länge (Buchblock ohne Einband)',
'Tiefe (Buchblock ohne Einband)',
'Länge (Buchblock mit Einband)',
'Tiefe (Buchblock mit Einband)',
'Länge (Stein)',
'Tiefe (Stein)',
'Länge (Schuber)',
'Tiefe (Schuber)',
'Länge (Karton)',
'Tiefe (Karton)',
'Länge (Einleger)',
'Tiefe (Einleger)',
'Länge (Einleger 1)',
'Tiefe (Einleger 1)',
'Länge (Einleger 2)',
'Tiefe (Einleger 2)',
'Länge (Einleger 3)',
'Tiefe (Einleger 3)',
'Länge (Passepartout)',
'Tiefe (Passepartout)',
'Länge (Unterlage)',
'Tiefe (Unterlage)',
'Länge (Buch)',
'Tiefe (Buch)',
'Länge (Dose)',
'Tiefe (Dose)',
"Länge (1a)",
"Länge (S 7081/1-2)",
"Länge (S 7139/1)",
"Länge (S 6519/8a-e)",
"Länge (S 6514/1)",
"Länge (S 6424/3)",
"Länge (mit Kordel)",
"Länge (S 6795/1a und b)",
"Länge (1d)",
"Länge (S 6419c)",
"Länge (S 7139/4)",
"Länge (mit Handhabe)",
"Länge (1e)",
"Länge (S 6519/5)",
"Länge (S 6560/1b = Samtband)",
"Länge (S 7139/5)",
"Tiefe (kleinerer Größe)",
"Tiefe (etwas kleiner)",
"Tiefe (ähnlicher Größe)",
"depth",
"Dicke" => MDMeasurementType::length,
@@ -224,29 +540,170 @@ final class MDConcMeasurementTypes implements MDImporterConcordanceListInterface
"Breite OT",
"Breite H",
"Breite (ausgeklappt)",
"Breite (Jeder Druck)",
"Breite (Etui)",
"Breite (Heft)",
"Breite (netto)",
"Breite (Außenmaß)",
"Breite (Foto)",
"Breite (a)",
"Breite (S 7069a)",
"Breite (aufgeschlagen)",
"Breite (S 6799/1)",
"Breite größtes Stück",
"Breite (gesamt)",
"Breite (Druckstock)",
"Breite (Gesamtmaß)",
"Breite (Objekt)",
"Breite (Platte)",
'Breite (Darstellung ohne Schrift)',
'Breite (China)',
'Breite (Untersatzkarton)',
"(Breite)",
"Lichtmass (Breite)",
" (Breite)",
"Breite (ein Nagel)",
"width",
"Breite (Breite)",
"Breite (Mappe)",
"Breite (S 6576/1)",
"Breite (mit Griffen)",
"Breite (mit Handhabe)",
"Breite (BH, S 6561/1 - 9 mit)",
"Breite (Ensemble im Kästchen)",
"Breite (Hüfthalter)",
"Breite (S 6561/19-20 mit)",
"Breite (S 6576/2a-b)",
"Breite (S 6799/2a-b)",
"Breite (S 7069a und b)",
"Breite (a-d)",
"Breite (b)",
"Breite (c)",
"Breite (gesamt mit Handhabe)",
"Breite (mit Henkel)",
"Breite (packung)",
"width (overall)",
"Breite (Griff)",
"Außenmaß (Breite)",
"Breite (Trägermaterial)",
"Bruttomass (Breite)",
"Objektmaß (Breite)",
"Objektmass (Breite)",
"Kartierung (Breite)",
"Masstab (Breite)",
"Sitzhöhe (Breite)",
"Breite (Velinpapier)",
"Breite (Chinapapier)",
"Breite (Blindplatte)",
'Breite (Holzstock)',
'Breite (Untersatzbogen)',
'Breite (Buchblock)',
'Breite (Buchblock ohne Einband)',
'Breite (Buchblock mit Einband)',
'Breite (Buchblock mit Einabnd)',
'Breite (Stein)',
'Breite (Schuber)',
"Breite (S 6560/1a = Anhänger)",
"Breite (vergleichbarer od.)",
'Breite (Karton)',
'Breite (Einleger)',
'Breite (Einleger 1)',
'Breite (Einleger 2)',
'Breite (Einleger 3)',
'Breite (Einleger 4)',
'Breite (EInleger 4)',
'Breite (Einleger 5)',
'Breite (Einleger 6)',
'Breite (EInleger 6)',
'Breite (Einleger 7)',
'Breite (EInleger 7)',
'Breite (Einleger 8)',
'Breite (Einleger 9)',
'Breite (Einleger 10)',
'Breite (Einleger 11)',
'Breite (Einleger 12)',
'Breite (Einleger 13)',
'Breite (Einleger 14)',
'Breite (Einleger 15)',
'Breite (Einleger 16)',
'Breite (EInleger 16)',
'Breite (Einleger 17)',
'Breite (Einleger 18)',
'Breite (Einleger 19)',
'Breite (Einleger 20)',
'Breite (Einleger 21)',
'Breite (Passepartout)',
'Breite (Passepartout Standardformat)',
'Breite (Unterlage)',
'Breite (Buch)',
'Breite (Dose)',
"Stärke",
"Schenkelbreite (Breite)" => MDMeasurementType::width,
"Durchmesser",
"Durchmesser (Schaft)",
"Durchm.",
"Durchmesser (mit Dicke)",
"Durchmesser (Boden)",
"Mündung (Durchmesser)",
"Rahmenaußenmaß Durchmesser",
"diameter",
"Durchmesser (a)",
"Durchmesser (b)",
"Durchmesser (c)",
"Durchmesser (d)",
"Durchmesser (e)",
"Durchmesser (f)",
"Durchmesser (g)",
"Durchmesser (1)",
"Durchmesser (2)",
"Durchmesser (3)",
"Durchmesser (4)",
"Durchmesser (S 7133/1)",
"Durchmesser (S 7133/3)",
"Durchmesser (S 7133/4)",
"Durchmesser (S 7134/1)",
"Durchmesser (S 7139/10)",
"Durchmesser (S 7139/11)",
"Durchmesser (S 6406/9a)",
"Durchmesser (S 6406/10a)",
"Durchmesser (S 6406/11a)",
"Durchmesser (S 6406/12a)",
"Durchmesser (S 6406/13a)",
"Durchmesser (S 6406/14a)",
"Durchmesser (S 6406/15a)",
"Durchmesser (S 6406/16a)",
"Durchmesser (S 6406/17a)",
"Durchmesser (S 6406/10c)",
"Durchmesser (S 6406/11c)",
"Durchmesser (S 6406/12c)",
"Durchmesser (S 6406/13c)",
"Durchmesser (S 6406/14c)",
"Durchmesser (S 6406/15b)",
"Durchmesser (S 6406/16b)",
"Durchmesser (S 6406/17b)",
"Durchmesser (S 6406/9c)",
"Durchmesser (S 6406/9d)",
"Durchmesser (S 6406/9e)",
"Durchmesser (S 6406/9f)",
"Durchmesser (S 6406/9g)",
"Durchmesser (Haube)",
"Durchmesser (S 6406/10d)",
"Durchmesser (S 6406/11d)",
"Durchmesser (Stand)",
"Durchmesser (Fuß)",
"Durchmesser (Rand /2)",
"Durchmesser (S 6406/10b)",
"Durchmesser (S 6406/11b)",
"Durchmesser (S 6406/12b)",
"Durchmesser (S 6406/13b)",
"Durchmesser (S 6406/14b)",
"Durchmesser (S 6406/9b)",
"Durchmesser (S 7133/2)",
"Durchmesser (S 7133/5)",
"Durchmesser (oberer Rand)",
"Durchmesser (Rand /1)",
"Durchmesser (Foto)",
"Außenmaß (Durchmesser)",
"Durchmesser in Richtung Bohrung",
"Durchmesser quer zur Bohrung",
"Durchmesser Fuß",
@@ -255,10 +712,13 @@ final class MDConcMeasurementTypes implements MDImporterConcordanceListInterface
"Durchmesser unten",
"Durchmesser (Höhe)",
"Durchmesser (Breite)",
"Durchmesser (Tiefe)",
"Durchmesser (Länge)",
"Durchmesser (Dose)",
"Objektmaß (Durchmesser)",
"Objektmass (Durchmesser)",
"Durchmesser (Blatt)",
"Durchmesser (Platte)",
"Durchmesser (Rand)",
"d",
"Ø" => MDMeasurementType::diameter,
@@ -267,41 +727,173 @@ final class MDConcMeasurementTypes implements MDImporterConcordanceListInterface
"Stärke",
"Wandstärke (Durchmesser)" => MDMeasurementType::wall,
"Length of socle",
"Tiefe/Länge (Sockel)",
"Länge (Sockel)" => MDMeasurementType::length_socle,
"Height of socle",
"Höhe (Sockel)" => MDMeasurementType::height_socle,
"Width of socle",
"Breite (Sockel)" => MDMeasurementType::height_socle,
"Höhe (Blatt)",
"Höhe (Blattmaß)",
"Höhe (Blattmass)",
"Blattmaß (Höhe)",
"Höhe (Blatt/Platte)",
"Höhe (Blatt (mittig gefalzt))",
"Blattmass (Höhe)" => MDMeasurementType::height_sheet_size,
"Breite (Blatt)",
"Breite (Blattmass)",
"Breite (Blattmaß)",
"Blattmaß (Breite)",
"Breite (Batt)",
"Breite (Blatt/Platte)",
"Breite (Blattplatte)",
"Breite (Blatt (mittig gefalzt))",
"Blattmass (Breite)" => MDMeasurementType::width_sheet_size,
"Blattmaß (Länge)",
"Blattmaß (Tiefe)",
"Länge (Blatt)",
"Tiefe (Blatt)",
"Länge (Blattmaß)",
"Tiefe (Blattmaß)",
"Länge (Blattmass)",
"Tiefe (Blattmass)",
"Blattmass (Länge)",
"Tiefe/Länge (Blatt)",
"Blattmass (Tiefe)" => MDMeasurementType::length_sheet_size,
"Höhe (Bild)",
"Höhe (Bildmaß)",
"Höhe (Bildmass)",
"Höhe (Darstellung)",
"Höhe (Darsetllung)",
"Höhe (Blatt/Darstellung)",
"Bildmaß (Höhe)",
"Höhe (Grafik ohne Pass.)",
"Höhe (Grafik ohne Pass.)",
"Höhe (Grafik ohne Pass.)",
"Höhe (Grafik ohne Pass.)",
"Höhe (Grafik ohne Pass.)",
"Höhe (Grafik ohne Passep.)",
"Höhe (Grafik ohne Passep.)",
"Höhe (Platte/Bild)",
"Höhe (Druckstock/Bild)",
"Höhe max (Darstellung)",
"Höhe max (Platte/Bild)",
"Höhe (Chine collé)",
"Höhe (Batt)",
"Bildmass (Höhe)" => MDMeasurementType::height_image_size,
"Breite (Bild)",
"Breite (Bildmaß)",
"Breite (Bildmass)",
"Breite (Darstellung)",
"Breite (Darsetllung)",
"Breite (Blatt/Darstellung)",
"Bildmaß (Breite)",
"Breite (Platte/Bild)",
"Breite (Bild/Platte)",
"Breite (Druckstock/Bild)",
"Breite max (Darstellung)",
"Breite max (Platte/Bild)",
"Breite (Chine collé)",
"Bildmass (Breite)" => MDMeasurementType::width_image_size,
"Bildmaß (Länge)",
"Bildmaß (Tiefe)",
"Tiefe (Darstellung)",
"LängLängee (Darstellung)",
"Länge (Druckstock/Bild)",
"Tiefe (Druckstock/Bild)",
"Bildmass (Länge)",
"Bildmass (Tiefe)" => MDMeasurementType::length_image_size,
"Höhe (Rahmen)",
"Rahmenmaß (Höhe)",
"Rahmenmass (Höhe)" => MDMeasurementType::height_frame,
"Breite (Rahmen)",
"Rahmenmaß (Breite)",
"Rahmenmass (Breite)" => MDMeasurementType::width_frame,
"Tiefe (Rahmen)",
"Rahmenmaß (Länge)",
"Rahmenmaß (Tiefe)",
"Rahmenmass (Länge)",
"Rahmenmass (Tiefe)" => MDMeasurementType::length_frame,
"Höhe min.",
'Höhe min (Darstellung)',
'Höhe min (Druckstock)',
'Höhe min (Blatt)',
'Höhe min (Platte)',
'Höhe min (Einleger)',
'Höhe min (Einleger 1)',
'Höhe min (Einleger 2)',
'Höhe min (Einleger 3)',
'Höhe min (Einleger 4)',
'Höhe min (Einleger 5)',
"Höhe min (Platte/Bild)",
'Höhe min (Schuber)' => MDMeasurementType::height_min,
"Höhe max.",
'Höhe max (Darstellung)',
'Höhe max (Blatt)',
'Höhe max (Platte)',
'Höhe max (Druckstock)',
'Höhe max (Einleger)',
'Höhe max (Einleger 1)',
'Höhe max (Einleger 2)',
'Höhe max (Einleger 3)',
'Höhe max (Einleger 4)',
'Höhe max (Einleger 5)',
'Höhe max (Schuber)' => MDMeasurementType::height_max,
"Länge min.",
"Tiefe min.",
'Länge min (Blatt)',
'Tiefe min (Blatt)' => MDMeasurementType::length_min,
"Länge max.",
"Tiefe max.",
"Länge max (Blatt)",
"Tiefe max (Blatt)" => MDMeasurementType::length_max,
"Breite min.",
'Breite min (Blatt)',
'Breite min (Platte)',
'Breite min (Einleger)',
'Breite min (Darstellung)',
"Breite min (Druckstock)",
"Breite min (Platte/Bild)",
'Breite min (Schuber)' => MDMeasurementType::width_min,
"Breite max.",
'Breite max (Blatt)',
'Breite max (Platte)',
'Breite max (Einleger)',
'Breite max (Einleger 1)',
'Breite max (Einleger 2)',
'Breite max (Einleger 3)',
'Breite max (Einleger 4)',
'Breite max (Einleger 5)',
'Breite max (Einleger 4-6)',
'Breite max (Darstellung)',
"Breite max (Druckstock)",
'Breite max (Schuber)' => MDMeasurementType::width_max,
"Diameter min." => MDMeasurementType::diameter_min,
"Diameter max." => MDMeasurementType::diameter_max,
"Durchmesser (Rahmen)" => MDMeasurementType::diameter_frame,
"weight",
"Gewicht (Höhe)",
"Lauf (Gewicht)",
"Gewicht (Breite)",
"Gewicht (Tiefe)",
"Gewicht (Länge)",
@@ -319,9 +911,35 @@ final class MDConcMeasurementTypes implements MDImporterConcordanceListInterface
"orientation",
"Stempelstellung" => MDMeasurementType::die_axis,
default => throw new MDImporterMissingConcordance("Unmapped specific measurement type: " . $input),
"Länge (Klinge)" => MDMeasurementType::length_blade,
"Breite (Klinge)" => MDMeasurementType::width_blade,
"Höhe (Klinge)" => MDMeasurementType::height_blade,
"Durchmesser (Darstellung)",
"Durchmesser (Bild)" => MDMeasurementType::diameter_image_size,
"Bodenhöhe",
"Höhe (Boden)" => MDMeasurementType::height_of_base,
"Bodenbreite",
"Breite (Boden)" => MDMeasurementType::width_of_base,
"Bodenlänge",
"Länge (Boden)" => MDMeasurementType::length_of_base,
"Bodendurchmesser",
"Durchmesser (Boden)" => MDMeasurementType::diameter_of_base,
default => null,
};
if ($output === null) {
MDImporterMissingConcordance::throw("measurements", $input);
return MDMeasurementType::diameter_of_base; // Return default in dry-run mode
}
return $output;
}
}

View File

@@ -26,7 +26,8 @@ final class MDConcObjectForms implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):string {
if (!isset(self::FORMS_LIST[$input])) {
throw new MDImporterMissingConcordance("Unknown form type: " . $input);
MDImporterMissingConcordance::throw("form/shape", $input);
return 'cube'; // Return default in dry-run mode
}
return self::FORMS_LIST[$input];

View File

@@ -16,19 +16,77 @@ final class MDConcObjectTagRelTypes implements MDImporterConcordanceListInterfac
'' => 'tag',
'tag' => 'tag',
'schlagwort' => 'tag',
'Motivgattung' => 'tag',
'motivgattung' => 'tag',
'Assoziation' => 'tag',
'assoziation' => 'tag',
'description' => 'tag',
'Druckvorlage' => 'tag',
'emotion' => 'tag',
'atmosphäre' => 'tag',
'schwarz-grau' => 'tag',
'schwarzgrau' => 'tag',
'schwarz' => 'tag',
'hellbraun' => 'tag',
'schwarz-grau fleckig' => 'tag',
'schwarzbraun' => 'tag',
'rötlich' => 'tag',
'graubraun' => 'tag',
'schlagwort hist.ereignis' => 'tag',
'schlagwort thema' => 'tag',
"motive" => "article",
"motiv" => "article",
'Objektart' => 'object_type',
'objektart' => 'object_type',
'object_type' => 'object_type',
"motive" => "display_subject",
"motiv" => "display_subject",
"display" => "display_subject",
"Bildelement" => "display_subject",
"display_subject" => "display_subject",
"material" => "material",
"technique" => "technique",
"technik" => "technique",
'thema' => 'topic',
'topic' => 'topic',
'erwähnt' => 'mentioned',
'mentioned' => 'mentioned',
'taxon' => 'taxon',
];
// Maps to event type
private const RELATION_TYPES_MAPPED_TO_EVENTS = [
'\'datierung\'' => ['event_type' => 24, 'target_section' => 'time'],
'datierung' => ['event_type' => 24, 'target_section' => 'time'],
'schlagwort zeitraum' => ['event_type' => 24, 'target_section' => 'time'],
'person' => ['event_type' => 23, 'target_section' => 'actor'],
];
/**
* Returns the mapped event type and event type target
* of a supposed tag-object relationship name.
*
* @param string $input Input string (relation type name).
*
* @return array{event_type: int, target_section: 'time'|'actor'|'place'}
*/
public static function getMappedEventType(string $input):array {
if (isset(self::RELATION_TYPES_MAPPED_TO_EVENTS[strtolower($input)])) {
return self::RELATION_TYPES_MAPPED_TO_EVENTS[strtolower($input)];
}
MDImporterMissingConcordance::throw("object-tag relationship", $input);
return ['event_type' => 24, 'target_section' => 'time'];
}
/**
* Require a function for getting the concordance target.
*
@@ -41,11 +99,18 @@ final class MDConcObjectTagRelTypes implements MDImporterConcordanceListInterfac
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)];
if (isset(self::RELATION_TYPE_NAMES[trim(strtolower($input))])) {
return self::RELATION_TYPE_NAMES[trim(strtolower($input))];
}
throw new MDImporterMissingConcordance("Unknown object-tag relationship type: " . $input);
if (is_numeric($input)) return 'tag';
if (isset(self::RELATION_TYPES_MAPPED_TO_EVENTS[strtolower($input)])) {
throw new MDImporterTagRelationTypeIsEventType("Tag-object relationship type is signifies not tags, but an event component.");
}
MDImporterMissingConcordance::throw("object-tag relationship", $input);
return 'tag'; // Return default in dry-run mode
}
}

View File

@@ -17,6 +17,8 @@ final class MDConcOwnershipStatus implements MDImporterConcordanceListInterface
"Eigentum" => "owned",
"Geschenk" => "owned",
"Besitz" => "owned",
"Owned" => "owned",
"owned" => "owned",
"Kauf" => "owned",
"Fund" => "owned",
"Eigenleistung" => "owned",
@@ -28,6 +30,8 @@ final class MDConcOwnershipStatus implements MDImporterConcordanceListInterface
// Permanent loans
"Dauerleihe" => "permanent_loan",
"Dauerleihgabe" => "permanent_loan",
"Permanent loan" => "permanent_loan",
"permanent loan" => "permanent_loan",
// Loans
"Leihe" => "borrowed",
@@ -39,6 +43,13 @@ final class MDConcOwnershipStatus implements MDImporterConcordanceListInterface
'Third party property' => 'third_party_property',
'Fremdeigentum' => 'third_party_property',
// Deaccessed
'Deaccessed' => 'deaccessed',
'deakzessioniert' => 'deaccessed',
'Deakzessioniert' => 'deaccessed',
'Deakzession' => 'deaccessed',
'Deakzessiert' => 'deaccessed',
];
/**
@@ -54,7 +65,8 @@ final class MDConcOwnershipStatus implements MDImporterConcordanceListInterface
if (isset(self::OWNERSHIP_TYPES_VERBOSE[trim($input)])) {
return self::OWNERSHIP_TYPES_VERBOSE[trim($input)];
}
throw new MDImporterMissingConcordance("Unknown ownership type: " . $input);
MDImporterMissingConcordance::throw("ownership", $input);
return 'deaccessed'; // Return default in dry-run mode
}
return self::OWNERSHIP_TYPES_VERBOSE[$input];

View File

@@ -26,7 +26,9 @@ final class MDConcPlace implements MDImporterConcordanceListInterface {
'Herkunft (Allgemein)' => 1,
'Herstellungsort' => 1,
'Herstellungsland' => 1,
'Herstellung' => 1,
'Entstehungsort' => 1,
'Herstellungsort Hose' => 1,
'Münzstätte' => 1,
// 2: Finding / was found
@@ -106,7 +108,8 @@ final class MDConcPlace implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):int {
if (!isset(self::PLACE_ROLES_TO_EVENT_TYPE[$input])) {
throw new MDImporterMissingConcordance("Unknown place type: " . $input);
MDImporterMissingConcordance::throw("place (in event)", $input);
return 1; // Return default in dry-run mode
}
return self::PLACE_ROLES_TO_EVENT_TYPE[$input];

View File

@@ -13,6 +13,7 @@ final class MDConcSex implements MDImporterConcordanceListInterface {
private const SEXES_LIST = [
'Männlich' => 'male',
'Weiblich' => 'female',
'diverse' => 'other',
];
@@ -26,7 +27,8 @@ final class MDConcSex implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):string {
if (!isset(self::SEXES_LIST[$input])) {
throw new MDImporterMissingConcordance("Unknown sex type: " . $input);
MDImporterMissingConcordance::throw("sex", $input);
return 'other'; // Return default in dry-run mode
}
return self::SEXES_LIST[$input];

View File

@@ -21,9 +21,34 @@ final class MDConcSourceTypes implements MDImporterConcordanceListInterface {
"buch" => "book",
"literatur" => "book",
"document]book" => "book",
'Buchpublikation' => 'book', // Book
'Produkthandbuch' => 'book', // Book
'Produkthandbuch/ Zusatzmaterial??' => 'book', // Book
'Produkthandbuch ' => 'book', // Book
'Buchpublikation ' => 'book', // Book
'Produkthandbuch (Objektart Missing)' => 'book', // Book
'Ausstellungskatalog' => 'book', // Book
'Comicbuch' => 'book', // Book
'Katalog' => 'book', // Book
// Misc
"Weiteres" => "misc",
"document]avm" => "misc",
'Keine Angabe' => 'misc', // Miscelaneous
'Handschriften' => 'misc', // Miscelaneous
'Divers' => 'misc', // Miscelaneous
'Handschrift' => 'misc', // Miscelaneous
'Flyer/Poster' => 'misc', // Miscelaneous
'Comic' => 'misc', // Miscelaneous
'Ordner' => 'misc', // Miscelaneous
'Diskette' => 'misc', // Miscelaneous
'Wissenschaftliche Hausarbeit' => 'misc', // Miscelaneous
// Periodical
'Magazin' => 'periodical', // Periodical
// Proceedings
'Tagungsunterlagen' => 'proceedings', // Proceedings
];
@@ -43,7 +68,8 @@ final class MDConcSourceTypes implements MDImporterConcordanceListInterface {
return self::SOURCE_TYPES[strtolower($input)];
}
throw new MDImporterMissingConcordance("Unknown source type: " . $input);
MDImporterMissingConcordance::throw("source", $input);
return 'proceedings'; // Return default in dry-run mode
}
}

View File

@@ -54,7 +54,8 @@ final class MDConcTime implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):int {
if (!isset(self::TIME_ROLES_TO_EVENT_TYPE[$input])) {
throw new MDImporterMissingConcordance("Unknown time type: " . $input);
MDImporterMissingConcordance::throw("time (in event)", $input);
return 1; // Return default in dry-run mode
}
return self::TIME_ROLES_TO_EVENT_TYPE[$input];

View File

@@ -16,6 +16,9 @@ final class MDConcTitleTypes implements MDImporterConcordanceListInterface {
// Empty
"" => "",
"Objekttitel" => "",
"Werktitel" => "",
"Werktitel deskriptiv" => "",
// Scientific names
"Science" => "Science",
@@ -33,6 +36,13 @@ final class MDConcTitleTypes implements MDImporterConcordanceListInterface {
"mundartl" => "Dialect",
"mundartlich" => "Dialect",
// Professional jargon
'Professional' => 'Professional jargon',
// Sociolect
'Sociolect' => 'Sociolect',
'Soziolekt' => 'Sociolect',
];
/**
@@ -45,7 +55,8 @@ final class MDConcTitleTypes implements MDImporterConcordanceListInterface {
public static function getConcordanceTarget(string $input):string {
if (!isset(self::TITLE_TYPES[$input])) {
throw new MDImporterMissingConcordance("Unknown title type: " . $input);
MDImporterMissingConcordance::throw("title", $input);
return "Dialect"; // Return default in dry-run mode
}
return self::TITLE_TYPES[$input];