'A range of words, tags and taxonomy terms that matches certain words in a sentence.
For example:
Constraint.fromstring("with|of") matches either "with" or "of".
Constraint.fromstring("(JJ)") optionally matches an adjective.
Constraint.fromstring("NP|SBJ") matches subject noun phrases.
Constraint.fromstring("QUANTITY|QUALITY") matches quantity-type and quality-type taxa.'

def __init__(self, words=[], tags=[], chunks=[], roles=[], taxa=[], optional=False, multiple=False, first=False, taxonomy=TAXONOMY, exclude=None, custom=None):

    self.index = 0
    self.words = list(words)
    self.tags = list(tags)
    self.chunks = list(chunks)
    self.roles = list(roles)
    self.taxa = list(taxa)
    self.taxonomy = taxonomy
    self.optional = optional
    self.multiple = multiple
    self.first = first
    self.exclude = exclude
    self.custom = custom
