Hi,

> So add a rule in a disambiguator to tag the dot. Easy peasy.

now I tried to add a disambiguator for German. Tagging of the dot works,
but when checking (or running tests) I get this exception:

java.lang.ClassCastException: org.languagetool.AnalyzedToken cannot be
cast to org.languagetool.tagging.de.AnalyzedGermanToken
at
org.languagetool.tagging.de.AnalyzedGermanTokenReadings.getGermanReadings(AnalyzedGermanTokenReadings.java:56)
at org.languagetool.rules.de.CaseRule.match(CaseRule.java:428)
at
org.languagetool.JLanguageTool.checkAnalyzedSentence(JLanguageTool.java:613)
at org.languagetool.JLanguageTool.check(JLanguageTool.java:538)
at org.languagetool.JLanguageTool.check(JLanguageTool.java:494)
at
org.languagetool.gui.LanguageToolSupport._check(LanguageToolSupport.java:365)
at org.languagetool.gui.Main$4.run(Main.java:764)

Why is this happening?

Regards
Markus
diff --git a/languagetool-language-modules/de/src/main/java/org/languagetool/language/German.java b/languagetool-language-modules/de/src/main/java/org/languagetool/language/German.java
index df54d98..c089bcf 100644
--- a/languagetool-language-modules/de/src/main/java/org/languagetool/language/German.java
+++ b/languagetool-language-modules/de/src/main/java/org/languagetool/language/German.java
@@ -40,6 +40,8 @@ import org.languagetool.rules.de.WiederVsWiderRule;
 import org.languagetool.rules.de.WordCoherencyRule;
 import org.languagetool.tagging.Tagger;
 import org.languagetool.tagging.de.GermanTagger;
+import org.languagetool.tagging.disambiguation.Disambiguator;
+import org.languagetool.tagging.disambiguation.rules.de.GermanRuleDisambiguator;
 import org.languagetool.tokenizers.SRXSentenceTokenizer;
 import org.languagetool.tokenizers.SentenceTokenizer;
 
@@ -51,11 +53,20 @@ public class German extends Language {
 
   private Tagger tagger;
   private SentenceTokenizer sentenceTokenizer;
+  private Disambiguator disambiguator;
 
   @Override
   public Language getDefaultVariant() {
     return new GermanyGerman();
   }
+  
+  @Override
+  public final Disambiguator getDisambiguator() {
+    if (disambiguator == null) {
+      disambiguator = new GermanRuleDisambiguator();
+    }
+    return disambiguator;
+  }
 
   @Override
   public String getName() {
diff --git a/languagetool-language-modules/de/src/main/java/org/languagetool/tagging/disambiguation/rules/de/GermanRuleDisambiguator.java b/languagetool-language-modules/de/src/main/java/org/languagetool/tagging/disambiguation/rules/de/GermanRuleDisambiguator.java
new file mode 100644
index 0000000..1c4757e
--- /dev/null
+++ b/languagetool-language-modules/de/src/main/java/org/languagetool/tagging/disambiguation/rules/de/GermanRuleDisambiguator.java
@@ -0,0 +1,33 @@
+/* LanguageTool, a natural language style checker 
+ * Copyright (C) 2007 Daniel Naber (http://www.danielnaber.de)
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
+ * USA
+ */
+
+package org.languagetool.tagging.disambiguation.rules.de;
+
+import org.languagetool.Language;
+import org.languagetool.language.German;
+import org.languagetool.tagging.disambiguation.rules.AbstractRuleDisambiguator;
+
+public class GermanRuleDisambiguator extends AbstractRuleDisambiguator {
+
+  @Override
+  protected Language getLanguage() {
+    return new German();
+  }
+
+}
diff --git a/languagetool-language-modules/de/src/main/resources/org/languagetool/resource/de/disambiguation.xml b/languagetool-language-modules/de/src/main/resources/org/languagetool/resource/de/disambiguation.xml
new file mode 100644
index 0000000..9efad78
--- /dev/null
+++ b/languagetool-language-modules/de/src/main/resources/org/languagetool/resource/de/disambiguation.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<?xml-stylesheet type="text/xsl" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/print.xsl" title="Pretty print" ?>
+<?xml-stylesheet type="text/css" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/rules.css" title="Easy editing stylesheet" ?>
+<!--
+German Disambiguation Rules for LanguageTool
+Copyright © 2013 Markus Brenneis, Daniel Naber, Jan Schreiber
+-->
+
+<rules lang="de" xsi:noNamespaceSchemaLocation="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/resource/disambiguation.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xs="http://www.w3.org/2001/XMLSchema";>
+    <rule name=". UNKNOWN -> PKT" id="UNKNOWN_PKT">
+        <pattern>
+            <marker>
+                <token>.</token>
+            </marker>
+        </pattern>
+        <disambig action="add"><wd pos="PKT"/></disambig>
+    </rule>
+</rules>
------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
_______________________________________________
Languagetool-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-devel

Reply via email to