It is highly unlikely that Greg is white. It is unlikely that Jeff dropped the apple. Chances are slight that Mary went to the hallway. There is little chance that if either 'Mary went to the hallway' or 'Greg is white' but not both then Julius is white. It is highly unlikely that if 'Greg is white' or 'Mary went to the hallway' or both then Brian is yellow. There is a very good chance that if 'Mary went to the hallway' or 'Jeff dropped the apple' or both then Bernhard is a swan.
It is impossible that 'Julius is white and Brian is yellow'.
It is impossible that 'Julius is white and Brian is yellow'.
It is probably the case that 'Julius is white and Brian is yellow'.

  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.05::factA.
  0.2::factB.
  0.1::factC.
  %hop1
  0.1::factX:-xor(factC,factA).
  0.05::factY:-or(factA,factC).
  0.8::factZ:-or(factC,factB).

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

  query(conclusion).
  
'Julius is white and Brian is yellow'.