It is probably not the case that Brian is yellow. It is probably not the case that Bernhard is a rhino. Chances are slight that John got the milk. It is likely that if either 'Brian is yellow' or 'John got the milk' but not both then Winona is a wolf. It is highly unlikely that if 'Bernhard is a rhino' or 'Brian is yellow' or both then Lily is a frog. There is a very good chance that if either 'John got the milk' or 'Brian is yellow' but not both then Greg is yellow.
It is unlikely that 'Brian is yellow and Greg is yellow'.
It is unlikely that 'Brian is yellow and Greg is yellow'.
It is probably the case that 'Brian is yellow and Greg 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.25::factA.
  0.25::factB.
  0.1::factC.
  %hop1
  0.7::factX:-xor(factA,factC).
  0.05::factY:-or(factB,factA).
  0.8::factZ:-xor(factC,factA).

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

  query(conclusion).
  
'Brian is yellow and Greg is yellow'.