All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.kotlinnlp.linguisticdescription.morphology.morphologies.relations.Adverb.kt Maven / Gradle / Ivy

Go to download

LinguisticDescription is a Kotlin library designed to support linguistic annotations over morphological, syntactic and semantic levels.

The newest version!
/* Copyright 2017-present The KotlinNLP Authors. All Rights Reserved.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 * ------------------------------------------------------------------*/

package com.kotlinnlp.linguisticdescription.morphology.morphologies.relations

import com.kotlinnlp.linguisticdescription.morphology.POS
import com.kotlinnlp.linguisticdescription.morphology.morphologies.ContentWord
import com.kotlinnlp.linguisticdescription.morphology.SingleMorphology
import com.kotlinnlp.linguisticdescription.morphology.properties.*
import com.kotlinnlp.linguisticdescription.morphology.properties.interfaces.Gradable

/**
 * The 'adverb' morphology.
 *
 * @param pos the POS of this morphology
 */
sealed class Adverb(pos: POS) : SingleMorphology(pos), Relation, Gradable {

  /**
   * The 'adversative adverb' morphology.
   *
   * @property lemma the lemma
   * @property oov whether this morphology has been automatically generated by the system (Out Of Vocabulary)
   * @property degree the 'degree' grammatical property
   */
  class Adversative(override val lemma: String, override val oov: Boolean, override val degree: Degree = Degree.Base)
    : Adverb(POS.AdvAdvers)

  /**
   * The 'comparative adverb' morphology.
   *
   * @property lemma the lemma
   * @property oov whether this morphology has been automatically generated by the system (Out Of Vocabulary)
   * @property degree the 'degree' grammatical property
   */
  class Comparative(override val lemma: String, override val oov: Boolean, override val degree: Degree = Degree.Base)
    : Adverb(POS.AdvCompar)

  /**
   * The 'concessive adverb' morphology.
   *
   * @property lemma the lemma
   * @property oov whether this morphology has been automatically generated by the system (Out Of Vocabulary)
   * @property degree the 'degree' grammatical property
   */
  class Concessive(override val lemma: String, override val oov: Boolean, override val degree: Degree = Degree.Base)
    : Adverb(POS.AdvConcess)

  /**
   * The 'deictic adverb' morphology.
   *
   * @property lemma the lemma
   * @property oov whether this morphology has been automatically generated by the system (Out Of Vocabulary)
   * @property degree the 'degree' grammatical property
   */
  class Deictic(override val lemma: String, override val oov: Boolean, override val degree: Degree = Degree.Base)
    : Adverb(POS.AdvDeict)

  /**
   * The 'indefinite adverb' morphology.
   *
   * @property lemma the lemma
   * @property oov whether this morphology has been automatically generated by the system (Out Of Vocabulary)
   * @property degree the 'degree' grammatical property
   */
  class Indefinite(override val lemma: String, override val oov: Boolean, override val degree: Degree = Degree.Base)
    : Adverb(POS.AdvIndef)

  /**
   * The 'indefinite subordinating adverb' morphology.
   *
   * @property lemma the lemma
   * @property oov whether this morphology has been automatically generated by the system (Out Of Vocabulary)
   * @property degree the 'degree' grammatical property
   */
  class IndefiniteSubordinating(
    override val lemma: String,
    override val oov: Boolean,
    override val degree: Degree = Degree.Base
  ) : Adverb(POS.AdvIndefSubord)

  /**
   * The 'interrogative adverb' morphology.
   *
   * @property lemma the lemma
   * @property oov whether this morphology has been automatically generated by the system (Out Of Vocabulary)
   * @property degree the 'degree' grammatical property
   */
  class Interrogative(override val lemma: String, override val oov: Boolean, override val degree: Degree = Degree.Base)
    : Adverb(POS.AdvInterr)

  /**
   * The 'limiting adverb' morphology.
   *
   * @property lemma the lemma
   * @property oov whether this morphology has been automatically generated by the system (Out Of Vocabulary)
   * @property degree the 'degree' grammatical property
   */
  class Limiting(override val lemma: String, override val oov: Boolean, override val degree: Degree = Degree.Base)
    : Adverb(POS.AdvLimit)

  /**
   * The 'locative adverb' morphology.
   *
   * @property lemma the lemma
   * @property oov whether this morphology has been automatically generated by the system (Out Of Vocabulary)
   * @property degree the 'degree' grammatical property
   */
  class Locative(override val lemma: String, override val oov: Boolean, override val degree: Degree = Degree.Base)
    : Adverb(POS.AdvLoc)

  /**
   * The 'modal adverb' morphology.
   *
   * @property lemma the lemma
   * @property oov whether this morphology has been automatically generated by the system (Out Of Vocabulary)
   * @property degree the 'degree' grammatical property
   */
  class Modal(override val lemma: String, override val oov: Boolean, override val degree: Degree = Degree.Base)
    : Adverb(POS.AdvModal), ContentWord

  /**
   * The 'negative adverb' morphology.
   *
   * @property lemma the lemma
   * @property oov whether this morphology has been automatically generated by the system (Out Of Vocabulary)
   * @property degree the 'degree' grammatical property
   */
  class Negative(override val lemma: String, override val oov: Boolean, override val degree: Degree = Degree.Base)
    : Adverb(POS.AdvNeg)

  /**
   * The 'adverbial phrase' morphology.
   *
   * @property lemma the lemma
   * @property oov whether this morphology has been automatically generated by the system (Out Of Vocabulary)
   * @property degree the 'degree' grammatical property
   */
  class Phrase(override val lemma: String, override val oov: Boolean, override val degree: Degree = Degree.Base)
    : Adverb(POS.AdvPhras)

  /**
   * The 'quantitative adverb' morphology.
   *
   * @property lemma the lemma
   * @property oov whether this morphology has been automatically generated by the system (Out Of Vocabulary)
   * @property degree the 'degree' grammatical property
   */
  class Quantitative(override val lemma: String, override val oov: Boolean, override val degree: Degree = Degree.Base)
    : Adverb(POS.AdvQuant)

  /**
   * The 'strength adverb' morphology.
   *
   * @param pos the POS of this morphology
   */
  sealed class Strength(pos: POS) : Adverb(pos) {

    /**
     * The 'strength adverb' morphology.
     *
     * @property lemma the lemma
     * @property oov whether this morphology has been automatically generated by the system (Out Of Vocabulary)
     * @property degree the 'degree' grammatical property
     */
    class Base(override val lemma: String, override val oov: Boolean, override val degree: Degree = Degree.Base)
      : Adverb.Strength(POS.AdvStreng)

    /**
     * The 'negative strength adverb' morphology.
     *
     * @property lemma the lemma
     * @property oov whether this morphology has been automatically generated by the system (Out Of Vocabulary)
     * @property degree the 'degree' grammatical property
     */
    class Negative(override val lemma: String, override val oov: Boolean, override val degree: Degree = Degree.Base)
      : Adverb.Strength(POS.AdvStrengNeg)
  }

  /**
   * The 'time adverb' morphology.
   *
   * @property lemma the lemma
   * @property oov whether this morphology has been automatically generated by the system (Out Of Vocabulary)
   * @property degree the 'degree' grammatical property
   */
  class Time(override val lemma: String, override val oov: Boolean, override val degree: Degree = Degree.Base)
    : Adverb(POS.AdvTime)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy