It is probable that Brian is white. It is probable that Bernhard is yellow. It is likely that John moved to the garden. Chances are about even that if either 'Bernhard is yellow' or 'Brian is white' but not both then Greg is yellow. It is highly likely that if 'Brian is white and Bernhard is yellow' then Mary picked up the milk. We doubt that if 'Bernhard is yellow and John moved to the garden' then Fred is in the school.
It is highly likely that 'John moved to the garden and Fred is in the school'.
It is improbable that 'John moved to the garden and Fred is in the school'.
It is highly likely that 'John moved to the garden and Fred is in the school'.

  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.5::factX:-xor(factB,factA).
  0.9::factY:-and(factA,factB).
  0.2::factZ:-and(factB,factC).

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

  query(conclusion).
  
'John moved to the garden and Fred is in the school'.