private FeatureEvidence getEvidence(FeatureCover cover)
        {
            FeatureEvidence evidence;
            var             key = cover.FeatureKey;

            if (!_featureEvidences.TryGetValue(key, out evidence))
            {
                _featureEvidences[key] = evidence = new FeatureEvidence(cover, Graph);
                _featureIndex.Add(key);
            }

            return(evidence);
        }
Beispiel #2
0
        public IEnumerable <NodeQuestion> FindDistinguishingNodeQuestions(FeatureEvidence evidence)
        {
            var substitutions = findUnknownSubstitutions(evidence);

            foreach (var substitution in substitutions)
            {
                //compute different answers that we might receive
                //notice that answers which evidence is known are not included
                var answerCounts = getPossibleAnswerCounts(substitution, evidence);

                //choose the most believed one
                yield return(generateDistinguishingQuestion(answerCounts, evidence));
            }
        }
Beispiel #3
0
 private NodeQuestion generateDistinguishingQuestion(Dictionary <NodeReference, int> answerCounts, FeatureEvidence evidence)
 {
     throw new NotImplementedException();
 }
Beispiel #4
0
 private IEnumerable <NodeReference[]> findUnknownSubstitutions(FeatureEvidence evidence)
 {
     throw new NotImplementedException();
 }
Beispiel #5
0
 private Dictionary <NodeReference, int> getPossibleAnswerCounts(NodeReference[] substitution, FeatureEvidence evidence)
 {
     throw new NotImplementedException();
 }
Beispiel #6
0
 public IEnumerable <NodeQuestion> FindEvidenceNodeQuestions(FeatureEvidence evidence)
 {
     throw new NotImplementedException();
 }