001package de.monochromata.anaphors.ast.reference.strategy.feature; 002 003import de.monochromata.anaphors.ast.ASTBasedAnaphorResolution; 004import de.monochromata.anaphors.ast.feature.Feature; 005import de.monochromata.anaphors.ast.reference.strategy.ReferentializationStrategy; 006import de.monochromata.anaphors.ast.reference.strategy.concept.ConceptReferentializationStrategy; 007 008/** 009 * A referentialization strategy that interprets those parts of an identifier 010 * not consumed by a {@link ConceptReferentializationStrategy} that this 011 * strategy delegates to. This referentialization strategy interprets the 012 * remaining parts of the identifier as verbalizations of {@link Feature}s. 013 * 014 * <p> 015 * Note that {@link ASTBasedAnaphorResolution} should not contain the delegates 016 * returned by {@link #getDelegate()} because the 017 * {@link FeatureReferentializationStrategy} will also apply to cases when the 018 * delegate consumes all information in the definite expression. If both the 019 * feature referentialization strategy and its delegate would be activated 020 * during anaphor resolution, such cases would result in (technical) referential 021 * ambiguity. 022 * </p> 023 * 024 * @param <E> 025 * The expression type 026 * @param <TB> 027 * The type binding type 028 * @param <S> 029 * The scope type (optional) 030 * @param <I> 031 * The type used to represent identifiers 032 * @param <QI> 033 * The type used to represent qualified identifiers 034 */ 035public interface FeatureReferentializationStrategy<E, TB, S, I, QI> 036 extends ReferentializationStrategy<E, TB, S, I, QI> { 037 038 /** 039 * Provides access to the {@link ConceptReferentializationStrategy} that 040 * this feature referentialization strategy delegates to. 041 * 042 * @return the delegate 043 */ 044 public ConceptReferentializationStrategy<E, TB, S, I, QI> getDelegate(); 045 046}