content: package aima.core.probability.bayes;
  
  import aima.core.probability.CategoricalDistribution;
  import aima.core.probability.Factor;
  import aima.core.probability.proposition.AssignmentProposition;
  
  /**
   * Artificial Intelligence A Modern Approach (3rd Edition): page 512.<br>
   * <br>
   * A Conditional Probability Table, or CPT, can be used for representing
   * conditional probabilities for discrete (finite) random variables. Each row in
   * a CPT contains the conditional probability of each node value for a
   * <b>conditioning case</b>.
   * 
   * @author Ciaran O'Reilly
   */
  public interface ConditionalProbabilityTable extends
  		ConditionalProbabilityDistribution {
  
  	@Override
  	CategoricalDistribution getConditioningCase(Object... parentValues);
  
  	@Override
  	CategoricalDistribution getConditioningCase(
  			AssignmentProposition... parentValues);
  
  	/**
  	 * Construct a Factor consisting of the Random Variables from the
  	 * Conditional Probability Table that are not part of the evidence (see
  	 * AIMA3e pg. 524).
  	 * 
  	 * @param evidence
  	 * @return a Factor for the Random Variables from the Conditional
  	 *         Probability Table that are not part of the evidence.
  	 */
  	Factor getFactorFor(AssignmentProposition... evidence);
  }
  