lucascranach / importer

MIT License
1 stars 1 forks source link

References um Substruktur ergänzen … #4

Closed cnoss closed 1 year ago

cnoss commented 4 years ago

… und die Info zum Zustand ergänzen.

references -reprints -item1 -item2 -condition: 1 -relatedWorks -item1 -item2

cnoss commented 4 years ago

Beispielobjekt: GWN_LC_HVI-56_79

jhfpereira commented 4 years ago

Habe mir die Daten nochmal angeschaut.

Glaube nicht, dass wir die Condition so leicht aus anderen Feldern ableiten können.

Für das Beispielobjekt finde ich z. B. keine klare Zustandsangabe.

Was man nur findet, ist gelegentlich die Erwähnung von I. Zustand oder II. Zustand im Description-Text oder dem Text zur Signatur. In manchen Fällen wird der Zustand auch als Bemerkung zu einer Referenz angegeben, was aber nicht immer der Fall ist.

Zudem können Grafiken neben einem ersten und zweiten Zustand, ebenfalls einen dritten Zustand besitzen.

Sollte man also am besten nur auf Basis des Druckzustand-Feld in der Sektion 4 den Zustand bestimmen?

<Section SectionNumber="4">
    <Field FieldName="{@Klassifizierung}" Name="Klassifizierung1">
        <FormattedValue>Druckgrafik</FormattedValue>
        <Value>Druckgrafik</Value>
    </Field>
    <Text Name="Text24">
        <TextValue>Klassifizierung:</TextValue>
    </Text>
    <Text Name="Text28">
        <TextValue>Druckzustand/Version:</TextValue>
    </Text>
    <Field FieldName="{@Druckzustand}" Name="Druckzustand1">
        <FormattedValue>II. Zustand#2nd state</FormattedValue>
        <Value>II. Zustand#2nd state</Value>
    </Field>
</Section>

Und welchen Zustand soll eine Grafik erhalten, wenn das Feld leer ist?

jhfpereira commented 4 years ago

Der Importer fügt Grafikobjekten nun ein zusätzliches Feld conditionLevel hinzu. Durch die Art und Weise wie Grafiken durch den Importer gehandhabt bzw. verarbeitet werden, kann diese Information momentan nicht auf Referenzebene hinzugefügt werden, da sonst zuerst alle Grafiken verarbeitet werden müssten, um dann ausgehend der Referenzen, den Zustand auf Basis des referenzierten Grafikobjekt bestimmen zu können.

Deshalb wird der conditionLevel erstmal nur zum Zeitpunkt der Verarbeitung für eine Grafik bestimmt, da man dann auch den direkten Zugriff auf die Klassifizierungsdaten hat.

Aktuell wird nur das condition-Feld unter classification für den Zustand ausgewertet. Dabei wird überprüft, ob eins der folgenden Muster zu finden ist:

^I.\s*Zustand => 1 ^II.\s*Zustand => 2 ^III.\s*Zustand => 3 (es gibt genau eine Grafik, die diesen Zustand aufweist)

Sofern der Zustand einer Grafik nicht bestimmt werden kann, wird auf den Wert 0 zurückgefallen.

Commit: 8f5ab19787c4b8be700d91f650c83972c0066b44

jhfpereira commented 4 years ago

Musste die Muster wie folgt ergänzen und nach Sprache aufsplitten:

[
    'de' => [
        [
            'patterns' => [
                '/^I\.\s*zustand/i',
                '/^1\.\s*auflage/i',
            ],
            'value' =>  1,
        ],
        [
            'patterns' => [
                '/^II\.\s*zustand/i',
                '/^2\.\s*auflage/i',
            ],
            'value' => 2,
        ],
        [
            'patterns' => [
                '/^III\.\s*zustand/i',
                '/^3\.\s*auflage/i',
            ],
            'value' => 3,
        ],
    ],
    'en' => [
        [
            'patterns' => [
                '/^1st\s*state/i',
                '/^1st\s*edition/i',
            ],
            'value' =>  1,
        ],
        [
            'patterns' => [
                '/^2nd\s*state/i',
                '/^2nd\s*edition/i',
            ],
            'value' => 2,
        ],
        [
            'patterns' => [
                '/^3rd\s*state/i',
                '/^3rd\s*edition/i',
            ],
            'value' => 3,
        ],
    ],
]

Commit: 1ed7b9cff6c1bd6963969bde4100b79388b9508a

jhfpereira commented 4 years ago

Die Daten zum Testen ebenfalls schon eingebunden und die Ausgabe entsprechend umgestaltet:

https://lucascranach.github.io/cranach-grafiken-gatsby/de/GWN_LC_HVI-81_105

https://lucascranach.github.io/cranach-grafiken-gatsby/de/GWN_LC_HVI-7_6

Momentan hat jede Zustandsgruppe ihr eigenes Leporello-Item. Evtl. müsste die gruppierte Ausgabe innerhalb der LeporelloGraphicReprintsItem-Komponente passieren.