It is probably the case that Bill moved to the office. It is probably the case that Julius is a rhino. It is highly likely that Bernhard is gray. It is likely that if either 'Bill moved to the office' or 'Bernhard is gray' but not both then Gertrude is a mouse. It is almost certain that if 'Bill moved to the office' or 'Bernhard is gray' or both then Mary dropped the milk. It is certain that if 'Bernhard is gray' or 'Bill moved to the office' or both then Brian is yellow.
It is improbable that 'Bernhard is gray and Mary dropped the milk'.
It is highly likely that 'Bernhard is gray and Mary dropped the milk'.
It is improbable that 'Bernhard is gray and Mary dropped 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.7::factA.
  0.7::factB.
  0.9::factC.
  %hop1
  0.7::factX:-xor(factA,factC).
  0.95::factY:-or(factA,factC).
  1.0::factZ:-or(factC,factA).

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

  query(conclusion).
  
'Bernhard is gray and Mary dropped the milk'.