/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.stanbol.enhancer.nlp;
import org.apache.stanbol.enhancer.nlp.coref.CorefFeature;
import org.apache.stanbol.enhancer.nlp.dependency.DependencyRelation;
import org.apache.stanbol.enhancer.nlp.model.AnalysedText;
import org.apache.stanbol.enhancer.nlp.model.Chunk;
import org.apache.stanbol.enhancer.nlp.model.Token;
import org.apache.stanbol.enhancer.nlp.model.annotation.Annotation;
import org.apache.stanbol.enhancer.nlp.morpho.MorphoFeatures;
import org.apache.stanbol.enhancer.nlp.ner.NerTag;
import org.apache.stanbol.enhancer.nlp.phrase.PhraseTag;
import org.apache.stanbol.enhancer.nlp.pos.PosTag;
/**
* Defines the {@link Annotation} constants typically used by NLP components
*/
public interface NlpAnnotations {
/**
* The POS {@link Annotation} added by POS taggers to {@link Token}s of an
* {@link AnalysedText}.
*/
Annotation<PosTag> POS_ANNOTATION = new Annotation<PosTag>(
"stanbol.enhancer.nlp.pos", PosTag.class);
/**
*
*/
Annotation<NerTag> NER_ANNOTATION = new Annotation<NerTag>(
"stanbol.enhancer.nlp.ner", NerTag.class);
/**
* The Phrase {@link Annotation} added by chunker to a group of [1..*]
* {@link Token}s.
* <p>
* This annotation is typically found on {@link Chunk}s.
*/
Annotation<PhraseTag> PHRASE_ANNOTATION = new Annotation<PhraseTag>(
"stanbol.enhancer.nlp.phrase", PhraseTag.class);
/**
* The Sentiment {@link Annotation} added by a sentiment tagger typically to
* single {@link Token}s that do carry a positive or negative sentiment.
*/
Annotation<Double> SENTIMENT_ANNOTATION = new Annotation<Double>(
"stanbol.enhancer.nlp.sentiment", Double.class);
/**
* {@link Annotation} representing the Morphological analysis of a word.
* Typically used on {@link Token}s.
* <p>
* The {@link MorphoFeatures} defines at least the Lemma and [1..*] POS
* tags. NOTE that the POS tag information does not assign a Tag to the
* {@link Token}, but rather specifies that if the Token is classified by a
* {@link #POS_ANNOTATION} to be of one of the Tags the definitions of this
* {@link MorphoFeatures} can be applied.
*/
Annotation<MorphoFeatures> MORPHO_ANNOTATION = new Annotation<MorphoFeatures>(
"stanbol.enhancer.nlp.morpho", MorphoFeatures.class);
/**
* {@link Annotation} representing the grammatical relations a word has with
* other words in the sentence. Typically used on {@link Token}s.
* <p>
*/
Annotation<DependencyRelation> DEPENDENCY_ANNOTATION = new Annotation<DependencyRelation>(
"stanbol.enhancer.nlp.dependency", DependencyRelation.class);
/**
* {@link Annotation} representing all the words which are a
* mention/reference of a given word. Typically used on {@link Token}s.
* <p>
*/
Annotation<CorefFeature> COREF_ANNOTATION = new Annotation<CorefFeature>(
"stanbol.enhancer.nlp.coref", CorefFeature.class);
/*
* Currently only used as part of MorphoFeatures
*/
// Annotation<CaseTag> CASE_ANNOTATION = new Annotation<CaseTag>(
// "stanbol.enhancer.nlp.morpho.case",CaseTag.class);
//
// Annotation<GenderTag> GENDER_ANNOTATION = new Annotation<GenderTag>(
// "stanbol.enhancer.nlp.morpho.gender",GenderTag.class);
//
// Annotation<NumberTag> NUMBER_ANNOTATION = new Annotation<NumberTag>(
// "stanbol.enhancer.nlp.morpho.number",NumberTag.class);
//
// Annotation<PersonTag> PERSON_ANNOTATION = new Annotation<PersonTag>(
// "stanbol.enhancer.nlp.morpho.person",PersonTag.class);
//
// Annotation<TenseTag> TENSE_ANNOTATION = new Annotation<TenseTag>(
// "stanbol.enhancer.nlp.morpho.tense",TenseTag.class);
//
// Annotation<VerbMoodTag> VERB_MOOD_ANNOTATION = new
// Annotation<VerbMoodTag>(
// "stanbol.enhancer.nlp.morpho.verb-mood",VerbMoodTag.class);
}