It is certain that Greg is a rhino. We doubt that Bernhard is white. It is highly likely that Brian is green. Chances are slight that if either 'Greg is a rhino' or 'Brian is green' but not both then Lily is a swan. It is highly unlikely that if either 'Greg is a rhino' or 'Bernhard is white' but not both then John discarded the apple. It is probable that if 'Brian is green and Greg is a rhino' then Mary went to the bedroom.
It is probably the case that 'Bernhard is white' or 'Mary went to the bedroom' or both.
It is probably the case that 'Bernhard is white' or 'Mary went to the bedroom' or both.
We doubt that 'Bernhard is white' or 'Mary went to the bedroom' 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
  1.0::factA.
  0.2::factB.
  0.9::factC.
  %hop1
  0.1::factX:-xor(factA,factC).
  0.05::factY:-xor(factA,factB).
  0.7::factZ:-and(factC,factA).

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

  query(conclusion).
  
'Bernhard is white' or 'Mary went to the bedroom' or both.