Input: Candidates Concept List, equivalentConcept |
Output: Candidates Concept List |
//Remove too specified descendant concepts |
For (concept in DescendantList){ |
If (numOfsubsume(concept) == 0) { |
For (Aconcept in Parents(concept)) { |
If ((Aconcept != equivalentConcept) |
&& (numOfsubsume(Aconcpet) <= |
threshold)) { |
Pop_DescendantList(concept); |
Push_TempList(concept); |
} |
} |
} |
} |
//Remove the rarely used ancestor concepts |
For (concept in TempList) { |
For (Aconcept in AncestorList) { |
If ((Subsumption_Check(Aconcept, |
equivalentConcept) != true) |
&& (Subsumption_Check(Aconcept, concept) == |
true)) { |
IncreaseCount(Aconcept); |
} |
} |
} |
For (Aconcept in AncestorList) { |
If (Count(Aconcept) > threshold) { |
Pop_AncestorList(Aconcept); |
Push_TempList(concept); |
} |
} |
//Remove the independent descendant concepts |
For (concept in DescendantList){ |
If ((numOfsubsume(concept) == 0) |
&& (numOfsubsume(Parents(concept)) <= threshold)) |
{ |
Pop_DescendantList(concept); |
Push_TempList(concept); |
} |
} |
//Hold the transitive concept |
For (concept in TempList) { |
If (inAncestorList(Ancestors(concept)) |
&& inDescendantList(Descendants(concept)) { |
If ((Subsumption_Check(concept, |
equivalentConcept)) { |
Push_AncestorList(concept); |
}else{ |
Push_DescendantList(concept); |
} |
} |
} |