Example #1
0
        public TruthValue projectionTruth(long targetTime, long currentTime)
        {
            TruthValue newTruth = null;

            if (!stamp.isEternal)
            {
                newTruth = TruthFunctions.eternalize(truth);
                if (targetTime != Stamp.ETERNAL)
                {
                    long   occurrenceTime      = stamp.occurrenceTime;
                    double factor              = TruthFunctions.temporalProjection(occurrenceTime, targetTime, currentTime);
                    float  projectedConfidence = (float)(factor * truth.confidence);
                    if (projectedConfidence > newTruth.confidence)
                    {
                        newTruth = TruthValue.make(truth.frequency, projectedConfidence);
                    }
                }
            }

            if (newTruth == null)
            {
                newTruth = truth.clone();
            }

            return(newTruth);
        }