It is almost certain that John put down the milk. It is probably the case that Bernhard is a frog. It is unlikely that Jeff went to the garden. It is probable that if 'John put down the milk' or 'Bernhard is a frog' or both then Brian is yellow. It is probably not the case that if either 'Bernhard is a frog' or 'John put down the milk' but not both then Greg is white. It is probable that if 'John put down the milk' or 'Jeff went to the garden' or both then Julius is a rhino.
It is impossible that 'Brian is yellow and Julius is a rhino'.
Chances are about even that 'Brian is yellow and Julius is a rhino'.
It is impossible that 'Brian is yellow and Julius is a rhino'.

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

  %hop2
  conclusion:-and(factX,factZ).

  query(conclusion).
  
'Brian is yellow and Julius is a rhino'.