You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _posts/2023-11-12-ediarumWEB.md
+14-12Lines changed: 14 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -146,7 +146,7 @@ Da jedes Projekt unterschiedliche Anforderungen mit sich bringt, sollen nachfolg
146
146
147
147
# Einrichtung & Erste Schritte
148
148
149
-
Anhand eines[ eispielprojekts](https://digedtnt.github.io/about/#briefsammlung-pipeline-2), in dem mit handgeschriebenen Briefen des Linguisten Hugo Schuchardt (1842-1927) aus dem 19. Jahrhundert bzw. 20. Jahrhundert gearbeitet wird, soll nachfolgend ein möglicher Arbeitsablauf mit dem Publikationstool _ediarum.WEB_ beschrieben werden. In einem ersten Schritt wurden die handgeschriebenen Briefe bereits mittels des OCR/HTR-Tools[Transkribus Lite](https://digedtnt.github.io/transkribus/) transkribiert. Danach wurde der TEI/XML-Export in den TEI/XML-Editor[ FairCopy](https://digedtnt.github.io/faircopy/) ingestiert und tiefergehend annotiert, wobei Named Entities(Personen, Orte und Organisationen) ausgezeichnet wurden. Diese Named Entities wurden im Zuge des ersten Teils der [Transition](https://digedtnt.github.io/transition-faircopy-basic/) aus den Briefen extrahiert und dann mittels des Normalisierungstools _[ba[sic?]](https://digedtnt.github.io/basic/)_ um Normdaten ergänzt (Links auf GND- und GeoNames-Einträge). Danach wurden diese erhobenen Informationen im zweiten Teil der [Transition](https://digedtnt.github.io/transition-faircopy-basic/) wieder mit den Briefen zusammengeführt. In der letzten, hier dokumentierten Phase des Beispielprojekts sollen nun die Möglichkeiten der Publikation der Briefe mittels des Tools _ediarum.WEB_ erprobt werden.
149
+
Anhand eines[Beispielprojekts](https://digedtnt.github.io/about/#briefsammlung-pipeline-2), in dem mit handgeschriebenen Briefen des Linguisten Hugo Schuchardt (1842-1927) aus dem 19. Jahrhundert bzw. 20. Jahrhundert gearbeitet wird, soll nachfolgend ein möglicher Arbeitsablauf mit dem Publikationstool _ediarum.WEB_ beschrieben werden. In einem ersten Schritt wurden die handgeschriebenen Briefe bereits mittels des OCR/HTR-Tools [Transkribus Lite](https://digedtnt.github.io/transkribus/) transkribiert. Danach wurde der TEI/XML-Export in den TEI/XML-Editor [FairCopy](https://digedtnt.github.io/faircopy/) ingestiert und tiefergehend annotiert, wobei Named Entities (Personen, Orte und Organisationen) ausgezeichnet wurden. Diese Named Entities wurden im Zuge des ersten Teils der [Transition](https://digedtnt.github.io/transition-faircopy-basic/) aus den Briefen extrahiert und dann mittels des Normalisierungstools _[ba[sic?]](https://digedtnt.github.io/basic/)_ um Normdaten ergänzt (Links auf GND- und GeoNames-Einträge). Danach wurden diese erhobenen Informationen im zweiten Teil der [Transition](https://digedtnt.github.io/transition-faircopy-basic/) wieder mit den Briefen zusammengeführt. In der letzten, hier dokumentierten Phase des Beispielprojekts sollen nun die Möglichkeiten der Publikation der Briefe mittels des Tools _ediarum.WEB_ erprobt werden.
150
150
151
151
152
152
## 1. Installation einzelner Komponenten
@@ -275,7 +275,7 @@ Danach navigieren wir in den Ordner “letters”, klicken auf das Wolkensymbol
275
275
276
276
{% include image.html url="../data/pipelines/pipeline_2/ediarum_web/img/letters_list.png" description="Die Briefe in der Datenbank" %}
277
277
278
-
* **Anlegen der Objekte für Personen, Orte und Organisationen: **In gleicher Weise legen wir nun Objekte für die in unserem Named-Entity-Register verzeichneten Personen, Orte und Organisationen an. Zunächst passen wir den Pfad bei `<collection>` an, sodass er auf den Ordner verweist, in dem die Registerdatei abgelegt ist. Das `<root>`-Element wird ebenfalls abgeändert und lautet `tei:person`, `tei:place` oder `tei:org`. Ebenfalls muss noch der XPath-Ausdruck für das gewünschte Label angegeben werden, also z. B. `.//tei:persName/normalize-space()”`
278
+
* **Anlegen der Objekte für Personen, Orte und Organisationen:** In gleicher Weise legen wir nun Objekte für die in unserem Named-Entity-Register verzeichneten Personen, Orte und Organisationen an. Zunächst passen wir den Pfad bei `<collection>` an, sodass er auf den Ordner verweist, in dem die Registerdatei abgelegt ist. Das `<root>`-Element wird ebenfalls abgeändert und lautet `tei:person`, `tei:place` oder `tei:org`. Ebenfalls muss noch der XPath-Ausdruck für das gewünschte Label angegeben werden, also z. B. `.//tei:persName/normalize-space()”`
279
279
280
280
Personen:
281
281
@@ -331,7 +331,7 @@ Danach navigieren wir in den Ordner “letters”, klicken auf das Wolkensymbol
331
331
332
332
{% include image.html url="../data/pipelines/pipeline_2/ediarum_web/img/named_entities.png" description="Die Indexseite mit den Schaltflächen für die Named Entities" %}
333
333
334
-
* **Anlegen von Properties (Filtern):** Im nächsten Schritt wollen wir Filter anlegen, sodass wir die Briefe z. B. nach Jahren oder Korrespondenzpartner:innen filtern können. Filter werden immer innerhalb von Objekten angelegt. Zunächst fügen wir innerhalb des Objekts “Briefe” folgenden XML-Block ein:
334
+
* **Anlegen von Properties (Filtern):** Im nächsten Schritt wollen wir Filter anlegen, sodass wir die Briefe z. B. nach Jahren oder die Personen alphabetisch filtern können. Filter werden immer innerhalb von Objekten angelegt, wir fügen also innerhalb des Objekts “Briefe” folgenden XML-Block ein:
335
335
336
336
```xml
337
337
<filters>
@@ -343,14 +343,14 @@ Danach navigieren wir in den Ordner “letters”, klicken auf das Wolkensymbol
343
343
</filter>
344
344
</filters>
345
345
```
346
-
346
+
Die `appconf.xml` mit dem Filter nach Sendedatum der Briefe
347
347
348
348
{% include image.html url="../data/pipelines/pipeline_2/ediarum_web/img/filter.png" description="Anlegen des Jahreszahlen-Filters in der appconf.xml" %}
349
349
350
350
351
351
Wiederum legen wir den Namen des Filters fest, der auch so im Frontend angezeigt wird und geben mittels XPath-Ausdruck an, wonach gefiltert werden soll. In unserem Fall wird mittels XPath auf das Sendedatum der Briefe zugegriffen (z. B. “1879-01-01”) und mittels Substring-Funktion das Jahr ausgewählt, das dann auch im Filter klickbar sein wird. Innerhalb des Filters finden sich auch zwei neue Elemente:
352
352
353
-
* `<type>`: Hier wird das Verhalten des Filters definiert, die möglichen Werte des Filter sind in der [Dokumentation](https://github.com/ediarum/ediarum.WEB/blob/main/APPCONF.md#base-information) einsehbar. Wir wählen “union”, das bedeutet, dass im Filter mehrere Eigenschaften auswählbar sind und nur Dokumente, die eine dieser Eigenschaften haben, angezeigt werden. Das heißt, wir können z. B. zwei (oder mehr) Jahre auswählen und es werden folgend nur die Briefe angezeigt, die in einem dieser Jahre abgeschickt wurden.
353
+
* `<type>`: Hier wird das Verhalten des Filters definiert, die möglichen Werte des Filter sind in der [Dokumentation](https://github.com/ediarum/ediarum.WEB/blob/main/APPCONF.md#base-information) einsehbar. Wir wählen “union”, das bedeutet, dass im Filter mehrere Eigenschaften auswählbar sind und nur Dokumente, die zumindest eine dieser Eigenschaften haben, angezeigt werden. Wir können also z. B. zwei (oder mehr) Jahre auswählen und es werden folgend nur die Briefe angezeigt, die in einem dieser Jahre abgeschickt wurden.
354
354
* `<label-function>`: Hier kann optional eine XQuery-Funktion angegeben werden, mit der der im Filter angezeigte Wert (also z. B. die durch den XPath-Ausdruck ausgewählte Jahreszahl) noch weiter manipuliert werden könnte. Wir entscheiden gegen eine Manipulation und lassen den Wert durch die XQuery-Funktion unverändert zurückgeben.
355
355
356
356
Nach dem Speichern und der Rückkehr zur Indexseite der Briefe finden wir rechts neben der Liste der Briefe unseren Jahreszahl-Filter, der beim Scrollen auf die Schaltfläche “Alle” aufklappt.
@@ -381,7 +381,7 @@ Danach navigieren wir in den Ordner “letters”, klicken auf das Wolkensymbol
381
381
{% include image.html url="../data/pipelines/pipeline_2/ediarum_web/img/letter_detail.png" description="Die Detailansicht eines Briefes" %}
382
382
383
383
384
-
**Anlegen der XSL-Transformation für die Briefe**: Um die Briefanzeige umzusetzen, muss zunächst ein XSLT-Stylesheet angelegt werden. Wir navigieren dazu in eXide innerhalb unserer App in den Ordner “resources” und danach in “xslt” und legen folgendes Stylesheet an:
384
+
**Anlegen der XSL-Transformation für die Briefe**: Um die Briefanzeige umzusetzen, muss zunächst ein XSLT-Stylesheet angelegt werden. Wir navigieren dazu in eXide innerhalb unserer App in den Ordner “resources” und danach in “xslt” und legen folgendes Stylesheet namens `briefe_details.xsl` an:
385
385
386
386
387
387
```xml
@@ -458,11 +458,12 @@ Danach navigieren wir in den Ordner “letters”, klicken auf das Wolkensymbol
458
458
</views>
459
459
```
460
460
461
+
Die `appconf.xml` mit dem `<view>`-Element zum Einbinden des XSLT-Stylesheets:
461
462
462
463
{% include image.html url="../data/pipelines/pipeline_2/ediarum_web/img/xslt.png" description="Einbinden des XSLT-Stylesheets " %}
463
464
464
465
465
-
Mit `view/@id` wird die ID des Views angegeben, die auch von der API verwendet wird. Im `<xslt>`-Element wird der relative Pfad zum XSLT-Styleheet ausgehend von der App angegeben. Das `<label>`-Element bezeichnet wiederum die Bezeichnung der View, die im Frontend angezeigt werden könnte.
466
+
Mit `view/@id` wird die ID des Views angegeben, die auch von der API verwendet wird. Im `<xslt>`-Element wird der relative Pfad zum XSLT-Styleheet ausgehend von der App angegeben. Das `<label>`-Element gibt wiederum die Bezeichnung des Views, an die im Frontend angezeigt werden könnte.
466
467
467
468
468
469
Rufen wir jetzt die Detailansicht eines Briefes auf, sehen wir, dass er gemäß dem Stylesheet transformiert und angezeigt wird:
@@ -471,7 +472,7 @@ Danach navigieren wir in den Ordner “letters”, klicken auf das Wolkensymbol
471
472
{% include image.html url="../data/pipelines/pipeline_2/ediarum_web/img/letter_stylesheet.png" description="Die Detailansicht eines Briefes" %}
472
473
473
474
474
-
**Anlegen der XSL-Transformation für die Personen**: Im nächsten Schritt legen wir im selben Ordner ein XSLT-Stylesheet namens “personen_details” an, um die Detailansicht der Personen einzurichten. Wir greifen hierbei auf das bereits vorhandene Stylesheet des Workshops zurück und passen es für unsere Zwecke an. Wir lassen Vor- und Nachnamen der Personen und den Verweis auf den Eintrag in der GND ausgeben. Wären in unserem Register noch weitere Informationen wie etwa Geburts- und Sterbedatum ebenfalls verzeichnet, könnten wir sie hier auch ausgeben lassen.
475
+
**Anlegen der XSL-Transformation für die Personen**: Im nächsten Schritt legen wir im selben Ordner ein XSLT-Stylesheet namens `personen_details.xsl` an, um die Detailansicht der Personen einzurichten. Wir greifen hierbei auf das bereits vorhandene Stylesheet des Workshops zurück und passen es für unsere Zwecke an. Wir lassen Vor- und Nachnamen der Personen und den Verweis auf den Eintrag in der GND ausgeben. Wären in unserem Register noch weitere Informationen wie etwa Geburts- und Sterbedatum ebenfalls verzeichnet, könnten wir sie hier auch ausgeben lassen.
475
476
476
477
477
478
```xml
@@ -529,7 +530,8 @@ Danach navigieren wir in den Ordner “letters”, klicken auf das Wolkensymbol
529
530
</view>
530
531
</views>
531
532
```
532
-
533
+
534
+
Die `appconf.xml` mit dem `<view>`-Element zum Einbinden des XSLT-Stylesheets für die Personen:
533
535
534
536
{% include image.html url="../data/pipelines/pipeline_2/ediarum_web/img/xslt_persons.png" description="Das XML-Snippet für die Personen" %}
535
537
@@ -617,17 +619,17 @@ Danach navigieren wir in den Ordner “letters”, klicken auf das Wolkensymbol
617
619
</div>
618
620
</div>
619
621
```
620
-
622
+
Die Seite `personen-details.html` mit eingefügtem HTML-Snippet:
621
623
622
624
{% include image.html url="../data/pipelines/pipeline_2/ediarum_web/img/relation_persons.png" description="Anzeigen der Beziehung auf der Detailseite der Personen" %}
623
625
624
626
625
-
Öffnen wir jetzt eine Detailseite der Personen, werden die Briefe, in denen die Person genannt wird, in einer Tabelle angezeigt.
627
+
Öffnen wir jetzt eine Detailseite der Personen, werden die Briefe, in denen die Person genannt wird, in einer Tabelle angezeigt. Durch Klick auf die Links können wir zu den jeweiligen Briefen navigieren.
626
628
627
629
628
630
{% include image.html url="../data/pipelines/pipeline_2/ediarum_web/img/person_letters.png" description="Die mit der Person verknüpften Briefe" %}
629
631
630
-
* **Anpassen der Detailseite der Briefe und Einrichtung eines seitenweisen Blätterns:** Um ein seitenweises Blättern einzurichten, sind einige Schritte erforderlich.
632
+
* **Anpassen der Detailseite der Briefe und Einrichtung eines seitenweisen Blätterns:** Momentan wird der gesamte Brieftext auf einer Seite angezeigt, was bei umfangreicheren Briefen ein längeres Scrollen bedeutet. Wir wollen deshalb ein seitenweises Blättern einzurichten, wozu einige Schritte erforderlich sind.
631
633
* Zunächst öffnen wir die `controller.xql` und fügen folgendes Codesnippet ein:
0 commit comments