protected float getScore(CompositionalStructureElement csx, CompositionalStructureElement csz) {
    Vector storedSx = (Vector) csx.getAdditionalInformation(enrichmentName);
    if (storedSx == null && csx.containsAdditionalInfo(enrichmentName)) return 0.0f;

    Vector storedSz = (Vector) csz.getAdditionalInformation(enrichmentName);
    if (storedSz == null && csz.containsAdditionalInfo(enrichmentName)) return 0.0f;

    if (storedSx == null) {
      storedSx = getCompositionalInformationFor(csx.getHead(), csx.getModifier());
      if (storedSx == null) {
        return 0.0f;
      }
    }

    if (storedSz == null) {
      storedSz = getCompositionalInformationFor(csz.getHead(), csz.getModifier());
      if (storedSz == null) {
        return 0.0f;
      }
    }

    return getSimilarity(storedSx, storedSz);
  }