<subst> in sourceDoc-Kodierung
Auf dem Weg von der semantisch-logischen Kodierung zur sourceDoc-Kodierung für die Quellenansicht lösen wir ja alle semantisch-logischen Elemente in milestone-anchor-Paare auf. Das betrifft alle Elemente, die nicht als Kindelemente von <line>
erlaubt sind:
https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-line.html
Dann kann es immer noch passieren, dass Elemente, die in <line>
erlaubt sind, sich über Zeilengrenzen erstrecken, d.h. sie enthalten <lb>
s als Kind- oder descendant-Elemente. Auch das behindert die Erzeugung der sourceDoc-Kodierung. Solche Elemente (typischerweise z.B. <hi>
, <add>
, <del>
, <unclear>
, <damage>
) trennen wir auf - in jeweils so viele Elemente desselben Namens (z.B. <hi>
), wie sie für einzelne Zeilen benötigt werden. Die aufgetrennten Elemente verknüpfen wir mit @next
und @prev
miteinander, damit klar ist, dass es sich um technische Teile eines einzigen Ganzen handelt.
(Übrigens können sich solche Elemente nicht nur über Zeilengrenzen, sondern auch über Seiten- und Spaltengrenzen erstrecken. Das wird ähnlich behandelt.)
Mit dem folgenden Code:
<lb n="1"/><unclear>Lorem ipsum dolor sit amet, <lb n="2"/>consetetur sadipscing elitr, <lb n="3"/>sed diam nonumy eirmod tempor invidunt</unclear>
passiert also in der Verarbeitung auf dem Weg zur Quellenansicht:
<lb n="1"/>
<unclear xml:id="unclear_a" next="#unclear_b">Lorem ipsum dolor sit amet,</unclear>
<lb n="2"/>
<unclear xml:id="unclear_b" next="#unclear_c" prev="#unclear_a">consetetur sadipscing elitr,</unclear>
<lb n="3"/>
<unclear xml:id="unclear_c" prev="#unclear_b">sed diam nonumy eirmod tempor invidunt</unclear>
Ein solcher Code kann dann auf <line>
-Elemente verteilt werden.
Nun müssen wir überlegen, wie wir mit <subst>
umgehen, das sich über Zeilengrenzen (und sonstige visuelle Grenzen) erstreckt. <subst>
enthält ja genau definierte Kindelemente, wobei diese Regel gilt:
<subst>
muss mindestens ein <add>
und mindestens ein <del>
oder <surplus>
enthalten.
Zusätzlich kann <subst>
(u.a.) die Umbruchelemente <pb>
, <cb>
, <lb>
und <milestone>
enthalten, die also dann zwischen <add>
und <del>
stehen können.
Die Umbruchelemente <pb>
, <cb>
, <lb>
und <milestone>
können aber auch innerhalb von <add>
, <del>
oder <surplus>
in <subst>
auftreten.
Sofern wir hier den Auftrennungsmechanismus wie z.B. bei <unclear>
anwenden, bekommen wir <subst>
-(Teil-)Elemente innerhalb von <line>
. Allerdings erlaubt die TEI <subst>
als Kind von <line>
gar nicht (was wir in der Vergangenheit schon immer wussten, aber uns darüber hinweggesetzt haben).
Die TEI sieht innerhalb von <line>
allerdings <substJoin>
vor. Das haben wir in besonderen Fällen in Victors Projekten schon bisher als eine (seltene) Lösung für besondere Fälle vorgesehen, die Visualisierung verarbeitet es aber noch nicht.
<substJoin>
leistet eine Verknüpfung von <add>
, <del>
oder <surplus>
überall dort, wo aus technischen Gründen <subst>
als Klammer nicht möglich ist. Das Beispiel in den Guidelines demonstriert das gut:
https://www.tei-c.org/release/doc/tei-p5-doc/de/html/ref-substJoin.html
Ich denke, auch für unsere sourceDoc-Kodierung wäre <substJoin>
eine gute Lösung für die Auflösung von <subst>
. Wir könnten es in der sourceDoc-Kodierung überall anwenden (nicht nur, wenn sich ein Ersatzfall über Zeilengrenzen erstreckt) und würden uns damit auch dem TEI-Schema annähern, das <subst>
in <line>
ja ohnehin nicht vorsieht.
Aus der semantisch-logischen Kodierung
<lb n="1"/>Lorem ipsum <subst><del>dolor</del> <add>sit</add></subst> amet,
würde in der sourceDoc-Kodierung:
<line n="1">Lorem ipsum <del xml:id="del_135">dolor</del> <add xml:id="add_246">sit</add><substJoin target="#del_135 #add_246"/> amet,</line>
<substJoin/>
könnte (ähnlich wie z.B. <listTranspose>
) an einer beliebigen Stelle im Code stehen, dafür könnten wir eine eigene Konvention einführen.
In der sourceDoc-Kodierung könnte <substJoin/>
auf diese Weise auch Elemente miteinander verknüpfen, die in unterschiedlichen Zeilen und Bereichen stehen, ja sogar auf unterschiedlichen Seiten.
Es würde sich nur fragen, wie das in der Quellenansicht visualisiert werden könnte. Wenn es erstmal nicht visualisiert würde, hätte man aber immerhin schon mal die <del>
- und <add>
-Elemente einzeln da, nur eben halt ohne den Ersatz-Zusammenhang.