/// <summary> /// Checks if the skos:narrower/skos:narrowerTransitive/skos:narrowMatch relation can be added to the given aConcept with the given bConcept /// </summary> internal static Boolean CheckNarrowerRelation(RDFSKOSConceptScheme conceptScheme, RDFSKOSConcept aConcept, RDFSKOSConcept bConcept) { var canAddNarrowerRel = false; //Avoid clash with hierarchical relations canAddNarrowerRel = !conceptScheme.CheckHasBroaderConcept(aConcept, bConcept); //Avoid clash with associative relations if (canAddNarrowerRel) { canAddNarrowerRel = !conceptScheme.CheckHasRelatedConcept(aConcept, bConcept); } //Avoid clash with mapping relations if (canAddNarrowerRel) { canAddNarrowerRel = (!conceptScheme.CheckHasBroadMatchConcept(aConcept, bConcept) && !conceptScheme.CheckHasCloseMatchConcept(aConcept, bConcept) && !conceptScheme.CheckHasExactMatchConcept(aConcept, bConcept) && !conceptScheme.CheckHasRelatedMatchConcept(aConcept, bConcept)); } return(canAddNarrowerRel); }