code: protected char getRelation(IAtomicConceptOfLabel sourceACoL, IAtomicConceptOfLabel targetACoL) throws MatcherLibraryException {
          try {
              char relation = senseMatcher.getRelation(sourceACoL.getSenseList(), targetACoL.getSenseList());
  
              //if WN matcher did not find relation
              if (IMappingElement.IDK == relation) {
                  if (useWeakSemanticsElementLevelMatchersLibrary) {
                      //use string based matchers
                      relation = getRelationFromStringMatchers(sourceACoL.getLemma(), targetACoL.getLemma());
                      //if they did not find relation
                      if (IMappingElement.IDK == relation) {
                          //use sense and gloss based matchers
                          relation = getRelationFromSenseGlossMatchers(sourceACoL.getSenseList(), targetACoL.getSenseList());
                      }
                  }
              }
  
              return relation;
          } catch (SenseMatcherException e) {
              final String errMessage = e.getClass().getSimpleName() + ": " + e.getMessage();
              log.error(errMessage, e);
              throw new MatcherLibraryException(errMessage, e);
          }
      }
docs: Returns a semantic relation between two atomic concepts.
  
  @param sourceACoL source concept
  @param targetACoL target concept
  @return relation between concepts
  @throws MatcherLibraryException MatcherLibraryException