There is a very good chance that Mary went to the office. There is a very good chance that Greg is white. We believe that Brian is a rhino. It is almost certain that if 'Greg is white' or 'Mary went to the office' or both then John picked up the apple. Chances are slight that if 'Mary went to the office' or 'Greg is white' or both then Bernhard is a lion. It is probably the case that if 'Mary went to the office' or 'Greg is white' or both then Julius is a swan.
It is probably not the case that 'Brian is a rhino' or 'Bernhard is a lion' or both.
We believe that 'Brian is a rhino' or 'Bernhard is a lion' or both.
It is probably not the case that 'Brian is a rhino' or 'Bernhard is a lion' 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.8::factA.
  0.8::factB.
  0.75::factC.
  %hop1
  0.95::factX:-or(factB,factA).
  0.1::factY:-or(factA,factB).
  0.7::factZ:-or(factA,factB).

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

  query(conclusion).
  
'Brian is a rhino' or 'Bernhard is a lion' or both.