It is improbable that Bernhard is green. It is improbable that Greg is gray. We doubt that Daniel left the milk. It is impossible that if 'Greg is gray' or 'Daniel left the milk' or both then Julius is white. It is almost certain that if 'Daniel left the milk and Greg is gray' then Brian is a frog. It is probable that if either 'Greg is gray' or 'Daniel left the milk' but not both then John went to the office.
There is almost no chance that 'Brian is a frog and Daniel left the milk'.
There is almost no chance that 'Brian is a frog and Daniel left the milk'.
It is probable that 'Brian is a frog and Daniel left the milk'.

  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.1::factA.
  0.1::factB.
  0.2::factC.
  %hop1
  0.0::factX:-or(factB,factC).
  0.95::factY:-and(factC,factB).
  0.7::factZ:-xor(factB,factC).

  %hop2
  conclusion:-and(factY,factC).

  query(conclusion).
  
'Brian is a frog and Daniel left the milk'.