It is probably the case that Bernhard is gray. It is unlikely that Fred is in the cinema. Chances are slight that Emily is a wolf. Chances are slight that if 'Fred is in the cinema' or 'Emily is a wolf' or both then Lily is yellow. It is unlikely that if 'Bernhard is gray and Fred is in the cinema' then John moved to the office. We doubt that if 'Fred is in the cinema and Emily is a wolf' then Gertrude is a sheep.
It is impossible that 'Bernhard is gray and Gertrude is a sheep'.
It is impossible that 'Bernhard is gray and Gertrude is a sheep'.
It is probably the case that 'Bernhard is gray and Gertrude is a sheep'.

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

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

  query(conclusion).
  
'Bernhard is gray and Gertrude is a sheep'.