It is likely that Bernhard is yellow. There is little chance that Greg is gray. It is probably not the case that Mary went to the office. There is a very good chance that if either 'Bernhard is yellow' or 'Greg is gray' but not both then John discarded the milk. It is highly unlikely that if 'Mary went to the office and Greg is gray' then Fred left the apple. There is almost no chance that if 'Bernhard is yellow and Greg is gray' then Brian is a rhino.
It is certain that 'Fred left the apple' or 'Brian is a rhino' or both.
It is impossible that 'Fred left the apple' or 'Brian is a rhino' or both.
It is certain that 'Fred left the apple' or 'Brian is a rhino' or both.

  and(A,B) :- A,B.
  or(A,B) :- A;B.
  nand(A,B) :- not(and(A,B)).
  nor(A,B) :- not(or(A,B)).
  xor(A,B) :- or(A,B), nand(A,B).

  %hop0
  0.7::factA.
  0.1::factB.
  0.25::factC.
  %hop1
  0.8::factX:-xor(factA,factB).
  0.05::factY:-and(factC,factB).
  0.02::factZ:-and(factA,factB).

  %hop2
  conclusion:-or(factY,factZ).

  query(conclusion).
  
'Fred left the apple' or 'Brian is a rhino' or both.