diff options
Diffstat (limited to 'JLanguageTool/src/rules/de')
-rw-r--r-- | JLanguageTool/src/rules/de/.cvsignore | 2 | ||||
-rw-r--r-- | JLanguageTool/src/rules/de/coherency.txt | 29 | ||||
-rw-r--r-- | JLanguageTool/src/rules/de/fullform2baseform.txt | 40 | ||||
-rw-r--r-- | JLanguageTool/src/rules/de/grammar.xml | 1670 |
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 |