It is almost certain that John went to the hallway. It is probably not the case that Bernhard is green. We doubt that Julius is white. It is probable that if either 'Bernhard is green' or 'Julius is white' but not both then Greg is a swan. It is highly likely that if 'Bernhard is green and Julius is white' then Mary picked up the milk. It is probable that if 'Bernhard is green and John went to the hallway' then Lily is gray.
It is probably the case that 'John went to the hallway and Lily is gray'.
We doubt that 'John went to the hallway and Lily is gray'.
It is probably the case that 'John went to the hallway and Lily is gray'.

  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.95::factA.
  0.25::factB.
  0.2::factC.
  %hop1
  0.7::factX:-xor(factB,factC).
  0.9::factY:-and(factB,factC).
  0.7::factZ:-and(factB,factA).

  %hop2
  conclusion:-and(factA,factZ).

  query(conclusion).
  
'John went to the hallway and Lily is gray'.