Project

Profile

Help

Bug #3494 » tei-sch.xsl

-it:main; contains test document - Gerrit Imsieke, 2017-10-23 23:45

 
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tr="http://transpect.io"
exclude-result-prefixes="xs tr"
version="2.0">

<xsl:template name="main">
<xsl:apply-templates select="$doc" mode="#default"/>
</xsl:template>

<xsl:output indent="yes"/>

<xsl:variable name="doc" as="document-node(element(doc))">
<xsl:document>
<doc>
<p n="1">Der IWF ist für die meisten Menschen der Teufel in Person. Sein öffentliches Image
ist jenes von Männern in schwarzen Anzügen, die ein Land betreten und damit beginnen,
Löhne und Renten zu kürzen, um mit ihren dogmatischen »neoliberalen« Rezepten
unglaublichen Schmerz und großes Leid über die Menschen zu bringen. Das war in etwa auch
das Image des IWF in Griechenland – worüber – wir uns sehr im Klaren waren, als wir, als
neue Regierung, unseren Dialog mit ihm begannen.</p>
<p n="2">Die Euphorie war sowohl auf den EFSF zurückzuführen als auch auf die zeitgleich
verkündete Entscheidung der EZB, ihre »außergewöhnlichen Maßnahmen« zu aktivieren – vor
allem den Kauf von Staatsanleihen auf Sekundärmärkten. Eine Woche später legte die EZB
offen, dass sie in der ersten Woche nach dieser beispiellosen Intervention Staatsanleihen
in Höhe von insgesamt 16,5 Milliarden Euro erworben hatte.</p>
<p n="3">Die
zweite Vorbedingung bezieht sich auf die Korrektur der wirtschaftspolitischen Ausrichtung.
Die Veränderung der ökonomischen Prioritäten, die von der Troika seit 2010 gefordert
wurden – Ausweitung der Steuerbasis, Steuererleichterungen, Begünstigung von
Investitionen, Maßnahmen, um das Rentensystem finanziell tragfähig zu machen – gehen in
die richtige Richtung.</p>
<p n="4">Das Symi-Symposium ist ein jährliches Treffen, das Giorgos Papandreou 1998 ins
Leben gerufen hatte. Es ist nicht ganz eine »Davos am Meer«-Veranstaltung, aber es brachte
fortschrittliche Politiker und Denker zusammen, um gemeinsam Ideen in angenehmer Umgebung
auszutauschen. Das Treffen 2010 wurde auf der Insel Poros abgehalten, in der Nähe von
Athen, und als zentrale Figur der aktuellen Ereignisse wurde ich ebenfalls eingeladen. Ich
freute mich auf das Feedback unserer Aktivitäten von einer Gruppe hochtalentierter
Menschen – darunter Joseph Stiglitz, Träger des Nobelpreises für Ökonomie, Segolène Royal,
die französische Präsidentschaftskandidatin, Kemal Dervis, ehemaliger Finanzminister der
Türkei, und Richard Parker aus Harvard.</p>
<p n="5">Wir wurden mit Interviewanfragen, Teilnahmen an Diskussionsveranstaltungen und
bilateralen Treffen überhäuft. Die Davoser Beratungen wurden irgendwie zu Geiseln der
griechischen Krise. Papandreou nahm an einem Runden Tisch (»Die Eurozone neu überdenken« – »neu«
war sehr angesagt in jenem Jahr) mit den Premierministern aus Spanien, Belgien und
den Niederlanden sowie dem EZB-Präsidenten Trichet teil. Im Anschluss nahm Trichet
Papandreou zur Seite, um ihn zu warnen: Die Eurozone sei in Gefahr, die griechische
Regierung müsse unbedingt weitere Sparanstrengungen unternehmen, und nein, niemand käme,
um uns zu retten.</p>
<p n="6">Nach zahlreichen Unterbrechungen, die notwendig waren, weil die Hauptakteure
untereinander verhandeln und verschiedene Delegationen die Formalisierungen des
vorgeschlagenen Mechanismus mit ihren Hauptstädten rückkoppeln mussten, schafften wir
endlich den Durchbruch – dieser ging nach Ansicht vieler auf eine Idee der holländischen
Delegation zurück. Die Europäische Finanzstabilisierungsfazilität war geboren (EFSF,
European Financial Stability Facility).</p>
</doc>
</xsl:document>
</xsl:variable>
<xsl:template match="node()|@*" mode="#default">
<xsl:copy>
<xsl:apply-templates select="@*, node()" mode="#current"/>
</xsl:copy>
</xsl:template>
<xsl:function name="tr:extract" as="xs:string*">
<xsl:param name="input" as="xs:string"/>
<xsl:param name="regex" as="xs:string"/>
<xsl:message select="'regex:', $regex"></xsl:message>
<xsl:analyze-string select="$input" regex="{$regex}">
<xsl:matching-substring>
<xsl:sequence select="."/>
</xsl:matching-substring>
</xsl:analyze-string>
</xsl:function>
<xsl:variable name="space_before_dash-texts" as="text()*"
select="$doc//text()[matches(., '\w*\s+(-|&#x2013;|&#x2212;)(\s*|\w*|$)')]"/>
<xsl:template match="/" mode="#default">
<xsl:message select="'Count:', count($space_before_dash-texts)"/>
<xsl:next-match/>
</xsl:template>
<xsl:variable name="regex1" as="xs:string"
select="'(^|\w+){1,5}\s+(-|&#x2013;|&#x2212;)(\s?|\w+).{1,5}'"/>
<xsl:variable name="regex2" as="xs:string"
select="'(^|([\p{Zs}\s]*[\p{Pi}\p{Pf}\w]+){1,3})\s+\p{Pd}'"/>
<xsl:template match="*[exists(text() intersect $space_before_dash-texts)]" mode="#default">
<xsl:message select="'n:', string(@n)"/>
<xsl:variable name="space_before_dash" as="xs:string*" select="tr:extract(., $regex1)"/>
<xsl:variable name="extracts" as="xs:string"
select="string-join(for $r in $space_before_dash return concat('''', $r, ''''), ', ')"/>
<xsl:copy>
<xsl:apply-templates select="@*" mode="#current"/>
<xsl:attribute name="extracts" select="$extracts"/>
<xsl:apply-templates mode="#current"/>
</xsl:copy>
<xsl:message select="'found:', $extracts"/>
</xsl:template>
</xsl:stylesheet>
    (1-1/1)