private void AddCommunityScoreSubpattern(PatternNode person)
        {
            var communityPoint = CreatePatternNode(PatternNodes.CommunityScore);

            person.ConnectTo(communityPoint, EdgeDirection.Both);
            this.pattern.AddNodes(communityPoint);
        }
        private void AddGroupLeaderSubpattern(PatternNode person)
        {
            var groupLeader = CreatePatternNode(PatternNodes.GroupLeader);

            person.ConnectTo(groupLeader, EdgeDirection.Both);

            this.pattern.AddNodes(groupLeader);
        }
        private void AddActiveMembershipSubpattern(PatternNode person)
        {
            var activeMembership2 = CreatePatternNode(PatternNodes.ActiveMembership2);
            var group2            = CreatePatternNode(PatternNodes.Group2);

            person.ConnectTo(activeMembership2, EdgeDirection.Both);
            activeMembership2.ConnectTo(group2, EdgeDirection.Both);

            this.pattern.AddNodes(activeMembership2, group2);
        }
        private void AddSemesterValuationWithActiveMemebershipSuppattern(PatternNode person)
        {
            var activeMembership1     = CreatePatternNode(PatternNodes.ActiveMembership1);
            var group1                = CreatePatternNode(PatternNodes.Group1);
            var semesterValuation     = CreatePatternNode(PatternNodes.SemesterValuation);
            var semesterValuationNext = CreatePatternNode(PatternNodes.SemesterValuationNext);

            person.ConnectTo(activeMembership1, EdgeDirection.Both);
            activeMembership1.ConnectTo(group1, EdgeDirection.Both);
            group1.ConnectTo(semesterValuation, EdgeDirection.Both);
            group1.ConnectTo(semesterValuationNext, EdgeDirection.Both);
            semesterValuation.ConnectTo(person, EdgeDirection.Both);
            semesterValuationNext.ConnectTo(person, EdgeDirection.Both);
            semesterValuation.ConnectTo(semesterValuation, EdgeDirection.Both);

            this.pattern.AddNodes(activeMembership1, group1, semesterValuation, semesterValuationNext);
        }