LinguisticDefinition::LingFeaturesSet Class Reference

Describes a set of LingFeatures objects, useful for representing ambiguities. More...

#include <LingFeaturesSet.h>

List of all members.

Public Types

typedef std::set< LingFeatures * > ElementSet
typedef ElementSet::const_iterator ElementIterator

Public Member Functions

 LingFeaturesSet ()
 ~LingFeaturesSet ()
void add (const LingFeatures &)
 The LingFeatures object is copied.
void remove (const LingFeatures *)
bool isEmpty () const
void set (const std::string &feature)
void set (const LingDef::Feature &)
bool has (const std::string &feature) const
bool has (const LingDef::Feature &) const
void setEnum (const std::string &enumFeature, const std::string &valueFeature)
void setEnum (const LingDef::Feature &enumFeature, const LingDef::Feature &valueFeature)
void getEnumValues (const std::string &enumFeature, std::set< const LingDef::Feature * > &) const
void getEnumValues (const LingDef::Feature &enumFeature, std::set< const LingDef::Feature * > &) const
ElementIterator elementsBegin () const
ElementIterator elementsEnd () const


Detailed Description

Describes a set of LingFeatures objects, useful for representing ambiguities.

The use and the principle is very close to that of LingFeatures, but there are some important differences.

In its most simple form, each LingFeatures object is added explictly to the set:


  LingFeatureSet featuresSet;

  LingFeatures nounSingMasc(*nounPos);
  nounSingMasc += "singular";
  nounSingMasc += "masculine";
  featuresSet.add(nounSingMasc);

  LingFeatures nounPlurMasc(*nounPos);
  nounPlurMasc += "plural";
  nounplurMasc += "masculine";
  featuresSet.add(nounPlurMasc);

  featuresSet.has("singular");  // Returns true
  featuresSet.has("plural");    // Returns true
  featuresSet.has("masculine"); // Returns true
  featuresSet.has("feminine");  // Returns false
 

To test more complex expressions, the class MatchExpression may be used.

LingFeatures objects may also be added dynamically as features are added to the set:


  LingFeatureSet featuresSet;

  LingFeatures nounSing(*nounPos);
  nounSing += "singular";
  featuresSet.add(nounSing);

  // Here, featuresSet only contains one element:
  //  NOUN:+singular

  featuresSet += "plural";

  // Now, featuresSet contains two elements
  //  NOUN:+singular
  //  NOUN:+plural

  featuresSet += "masculine";
  featuresSet += "feminine";

  // Now, featuresSet contains eight elements
  //  NOUN:+singular
  //  NOUN:+plural
  //  NOUN:+singular+masculine
  //  NOUN:+plural+masculine
  //  NOUN:+singular+feminine
  //  NOUN:+plural+feminine

 

Definition at line 76 of file LingFeaturesSet.h.


Member Typedef Documentation

typedef ElementSet::const_iterator LinguisticDefinition::LingFeaturesSet::ElementIterator

Definition at line 156 of file LingFeaturesSet.h.

typedef std::set<LingFeatures *> LinguisticDefinition::LingFeaturesSet::ElementSet

Definition at line 151 of file LingFeaturesSet.h.


Constructor & Destructor Documentation

LingFeaturesSet::LingFeaturesSet (  ) 

Definition at line 11 of file LingFeaturesSet.cc.

LingFeaturesSet::~LingFeaturesSet (  ) 

Definition at line 20 of file LingFeaturesSet.cc.


Member Function Documentation

void LingFeaturesSet::add ( const LingFeatures  ) 

The LingFeatures object is copied.

Definition at line 34 of file LingFeaturesSet.cc.

References LinguisticDefinition::LingFeatures::getLingDef(), and LinguisticDefinition::LingFeatures::getPosDef().

Referenced by main(), and LinguisticDefinition::WordPattern::reduce().

LingFeaturesSet::ElementIterator LingFeaturesSet::elementsBegin (  )  const

Definition at line 209 of file LingFeaturesSet.cc.

Referenced by LinguisticDefinition::WordPattern::matches(), and LinguisticDefinition::WordPattern::reduce().

LingFeaturesSet::ElementIterator LingFeaturesSet::elementsEnd (  )  const

Definition at line 216 of file LingFeaturesSet.cc.

Referenced by LinguisticDefinition::WordPattern::matches(), and LinguisticDefinition::WordPattern::reduce().

void LingFeaturesSet::getEnumValues ( const LingDef::Feature enumFeature,
std::set< const LingDef::Feature * > &   
) const

Definition at line 197 of file LingFeaturesSet.cc.

void LinguisticDefinition::LingFeaturesSet::getEnumValues ( const std::string &  enumFeature,
std::set< const LingDef::Feature * > &   
) const

Referenced by main().

bool LingFeaturesSet::has ( const LingDef::Feature  )  const

Definition at line 138 of file LingFeaturesSet.cc.

bool LinguisticDefinition::LingFeaturesSet::has ( const std::string &  feature  )  const

bool LingFeaturesSet::isEmpty (  )  const

Definition at line 53 of file LingFeaturesSet.cc.

Referenced by main(), and LinguisticDefinition::WordPattern::matches().

void LinguisticDefinition::LingFeaturesSet::remove ( const LingFeatures  ) 

void LingFeaturesSet::set ( const LingDef::Feature  ) 

Definition at line 84 of file LingFeaturesSet.cc.

References LinguisticDefinition::LingDef::Feature::allowSeveralValues(), and LinguisticDefinition::LingDef::Feature::getParentEnum().

void LinguisticDefinition::LingFeaturesSet::set ( const std::string &  feature  ) 

Referenced by main(), and setEnum().

void LingFeaturesSet::setEnum ( const LingDef::Feature enumFeature,
const LingDef::Feature valueFeature 
)

Definition at line 171 of file LingFeaturesSet.cc.

References LinguisticDefinition::LingDef::Feature::getParentEnum(), and set().

void LinguisticDefinition::LingFeaturesSet::setEnum ( const std::string &  enumFeature,
const std::string &  valueFeature 
)


The documentation for this class was generated from the following files:
Generated on Fri Jun 23 14:03:15 2006 for LinguisticDefinition by  doxygen 1.4.7