@Override
  public void setAttribute(String attribute, String value) {
    if (attribute.equals(LexicalAttribute.Word.name())) this.setWord(value);
    else if (attribute.equals(LexicalAttribute.Lemma.name())) this.setLemma(value);

    LexicalAttribute myAttribute = null;
    try {
      myAttribute = LexicalAttribute.valueOf(attribute);
    } catch (IllegalArgumentException e) {
      // do nothing
    }
    if (myAttribute == null) {
      myAttribute = lexiconFile.getAttributeForName(attribute);
    }
    this.setValue(myAttribute, value);
  }
  @Override
  public String getAttribute(String attribute) {
    if (attribute.equals(LexicalAttribute.Word.name())) return this.word;
    else if (attribute.equals(LexicalAttribute.Lemma.name())) return this.lemma;

    LexicalAttribute myAttribute = null;
    try {
      myAttribute = LexicalAttribute.valueOf(attribute);
    } catch (IllegalArgumentException e) {
      // do nothing
    }
    if (myAttribute == null) {
      myAttribute = lexiconFile.getAttributeForName(attribute);
    }
    return this.getValue(myAttribute);
  }