Login
Newsletter
Werbung

Do, 6. Dezember 2012, 15:00

LanguageTool-Tutorial – Teil II: Komplexere XML-Regeln

Von gulp21

Angst und Schrecken verbreiten

Nun soll eine Regel her, die fälschliche Kleinschreibung in der Wendung »angst und schrecken verbreiten« erkennt. Hierbei handelt es nämlich um einen Fehler, der nicht von einer einfachen Rechtschreibprüfung erkannt werden kann, da »angst« als Adjektiv und »schrecken« als Verb kleingeschrieben werden. Der pattern-Teil der Regel könnte so aussehen:

<div class="listing"><pattern case_sensitive="yes">
    <marker>
        <token>angst</token>
        <token>und</token>
        <token regexp="yes">[sS]chrecken</token>
    </marker>
    <token>verbreiten</token>
</pattern>

Hiermit würden die Fehler in »angst und Schrecken verbreiten« und »angst und schrecken verbreiten« erkannt werden. Schön wäre es jetzt, wenn auch in »angst und schrecken verbreitet« etc. ein Fehler gefunden werden würde, also auch dann wenn, eine flektierte (engl. »inflected«) Form von »verbreiten« verwendet wird. Für diesen Zweck gibt es das inflected-Attribut:

<token inflected="yes">verbreiten</token>

Insgesamt könnte die Regel so aussehen:

<rule id="IN_ANGST_UND_SCHRECKEN_VERSETZEN" name="Groß-/Kleinschreibung: 'in angst (Angst) und schrecken (Schrecken) versetzen'">
    <pattern case_sensitive="yes">
        <marker>
            <token>angst</token>
            <token>und</token>
            <token regexp="yes">[sS]chrecken</token>
        </marker>
        <token inflected="yes">verbreiten</token>
    </pattern>
    <message>&amp;inwend;<suggestion>Angst und Schrecken</suggestion> werden 'Angst' und 'Schrecken' großgeschrieben.</message>
    <short>&amp;prgk;.</short>
    <example type="correct">Sie haben <marker>Angst und Schrecken</marker> verbreitet.</example>
    <example type="incorrect" correction="Angst und Schrecken">Sie haben <marker>angst und Schrecken</marker> verbreitet.</example>
    <example type="incorrect" correction="Angst und Schrecken">Sie haben <marker>angst und schrecken</marker> verbreitet.</example>
</rule>

Jetzt wäre es natürlich noch sinnvoll, zusätzliche Regeln für die Fälle »Angst und schrecken verbreiten« und die Varianten mit vorausgehendem Verb zu schreiben und alle Regeln in einer rulegroup zusammenzufassen.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung