It is impossible that Bernhard is green. It is probably the case that Mary went to the hallway. It is highly unlikely that Julius is white. It is highly unlikely that if 'Julius is white' or 'Bernhard is green' or both then Greg is a lion. It is probably the case that if 'Julius is white and Bernhard is green' then Winona is a mouse. Chances are about even that if either 'Bernhard is green' or 'Julius is white' but not both then John is in the garden.
It is highly unlikely that 'Julius is white' or 'Greg is a lion' or both.
It is highly unlikely that 'Julius is white' or 'Greg is a lion' or both.
It is highly likely that 'Julius is white' or 'Greg 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.0::factA.
  0.7::factB.
  0.05::factC.
  %hop1
  0.05::factX:-or(factC,factA).
  0.7::factY:-and(factC,factA).
  0.5::factZ:-xor(factA,factC).

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

  query(conclusion).
  
'Julius is white' or 'Greg is a lion' or both.