예제 #1
0
        private IEnumerable <ConceptInstance> getRelevantInstances(ConceptInstance instance, Concept2 relevanceCriterion, BeamGenerator beam)
        {
            var relevantCandidates = beam.GetInstances();

            foreach (var relevantCandidate in relevantCandidates)
            {
                if (relevantCandidate == instance)
                {
                    // prevent self reference
                    continue;
                }

                var values     = beam.GetPropertyValues(relevantCandidate);
                var isRelevant = relevantCandidate.Concept == relevanceCriterion || values.Any(v => v.Key == relevanceCriterion || v.Value.Concept == relevanceCriterion);

                if (isRelevant)
                {
                    yield return(relevantCandidate);
                }
            }
        }