It is almost certain that Bernhard is gray. It is impossible that Emily is a cat. It is almost certain that Greg is gray. There is almost no chance that if either 'Bernhard is gray' or 'Emily is a cat' but not both then John left the football. It is impossible that if either 'Greg is gray' or 'Emily is a cat' but not both then Sumit is thirsty. It is probably not the case that if 'Emily is a cat' or 'Bernhard is gray' or both then Mary went to the office.
It is almost certain that 'Greg is gray' or 'Mary went to the office' or both.
It is almost certain that 'Greg is gray' or 'Mary went to the office' or both.
There is little chance that 'Greg is gray' or 'Mary went to the office' 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.95::factA.
  0.0::factB.
  0.95::factC.
  %hop1
  0.02::factX:-xor(factA,factB).
  0.0::factY:-xor(factC,factB).
  0.25::factZ:-or(factB,factA).

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

  query(conclusion).
  
'Greg is gray' or 'Mary went to the office' or both.