public boolean similarTo(Object o){
  if (o == null) {
    return false;
  }
  if (!(o instanceof SemanticConcept)) {
    return false;
  }
  SemanticConcept otherConcept=(SemanticConcept)o;
  HashSet<Integer> synset_intersection=new HashSet<Integer>(this.synsets);
  synset_intersection.retainAll(otherConcept.synsets);
  if (!synset_intersection.isEmpty()) {
    return true;
  }
  HashSet<String> concept_intersection=new HashSet<String>(this.concepts);
  concept_intersection.retainAll(otherConcept.concepts);
  return !concept_intersection.isEmpty();
}

public boolean similarTo ( Object o ) { if ( o == null ) { return false ; } if ( ! ( o instanceof SemanticConcept ) ) { return false ; } SemanticConcept otherConcept = ( SemanticConcept ) o ; HashSet < Integer > synset_intersection = new HashSet < Integer > ( this . synsets ) ; synset_intersection . retainAll ( otherConcept . synsets ) ; if ( ! synset_intersection . isEmpty ( ) ) { return true ; } HashSet < String > concept_intersection = new HashSet < String > ( this . concepts ) ; concept_intersection . retainAll ( otherConcept . concepts ) ; return ! concept_intersection . isEmpty ( ) ; }
semanticconcepts are similar if they share a synset or a concept
