We doubt that Bernhard is yellow. It is almost certain that Antoine is thirsty. It is improbable that Brian is a rhino. It is probable that if 'Antoine is thirsty' or 'Brian is a rhino' or both then John put down the apple. It is certain that if 'Antoine is thirsty and Bernhard is yellow' then Sandra got the milk. It is highly likely that if 'Bernhard is yellow' or 'Brian is a rhino' or both then Greg is a frog.
There is a very good chance that 'Greg is a frog' or 'Brian is a rhino' or both.
It is probably not the case that 'Greg is a frog' or 'Brian is a rhino' or both.
There is a very good chance that 'Greg is a frog' 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.2::factA.
  0.95::factB.
  0.1::factC.
  %hop1
  0.7::factX:-or(factB,factC).
  1.0::factY:-and(factB,factA).
  0.9::factZ:-or(factA,factC).

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

  query(conclusion).
  
'Greg is a frog' or 'Brian is a rhino' or both.