code: public char match(ISense source, ISense target) throws MatcherLibraryException {
          char result = IMappingElement.IDK;
          try {
              String sSynset = source.getGloss();
  
              // get gloss of Immediate ancestor of target node
              String tLGExtendedGloss = getExtendedGloss(target, 1, IMappingElement.LESS_GENERAL);
              // get relation frequently occur between gloss of source and extended gloss of target
              char LGRel = getDominantRelation(sSynset, tLGExtendedGloss);
              // get final relation
              char LGFinal = getRelationFromRels(IMappingElement.LESS_GENERAL, LGRel);
              // get gloss of Immediate descendant of target node
              String tMGExtendedGloss = getExtendedGloss(target, 1, IMappingElement.MORE_GENERAL);
              char MGRel = getDominantRelation(sSynset, tMGExtendedGloss);
              char MGFinal = getRelationFromRels(IMappingElement.MORE_GENERAL, MGRel);
              // Compute final relation
              if (MGFinal == LGFinal) {
                  result = MGFinal;
              }
              if (MGFinal == IMappingElement.IDK) {
                  result = LGFinal;
              }
              if (LGFinal == IMappingElement.IDK) {
                  result = MGFinal;
              }
          } catch (LinguisticOracleException e) {
              final String errMessage = e.getClass().getSimpleName() + ": " + e.getMessage();
              log.error(errMessage, e);
              throw new MatcherLibraryException(errMessage, e);
          }
          return result;
      }
docs: Computes the relation for extended semantic gloss matcher.
  
  @param source the gloss of source
  @param target the gloss of target
  @return more general, less general or IDK relation