#include <WordPattern.h>
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 |
| OrGroupElement & | getModifiableRootElement () |
| const OrGroupElement & | getRootElement () const |
| Reference & | createReference (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 |
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.
| 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.
| WordPattern::WordPattern | ( | ) |
Definition at line 9 of file WordPattern.cc.
| WordPattern::~WordPattern | ( | ) |
| WordPattern::WordPattern | ( | const WordPattern & | ) |
| 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 |
| 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 |
| WordPattern::ReferenceIterator WordPattern::referencesEnd | ( | ) | const |
1.4.7