#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 |