//calculate the novelty of the giving current feature
        private double calculateNovelty(Feature current, Feature oldTopic)
        {
            double noveltyValue = 0;

            // distance
            double dist = oldTopic.ShortestDistance[featGraph.getFeatureIndex(current.Data)] / featGraph.MaxDistance;

            // previous talk
            double previousTalkPercentage = this.getNeighborDiscussAmount(current);

            // tags
            double funFactTag = 0.0;
            if (current.findTagType(FUN_FACT) != null)
            {
                funFactTag = 1.0;
            }

            noveltyValue = dist * 0.5 + previousTalkPercentage * 0.5 + funFactTag * 0.5;
            if (printCalculation)
            {
                Console.WriteLine("Novelty Calculation");
                Console.WriteLine("Distance from current topic to previous topic: " + dist);
                Console.WriteLine("Percentage of related topics NOT covered: " + previousTalkPercentage);
                Console.WriteLine("Fun fact: " + funFactTag);
                Console.WriteLine("Novelty Value (0.5* distance + 0.5* % of related topics Not covered + 0.5*fun fact): " + noveltyValue);
            }
            return noveltyValue;
        }