summaryrefslogtreecommitdiffstats
path: root/JLanguageTool/src/rules/de
diff options
context:
space:
mode:
Diffstat (limited to 'JLanguageTool/src/rules/de')
-rw-r--r--JLanguageTool/src/rules/de/.cvsignore2
-rw-r--r--JLanguageTool/src/rules/de/coherency.txt29
-rw-r--r--JLanguageTool/src/rules/de/fullform2baseform.txt40
-rw-r--r--JLanguageTool/src/rules/de/grammar.xml1670
4 files changed, 1741 insertions, 0 deletions
diff --git a/JLanguageTool/src/rules/de/.cvsignore b/JLanguageTool/src/rules/de/.cvsignore
new file mode 100644
index 0000000..cb8392e
--- /dev/null
+++ b/JLanguageTool/src/rules/de/.cvsignore
@@ -0,0 +1,2 @@
+categories
+categories_bak
diff --git a/JLanguageTool/src/rules/de/coherency.txt b/JLanguageTool/src/rules/de/coherency.txt
new file mode 100644
index 0000000..6d31c7d
--- /dev/null
+++ b/JLanguageTool/src/rules/de/coherency.txt
@@ -0,0 +1,29 @@
+# Words that have two valid spellings. Used by WordCoherencyRules.
+# This file must be encoded in UTF-8.
+# NOTE: to also find fullforms (e.g. aufwendiges, aufwendigeres), add those
+# forms to fullform2baseform.txt.
+aufwendig;aufwändig
+Delphin;Delfin
+essentiell;essenziell
+Differential;Differenzial
+Facette;Fassette
+Hämmorrhoiden;Hämorriden
+Joghurt;Jogurt
+Ketchup;Ketschup
+Kommuniqué;Kommunikee
+Litographie;Litografie
+Necessaire;Nessessär
+Orthographie;Ortografie
+Potential;Potenzial
+Portemonnaie;Portmonee
+potentiell;potenziell
+Schenke;Schänke
+Spaghetti;Spagetti
+substantiell;substanziell
+Thunfisch;Tunfisch
+Xylophon;Xylofon
+Vermögenssteuer;Vermögensteuer
+selbständig;selbstständig
+Bahnhofsplatz;Bahnhofplatz
+Photo;Foto
+Photoapparat;Fotoapparat
diff --git a/JLanguageTool/src/rules/de/fullform2baseform.txt b/JLanguageTool/src/rules/de/fullform2baseform.txt
new file mode 100644
index 0000000..ee4a1c7
--- /dev/null
+++ b/JLanguageTool/src/rules/de/fullform2baseform.txt
@@ -0,0 +1,40 @@
+# Map fullforms to baseforms, e.g. gehen:gehe,gehst,ging,...
+# This file must be encoded in UTF-8.
+aufwendig:aufwendige, aufwendiges, aufwendiger,aufwendigen,aufwendigem, aufwendigere, aufwendigeres, aufwendigeren, aufwendigerem, aufwendigste, aufwendigstes, aufwendigster, aufwendigsten, aufwendigstem
+aufwändig:aufwändige, aufwändiges, aufwändiger, aufwändigen, aufwändigem, aufwändigere, aufwändigeres, aufwändigeren, aufwändigerem, aufwändigste, aufwändigstes, aufwändigster, aufwändigsten, aufwändigstem
+Delfin:Delfine, Delfins, Delfines, Delfinen
+Dephfin:Dephfine, Delphins, Delphines, Delphfinen
+essentiell:essentielle, essentiellem, essentiellen, essentieller, essentiellere, essentiellerem, essentielleren, essentiellerer, essentielleres, essentielles, essentiellst, essentiellste, essentiellstem, essentiellsten, essentiellstens, essentiellster, essentiellstes
+essenziell:essenzielle, essenziellem, essenziellen, essenzieller, essenziellere, essenziellerem, essenzielleren, essenziellerer, essenzielleres, essenzielles, essenziellst, essenziellste, essenziellstem, essenziellsten, essenziellstens, essenziellster, essenziellstes
+Differential:Differentiale, Differentialen, Differentials
+Differenzial:Differenziale, Differenzialen, Differenziales, Differenzials
+Facette:Facetten
+Fassette:Fassetten
+Joghurt:Joghurts
+Jogurt:Jogurts
+Ketchup:Ketchups
+Ketschup:Ketschups
+Kommuniqué:Kommuniqués
+Kommunikee:Kommunikee
+Necessaire:Necessaires
+Nessessär:Nessessärs
+Orthographie:Orthographien
+Ortografie:Ortografien
+Potential:Potentiale, Potentials, Potentiales, Potentialen
+Potenzial:Potenziale, Potenzials, Potenziales, Potenzialen
+Portemonnaie:Portemonnaies
+Portmonee:Portmonees
+potentiell:potentielle, potentiellem, potentiellen, potentieller, potentielles
+potenziell:potenzielle, potenziellem, potenziellen, potenzieller, potenzielles
+Schenke:Schenken
+Schänke:Schänken
+substantiell:substantielle, substantiellem, substantiellen, substantieller, substantiellere, substantiellerem, substantielleren, substantiellerer, substantielleres, substantielles, substantiellst, substantiellste, substantiellstem, substantiellsten, substantiellstens, substantiellster, substantiellstes
+substanziell:substanzielle, substanziellem, substanziellen, substanzieller, substanziellere, substanziellerem, substanzielleren, substanziellerer, substanzielleres, substanzielles, substanziellst, substanziellste, substanziellstem, substanziellsten, substanziellstens, substanziellster, substanziellstes
+Thunfisch:Thunfische, Thunfischen, Thunfisches, Thunfischs
+Tunfisch:Tunfische, Tunfischen, Tunfisches, Tunfischs
+Xylophon:Xylofone, Xylofonen, Xylofons
+Xylofon:Xylophone, Xylophonen, Xylophons
+selbständig:selbständige, selbständiger, selbständiges, selbständigen, selbständigem, selbständigeres
+selbstständig:selbstständige, selbstständiger, selbstständiges, selbstständigen, selbstständigem, selbstständigeres
+Bahnhofsplatz:Bahnhofsplatzes, Bahnhofsplätze, Bahnhofsplätzen
+Bahnhofplatz:Bahnhofplatzes, Bahnhofplätze, Bahnhofplätzen
diff --git a/JLanguageTool/src/rules/de/grammar.xml b/JLanguageTool/src/rules/de/grammar.xml
new file mode 100644
index 0000000..a1875ef
--- /dev/null
+++ b/JLanguageTool/src/rules/de/grammar.xml
@@ -0,0 +1,1670 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="../print.xsl"
+title="Pretty print" ?>
+<?xml-stylesheet type="text/css" href="../rules.css"
+title="Easy editing stylesheet" ?>
+<!--
+German grammar and typo rules for LanguageTool
+See resource/de/tagset.txt for the meaning of the POS tags
+Copyright (C) 2001-2010 Daniel Naber (http://www.danielnaber.de)
+$Id$
+-->
+<rules lang="de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="../rules.xsd">
+ <category name="Mögliche Tippfehler">
+ <rule id="HARZ_4" name="Tippfehler: 'Harz IV (Hartz IV)'">
+ <pattern>
+ <token>Harz</token>
+ <token regexp="yes">4|IV</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Hartz IV</suggestion> (Grundsicherung für Arbeitssuchende)?</message>
+ <example type="correct">Er lebt von <marker>Hartz 4</marker>.</example>
+ <example type="incorrect">Er lebt von <marker>Harz 4</marker>.</example>
+ <example type="correct">Er lebt von <marker>Hartz IV</marker>.</example>
+ <example type="incorrect">Er lebt von <marker>Harz IV</marker>.</example>
+ </rule>
+ <rule id="WAGE_VAGE" name="Tippfehler: 'wage (vage)'">
+ <pattern mark_to="-1">
+ <token>wage</token>
+ <token postag="SUB:.*|VER:.*" postag_regexp="yes"/>
+ </pattern>
+ <message>Meinten Sie <suggestion>vage</suggestion> (=unklar, unpräsize)?</message>
+ <example type="correct">Eine <marker>vage</marker> Entscheidung</example>
+ <example type="incorrect">Eine <marker>wage</marker> Entscheidung</example>
+ </rule>
+ <rule id="DIE_DE" name="Tippfehler: 'de (die)'">
+ <pattern mark_to="-1">
+ <token>de</token>
+ <token postag="SUB:.*" postag_regexp="yes"/>
+ </pattern>
+ <message>Meinten Sie <suggestion>die</suggestion>?</message>
+ <example type="correct"><marker>Die</marker> Programmierung mit Plain Old Java Objects soll einfacher werden.</example>
+ <example type="correct">Und <marker>die</marker> Programmierung mit Plain Old Java Objects soll einfacher werden.</example>
+ <example type="correct"><marker>De</marker> Beukelaer macht in Keksen.</example>
+ <example type="correct">Und <marker>de</marker> Beukelaer macht in Keksen.</example>
+ <example type="incorrect"><marker>De</marker> Programmierung mit Plain Old Java Objects soll einfacher werden.</example>
+ <example type="incorrect">Und <marker>de</marker> Programmierung mit Plain Old Java Objects soll einfacher werden.</example>
+ </rule>
+ <rule id="BIS_BISS" name="Tippfehler: 'biss (bis)'">
+ <pattern mark_from="1">
+ <token inflected="yes" regexp="yes">bleiben|sein</token>
+ <token>biss</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>bis</suggestion>?</message>
+ <example type="correct">Ich bleibe <marker>bis</marker> Ende Juli in Berlin.</example>
+ <example type="correct">Mann <marker>biss</marker> Hund.</example>
+ <example type="incorrect">Ich bleibe <marker>biss</marker> Ende Juli in Berlin.</example>
+ </rule>
+ <rule id="VON_HAND" name="Möglicher Tippfehler 'van(von) Hand'">
+ <pattern mark_to="-1">
+ <token>van</token>
+ <token>Hand</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>von</suggestion>?</message>
+ <example type="correct"><marker>von</marker> Hand</example>
+ <example type="incorrect"><marker>van</marker> Hand</example>
+ </rule>
+ <rulegroup id="VATER_MORGANA" name="Tippfehler: Vater(Fata) Morgana'">
+ <rule>
+ <pattern>
+ <token>Vater</token>
+ <token>Morgana</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Fata Morgana</suggestion> (eine Luftspiegelung)?</message>
+ <example type="correct">Eine <marker>Fata Morgana</marker> entsteht durch Ablenkung des Lichtes.</example>
+ <example type="incorrect">Eine <marker>Vater Morgana</marker> entsteht durch Ablenkung des Lichtes.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="WAHR_NEHMEN" name="Grammatik: 'nehme ... war'">
+ <rule>
+ <pattern mark_from="1">
+ <token inflected="yes" skip="5">nehmen</token>
+ <token>war</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>wahr</suggestion> wie in 'wahrnehmen'?</message>
+ <example type="correct">So nehme ich das <marker>wahr</marker>.</example>
+ <example type="correct">So nimmst du das <marker>wahr</marker>.</example>
+ <example type="incorrect">So nehme ich das <marker>war</marker>.</example>
+ <example type="incorrect">So nimmst du das <marker>war</marker>.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="DAS_AMEN" name="Tippfehler: 'das Armen(Amen)'">
+ <rule>
+ <pattern mark_from="1">
+ <token regexp="yes">ein|das</token>
+ <token>Armen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Amen</suggestion>?</message>
+ <example type="correct">So sicher wie das <marker>Amen</marker> in der Kirche.</example>
+ <example type="incorrect">So sicher wie das <marker>Armen</marker> in der Kirche.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="LIEDER_LEIDER" name="Tippfehler: 'Lieder(Leider) ...'">
+ <rule>
+ <pattern mark_from="1" mark_to="-1">
+ <token postag="SENT_START"/>
+ <token>Lieder</token>
+ <token postag="VER:3:SIN.*" postag_regexp="yes">
+ <exception inflected="yes">singen</exception>
+ <exception inflected="yes">komponieren</exception>
+ <exception inflected="yes">machen</exception>
+ <exception inflected="yes">schreiben</exception>
+ <exception inflected="yes">texten</exception>
+ <exception postag=".*KJ2.*|.*PRT.*" postag_regexp="yes"></exception>
+ </token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Leider</suggestion>?</message>
+ <example type="correct"><marker>Leider</marker> funktioniert es noch immer nicht.</example>
+ <example type="correct">Mehr Instrumente wurden in die Lieder integriert.</example>
+ <example type="correct">Die Klänge, die er in einige seiner Lieder einbaute.</example>
+ <example type="correct">Die CD, auf denen diese Lieder veröffentlicht wurden.</example>
+ <example type="incorrect"><marker>Lieder</marker> funktioniert es noch immer nicht.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="DESWEGEN" name="Tippfehler: 'des wegen(deswegen)'">
+ <rule>
+ <pattern>
+ <token>des</token>
+ <token>wegen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>deswegen</suggestion>?</message>
+ <example type="correct"><marker>Deswegen</marker> fuhren sie nach Hause.</example>
+ <example type="incorrect"><marker>Des wegen</marker> fuhren sie nach Hause.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="FIELE_UND_VIELE" name="Tippfehler: 'fiele(viele) Grüße'">
+ <rule>
+ <pattern mark_to="-1">
+ <token>Fiele</token>
+ <token>Grüße</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>viele</suggestion>?</message>
+ <example type="correct"><marker>Viele</marker> Grüße</example>
+ <example type="incorrect"><marker>Fiele</marker> Grüße</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="FIEL_UND_VIEL" name="Tippfehler: 'nehmen/geben fiel(viel)'">
+ <rule>
+ <pattern mark_from="1">
+ <token inflected="yes">nehmen</token>
+ <token>fiel</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>viel</suggestion>?</message>
+ <example type="correct">Er nahm <marker>viel</marker> auf seinen Teller.</example>
+ <example type="incorrect">Er nahm <marker>fiel</marker> auf seinen Teller.</example>
+ </rule>
+ <rule>
+ <pattern mark_from="1">
+ <token inflected="yes">geben</token>
+ <token>fiel</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>viel</suggestion>?</message>
+ <example type="correct">Er gibt <marker>viel</marker> Geld aus.</example>
+ <example type="incorrect">Er gibt <marker>fiel</marker> Geld aus.</example>
+ </rule>
+ <rule>
+ <pattern mark_from="2">
+ <token inflected="yes">geben</token>
+ <token>zu</token>
+ <token>fiel</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>viel</suggestion>?</message>
+ <example type="correct">Er gibt zu <marker>viel</marker> Geld aus.</example>
+ <example type="incorrect">Er gibt zu <marker>fiel</marker> Geld aus.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="FUER_UND_WIEDER" name="Tippfehler: 'für und wieder(wider)'">
+ <rule>
+ <pattern case_sensitive="yes">
+ <token>für</token>
+ <token>und</token>
+ <token>wieder</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>für und wider</suggestion>?</message>
+ <example type="correct">Die Argumente <marker>für und wider</marker> diese Option halten sich die Waage.</example>
+ <example type="incorrect">Die Argumente <marker>für und wieder</marker> diese Option halten sich die Waage.</example>
+ </rule>
+ <rule>
+ <pattern case_sensitive="yes">
+ <token>Für</token>
+ <token>und</token>
+ <token>Wieder</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Für und Wider</suggestion>?</message>
+ <example type="correct">Das <marker>Für und Wider</marker> sollte gründlich abgewogen werden.</example>
+ <example type="incorrect">Das <marker>Für und Wieder</marker> wird erwogen.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="ANDERE_SEITEN_AUFZIEHEN" name="Tippfehler: 'andere Seiten(Saiten) aufziehen'">
+ <rule>
+ <pattern case_sensitive="yes" mark_from="1" mark_to="-1">
+ <token>andere</token>
+ <token>Seiten</token>
+ <token regexp="yes">aufziehen|aufgezogen|aufziehst|</token>
+ </pattern>
+ <message>Die Redewendung lautet: andere <suggestion>Saiten</suggestion> aufziehen (= strenger werden)</message>
+ <example type="correct">Die UNO muss andere <marker>Saiten</marker> aufziehen.</example>
+ <example type="correct">Bei der UNO müssen andere <marker>Saiten</marker> aufgezogen werden.</example>
+ <example type="incorrect">Die UNO muss andere <marker>Seiten</marker> aufziehen.</example>
+ <example type="incorrect">Bei der UNO müssen andere <marker>Seiten</marker> aufgezogen werden.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="EINEM_LEIHEN" name="Tippfehler: 'einem Leihen(Laien)'">
+ <rule>
+ <pattern case_sensitive="yes" mark_from="1">
+ <token>einem</token>
+ <token>Leihen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Laien</suggestion> (Laie = jemand, der auf einem bestimmten Gebiet keine Fachkenntnisse hat)?</message>
+ <example type="correct">Wie kann ich einem <marker>Laien</marker> den Unterschied zwischen analog und digital erklären?</example>
+ <example type="correct">Ich kenne keinen, der es einem <marker>leihen</marker> würde.</example>
+ <example type="incorrect">Wie kann ich einem <marker>Leihen</marker> den Unterschied zwischen analog und digital erklären?</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="ART_UND_WIESE" name="Tippfehler: 'Art und Wiese(Art und Weise)'">
+ <rule>
+ <pattern mark_from="2">
+ <token>Art</token>
+ <token>und</token>
+ <token>Wiese</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Weise</suggestion>?</message>
+ <example type="correct">Die Art und <marker>Weise</marker> war unerträglich.</example>
+ <example type="incorrect">Die Art und <marker>Wiese</marker> war unerträglich.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="SO_WIE_SO" name="Tippfehler: 'so wie so(sowieso)'">
+ <rule>
+ <pattern>
+ <token>so</token>
+ <token>wie</token>
+ <token>so</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>sowieso</suggestion>?</message>
+ <example type="correct">Das halte ich <marker>sowieso</marker> für schlecht.</example>
+ <example type="incorrect">Das halte ich <marker>so wie so</marker> für schlecht.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="CONTRA_PRODUKTIV" name="Tippfehler: 'contra produktiv(kontraproduktiv)'">
+ <rule>
+ <pattern>
+ <token>contra</token>
+ <token>produktiv</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>kontraproduktiv</suggestion>?</message>
+ <example type="correct">Das halte ich für <marker>kontraproduktiv</marker>.</example>
+ <example type="incorrect">Das halte ich für <marker>contra produktiv</marker>.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="MUEHLHEIM_A_D_RUHR" name="Tippfehler: 'Mühlheim(Mülheim) an der Ruhr'">
+ <rule>
+ <pattern>
+ <token>Mühlheim</token>
+ <token>an</token>
+ <token>der</token>
+ <token>Ruhr</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Mülheim an der Ruhr</suggestion> (Mülheim ohne "h")?</message>
+ <example type="correct"><marker>Mülheim an der Ruhr</marker> ist eine kreisfreie Stadt im westlichen Ruhrgebiet.</example>
+ <example type="incorrect"><marker>Mühlheim an der Ruhr</marker> ist eine kreisfreie Stadt im westlichen Ruhrgebiet.</example>
+ </rule>
+ <rule>
+ <pattern>
+ <token>Mühlheim</token>
+ <token>a</token>
+ <token>.</token>
+ <token>d</token>
+ <token>.</token>
+ <token>Ruhr</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Mülheim a. d. Ruhr</suggestion> (Mülheim ohne "h")?</message>
+ <example type="correct"><marker>Mülheim a. d. Ruhr</marker> ist eine kreisfreie Stadt im westlichen Ruhrgebiet.</example>
+ <example type="incorrect"><marker>Mühlheim a. d. Ruhr</marker> ist eine kreisfreie Stadt im westlichen Ruhrgebiet.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="MEISTENS_IMMER" name="Verdoppelung: 'meistens immer'">
+ <rule>
+ <pattern>
+ <token>meistens</token>
+ <token>immer</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>meistens</suggestion> oder <suggestion>immer</suggestion>?</message>
+ <example type="correct">Ich gehe <marker>immer</marker> am Samstag einkaufen.</example>
+ <example type="correct">Ich gehe <marker>meistens</marker> am Samstag einkaufen.</example>
+ <example type="incorrect">Ich gehe <marker>meistens immer</marker> am Samstag einkaufen.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="WIE_IST_DEN" name="Möglicher Tippfehler: 'wie ist den(denn)'">
+ <rule>
+ <pattern mark_from="2" mark_to="-1">
+ <token regexp="yes">wie|was|wann|warum|wo</token>
+ <token regexp="yes">ist|war|warst|waren</token>
+ <token>den</token>
+ <token regexp="yes">bei|nun|jetzt|der|die|das|keiner|dann</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>denn</suggestion>?</message>
+ <example type="correct">Wie ist <marker>denn</marker> der Shop so?</example>
+ <example type="correct">Wie ist <marker>den</marker> Fragen zu begegnen?</example>
+ <example type="correct">Was ist <marker>denn</marker> jetzt los?</example>
+ <example type="correct">Wo war <marker>denn</marker> das Thema zum Kugelspiegel?</example>
+ <example type="correct">Warum war <marker>den</marker> Jugendlichen das egal?</example>
+ <example type="incorrect">Wie ist <marker>den</marker> der Shop so?</example>
+ <example type="incorrect">Was ist <marker>den</marker> jetzt los?</example>
+ <example type="incorrect">Wo war <marker>den</marker> das Thema zum Kugelspiegel?</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="INDER" name="Möglicher Tippfehler: 'Inder(In der)'">
+ <rule>
+ <pattern mark_from="1" mark_to="-1">
+ <token postag="SENT_START"/>
+ <token>Inder</token>
+ <token postag="SUB:.*|ADJ:.*" postag_regexp="yes"/>
+ </pattern>
+ <message>Meinten Sie <suggestion>In der</suggestion>?</message>
+ <example type="correct"><marker>Inder</marker> wohnen oft in Indien.</example>
+ <example type="correct"><marker>Inder</marker> wollen dort wohnen.</example>
+ <example type="correct"><marker>Inder</marker> verhalten sich so.</example>
+ <example type="incorrect"><marker>Inder</marker> Stadt wohnen viele Leute.</example>
+ <example type="incorrect"><marker>Inder</marker> großen Stadt wohnen viele Leute.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="SEIT_X_JAHRE" name="Möglicher Tippfehler: 'seit X Jahre(Jahren)'">
+ <rule>
+ <pattern mark_from="2">
+ <token regexp="yes">vor|seit|in</token>
+ <token regexp="yes">\d+</token>
+ <token regexp="yes">Jahre|Tage|Monate</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>\3n</suggestion>?</message>
+ <example type="correct">Seit 10 <marker>Jahren</marker>.</example>
+ <example type="incorrect">Seit 10 <marker>Jahre</marker>.</example>
+ </rule>
+ <rule>
+ <pattern mark_from="2">
+ <token regexp="yes">vor|seit|in</token>
+ <token postag="ZAL"/>
+ <token regexp="yes">Jahre|Tage|Monate</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>\3n</suggestion>?</message>
+ <example type="correct">Seit dreißig <marker>Jahren</marker>.</example>
+ <example type="incorrect">Seit dreißig <marker>Jahre</marker>.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="GIBT_ES_GENUEGEN" name="Möglicher Tippfehler: 'gibt es genügen(genügend)'">
+ <rule>
+ <pattern mark_from="2">
+ <token>es</token>
+ <token regexp="yes">gibt|gab|gäbe</token>
+ <token regexp="yes">genügen|ausreichen</token>
+ </pattern>
+ <message>Meinten Sie ein Partizip, z.B. 'genügend' statt 'genügen'?</message>
+ <example type="correct">Es gibt <marker>genügend</marker> davon.</example>
+ <example type="incorrect">Es gibt <marker>genügen</marker> davon.</example>
+ </rule>
+ <rule>
+ <pattern mark_from="2">
+ <token regexp="yes">gibt|gab|gäbe</token>
+ <token>es</token>
+ <token regexp="yes">genügen|ausreichen</token>
+ </pattern>
+ <message>Meinten Sie ein Partizip, z.B. 'genügend' statt 'genügen'?</message>
+ <example type="correct">Gibt es <marker>genügend</marker> davon?</example>
+ <example type="incorrect">Gibt es <marker>genügen</marker> davon?</example>
+ </rule>
+ <rule>
+ <pattern mark_from="3">
+ <token regexp="yes">gibt|gab|gäbe</token>
+ <token>es</token>
+ <token regexp="yes">nicht|kaum</token>
+ <token regexp="yes">genügen|ausreichen</token>
+ </pattern>
+ <message>Meinten Sie ein Partizip, z.B. 'genügend' statt 'genügen'?</message>
+ <example type="correct">Gibt es nicht <marker>genügend</marker> davon.</example>
+ <example type="incorrect">Gibt es nicht <marker>genügen</marker> davon.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="MIR_ZIEMLICH_SICH" name="Möglicher Tippfehler: 'mir ziemlich sich(sicher)'">
+ <rule>
+ <pattern mark_from="2">
+ <token regexp="yes">mir|sich|uns|euch</token>
+ <token regexp="yes">ziemlich|recht|sehr|relativ|absolut|völlig|ganz|total|eher|halbwegs</token>
+ <token>sich</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>sicher</suggestion>?</message>
+ <example type="correct">Er ist sich absolut <marker>sicher</marker>.</example>
+ <example type="incorrect">Er ist sich absolut <marker>sich</marker>.</example>
+ </rule>
+ <rule>
+ <pattern mark_from="3">
+ <token regexp="yes">mir|sich|uns|euch</token>
+ <token regexp="yes">dort|da</token>
+ <token regexp="yes">ziemlich|recht|sehr|relativ|absolut|völlig|ganz|total|eher|halbwegs</token>
+ <token>sich</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>sicher</suggestion>?</message>
+ <example type="correct">Er ist sich da absolut <marker>sicher</marker>.</example>
+ <example type="incorrect">Er ist sich da absolut <marker>sich</marker>.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="BEIN_NAECHSTEN" name="Möglicher Tippfehler: Bein(Beim) nächsten/...'">
+ <rule>
+ <!-- case_sensitive: "bein" (lowercase) is a typo anyway -->
+ <pattern case_sensitive="yes" mark_to="-1">
+ <token>Bein</token>
+ <token regexp="yes">nächsten|ersten|zweiten|dritten|vorherigen|vorigen|finalen|letzten|endgültigen|Endstand</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Beim</suggestion>?</message>
+ <example type="correct"><marker>Beim</marker> nächsten Update wird das gemacht.</example>
+ <example type="incorrect"><marker>Bein</marker> nächsten Update wird das gemacht.</example>
+ </rule>
+ <rule>
+ <pattern case_sensitive="yes" mark_to="-2">
+ <token>Bein</token>
+ <token postag="(PA1|PA2):.*" postag_regexp="yes"/>
+ <token postag="SUB:.*" postag_regexp="yes"/>
+ </pattern>
+ <message>Meinten Sie <suggestion>Beim</suggestion>?</message>
+ <example type="correct"><marker>Beim</marker> überraschenden Sieg.</example>
+ <example type="correct"><marker>Beim</marker> eingeplanten Sieg.</example>
+ <example type="correct">Dabei hat er ein <marker>Bein</marker> verloren.</example>
+ <example type="incorrect"><marker>Bein</marker> überraschenden Sieg.</example>
+ <example type="incorrect"><marker>Bein</marker> eingeplanten Sieg.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="ER_LIES" name="Möglicher Tippfehler: er lies(ließ)'">
+ <rule>
+ <pattern mark_from="1">
+ <token regexp="yes">er|sie|es|ich|das|der|die</token>
+ <token>lies</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>ließ</suggestion> (Vergangenheitsform von 'lassen')?</message>
+ <example type="correct">Er <marker>ließ</marker> den Boden neu machen.</example>
+ <example type="incorrect">Er <marker>lies</marker> den Boden neu machen.</example>
+ </rule>
+ <rule>
+ <pattern mark_from="1">
+ <token postag="(EIG|SUB):.*" postag_regexp="yes"/>
+ <token>lies</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>ließ</suggestion> (Vergangenheitsform von 'lassen')?</message>
+ <example type="correct">Peter <marker>ließ</marker> den Boden neu machen.</example>
+ <example type="incorrect">Peter <marker>lies</marker> den Boden neu machen.</example>
+ </rule>
+ </rulegroup>
+ <rule id="LEERZEICHEN_UND" name="Möglicher Tippfehler: vergessenes Leerzeichen'">
+ <pattern>
+ <token regexp="yes">(.*)-(und|oder|bzw)</token>
+ </pattern>
+ <message>Möglicherweise fehlt ein Leerzeichen nach dem Bindestrich: <suggestion><match no="1" regexp_match="(.*)-(und|oder|bzw)" regexp_replace="$1- $2"/></suggestion>.</message>
+ <example type="correct">Das ist <marker>Haus- bzw</marker>. Grundbesitz.</example>
+ <example correction="Haus- bzw" type="incorrect">Das ist <marker>Haus-bzw</marker>. Grundbesitz.</example>
+ <example type="correct">Das ist <marker>Haus- und</marker> Grundbesitz.</example>
+ <example correction="Haus- und" type="incorrect">Das ist <marker>Haus-und</marker> Grundbesitz.</example>
+ </rule>
+ <rulegroup id="HAUTE_COUTURE" name="Möglicher Tippfehler 'Haut(Haute) Couture'">
+ <rule>
+ <pattern mark_to="-1">
+ <token>haut</token>
+ <token regexp="yes">couture|coiffure|volée</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Haute</suggestion> (franz. "hoch, bedeutend")?</message>
+ <example type="correct">Vom Schneider bis zur <marker>Haute</marker> Couture.</example>
+ <example type="incorrect">Vom Schneider bis zur <marker>Haut</marker> Couture.</example>
+ <example type="incorrect">Vom Schneider bis zur <marker>haut</marker> couture.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="WAR_WERDEN" name="Möglicher Tippfehler 'war(wahr) werden'">
+ <rule>
+ <pattern mark_to="-1">
+ <token>war</token>
+ <token regexp="yes">werden|wird</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>wahr</suggestion> (=wahrhaftig, authentisch) statt 'war' (Vergangenheit von 'sein')?</message>
+ <example type="correct">Das kann schnell <marker>wahr</marker> werden.</example>
+ <example type="correct">Ich glaube, dass es schnell <marker>wahr</marker> wird.</example>
+ <example type="incorrect">Das kann schnell <marker>war</marker> werden.</example>
+ <example type="incorrect">Ich glaube, dass es schnell <marker>war</marker> wird.</example>
+ </rule>
+ <rule>
+ <pattern mark_from="1">
+ <token regexp="yes">wird|wurde|wurden|würde</token>
+ <token>war</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>wahr</suggestion> (=wahrhaftig, authentisch) statt 'war' (Vergangenheit von 'sein')?</message>
+ <example type="correct">Seine Träume wurden <marker>wahr</marker>.</example>
+ <example type="incorrect">Seine Träume wurden <marker>war</marker>.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="DU_WUENSCHT" name="Möglicher Tippfehler 'du wünscht(wünschst)'">
+ <rule>
+ <!-- TODO: mehr Fälle finden mit "grep "schen/BDIOXYcd" de_DE_neu.dic|less" -->
+ <pattern mark_from="1">
+ <token>du</token>
+ <token>wünscht</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>wünschst</suggestion> (ich wünsche, du wünschst, er wünscht, ...)?</message>
+ <example type="correct">Du <marker>wünschst</marker> dir so viel.</example>
+ <example type="incorrect">Du <marker>wünscht</marker> dir so viel.</example>
+ </rule>
+ <rule>
+ <pattern mark_to="-1">
+ <token>wünscht</token>
+ <token>du</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>wünschst</suggestion> (ich wünsche, du wünschst, er wünscht, ...)?</message>
+ <example type="correct"><marker>Wünschst</marker> du dir mehr Zeit?</example>
+ <example type="incorrect"><marker>Wünscht</marker> du dir mehr Zeit?</example>
+ </rule>
+ </rulegroup>
+ <rule id="ZU_ZUMUTEN" name="Möglicher Tippfehler 'zu zu... (zuzu...)'">
+ <!-- TODO: gilt das für alle Verben mit "zu.*"? -->
+ <pattern>
+ <token>zu</token>
+ <token regexp="yes">zumuten|zugeben|zulassen|zubinden|zubereiten|zugestehen|zumachen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>\1\2</suggestion>?</message>
+ <example type="correct">Das ist ihm wohl nicht <marker>zuzumuten</marker>.</example>
+ <example type="incorrect">Das ist ihm wohl nicht <marker>zu zumuten</marker>.</example>
+ </rule>
+ <rule id="HIN_UNS_WIEDER" name="Möglicher Tippfehler 'hin uns(und) wieder'">
+ <pattern mark_from="1" mark_to="-1">
+ <token>hin</token>
+ <token>uns</token>
+ <token>wieder</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>und</suggestion>?</message>
+ <example type="correct">Hin <marker>und</marker> wieder kann man das machen.</example>
+ <example type="incorrect">Hin <marker>uns</marker> wieder kann man das machen.</example>
+ </rule>
+ <rule id="HIN_UND_WIDER" name="Möglicher Tippfehler 'hin und wider(wieder)'">
+ <pattern mark_from="2">
+ <token>hin</token>
+ <token>und</token>
+ <token>wider</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>wieder</suggestion>?</message>
+ <example type="correct">Hin und <marker>wieder</marker> kann man das machen.</example>
+ <example type="incorrect">Hin und <marker>wider</marker> kann man das machen.</example>
+ </rule>
+ <rule id="WIEDER_EINMAL" name="Möglicher Tippfehler 'wider(wieder) einmal'">
+ <pattern mark_from="0" mark_to="-1">
+ <token regexp="yes">wider|Widder</token>
+ <token>einmal</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>wieder</suggestion>?</message>
+ <example type="correct">Sie kam <marker>wieder</marker> einmal zu spät.</example>
+ <example type="incorrect">Sie kam <marker>wider</marker> einmal zu spät.</example>
+ </rule>
+ <rule id="SONDER" name="Möglicher Tippfehler 'sonder(sondern)'">
+ <!-- "sonder" wird vom Spellchecker akzeptiert, ist aber fast nie richtig -->
+ <pattern>
+ <token>sonder</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>sondern</suggestion>?</message>
+ <example type="correct">Es gibt keine neuen Features, <marker>sondern</marker> nur Fehlerkorrekturen.</example>
+ <example type="incorrect">Es gibt keine neuen Features, <marker>sonder</marker> nur Fehlerkorrekturen.</example>
+ </rule>
+ <rule id="SEID_BESTEHEN" name="Möglicher Tippfehler 'seid(seit) Bestehen'">
+ <!-- TODO: generalize -->
+ <pattern mark_to="-1">
+ <token>seid</token>
+ <token>Bestehen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>seit</suggestion>?</message>
+ <example type="correct">Noch nie so viele Auswanderer <marker>seit</marker> Bestehen der BRD</example>
+ <example type="incorrect">Noch nie so viele Auswanderer <marker>seid</marker> Bestehen der BRD</example>
+ </rule>
+ <rule id="IN_DIE_ANALEN" name="Möglicher Tippfehler 'in die Analen(Annalen)'">
+ <pattern mark_from="2">
+ <token>in</token>
+ <token regexp="yes">die|den</token>
+ <token>Analen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Annalen</suggestion>?</message>
+ <example type="correct">Wir können in die <marker>Annalen</marker> des Klubs eingehen</example>
+ <example type="incorrect">Wir können in die <marker>Analen</marker> des Klubs eingehen</example>
+ </rule>
+ <rule id="ALLES_OLLES" name="Möglicher Tippfehler 'alles/olles'">
+ <!-- "olles" is (very) colloquial, but anyway... -->
+ <pattern mark_from="1">
+ <token regexp="yes">ist|war|mir|dir</token>
+ <token>olles</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>alles</suggestion>?</message>
+ <example type="correct">Das ist mir <marker>alles</marker> zu viel.</example>
+ <example type="incorrect">Das ist mir <marker>olles</marker> zu viel.</example>
+ </rule>
+ <rulegroup id="SCHON_SCHOEN" name="Möglicher Tippfehler 'schon/schön'">
+ <rule>
+ <pattern mark_from="1">
+ <token>ganz</token>
+ <token>schon</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>schön</suggestion>?</message>
+ <example type="correct">Das ist ganz <marker>schön</marker> teuer.</example>
+ <example type="incorrect">Das ist ganz <marker>schon</marker> teuer.</example>
+ </rule>
+ <rule>
+ <pattern mark_to="-1">
+ <token>schön</token>
+ <token regexp="yes">sehr|recht</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>schon</suggestion>?</message>
+ <example type="correct">Das ist <marker>schon</marker> sehr teuer.</example>
+ <example type="incorrect">Das ist <marker>schön</marker> sehr teuer.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="WIE_WIR" name="Möglicher Tippfehler 'wie/wir'">
+ <rule>
+ <pattern mark_from="2">
+ <token>wie</token>
+ <token regexp="yes">.+</token>
+ <token>wie</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>wir</suggestion>?</message>
+ <example type="correct">Wie können <marker>wir</marker> vorgehen?</example>
+ <example type="incorrect">Wie können <marker>wie</marker> vorgehen?</example>
+ </rule>
+ <rule>
+ <pattern mark_from="1">
+ <token regexp="yes">so|genauso|nach|sie|konnte|wollte|sollte|möchte</token>
+ <token>wir</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>wie</suggestion>?</message>
+ <example type="correct">Das gilt nach <marker>wie</marker> vor.</example>
+ <example type="incorrect">Das gilt nach <marker>wir</marker> vor.</example>
+ </rule>
+ </rulegroup>
+ <!-- TODO: "NOUN wir" außer "welches/was für ein NOUN wir" -->
+ <rule id="OHNE_GEWEHR" name="Möglicher Tippfehler 'ohne Gewehr(Gewähr)'">
+ <pattern mark_from="1">
+ <token>ohne</token>
+ <token>Gewehr</token>
+ </pattern>
+ <message>Hinweis: Gewehr = Schusswaffe, <suggestion>Gewähr</suggestion> = Garantie/Gewährleistung/Sicherheit</message>
+ <example type="correct">Alle Angaben ohne <marker>Gewähr</marker>.</example>
+ <example type="incorrect">Alle Angaben ohne <marker>Gewehr</marker>.</example>
+ </rule>
+ <rule id="PER_NACHNAME" name="Möglicher Tippfehler 'per Nachname(Nachnahme)'">
+ <pattern case_sensitive="yes" mark_from="1">
+ <token>per</token>
+ <token>Nachname</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Nachnahme</suggestion> ('Nachnahme' = Versandart, 'Nachname' = Familienname)?</message>
+ <example type="correct">Warum liefern Firmen lieber per <marker>Nachnahme</marker>?</example>
+ <example type="incorrect">Warum liefern Firmen lieber per <marker>Nachname</marker>?</example>
+ </rule>
+ <rule id="MOEGLICHER_WEISE" name="Möglicher Tippfehler 'möglicher Weise(möglicherweise)'">
+ <pattern>
+ <token>möglicher</token>
+ <token>Weise</token>
+ </pattern>
+ <message><suggestion>möglicherweise</suggestion> wird zusammengeschrieben.</message>
+ <example type="correct"><marker>Möglicherweise</marker> ist die Gelbphase zu kurz eingestellt.</example>
+ <example type="incorrect"><marker>Möglicher Weise</marker> ist die Gelbphase zu kurz eingestellt.</example>
+ </rule>
+ <rule id="FAELSCHLICHER_WEISE" name="Möglicher Tippfehler 'fälschlicher Weise(fälschlicherweise)'">
+ <pattern>
+ <token>fälschlicher</token>
+ <token>Weise</token>
+ </pattern>
+ <message><suggestion>fälschlicherweise</suggestion> wird zusammengeschrieben.</message>
+ <example type="correct"><marker>fälschlicherweise</marker> ist die Gelbphase zu kurz eingestellt.</example>
+ <example type="incorrect"><marker>fälschlicher Weise</marker> ist die Gelbphase zu kurz eingestellt.</example>
+ <example type="incorrect"><marker>fälschlicher weise</marker> ist die Gelbphase zu kurz eingestellt.</example>
+ </rule>
+ <rule id="LASEN_LASSEN" name="Möglicher Tippfehler 'zu lasen(lassen)'">
+ <pattern case_sensitive="yes" mark_from="1">
+ <token>zu</token>
+ <token>lasen</token>
+ </pattern>
+ <message>Meinten Sie 'zu <suggestion>lassen</suggestion>'?</message>
+ <example type="correct">...sie mit einem Maulkorb rumlaufen zu <marker>lassen</marker>.</example>
+ <example type="incorrect">...sie mit einem Maulkorb rumlaufen zu <marker>lasen</marker>.</example>
+ </rule>
+ <rule id="OEKONOMISCH_OEKUMENISCH" name="Möglicher Tippfehler 'ökonomischer(ökumenischer) Gottesdienst/...'">
+ <pattern mark_to="-1">
+ <token regexp="yes">ökonomische|ökonomischen|ökonomischer</token>
+ <token regexp="yes">.*Gottesdienst.*|Kirche|Kirchen|Trauung|Trauungen|Taufe|Taufen|Kirchentag|Kirchentage|Kirchentags|Kirchentages|Abendmahl|Abendmahls</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>ökumenisch</suggestion> (ökonomisch = auf die Wirtschaft bezogen)?</message>
+ <example type="correct">Was ist ein <marker>ökumenischer</marker> Gottesdienst?</example>
+ <example type="incorrect">Was ist ein <marker>ökonomischer</marker> Gottesdienst?</example>
+ <example type="incorrect">Was ist ein <marker>ökonomischer</marker> Wortgottesdienst?</example>
+ <example type="incorrect">Was ist das Merkmal eines <marker>ökonomischen</marker> Gedenkgottesdienstes?</example>
+ <example type="incorrect">Was ist das Merkmal eines <marker>ökonomischen</marker> Gottesdienstes?</example>
+ <example type="incorrect">Was ist das Merkmal von <marker>ökonomischen</marker> Gottesdiensten?</example>
+ </rule>
+ <rule id="ETHISCH_ETHNISCH" name="Möglicher Tippfehler 'ethische(ethnische) Minderheiten/...'">
+ <pattern mark_to="-1">
+ <token regexp="yes">ethische|ethischer|ethischen</token>
+ <token regexp="yes">Minderheit|Minderheiten|Säuberung|Säuberungen|Herkunft|Konflikt|Konflikte</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>ethnisch</suggestion> (ethisch = Ethik/Moral betreffend, ethnisch = zu einer bestimmten Ethnie/Volksgruppe gehörend)?</message>
+ <example type="correct">Bücher über <marker>ethnische</marker> Minderheiten und Vertriebene</example>
+ <example type="incorrect">Bücher über <marker>ethische</marker> Minderheiten und Vertriebene</example>
+ <example type="incorrect"><marker>Ethische</marker> Minderheiten und Vertriebene</example>
+ </rule>
+ <rule id="DENN_DEN" name="Möglicher Tippfehler 'aber denn(dann)'">
+ <pattern mark_from="1">
+ <token regexp="yes">aber|doch|und</token>
+ <token>denn</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>den</suggestion> oder <suggestion>dann</suggestion>?</message>
+ <example type="correct">Aber <marker>dann</marker> ging es los.</example>
+ <example type="correct">Aber <marker>den</marker> haben Sie ja schon.</example>
+ <example type="incorrect">Aber <marker>denn</marker> haben Sie ja schon.</example>
+ </rule>
+ <rule id="ZAUN_ZAUM" name="Möglicher Tippfehler 'im Zaun(Zaum) halten'">
+ <pattern mark_from="1" mark_to="-1">
+ <token>im</token>
+ <token>Zaun</token>
+ <token regexp="yes">halten|hielt|hält|haltet|hälst|gehalten</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Zaum</suggestion>?</message>
+ <example type="correct">Da konnt ich meine Finger nicht mehr im <marker>Zaum</marker> halten.</example>
+ <example type="incorrect">Da konnt ich meine Finger nicht mehr im <marker>Zaun</marker> halten.</example>
+ </rule>
+ <rule id="VOM_ZAUM_BRECHEN" name="Tippfehler: 'Zaum (Zaun)'">
+ <pattern mark_from="1" mark_to="-1">
+ <token>vom</token>
+ <token>Zaum</token>
+ <token inflected="yes">brechen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Zaun</suggestion>?</message>
+ <example type="correct">Das sollte man nicht vom <marker>Zaun</marker> brechen.</example>
+ <example type="incorrect">Das sollte man nicht vom <marker>Zaum</marker> brechen.</example>
+ <example type="correct">Das wurde vom <marker>Zaun</marker> gebrochen.</example>
+ <example type="incorrect">Das wurde vom <marker>Zaum</marker> gebrochen.</example>
+ </rule>
+ <rule id="BESCHEIDE_BESCHEID" name="Möglicher Tippfehler 'Bescheide/Bescheid'">
+ <pattern mark_to="-1">
+ <token regexp="yes">Bescheide|Bescheids</token>
+ <token regexp="yes">sagen|sagst|sagt|wissen|weißt|wisst|geben|gebt</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Bescheid</suggestion>?</message>
+ <example type="correct">Da würde ich auch <marker>Bescheid</marker> sagen.</example>
+ <example type="incorrect">Da würde ich auch <marker>Bescheide</marker> sagen.</example>
+ <example type="incorrect">Da würde ich auch <marker>Bescheids</marker> geben.</example>
+ </rule>
+ <rule id="WIEDER_WILLEN" name="Möglicher Tippfehler 'wieder(wider) Willen/Erwarten'">
+ <pattern mark_to="-1" case_sensitive="yes">
+ <token>wieder</token>
+ <token regexp="yes">Willen|Erwarten</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>wider</suggestion> (wider = gegen, wieder = nochmals)?</message>
+ <example type="correct">Und <marker>wieder</marker> erwarten wir Probleme.</example>
+ <example type="correct">Wunschwitz wird zum Aufständler und Rebellen <marker>wider</marker> Willen.</example>
+ <example type="incorrect">Wunschwitz wird zum Aufständler und Rebellen <marker>wieder</marker> Willen.</example>
+ </rule>
+ <rule id="ICH_VERALTE" name="Möglicher Tippfehler 'ich veralte(verwalte/verhalte)'">
+ <pattern mark_from="1">
+ <token>ich</token>
+ <token>veralte</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>verhalte</suggestion> oder <suggestion>verwalte</suggestion>?</message>
+ <example type="correct">Ich <marker>verwalte</marker> auf diese Weise so 100 E-Mail-Adressen.</example>
+ <example type="incorrect">Ich <marker>veralte</marker> auf diese Weise so 100 E-Mail-Adressen.</example>
+ </rule>
+ <rule id="VON_WIEDER_VON" name="Möglicher Tippfehler 'von(schon) wieder von'">
+ <pattern mark_to="-2">
+ <token>von</token>
+ <token>wieder</token>
+ <token>von</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>schon</suggestion>?</message>
+ <example type="correct">Das war's auch <marker>schon</marker> wieder von mir.</example>
+ <example type="incorrect">Das war's auch <marker>von</marker> wieder von mir.</example>
+ </rule>
+ <rule id="BEREIT_BESTEHENDE" name="Möglicher Tippfehler 'bereit(bereits) bestehende'">
+ <pattern mark_to="-1">
+ <token>bereit</token>
+ <token>bestehende</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>bereits</suggestion>?</message>
+ <example type="correct">Sie können dies als Service für Ihre <marker>bereits</marker> bestehende Seite benutzen.</example>
+ <example type="incorrect">Sie können dies als Service für Ihre <marker>bereit</marker> bestehende Seite benutzen.</example>
+ </rule>
+ <rule id="MIT_OHNE" name="Möglicher Tippfehler 'mit ohne'">
+ <pattern>
+ <token>mit</token>
+ <token>ohne</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>ohne</suggestion>? 'Mit ohne' ist eine umgangssprachliche Wendung.</message>
+ <example type="correct">Internet <marker>ohne</marker> Schnur</example>
+ <example type="incorrect">Internet <marker>mit ohne</marker> Schnur</example>
+ </rule>
+ <rule id="TROTZ_ALLEDEM" name="'Möglicher Tippfehler 'trotz alle dem(alledem)'">
+ <pattern mark_from="1">
+ <token regexp="yes">bei|trotz|nach|von|hinter</token>
+ <token>alle</token>
+ <token>dem</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>alledem</suggestion>?</message>
+ <example type="correct">Hinter <marker>alledem</marker> steht die Universität.</example>
+ <example type="incorrect">Hinter <marker>alle dem</marker> steht die Universität.</example>
+ </rule>
+ <rule id="INS_BEZUG" name="'Möglicher Tippfehler 'ins(in) Bezug'">
+ <pattern mark_to="-1">
+ <token>ins</token>
+ <token regexp="yes">Bezug|Relation</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>in</suggestion>?</message>
+ <example type="correct">Auffächerung der Altersgruppen <marker>in</marker> Bezug zu den Einwohnerzahlen.</example>
+ <example type="incorrect">Auffächerung der Altersgruppen <marker>ins</marker> Bezug zu den Einwohnerzahlen.</example>
+ </rule>
+ <rule id="AUFS_TRAPEZ_BRINGEN" name="Möglicher Tippfehler 'aufs Trapez(Tapet) bringen'">
+ <pattern mark_from="1" mark_to="-1">
+ <token>aufs</token>
+ <token>Trapez</token>
+ <token inflected="yes">bringen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Tapet</suggestion>?</message>
+ <example type="correct">Dieses Thema habe ich auch aufs <marker>Tapet</marker> gebracht.</example>
+ <example type="incorrect">Dieses Thema habe ich auch aufs <marker>Trapez</marker> gebracht.</example>
+ </rule>
+ <rule id="WAS_LANGE_WEHRT" name="Möglicher Tippfehler 'was lange wehrt(währt)'">
+ <pattern mark_from="2">
+ <token>was</token>
+ <token>lange</token>
+ <token>wehrt</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>währt</suggestion>?</message>
+ <example type="correct">Was lange <marker>währt</marker>...</example>
+ <example type="incorrect">Was lange <marker>wehrt</marker>...</example>
+ </rule>
+ <!--
+ <rule id="VON_BIS" name="Möglicher Tippfehler: 'von ... bis ...'">
+ <pattern mark_from="0">
+ <token regexp="yes">von|vom</token>
+ <token regexp="yes">([0-9]+\.?)\s?(\-|–)\s?([0-9]+\.?)</token>
+ </pattern>
+ <message>Meinten Sie <suggestion><match no="1"/> <match no="2" regexp_match="([0-9]+\.?)\s?(\-|–)\s?([0-9]+\.?)" regexp_replace="$1 bis $3" /></suggestion>?</message>
+ <example type="correct">Von <marker>9 bis 10</marker> Uhr.</example>
+ <example type="incorrect">Von <marker>9–10</marker> Uhr.</example>
+ </rule>
+ -->
+ <!--
+ <rule id="BISSTRICH" name="Möglicher Tippfehler beim Bis-Strich">
+ <pattern>
+ <token regexp="yes">[0-9]+(\.)?\s?\-\s?[0-9]+(\.)?</token>
+ </pattern>
+ <message>Meinten Sie <suggestion><match no="1" regexp_match="([0-9]+(\.)?)\-([0-9]+(\.)?)" regexp_replace="$1–$3" /></suggestion>? Als Bis-Strich wird i.a. der Gedankenstrich verwendet.</message>
+ <example type="correct">Er ist 50<marker>–</marker>60 Jahre alt.</example>
+ <example type="incorrect">Er ist 50<marker>-</marker>60 Jahre alt.</example>
+ </rule>
+ -->
+ <rule id="DER_GENUS" name="Möglicher Tippfehler: 'der Genus(Genuss)'">
+ <pattern>
+ <token regexp="yes">der|den</token>
+ <token>Genus</token>
+ </pattern>
+ <message>Meinten Sie '<suggestion>der Genuss</suggestion>' oder '<suggestion>das Genus</suggestion>' (gramm. Geschlecht)?</message>
+ <example type="correct"><marker>Das Genus</marker> bezeichnet das grammatische Geschlecht.</example>
+ <example type="correct"><marker>Der Genuss</marker> von Schokolade.</example>
+ <example type="incorrect"><marker>Der Genus</marker> von Schokolade.</example>
+ </rule>
+ </category>
+
+ <category name="Zusammen-/Getrenntschreibung">
+ <!-- Jan: TODO - find a rule that can distinguish "indem" from "in dem" -->
+ <rule id="STATTFINDEN" name="Zusammen-/Getrenntschreibung: 'statt finden(stattfinden)'">
+ <!-- Jan: TODO: Don't match 'suchen statt finden' -->
+ <pattern>
+ <token>statt</token>
+ <token regexp="yes">finden|findet|fand|fanden</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>statt<match no="2" /></suggestion>?</message>
+ <example type="correct">Wo das Fest das <marker>stattfindet</marker>, ist noch nicht klar.</example>
+ <example type="incorrect">Wo das Fest das <marker>statt findet</marker>, ist noch nicht klar.</example>
+ </rule>
+ <rule id="NICHTSDESTOWENIGER" name="Zusammen-/Getrenntschreibung: 'nichts desto weniger(nichtsdestoweniger)'">
+ <pattern>
+ <token>nichts</token>
+ <token>desto</token>
+ <token>weniger</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>nichtsdestoweniger</suggestion>?</message>
+ <example type="correct"><marker>Nichtsdestoweniger</marker> finde ich es einfach ungerecht.</example>
+ <example type="incorrect"><marker>Nichts desto weniger</marker> finde ich es einfach ungerecht.</example>
+ </rule>
+ <rule id="INWIEFERN" name="Zusammen-/Getrenntschreibung: 'in wie fern(inwiefern)'">
+ <pattern>
+ <token>in</token>
+ <token>wie</token>
+ <token>fern</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>inwiefern</suggestion>?</message>
+ <example type="correct"><marker>Inwiefern</marker> das auch für uns gilt, muss geklärt werden.</example>
+ <example type="incorrect"><marker>In wie fern</marker> das auch für uns gilt, muss geklärt werden.</example>
+ </rule>
+ <rule id="SOWIESO" name="Zusammen-/Getrenntschreibung: 'so wie so(sowieso)'">
+ <pattern>
+ <token>so</token>
+ <token>wie</token>
+ <token>so</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>sowieso</suggestion>?</message>
+ <example type="correct">Das geht <marker>sowieso</marker> nicht.</example>
+ <example type="incorrect">Das geht <marker>so wie so</marker> nicht.</example>
+ </rule>
+ <rule id="DURCHEINANDER" name="'durcheinander' usw.">
+ <pattern case_sensitive="no" mark_from="0">
+ <token regexp="yes">durch|von|in|auf|zu|mit|aus</token>
+ <token>einander</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>\1einander</suggestion>?</message>
+ <example type="correct">Sie brachte alles <marker>durcheinander</marker>.</example>
+ <example type="incorrect">Sie brachte alles <marker>durch einander</marker>.</example>
+ </rule>
+ <rulegroup id="INFINITIV_MIT_ZU" name="Zusammen-/Getrenntschreibung: Infinitiv mit 'zu'">
+ <!--
+ Jan: The many exceptions to the first rule below are meant to avoid false alarms on
+ "hört auf zu <verb>", "fängt an zu <verb>", "um zu <verb>", etc.
+ TODO: The rule is very general and will certainly benefit from a field test.
+ -->
+ <rule>
+ <pattern>
+ <token postag=".*PRP:.*" postag_regexp="yes"><exception scope="current">gegenüber</exception><exception scope="current">anstatt</exception><exception scope="current">ohne</exception><exception scope="current">entsprechend</exception><exception scope="current">um</exception><exception scope="current">als</exception><exception scope="current">an</exception><exception scope="current">auf</exception></token>
+ <token>zu</token>
+ <token postag=".*VER:.*INF.*" postag_regexp="yes"><exception regexp="yes" scope="current">einigen|agieren|sieben|weiten|sein</exception></token>
+ </pattern>
+ <message>Meinten Sie <suggestion><match no="1" /><match no="2" /><match no="3" /></suggestion>?</message>
+ <example type="correct"><marker>auszugeben</marker></example>
+ <example type="correct"><marker>unterzugehen</marker></example>
+ <example type="incorrect"><marker>aus zu geben</marker></example>
+ <example type="incorrect"><marker>unter zu gehen</marker></example>
+ </rule>
+ <!-- Now try to catch some errors our first rule missed, mostly because of the exceptions defined above -->
+ <rule>
+ <pattern mark_from="1">
+ <!-- Jan: exceptions - don't match 'hört auf zu atmen' etc. -->
+ <token regexp="yes" negate="yes">hör(e|n|st|t|te|ten|tet|test)</token>
+ <!-- <token postag="ADV:.*" postag_regexp="yes" negate="yes" /> // doesn't work atm -->
+ <token>auf</token>
+ <token>zu</token>
+ <token regexp="yes">arbeiten|atmen|bahren|bauen|begehren|bereiten|bessern|bewahren|bieten|binden|blähen|blasen|blättern|blicken|blinken|bohren|brauchen|brechen|bringen|brummen|bürden|dampfen|decken|drängen|drehen|drücken|erlegen|erwecken|essen|fächern|fahren|fallen|fangen|fassen|finden|fischen|fliegen|fordern|forsten|frischen|führen|füllen|geben|gehen|geilen|gliedern|glühen|greifen|halten|hängen|häufen|heben|heitern|heizen|helfen|hellen|hetzen|heulen|holen|hören|kaufen|klären|klauben|kleben|knöpfen|knüpfen|kommen|kreuzen|kündigen|laden|lassen|lasten|laufen|leben|legen|lehnen|lesen|leuchten|listen|lockern|lösen|machen|mauern|muntern|nehmen|opfern|passen|pfen|pfropfen|picken|polieren|prägen|raffen|rauen|räumen|rechnen|regen|reiben|reißen|reizen|richten|rollen|rücken|rufen|rüsten|rütteln|sammeln|sammelnden|schauen|scheinen|schichten|schieben|schlagen|schließen|schlüsseln|schneiden|schnüren|schrecken|schreiben|schreien|schwingen|sehen|setzen|spalten|sparen|sperren|spielen|spießen|springen|spüren|stacheln|stauen|stecken|stehen|steigen|stellen|stöbern|stocken|stoßen|suchen|summieren|tauchen|teilen|tischen|tragen|treffen|treiben|trennen|treten|tun|wachen|wachsen|wärmen|warten|wecken|weichen|weisen|weiten|werfen|werten|wiegeln|wiegen|wühlen|zählen|zehren|zeichnen|zeigen|ziehen|zwingen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion><match no="2" /><match no="3" /><match no="4" /></suggestion>?</message>
+ <example type="correct">Wir hörten <marker>auf zu bauen</marker>.</example>
+ <example type="correct">Wir begannen <marker>aufzubauen</marker>.</example>
+ <example type="incorrect">Wir begannen damit, den Messestand <marker>auf zu bauen</marker>.</example>
+ </rule>
+ <rule>
+ <pattern mark_from="1">
+ <!-- Jan: exceptions - don't match 'fängst an zu beten' etc. -->
+ <token regexp="yes" negate="yes">fing(st|t|et|en)?|fäng(st|t)|fang(e|t|en)?</token>
+ <token>an</token>
+ <token>zu</token>
+ <token regexp="yes">bahnen|bauen|behalten|belangen|beten|betteln|biedern|bieten|binden|blicken|brechen|bringen|dauern|deuten|dichten|dienen|docken|drehen|ecken|eignen|empfehlen|erkennen|fachen|fahren|fallen|fangen|fassen|fechten|fertigen|feuchten|feuern|flehen|fordern|fragen|freunden|fügen|fühlen|führen|geben|gehen|gehören|gewöhnen|gleichen|gliedern|greifen|halten|hängen|häufen|heben|heften|himmeln|hören|kämpfen|kaufen|ketten|klagen|kleiden|klicken|klingeln|klopfen|knüpfen|kommen|kreiden|kündigen|kuppeln|kurbeln|lächeln|lassen|lasten|laufen|legen|lehnen|leiern|leinen|leiten|lernen|liefern|locken|malen|maßen|melden|merken|mieten|nageln|nähen|nähern|nehmen|ordnen|packen|passen|peilen|pflanzen|prangern|preisen|raten|rechnen|reden|regen|reichern|reißen|rempeln|rennen|richten|rufen|rühren|sagen|sammeln|schaffen|schalten|schauen|schicken|schieben|schlagen|schließen|schnallen|schreiben|schreien|sehen|setzen|siedeln|spannen|sparen|spielen|spornen|sprechen|springen|stacheln|starren|stecken|stehen|steigen|stellen|steuern|stimmen|stoßen|streben|streichen|strengen|tasten|tragen|treffen|treiben|treten|vertrauen|visieren|wachsen|wählen|wärmen|weisen|werben|werfen|zapfen|zeichnen|zeigen|zetteln|ziehen|zünden|zweifeln</token>
+ </pattern>
+ <message>Meinten Sie <suggestion><match no="2" /><match no="3" /><match no="4" /></suggestion>?</message>
+ <example type="correct">Wir fingen <marker>an zu heulen</marker>.</example>
+ <example type="correct">Sie begannen, den Mond <marker>anzuheulen</marker>.</example>
+ <example type="incorrect">Wir beschlossen <marker>an zu fangen</marker>.</example>
+ </rule>
+ <rule>
+ <pattern mark_from="1">
+ <token regexp="yes">sich|uns|euch|dich|mich</token>
+ <token>um</token>
+ <token>zu</token>
+ <token regexp="yes">bringen|drehen|ziehen|sehen|schauen|blicken|gucken</token>
+ </pattern>
+ <message>Meinten Sie <suggestion><match no="2" /><match no="3" /><match no="4" /></suggestion>?</message>
+ <example type="correct">Er ergriff die Kurbel, <marker>um zu drehen</marker>.</example>
+ <example type="correct">Sie begannen, sich <marker>umzudrehen</marker>.</example>
+ <example type="incorrect">Sie begannen, sich <marker>um zu drehen</marker>.</example>
+ </rule>
+ <rule>
+ <pattern mark_from="0">
+ <token>ein</token>
+ <token>zu</token>
+ <token regexp="yes">arbeiten|atmen|balsamieren|bauen|behalten|berufen|betten|beziehen|biegen|bilden|binden|blenden|brechen|bringen|bürgern|büßen|checken|dämmen|decken|drehen|dringen|drücken|ebnen|engen|fädeln|fahren|fallen|fangen|finden|flechten|fliegen|fließen|flößen|fordern|frieren|fügen|führen|geben|gehen|gestehen|gewöhnen|gießen|gliedern|greifen|grenzen|halten|handeln|hängen|hauchen|holen|hüllen|impfen|kaufen|kehren|kerkern|klagen|kleiden|kochen|kommen|kreisen|laden|lagern|lassen|laufen|leben|legen|leiten|lenken|lesen|loggen|lösen|marschieren|mauern|mischen|nähen|nehmen|nisten|ordnen|packen|passen|pflanzen|planen|prägen|quartieren|räumen|rechnen|reden|reiben|reichen|reihen|reisen|reißen|richten|sammeln|saugen|scannen|schalten|schätzen|schenken|schieben|schiffen|schlafen|schläfern|schlagen|schleusen|schließen|schmeicheln|schmelzen|schmuggeln|schneiden|schränken|schreiben|schreiten|schüchtern|schwenken|schwören|sehen|setzen|sinken|sitzen|spannen|sparen|speisen|sperren|spielen|sprechen|springen|stampfen|stecken|stehen|steigen|stellen|steuern|stimmen|streichen|streuen|studieren|stufen|stürzen|tauchen|tauschen|teilen|tippen|tragen|treffen|treiben|treten|tüten|üben|verleiben|weihen|weisen|werben|werfen|wickeln|willigen|wirken|zahlen|zäunen|zeichnen|ziehen|zwängen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion><match no="1" /><match no="2" /><match no="3" /></suggestion>?</message>
+ <example type="correct">Er versprach, mich bald <marker>einzuarbeiten</marker>.</example>
+ <example type="incorrect">Er versprach, mich bald <marker>ein zu arbeiten</marker>.</example>
+ </rule>
+ <rule>
+ <!-- Jan: This one might turn out too greedy, because 'hinzu' is a word in itself. -->
+ <pattern mark_from="0">
+ <token>hin</token>
+ <token>zu</token>
+ <token regexp="yes">bekommen|biegen|bringen|fahren|fallen|geben|gehen|gucken|halten|hängen|hocken|horchen|hören|langen|legen|nehmen|reißen|rennen|richten|schauen|scheiden|schicken|schlachten|schmeißen|schreiben|schütten|schwimmen|sehen|setzen|sinken|starren|stellen|weisen|werfen|wirken</token>
+ </pattern>
+ <message>Meinten Sie <suggestion><match no="1" /><match no="2" /><match no="3" /></suggestion>?</message>
+ <example type="correct">Er versprach, mich dort <marker>hinzubringen</marker>.</example>
+ <example type="incorrect">Er versprach, mich dort <marker>hin zu bringen</marker>.</example>
+ </rule>
+ <rule>
+ <pattern mark_from="0">
+ <token>hinein</token>
+ <token>zu</token>
+ <token regexp="yes">bauen|begeben|begleiten|bekommen|bemühen|beugen|bewegen|biegen|bitten|blasen|blicken|bohren|bringen|deuten|drücken|dürfen|eilen|fahren|finden|fliegen|fließen|flitzen|führen|gehen|gehören|gelangen|gießen|gleiten|greifen|halten|hängen|heben|heiraten|helfen|holen|klettern|kommen|können|kriechen|kriegen|lachen|laufen|leben|legen|leiten|lesen|mischen|nehmen|neigen|packen|passen|pferchen|pfuschen|plumpsen|pumpen|quetschen|rasen|rasseln|reden|reiten|riechen|rollen|sausen|schaffen|schauen|scheinen|schicken|schieben|schleichen|schleifen|schlendern|schleppen|schleudern|schliddern|schlüpfen|schmuggeln|schwingen|sehen|springen|spritzen|spucken|stechen|stecken|stehlen|steigen|stellen|steuern|stoßen|strömen|stürmen|stürzen|taumeln|torkeln|tragen|treiben|tropfen|trudeln|wagen|wälzen|weben|wehen|werfen|wirken|zerren|ziehen|zwängen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion><match no="1" /><match no="2" /><match no="3" /></suggestion>?</message>
+ <example type="correct">Er versprach, mich dort <marker>hineinzubringen</marker>.</example>
+ <example type="incorrect">Er versprach, mich dort <marker>hinein zu bringen</marker>.</example>
+ </rule>
+ <rule>
+ <pattern mark_from="0">
+ <token>herein</token>
+ <token>zu</token>
+ <token regexp="yes">begleiten|bekommen|beugen|bewegen|biegen|bitten|blicken|brechen|bringen|drängen|dringen|dürfen|eilen|fahren|fallen|fliegen|fließen|flitzen|führen|geben|gehen|gelangen|gleiten|gucken|helfen|holen|klettern|kommen|können|krabbeln|kriechen|kriegen|lassen|laufen|leiten|locken|müssen|neigen|rasen|rasseln|regnen|reiten|rennen|rieseln|rinnen|rollen|rufen|sausen|schaffen|schallen|schauen|scheinen|schicken|schieben|schleichen|schleifen|schlendern|schleppen|schleudern|schlittern|schlüpfen|schmeißen|schmuggeln|schwingen|sehen|spähen|spielen|springen|stecken|stehlen|steigen|stellen|stoßen|strecken|strömen|stürmen|stürzen|taumeln|torkeln|tragen|tropfen|trudeln|wagen|wälzen|wehen|werfen|wollen|zerren|ziehen|zwängen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion><match no="1" /><match no="2" /><match no="3" /></suggestion>?</message>
+ <example type="correct">Er versprach, mich dort <marker>hereinzubringen</marker>.</example>
+ <example type="incorrect">Er versprach, mich dort <marker>herein zu bringen</marker>.</example>
+ </rule>
+ <rule>
+ <pattern mark_from="0">
+ <token regexp="yes">hinunter|herab|hinab|herunter</token>
+ <token>zu</token>
+ <token regexp="yes">baumeln|befördern|begeben|begleiten|bemühen|beugen|bewegen|biegen|bitten|blicken|brechen|brennen|bringen|bücken|drücken|dürfen|eilen|fahren|fallen|finden|fliegen|fließen|flitzen|führen|geben|gehen|gießen|gleiten|greifen|hauen|heben|helfen|holen|kippen|klappen|klettern|knallen|kommen|können|kraxeln|kriechen|kriegen|kugeln|kullern|kurbeln|laden|langen|lassen|laufen|leiern|leiten|machen|müssen|nehmen|neigen|pendeln|putzen|rasen|rasseln|reichen|reißen|reiten|rinnen|rollen|rufen|rutschen|sausen|schaffen|schalten|schauen|schicken|schießen|schlagen|schleichen|schleifen|schlendern|schleppen|schleudern|schlingen|schlucken|schmeißen|schnurren|schütten|schwingen|sehen|senken|setzen|sinken|spielen|springen|spülen|steigen|stoßen|strömen|stufen|stürmen|stürzen|tauchen|taumeln|torkeln|tragen|treiben|tröpfeln|tropfen|trudeln|wälzen|werfen|wollen|würdigen|würgen|zerren|ziehen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion><match no="1" /><match no="2" /><match no="3" /></suggestion>?</message>
+ <example type="correct">Er versuchte, es <marker>hinunterzuziehen</marker>.</example>
+ <example type="incorrect">Er versuchte, es <marker>hinunter zu ziehen</marker>.</example>
+ </rule>
+ <rule>
+ <pattern mark_from="1">
+ <token>damit</token>
+ <token>um</token>
+ <token>zu</token>
+ <token>gehen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion><match no="2" /><match no="3" /><match no="4" /></suggestion>?</message>
+ <example type="correct">Er griff nach dem Mantel, <marker>um zu gehen</marker>.</example>
+ <example type="correct">Es ist nicht leicht, damit <marker>umzugehen</marker>.</example>
+ <example type="incorrect">Es ist nicht leicht, damit <marker>um zu gehen</marker>.</example>
+ </rule>
+ </rulegroup>
+ </category>
+
+ <category name="Stil">
+ <rule id="NICHTSDESTOTROTZ" name="Stil: 'nichtsdestotrotz' ist eine umgangssprachliche Verballhornung von 'nichtsdestoweniger'">
+ <pattern>
+ <token>nichtsdestotrotz</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>nichtsdestoweniger</suggestion>? 'Nichtsdestotrotz' ist eine umgangssprachliche Verballhornung.</message>
+ <example type="correct"><marker>Nichtsdestoweniger</marker> wird einfach weiter geplant.</example>
+ <example type="incorrect"><marker>Nichtsdestotrotz</marker> wird einfach weiter geplant.</example>
+ </rule>
+ <rule id="MAENNER_VS_LEUTE" name="'Kaufleute' usw.">
+ <pattern case_sensitive="no" mark_from="0">
+ <token regexp="yes">(Kauf|See|Feuerwehr)männer(n)?</token>
+ </pattern>
+ <message>Meinten Sie <suggestion><match no="1" regexp_match="(Kauf|See|Feuerwehr)männer(n)?" regexp_replace="$1leute$2" /></suggestion>?</message>
+ <example type="correct">Es waren viele <marker>Feuerwehrleute</marker> im Einsatz.</example>
+ <example type="incorrect">Es waren viele <marker>Feuerwehrmänner</marker> im Einsatz.</example>
+ </rule>
+ </category>
+ <!-- Rules about upper/lowercase: -->
+ <category name="Groß-/Kleinschreibung">
+ <!--
+ <rule id="ZU_RECHT" name="Groß-/Kleinschreibung: 'zu recht(Recht)'">
+ <pattern case_sensitive="yes">
+ <token regexp="yes">[Zz]u</token>
+ <token>recht</token>
+ </pattern>
+ <message>In der Wendung <suggestion>zu Recht</suggestion> wird 'Recht' groß geschrieben.</message>
+ <example type="correct">Da regt er sich zu <marker>Recht</marker> auf.</example>
+ <example type="correct">Er schneidet das zu recht kleinen Stücken.</example>
+ <example type="incorrect">Da regt er sich zu <marker>recht</marker> auf.</example>
+ </rule>
+ -->
+ <!-- TODO: make sure we don't automatically turn the suggestion to uppercase here:
+ <rule id="WIR_TREFFEN" name="Groß-/Kleinschreibung: 'wir Treffen(treffen)'">
+ <pattern mark_from="1" case_sensitive="yes">
+ <token regexp="yes">[Ww]ir|[Ss]ie</token>
+ <token>Treffen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>treffen</suggestion>?</message>
+ <example type="correct">Wir <marker>treffen</marker> uns später.</example>
+ <example type="correct">Sie <marker>treffen</marker> sich später.</example>
+ <example type="incorrect">Wir <marker>Treffen</marker> uns später.</example>
+ <example type="incorrect">Sie <marker>Treffen</marker> sich später.</example>
+ </rule>
+ -->
+ <!-- TODO: make sure we don't automatically turn the suggestion to uppercase here:
+ <rule id="MIT_FREUNDLICHEN" name="Tippfehler: 'mit Freundlichen(freundlichen)'">
+ <pattern mark_from="1">
+ <token>mit</token>
+ <token>Freundlichen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>freundlichen</suggestion>?</message>
+ <example type="correct">Mit <marker>freundlichen</marker> Grüßen</example>
+ <example type="incorrect">Mit <marker>Freundlichen</marker> Grüßen</example>
+ </rule>
+ -->
+ <!-- TODO: allgemeiner... -->
+ <rule id="OEFFNEN" name="Tippfehler: 'öffnen (Öffnen)'">
+ <pattern mark_from="1" case_sensitive="yes">
+ <token>dem</token>
+ <token>öffnen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Öffnen</suggestion>?</message>
+ <example type="correct">Nach dem <marker>Öffnen</marker> bitte kühl lagern.</example>
+ <example type="incorrect">Nach dem <marker>öffnen</marker> bitte kühl lagern.</example>
+ </rule>
+ <rule id="VON_BEGRIFF" name="Groß-/Kleinschreibung: 'von begriff(Begriff) sein'">
+ <pattern mark_from="1" case_sensitive="yes">
+ <token>von</token>
+ <token>begriff</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Begriff</suggestion> sein?</message>
+ <example type="correct">Schwer von <marker>Begriff</marker> sein</example>
+ <example type="incorrect">Schwer von <marker>begriff</marker> sein</example>
+ </rule>
+ <rulegroup id="WEITERE_VORGEHEN" name="Tippfehler: 'das weitere vorgehen(Vorgehen)'">
+ <rule>
+ <pattern mark_from="1" case_sensitive="yes">
+ <token regexp="yes">weitere|weiteren</token>
+ <token>vorgehen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Vorgehen</suggestion>?</message>
+ <example type="correct">Wir werden das weitere <marker>Vorgehen</marker> zusammen abstimmen.</example>
+ <example type="incorrect">Wir werden das weitere <marker>vorgehen</marker> zusammen abstimmen.</example>
+ </rule>
+ </rulegroup>
+ <rulegroup id="BEICHTE" name="Tippfehler: 'die beichte(Beichte)'">
+ <rule>
+ <pattern mark_from="1" case_sensitive="yes">
+ <token regexp="yes">eine|die|seine|ihre|meine</token>
+ <token>beichte</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Beichte</suggestion>?</message>
+ <example type="correct">Er legte die <marker>Beichte</marker> ab.</example>
+ <example type="incorrect">Er legte die <marker>beichte</marker> ab.</example>
+ </rule>
+ </rulegroup>
+ <rule id="DIE_SUCHE" name="Groß-/Kleinschreibung: 'die suche(Suche)'">
+ <pattern mark_from="1" case_sensitive="yes">
+ <token regexp="yes">[dD]er|[dD]ie</token>
+ <token>suche</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Suche</suggestion>?</message>
+ <example type="correct">Die <marker>Suche</marker> dauerte lange.</example>
+ <example type="correct">Sie waren auf der <marker>Suche</marker> nach Felix.</example>
+ <example type="incorrect">Die <marker>suche</marker> dauerte lange.</example>
+ <example type="incorrect">Sie waren auf der <marker>suche</marker> nach Felix.</example>
+ </rule>
+ <!-- TODO: LT itself uppercases the suggestion so that it's incorrect again:
+ <rule id="WIR_TREFFEN" name="Groß-/Kleinschreibung: 'wir Treffen(treffen)'">
+ <pattern mark_from="1" case_sensitive="yes">
+ <token regexp="yes">[wW]ir|[sS]ie</token>
+ <token>Treffen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>treffen</suggestion>?</message>
+ <example type="correct">Wir <marker>treffen</marker> uns später.</example>
+ <example type="correct">Sie <marker>treffen</marker> sich später.</example>
+ <example type="incorrect">Wir <marker>Treffen</marker> uns später.</example>
+ <example type="incorrect">Sie <marker>Treffen</marker> sich später.</example>
+ </rule>
+ -->
+ <rule id="GUTEN_UND_SCHLECHTEN" name="Groß-/Kleinschreibung: 'in Guten(guten) wie in Schlechten(schlechten) Zeiten'">
+ <pattern case_sensitive="yes">
+ <token regexp="yes">[Ii]n</token>
+ <token>Guten</token>
+ <token>wie</token>
+ <token>in</token>
+ <token>Schlechten</token>
+ </pattern>
+ <message><suggestion>in guten wie in schlechten Zeiten</suggestion> wird in dieser Wendung klein geschrieben.</message>
+ <example type="correct"><marker>In guten wie in schlechten</marker> Zeiten.</example>
+ <example type="incorrect"><marker>In Guten wie in Schlechten</marker> Zeiten.</example>
+ </rule>
+ <rule id="DES_WEITEREN" name="Groß-/Kleinschreibung: 'des weiteren(Weiteren)'">
+ <pattern case_sensitive="yes" mark_from="1" mark_to="-1">
+ <token regexp="yes">[Dd]es</token>
+ <token>weiteren</token>
+ <token postag="VER:.*" postag_regexp="yes"/>
+ </pattern>
+ <message><suggestion>Weiteren</suggestion> in der Wendung 'des Weiteren' wird groß geschrieben.</message>
+ <example type="correct">Des <marker>Weiteren</marker> sind alle Katzen blau.</example>
+ <example type="correct">Und des <marker>Weiteren</marker> waren alle Katzen blau.</example>
+ <example type="correct">Die Rechtsvorschrift zur Sicherung des <marker>weiteren</marker> Aufenthaltsrechtes.</example>
+ <example type="incorrect">Des <marker>weiteren</marker> sind alle Katzen blau.</example>
+ <example type="incorrect">Und des <marker>weiteren</marker> waren alle Katzen blau.</example>
+ </rule>
+ <rule id="DES_NACHTS" name="Groß-/Kleinschreibung: 'des nachts(Nachts), eines nachts(Nachts)'">
+ <pattern case_sensitive="yes" mark_from="1">
+ <token regexp="yes">[Dd]es|[Ee]ines</token>
+ <token>nachts</token>
+ </pattern>
+ <message><suggestion>Nachts</suggestion> in der Wendung 'des Nachts' bzw. 'eines Nachts' wird groß geschrieben.</message>
+ <example type="correct">Des <marker>Nachts</marker> sind alle Katzen blau.</example>
+ <example type="incorrect">Des <marker>nachts</marker> sind alle Katzen blau.</example>
+ <example type="incorrect">Eines <marker>nachts</marker> sind alle Katzen blau.</example>
+ </rule>
+ <!-- TODO: Gut und böse; gut und Böse -->
+ <rule id="GUT_UND_BOESE" name="Groß-/Kleinschreibung: 'jenseits von gut(Gut) und böse(Böse)'">
+ <pattern case_sensitive="yes" mark_from="2">
+ <token regexp="yes">[Jj]enseits</token>
+ <token>von</token>
+ <token>gut</token>
+ <token>und</token>
+ <token>böse</token>
+ </pattern>
+ <message><suggestion>Gut und Böse</suggestion> in der Wendung 'jenseits von Gut und Böse' wird groß geschrieben.</message>
+ <example type="correct">Das ist jenseits von <marker>Gut und Böse</marker>.</example>
+ <example type="incorrect">Das ist jenseits von <marker>gut und böse</marker>.</example>
+ </rule>
+ <rulegroup id="GENUEGE" name="Groß-/Kleinschreibung: 'zur genüge(Genüge)'">
+ <rule>
+ <pattern case_sensitive="yes">
+ <token>zur</token>
+ <token>genüge</token>
+ </pattern>
+ <message>In <suggestion>zur Genüge</suggestion> wird 'Genüge' groß geschrieben.</message>
+ <example type="correct">Das hat sich <marker>zur Genüge</marker> gezeigt.</example>
+ <example type="incorrect">Das hat sich <marker>zur genüge</marker> gezeigt.</example>
+ </rule>
+ <rule>
+ <pattern case_sensitive="yes">
+ <token>genüge</token>
+ <token regexp="yes">tun|tut|tust|getan</token>
+ </pattern>
+ <message>'Genüge' wird hier groß geschrieben: <suggestion>Genüge \2</suggestion></message>
+ <example type="correct">Der Gerechtigkeit wurde <marker>Genüge getan</marker>.</example>
+ <example type="incorrect">Der Gerechtigkeit wurde <marker>genüge getan</marker>.</example>
+ </rule>
+ </rulegroup>
+ <rule id="WENN_UND_ABER" name="Groß-/Kleinschreibung: 'ohne wenn(Wenn) und aber(Aber)'">
+ <pattern case_sensitive="yes" mark_from="1">
+ <token regexp="yes">[Oo]hne</token>
+ <token>wenn</token>
+ <token>und</token>
+ <token>aber</token>
+ </pattern>
+ <message><suggestion>Wenn und Aber</suggestion> in der Wendung 'ohne Wenn und Aber' wird groß geschrieben.</message>
+ <example type="correct">Das gilt von <marker>Wenn und Aber</marker>.</example>
+ <example type="incorrect">Das gilt ohne <marker>wenn und aber</marker>.</example>
+ </rule>
+ <rule id="DAS_ERSTE_MAL" name="Groß-/Kleinschreibung: 'das erste mal(Mal)'">
+ <pattern case_sensitive="yes" mark_from="2">
+ <token regexp="yes">[Bb]eim|[Zz]um|[Dd]as</token>
+ <token regexp="yes">erste|ersten|letzte|letzten|vorige|vorigen</token>
+ <token>mal</token>
+ </pattern>
+ <message><suggestion>Mal</suggestion> in der Wendung 'das erste/letzte Mal' wird groß geschrieben.</message>
+ <example type="correct">...als du ihn das erste <marker>Mal</marker> gesehen hast?</example>
+ <example type="incorrect">...als du ihn das erste <marker>mal</marker> gesehen hast?</example>
+ <example type="incorrect">...als du ihn zum ersten <marker>mal</marker> gesehen hast?</example>
+ </rule>
+ <rule id="IN_ACHT_NEHMEN" name="Groß-/Kleinschreibung: 'in acht(Acht) nehmen'">
+ <pattern case_sensitive="yes" mark_from="1" mark_to="-1">
+ <token>in</token>
+ <token>acht</token>
+ <token regexp="yes">nehmen|nahm|genommen</token>
+ </pattern>
+ <message><suggestion>Acht</suggestion> in der Wendung '(sich) in Acht nehmen' wird groß geschrieben.</message>
+ <example type="correct">Er sollte sich in <marker>Acht</marker> nehmen.</example>
+ <example type="incorrect">Er sollte sich in <marker>acht</marker> nehmen.</example>
+ </rule>
+ <rule id="AUS_VERSEHEN" name="Groß-/Kleinschreibung: 'aus versehen(Versehen)'">
+ <pattern case_sensitive="yes" mark_from="1">
+ <token>aus</token>
+ <token>versehen</token>
+ </pattern>
+ <message>In der Wendung 'aus Versehen' wird <suggestion>Versehen</suggestion> groß geschrieben.</message>
+ <example type="correct">Die SPD meuchelt aus <marker>Versehen</marker> ihren Chef.</example>
+ <example type="incorrect">Die SPD meuchelt aus <marker>versehen</marker> ihren Chef.</example>
+ </rule>
+ <rule id="AUF_DEM_LAUFENDEN" name="Groß-/Kleinschreibung: 'auf dem laufenden(Laufenden)'">
+ <pattern case_sensitive="yes" mark_from="2">
+ <token>auf</token>
+ <token>dem</token>
+ <token>laufenden</token>
+ </pattern>
+ <message>In der Wendung 'auf dem Laufenden' wird <suggestion>Laufenden</suggestion> groß geschrieben.</message>
+ <example type="correct">Bitte halte mich auf dem <marker>Laufenden</marker>.</example>
+ <example type="incorrect">Bitte halte mich auf dem <marker>laufenden</marker>
+ </example>
+ </rule>
+ <rule id="ETWAS_WICHTIGES" name="Groß-/Kleinschreibung: 'etwas/nichts wichtiges(Wichtiges)'">
+ <pattern case_sensitive="yes" mark_from="1">
+ <token regexp="yes">etwas|nichts</token>
+ <token>wichtiges</token>
+ </pattern>
+ <message><suggestion>Wichtiges</suggestion> als Nomen wird groß geschrieben.</message>
+ <example type="correct">Beiträge die etwas <marker>Wichtiges</marker> über den Spielverlauf verraten bitte kennzeichnen.</example>
+ <example type="incorrect">Beiträge die etwas <marker>wichtiges</marker> über den Spielverlauf verraten bitte kennzeichnen.</example>
+ </rule>
+ <rule id="ETWAS_GUTES" name="Groß-/Kleinschreibung: 'etwas/nichts gutes(Gutes)'">
+ <pattern case_sensitive="yes" mark_from="1">
+ <token regexp="yes">etwas|nichts</token>
+ <token>gutes</token>
+ </pattern>
+ <message><suggestion>Gutes</suggestion> als Nomen wird groß geschrieben.</message>
+ <example type="correct">Dahinter verbirgt sich nichts <marker>Gutes</marker>.</example>
+ <example type="incorrect">Dahinter verbirgt sich nichts <marker>gutes</marker>.</example>
+ </rule>
+ <rule id="ZU_BUCHE" name="Groß-/Kleinschreibung: 'zu buche(Buche) schlagen'">
+ <pattern case_sensitive="yes" mark_from="1">
+ <token>zu</token>
+ <token>buche</token>
+ </pattern>
+ <message>In der Wendung "zu Buche schlagen" schreibt man <suggestion>Buche</suggestion> groß.</message>
+ <example type="correct">Das schlägt nicht so sehr zu <marker>Buche</marker>.</example>
+ <example type="incorrect">Das schlägt nicht so sehr zu <marker>buche</marker>.</example>
+ </rule>
+ <rulegroup id="FRAGEN_HABEN" name="Groß-/Kleinschreibung: 'fragen(Fragen) haben/stellen'">
+ <rule>
+ <pattern case_sensitive="yes" mark_to="-1">
+ <token>fragen</token>
+ <token inflected="yes" regexp="yes">haben|stellen</token>
+ </pattern>
+ <message><suggestion>Fragen</suggestion> als Nomen wird groß geschrieben.</message>
+ <example type="correct">Meine <marker>Fragen</marker> hat bislang keiner gelesen.</example>
+ <example type="correct">Dazu möchte ich gerne <marker>Fragen</marker> stellen.</example>
+ <example type="correct">Dazu wurden <marker>Fragen</marker> gestellt.</example>
+ <example type="incorrect">Meine <marker>fragen</marker> hat bislang keiner gelesen</example>
+ <example type="incorrect">Dazu möchte ich gerne <marker>fragen</marker> stellen.</example>
+ <example type="incorrect">Dazu wurden <marker>fragen</marker> gestellt.</example>
+ </rule>
+ <rule>
+ <!-- TODO: "habe ein paar fragen"... -->
+ <pattern case_sensitive="yes" mark_from="1">
+ <token inflected="yes" regexp="yes">haben|stellen</token>
+ <token>fragen</token>
+ </pattern>
+ <message><suggestion>Fragen</suggestion> als Nomen wird groß geschrieben.</message>
+ <example type="correct">Ich habe <marker>Fragen</marker> dazu.</example>
+ <example type="correct">Ich stellte <marker>Fragen</marker> dazu.</example>
+ <example type="incorrect">Ich habe <marker>fragen</marker> dazu.</example>
+ <example type="incorrect">Ich stellte <marker>fragen</marker> dazu.</example>
+ </rule>
+ </rulegroup>
+ <rule id="SEIT_BESTEHEN" name="Groß-/Kleinschreibung: 'seit bestehen(Bestehen)'">
+ <!-- TODO: seit seinem/ihrem/... Bestehen -->
+ <pattern case_sensitive="yes" mark_from="1">
+ <token>seit</token>
+ <token>bestehen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Bestehen</suggestion>?</message>
+ <example type="correct">Noch nie so viele Auswanderer seit <marker>Bestehen</marker> der BRD</example>
+ <example type="incorrect">Noch nie so viele Auswanderer seit <marker>bestehen</marker> der BRD</example>
+ </rule>
+ <rule id="ZUM_MITNEHMEN" name="Groß-/Kleinschreibung: 'zum mitnehmen(Mitnehmen)'">
+ <pattern case_sensitive="yes" mark_from="1">
+ <token>zum</token>
+ <token>mitnehmen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Mitnehmen</suggestion>?</message>
+ <example type="correct">Alle Gerichte auch zum <marker>Mitnehmen</marker>.</example>
+ <example type="incorrect">Alle Gerichte auch zum <marker>mitnehmen</marker>.</example>
+ </rule>
+ <rule id="AUF_DEM_GEWISSEN" name="Groß-/Kleinschreibung: 'auf dem gewissen(Gewissen)'">
+ <pattern case_sensitive="yes" mark_from="2">
+ <token>auf</token>
+ <token>dem</token>
+ <token>gewissen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Gewissen</suggestion>?</message>
+ <example type="correct">Er hat sie auf dem <marker>Gewissen</marker>.</example>
+ <example type="incorrect">Er hat sie auf dem <marker>gewissen</marker>.</example>
+ </rule>
+ <rulegroup id="ODER_FLUSS" name="Groß-/Kleinschreibung: 'oder/Oder(der Fluss)'">
+ <rule>
+ <pattern case_sensitive="yes">
+ <token>Frankfurt</token>
+ <token>/</token>
+ <token>oder</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Frankfurt/Oder</suggestion>?</message>
+ <example type="correct">In <marker>Frankfurt/Oder</marker> steht ein Hofbräuhaus.</example>
+ <example type="incorrect">In <marker>Frankfurt/oder</marker> steht ein Hofbräuhaus.</example>
+ </rule>
+ <rule>
+ <pattern case_sensitive="yes" mark_from="2" mark_to="-1">
+ <token>Frankfurt</token>
+ <token>(</token>
+ <token>oder</token>
+ <token>)</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Oder</suggestion>?</message>
+ <example type="correct">In Frankfurt (<marker>Oder</marker>) steht ein Hofbräuhaus.</example>
+ <example type="incorrect">In Frankfurt (<marker>oder</marker>) steht ein Hofbräuhaus.</example>
+ </rule>
+ <rule>
+ <pattern case_sensitive="yes" mark_from="2">
+ <token regexp="yes">an|jenseits</token>
+ <token>der</token>
+ <token>oder</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Oder</suggestion>?</message>
+ <example type="correct">Die Stadt liegt an der <marker>Oder</marker>.</example>
+ <example type="incorrect">Die Stadt liegt an der <marker>oder</marker>.</example>
+ </rule>
+ </rulegroup>
+ <rule id="AUSSER_BETRIEB" name="Groß-/Kleinschreibung: 'außer betrieb(Betrieb)'">
+ <!-- TODO: could this be covered by excepting nouns after "außer"? -->
+ <pattern case_sensitive="yes" mark_from="1">
+ <token regexp="yes">außer|in</token>
+ <token>betrieb</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Betrieb</suggestion>?</message>
+ <example type="correct">Der Fahrstuhl ist außer <marker>Betrieb</marker>.</example>
+ <example type="correct">Der Fahrstuhl ist nicht in <marker>Betrieb</marker>.</example>
+ <example type="incorrect">Der Fahrstuhl ist außer <marker>betrieb</marker>.</example>
+ <example type="incorrect">Der Fahrstuhl ist nicht in <marker>betrieb</marker>.</example>
+ </rule>
+ <rule id="ZUR_FOLGE" name="Groß-/Kleinschreibung: 'zur folge(Folge)'">
+ <!-- TODO: could this be covered by excepting nouns after "zur"? -->
+ <pattern case_sensitive="yes" mark_from="1">
+ <token>zur</token>
+ <token>folge</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Folge</suggestion>?</message>
+ <example type="correct">Das hatte ein Anhalten des Zuges zur <marker>Folge</marker>.</example>
+ <example type="incorrect">Das hatte ein Anhalten des Zuges zur <marker>folge</marker>.</example>
+ </rule>
+ <rule id="IN_RUHE" name="Groß-/Kleinschreibung: 'in ruhe(Ruhe)'">
+ <pattern case_sensitive="yes" mark_from="1">
+ <token>in</token>
+ <token>ruhe</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>Ruhe</suggestion>?</message>
+ <example correction="Ruhe" type="incorrect">Lass mich in <marker>ruhe</marker>.</example>
+ <example type="correct">Rabbit in Ruhe</example>
+ </rule>
+ </category>
+ <category name="Grammatik">
+ <!-- TODO: testen!!
+ <rulegroup id="DIE_DER" name="Grammatik: 'der/die' (Genitiv Plural für Substantive)">
+ <rule>
+ <pattern mark_from="1" mark_to="-1">
+ <token postag="SUB:.*" postag_regexp="yes"/>
+ <token>die</token>
+ <token postag="SUB:GEN:PLU:.*" postag_regexp="yes"/>
+ </pattern>
+ <message>Kasusfehler: Beim Genitiv Plural braucht man den Artikel <suggestion>der</suggestion>.</message>
+ <example type="incorrect">Die Frau <marker>die</marker> Männer ist schön.</example>
+ <example type="correct">Die Frau <marker>der</marker> Männer ist schön.</example>
+ </rule>
+ </rulegroup>
+ -->
+ <!-- TODO: testen!!
+ <rulegroup id="EINER_EINE" name="Grammatik: 'unbestimmter Artikel weiblicher im Akkusativ'">
+ <rule>
+ <pattern mark_from="0">
+ <token>einer</token>
+ <token postag="SUB:AKK:SIN:FEM:.*" />
+ </pattern>
+ <message>Kasusfehler: Beim Akkusativ Plural braucht man den unbestimmten Artikel <suggestion>eine</suggestion>.</message>
+ <example type="correct">Wir möchten gerne <marker>eine</marker> Lizenz erwerben.</example>
+ <example type="incorrect">Wir möchten gerne <marker>einer</marker> Lizenz erwerben.</example>
+ </rule>
+ </rulegroup>
+ -->
+ <!-- TODO: testen!!
+ <rulegroup id="DES_DER" name="Grammatik: 'der/des' (Genitiv Singular für männliche Substantive">
+ <rule>
+ <pattern mark_from="1" mark_to="-1">
+ <token postag="SUB:.*" postag_regexp="yes"/>
+ <token regexp="yes">der|dem|den</token>
+ <token postag="SUB:GEN:SIN:MAS:.*" postag_regexp="yes"/>
+ </pattern>
+ <message>Kasusfehler: Beim Genitiv Singular Maskulin braucht man den Artikel <suggestion>des</suggestion>.</message>
+ <example type="correct">Die Tochter <marker>des</marker> Vaters.</example>
+ <example type="incorrect">Die Tochter <marker>dem</marker> Vater</example>
+ </rule>
+ </rulegroup>
+ -->
+ <!-- TODO: make this more general: -->
+ <rulegroup id="ICH_WUENSCHE" name="Grammatik: 'Ich wünschen(wünsche)'">
+ <rule>
+ <pattern case_sensitive="yes" mark_from="1">
+ <token regexp="yes">ich|Ich</token>
+ <token>wünschen</token>
+ </pattern>
+ <message>Meinten Sie <suggestion>wünsche</suggestion> ?</message>
+ <example type="correct">Ich <marker>wünsche</marker> dir viel Spaß.</example>
+ <example type="correct">Viel Spaß <marker>wünsche</marker> ich dir.</example>
+ <example type="incorrect" correction="wünsche">Ich <marker>wünschen</marker> dir viel Spaß.</example>
+ </rule>
+ </rulegroup>
+ <!-- TODO: Fix false alarms like in "Seite zum Suchen von Abkürzungen"
+ <rulegroup id="ZUM_ZUR" name="Grammatik: 'zum(zur) Trennung'">
+ <rule>
+ <pattern case_sensitive="no" mark_to="-1">
+ <token regexp="yes">zum|vom</token>
+ <token postag="SUB:.*FEM" postag_regexp="yes"/>
+ </pattern>
+ <message>Meinten Sie <suggestion>zur</suggestion> ?</message>
+ <example type="correct">Eine einfache Java-Bibliothek Software <marker>zur</marker> Trennung von Komposita.</example>
+ <example type="incorrect">Eine einfache Java-Bibliothek Software <marker>zum</marker> Trennung von Komposita.</example>
+ </rule>
+ </rulegroup>
+ -->
+ <!-- TODO: make this more generic + avoid false alarm in "helfen ihm zu finden"
+ <rule id="HELFEN_DATIV" name="Grammatik: 'Dativ nach 'helfen'">
+ <pattern mark_from="1">
+ <token regexp="yes">helfen|hilft|helfe|hilfst|helft|half|halfst|halfen|halft</token>
+ <token>ihn</token>
+ </pattern>
+ <message>Kasusfehler: Das Personalpronomen nach 'helfen' muss im Dativ stehen (z.B. 'ihm').</message>
+ <example type="correct">Sie hilft <marker>ihm</marker> gerne.</example>
+ <example type="correct">Sie hilft <marker>ihnen</marker> gerne.</example>
+ <example type="correct">Sie helfen <marker>mir</marker> gerne.</example>
+ <example type="correct">Sie helfen <marker>dir</marker> gerne.</example>
+ <example type="correct">Sie helfen <marker>uns</marker> gerne.</example>
+ <example type="incorrect">Sie hilft <marker>ihn</marker> gerne.</example>
+ </rule>
+ -->
+ <rulegroup id="SPRECH_NICHT" name="Grammatik: 'bitte sprech(sprich)'">
+ <rule>
+ <pattern mark_from="1">
+ <token>bitte</token>
+ <token>sprech</token>
+ </pattern>
+ <message>Statt 'sprech' sollte hier eventuell <suggestion>sprich</suggestion> benutzt werden.</message>
+ <example type="correct">Bitte <marker>sprich</marker> nicht so laut.</example>
+ <example type="incorrect">Bitte <marker>sprech</marker> nicht so laut.</example>
+ </rule>
+ <rule>
+ <pattern mark_to="-1">
+ <token>sprech</token>
+ <token>bitte</token>
+ </pattern>
+ <message>Statt 'sprech' sollte hier eventuell <suggestion>sprich</suggestion> benutzt werden.</message>
+ <example type="incorrect"><marker>Sprech</marker> bitte nicht so laut.</example>
+ <example type="correct"><marker>Sprich</marker> bitte nicht so laut.</example>
+ </rule>
+ <rule>
+ <pattern mark_to="-2">
+ <token>sprech</token>
+ <token skip="5"></token>
+ <token>bitte</token>
+ </pattern>
+ <message>Statt 'sprech' sollte hier eventuell <suggestion>sprich</suggestion> benutzt werden.</message>
+ <example type="incorrect"><marker>Sprech</marker> doch bitte nicht so laut.</example>
+ <example type="correct"><marker>Sprich</marker> doch bitte nicht so laut.</example>
+ </rule>
+ </rulegroup>
+ <!-- TODO: too many false alarams
+ <rulegroup id="SEIT_PREP_TEILGRUPPE_MIT_NACH_ETC" name="Grammatik: 'seit/nach/... des (dem)'">
+ <rule>
+ <pattern case_sensitive="no" mark_from="1">
+ <token regexp="yes">mit|nach|bei|von|aus|zu|seit</token>
+ <token postag=".*:DEF:(GEN|NOM|AKK).*" postag_regexp="yes"/>
+ <token/>
+ </pattern>
+ <message>Meinten Sie den Dativ?</message>
+ <example type="correct">Seit <marker>dem Umzug</marker> auf einen neuen Server...</example>
+ <example type="correct">Aber nach <marker>einer Warnung</marker> hielt er an.</example>
+ <example type="incorrect">Seit <marker>des Umzuges</marker> auf einen neuen Server...</example>
+ </rule>
+ </rulegroup>
+ -->
+ <rulegroup id="DEN_DEM" name="Grammatik: 'dem/den' (nur für wenige Verben)">
+ <!-- TODO: the list of words needs to be extended -->
+ <rule>
+ <pattern case_sensitive="yes" mark_from="1" mark_to="-2">
+ <token regexp="yes">beantworte|kaufe|kaufte|kaufst|kaufen|verkaufe|verwünsche</token>
+ <token>dem</token>
+ <token postag="SUB:.*" postag_regexp="yes"/>
+ <token postag="SENT_END"/>
+ </pattern>
+ <message>Meinten Sie <suggestion>den</suggestion>?</message>
+ <example type="correct">Ich beantworte <marker>den</marker> Brief.</example>
+ <example type="correct">Ich beantworte <marker>dem</marker> Mann seine Frage.</example>
+ <example type="correct">Ich kaufe <marker>den</marker> Hund.</example>
+ <example type="incorrect">Ich beantworte <marker>dem</marker> Brief.</example>
+ <example type="incorrect">Ich beantworte <marker>dem</marker> Mann.</example>
+ <example type="incorrect">Ich kaufe <marker>dem</marker> Hund.</example>
+ </rule>
+ <rule>
+ <pattern case_sensitive="yes" mark_from="1" mark_to="-4">
+ <token regexp="yes">beschreibe|zeichne|zeige</token>
+ <token>den</token>
+ <token postag="SUB:.*" postag_regexp="yes"/>
+ <!-- noun phrase: -->
+ <token regexp="yes">dem|den|ein|einen|der|die|das</token>
+ <token postag="SUB:.*" postag_regexp="yes"/>
+ <token postag="SENT_END"/>
+ </pattern>
+ <message>Meinten Sie <suggestion>dem</suggestion>?</message>
+ <example type="correct">Ich zeichne <marker>den</marker> Mann.</example>
+ <example type="correct">Ich zeichne <marker>dem</marker> Mann ein Bild.</example>
+ <example type="incorrect">Ich zeichne <marker>den</marker> Mann ein Bild.</example>
+ </rule>
+ <rule>
+ <pattern case_sensitive="yes" mark_from="1" mark_to="-2">
+ <token regexp="yes">antworte|frage|beschreibe|zeichne</token>
+ <token>den</token>
+ <token postag="SUB:.*" postag_regexp="yes"/>
+ <token postag="SENT_END"/>
+ </pattern>
+ <message>Meinten Sie <suggestion>dem</suggestion>?</message>
+ <example type="correct">Ich antworte <marker>dem</marker> Mann.</example>
+ <example type="incorrect">Ich antworte <marker>den</marker> Mann.</example>
+ </rule>
+ </rulegroup>
+ <rule id="AN_HERR" name="Grammatik: 'an/für Herr(Herrn)'">
+ <pattern case_sensitive="yes" mark_from="1" mark_to="-1">
+ <token regexp="yes">[Aa]n|[Zz]u|[Ff]ür|[Dd]es</token>
+ <token>Herr</token>
+ <token regexp="yes">[A-Z].*</token>
+ <!-- don't match: "die Rechte an Herr der Ringe" -->
+ </pattern>
+ <message>Meinten Sie <suggestion>Herrn</suggestion>?</message>
+ <example type="correct">Mein Brief an <marker>Herrn</marker> Schmidt.</example>
+ <example type="correct">Er ging zu <marker>Herrn</marker> Schmidt.</example>
+ <example correction="Herrn" type="incorrect">Mein Brief an <marker>Herr</marker> Schmidt.</example>
+ <example correction="Herrn" type="incorrect">Er ging zu <marker>Herr</marker> Schmidt.</example>
+ </rule>
+ <!-- TODO: test this more and then set default="on" -->
+ <rulegroup id="ADJEKTIVE_ZU_ADVERBIEN" name="Grammatik: 'bisherig, seitherig usw.'" default="off">
+ <rule>
+ <pattern>
+ <token regexp="no">bisherig</token>
+ </pattern>
+ <message>Diese Form des Adjektivs "\1" ist sehr ungebräuchlich. Meinten Sie das Adverb <suggestion>bisher</suggestion> oder das Adjektiv in der Form <suggestion>\1e</suggestion> oder einer anderen flektierten Form?</message>
+ <example type="correct"><marker>Bisher</marker> ist noch nichts passiert.</example>
+ <example type="incorrect"><marker>Bisherig</marker> ist noch nichts passiert.</example>
+ </rule>
+ <rule>
+ <pattern>
+ <token regexp="no">seitherig</token>
+ </pattern>
+ <message>Diese Form des Adjektivs "\1" ist sehr ungebräuchlich. Meinten Sie das Adverb <suggestion>seither</suggestion> oder das Adjektiv in der Form <suggestion>\1e</suggestion> oder einer anderen flektierten Form?</message>
+ <example type="correct"><marker>Seither</marker> ist noch nichts passiert.</example>
+ <example type="incorrect"><marker>Seitherig</marker> ist noch nichts passiert.</example>
+ </rule>
+ <rule>
+ <pattern>
+ <token regexp="no">jetzig</token>
+ </pattern>
+ <message>Diese Form des Adjektivs "\1" ist sehr ungebräuchlich. Meinten Sie das Adverb <suggestion>jetzt</suggestion> oder das Adjektiv in der Form <suggestion>\1e</suggestion> oder einer anderen flektierten Form?</message>
+ <example type="correct">Bis <marker>jetzt</marker> ist noch nichts passiert.</example>
+ <example type="incorrect">Bis <marker>jetzig</marker> ist noch nichts passiert.</example>
+ </rule>
+ <rule>
+ <pattern>
+ <token regexp="no">obig</token>
+ </pattern>
+ <message>Diese Form des Adjektivs "\1" ist sehr ungebräuchlich. Meinten Sie das Adverb <suggestion>oben</suggestion> oder das Adjektiv in der Form <suggestion>\1e</suggestion> oder einer anderen flektierten Form?</message>
+ <example type="correct">Wie <marker>oben</marker> ausgeführt, ist noch nichts passiert.</example>
+ <example type="incorrect">Wie <marker>obig</marker> ausgeführt, ist noch nichts passiert.</example>
+ </rule>
+ <rule>
+ <pattern>
+ <token regexp="no">jeweilig</token>
+ </pattern>
+ <message>Diese Form des Adjektivs "\1" ist sehr ungebräuchlich. Meinten Sie das Adverb <suggestion>jeweils</suggestion> oder das Adjektiv in der Form <suggestion>\1e</suggestion> oder einer anderen flektierten Form?</message>
+ <example type="correct">Das <marker>jeweils</marker> Adäquate wird unternommen.</example>
+ <example type="incorrect">Das <marker>jeweilig</marker> Adäquate wird unternommen.</example>
+ </rule>
+ <rule>
+ <pattern>
+ <token regexp="no">sofortig</token>
+ </pattern>
+ <message>Diese Form des Adjektivs "\1" ist sehr ungebräuchlich. Meinten Sie das Adverb <suggestion>sofort</suggestion> oder das Adjektiv in der Form <suggestion>\1e</suggestion> oder einer anderen flektierten Form?</message>
+ <example type="correct">Die Wirkung tritt <marker>sofort</marker> ein.</example>
+ <example type="incorrect">Die Wirkung ist <marker>sofortig</marker>.</example>
+ </rule>
+ </rulegroup>
+ </category>
+</rules> \ No newline at end of file