It is probable that Bernhard is yellow. It is probable that Julius is a swan. It is probable that Lily is green. It is almost certain that if either 'Bernhard is yellow' or 'Lily is green' but not both then Greg is green. It is probable that if 'Lily is green' or 'Julius is a swan' or both then Mary went to the bedroom. It is likely that if either 'Lily is green' or 'Julius is a swan' but not both then John moved to the office.
It is probably not the case that 'Greg is green' or 'Mary went to the bedroom' or both.
There is a very good chance that 'Greg is green' or 'Mary went to the bedroom' or both.
It is probably not the case that 'Greg is green' 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
  0.7::factA.
  0.7::factB.
  0.7::factC.
  %hop1
  0.95::factX:-xor(factA,factC).
  0.7::factY:-or(factC,factB).
  0.7::factZ:-xor(factC,factB).

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

  query(conclusion).
  
'Greg is green' or 'Mary went to the bedroom' or both.