Class SubjectVerbAgreementRule

java.lang.Object
org.languagetool.rules.Rule
org.languagetool.rules.de.SubjectVerbAgreementRule

public class SubjectVerbAgreementRule extends org.languagetool.rules.Rule
Check subject verb agreement for verb forms "ist", "sind", "war" and "waren". For example, it detects the errors in:
  • Das Auto sind schnell.
  • Das Auto waren schnell.
  • Die Autos ist schnell.
  • Die Katze und der Hund ist schön.
See our wiki for documentation of the steps this rule relies on.
Since:
2.9
  • Field Details

    • NPS

      private static final org.languagetool.chunking.ChunkTag NPS
    • NPP

      private static final org.languagetool.chunking.ChunkTag NPP
    • PP

      private static final org.languagetool.chunking.ChunkTag PP
    • QUESTION_PRONOUNS

      private static final List<String> QUESTION_PRONOUNS
    • CURRENCIES

      private static final List<String> CURRENCIES
    • PAIRS

    • singular

      private final Set<String> singular
    • plural

      private final Set<String> plural
    • ANTI_PATTERNS

      private static final List<List<org.languagetool.rules.patterns.PatternToken>> ANTI_PATTERNS
    • tagger

      private final GermanTagger tagger
    • language

      private final German language
  • Constructor Details

    • SubjectVerbAgreementRule

      public SubjectVerbAgreementRule(ResourceBundle messages, German language)
  • Method Details

    • getId

      public String getId()
      Specified by:
      getId in class org.languagetool.rules.Rule
    • getDescription

      public String getDescription()
      Specified by:
      getDescription in class org.languagetool.rules.Rule
    • estimateContextForSureMatch

      public int estimateContextForSureMatch()
      Overrides:
      estimateContextForSureMatch in class org.languagetool.rules.Rule
    • getAntiPatterns

      public List<org.languagetool.tagging.disambiguation.rules.DisambiguationPatternRule> getAntiPatterns()
      Overrides:
      getAntiPatterns in class org.languagetool.rules.Rule
    • getUrl

      public URL getUrl()
      Overrides:
      getUrl in class org.languagetool.rules.Rule
    • match

      public org.languagetool.rules.RuleMatch[] match(org.languagetool.AnalyzedSentence sentence) throws IOException
      Specified by:
      match in class org.languagetool.rules.Rule
      Throws:
      IOException
    • getSingularMatchOrNull

      @Nullable private @Nullable org.languagetool.rules.RuleMatch getSingularMatchOrNull(org.languagetool.AnalyzedTokenReadings[] tokens, int i, org.languagetool.AnalyzedTokenReadings token, String tokenStr, org.languagetool.AnalyzedSentence sentence) throws IOException
      Throws:
      IOException
    • getPluralMatchOrNull

      @Nullable private @Nullable org.languagetool.rules.RuleMatch getPluralMatchOrNull(org.languagetool.AnalyzedTokenReadings[] tokens, int i, org.languagetool.AnalyzedTokenReadings token, String tokenStr, org.languagetool.AnalyzedSentence sentence)
    • isCurrency

      private boolean isCurrency(org.languagetool.AnalyzedTokenReadings token)
    • prevChunkIsNominative

      boolean prevChunkIsNominative(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
    • hasUnknownTokenToTheLeft

      private boolean hasUnknownTokenToTheLeft(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
    • hasUnknownTokenToTheRight

      private boolean hasUnknownTokenToTheRight(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
    • hasUnknownTokenAt

      private boolean hasUnknownTokenAt(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos, int endPos)
    • hasQuestionPronounToTheLeft

      private boolean hasQuestionPronounToTheLeft(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
    • hasVerbToTheLeft

      private boolean hasVerbToTheLeft(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
    • containsRegexToTheLeft

      private boolean containsRegexToTheLeft(String regex, org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
    • containsOnlyInfinitivesToTheLeft

      private boolean containsOnlyInfinitivesToTheLeft(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos) throws IOException
      Throws:
      IOException
    • isFollowedByNominativePlural

      boolean isFollowedByNominativePlural(org.languagetool.AnalyzedTokenReadings[] tokens, int startPos)
    • getSingularFor

      private String getSingularFor(String token)
    • getPluralFor

      private String getPluralFor(String token)