LinguisticDefinition::WordPattern Class Reference

A pattern to match one word, or rather one LingFeatures object. More...

#include <WordPattern.h>

List of all members.

Public Types

typedef std::vector< const
Reference * > 
ReferenceList
typedef ReferenceList::const_iterator ReferenceIterator

Public Member Functions

 WordPattern ()
 ~WordPattern ()
 WordPattern (const WordPattern &)
bool matches (const LingFeatures &) const
bool matches (const LingFeaturesSet &) const
LingFeaturesSet reduce (const LingFeaturesSet &) const
void generate (std::vector< const LingFeatures * > &) const
OrGroupElementgetModifiableRootElement ()
const OrGroupElementgetRootElement () const
ReferencecreateReference (const std::string &featureName, int sourceElementIndex, const std::string &sourceFeatureName)
ReferenceIterator referencesBegin () const
ReferenceIterator referencesEnd () const

Classes

class  AndGroupElement
class  Element
class  GroupElement
class  LeafElement
class  OrGroupElement
class  Reference


Detailed Description

A pattern to match one word, or rather one LingFeatures object.

Since a LingFeaturesSet object can be considered as an extended LingFeatures object, it is possible to match that as well.

For example, to express A noun and either feminine gender and nominate case, or masculine gender and gentive case the following WordPattern may be created:


  WordPattern pattern;

  WordPattern::GroupElement &rootElement =
    pattern.getModifiableRootElement();

  WordPattern::GroupElement &andGroup1 = rootElement.createAnd();

  WordPattern::LeafElement &nounLeaf = and1.createLeaf();
  nounLeaf.setPosDef(*nounDef); // The nounDef object is retrieved from
                                // some LingDef somewhere

  WordPattern::GroupElement &orGroup = andGroup1.createOr();

  WordPattern::GroupElement &andGroup2 = orGroup.createAnd();

  WordPattern::LeafElement &feminineLeaf = andGroup2.createLeaf();
  feminineLeaf.setFeature(*feminineDef);

  WordPattern::LeafElement &nominativeLeaf = andGroup2.createLeaf();
  nominativeLeaf.setFeature(*nominativeDef);

  WordPattern::GroupElement &andGroup3 = orGroup.createAnd();

  WordPattern::LeafElement &masculineLeaf = andGroup3.createLeaf();
  masculineLeaf.setFeature(*masculineDef);

  WordPattern::LeafElement &genitiveLeaf = andGroup3.createLeaf();
  genitiveLeaf.setFeature(*genitiveDef);
 

Sub classes of WordPatternFormatter may do this for you, using an external source of some sort.

Definition at line 60 of file WordPattern.h.


Member Typedef Documentation

typedef ReferenceList::const_iterator LinguisticDefinition::WordPattern::ReferenceIterator

Definition at line 435 of file WordPattern.h.

typedef std::vector<const Reference *> LinguisticDefinition::WordPattern::ReferenceList

Definition at line 430 of file WordPattern.h.


Constructor & Destructor Documentation

WordPattern::WordPattern (  ) 

Definition at line 9 of file WordPattern.cc.

WordPattern::~WordPattern (  ) 

Definition at line 16 of file WordPattern.cc.

References referencesBegin(), and referencesEnd().

WordPattern::WordPattern ( const WordPattern  ) 

Definition at line 26 of file WordPattern.cc.

References referencesBegin(), and referencesEnd().


Member Function Documentation

Reference& LinguisticDefinition::WordPattern::createReference ( const std::string &  featureName,
int  sourceElementIndex,
const std::string &  sourceFeatureName 
)

void LinguisticDefinition::WordPattern::generate ( std::vector< const LingFeatures * > &   )  const

WordPattern::OrGroupElement & WordPattern::getModifiableRootElement (  ) 

Definition at line 37 of file WordPattern.cc.

Referenced by main(), and LinguisticDefinition::XmlWordPatternFormatter::populateWordPattern().

const WordPattern::OrGroupElement & WordPattern::getRootElement (  )  const

Definition at line 44 of file WordPattern.cc.

Referenced by LinguisticDefinition::SentencePattern::Element::hasHeadPattern(), and LinguisticDefinition::SentencePattern::Element::isWildcard().

bool WordPattern::matches ( const LingFeaturesSet  )  const

Definition at line 58 of file WordPattern.cc.

References LinguisticDefinition::LingFeaturesSet::elementsBegin(), LinguisticDefinition::LingFeaturesSet::elementsEnd(), LinguisticDefinition::LingFeaturesSet::isEmpty(), and LinguisticDefinition::WordPattern::OrGroupElement::matches().

bool WordPattern::matches ( const LingFeatures  )  const

Definition at line 51 of file WordPattern.cc.

References LinguisticDefinition::WordPattern::OrGroupElement::matches().

Referenced by main().

LingFeaturesSet WordPattern::reduce ( const LingFeaturesSet  )  const

Definition at line 72 of file WordPattern.cc.

References LinguisticDefinition::LingFeaturesSet::add(), LinguisticDefinition::LingFeaturesSet::elementsBegin(), LinguisticDefinition::LingFeaturesSet::elementsEnd(), and LinguisticDefinition::WordPattern::OrGroupElement::matches().

Referenced by main().

WordPattern::ReferenceIterator WordPattern::referencesBegin (  )  const

Definition at line 493 of file WordPattern.cc.

Referenced by WordPattern(), and ~WordPattern().

WordPattern::ReferenceIterator WordPattern::referencesEnd (  )  const

Definition at line 501 of file WordPattern.cc.

Referenced by WordPattern(), and ~WordPattern().


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