There is little chance that John went to the bedroom. It is unlikely that Greg is gray. It is certain that Yann is hungry. It is certain that if either 'John went to the bedroom' or 'Greg is gray' but not both then Mary picked up the apple. We doubt that if either 'John went to the bedroom' or 'Greg is gray' but not both then Bernhard is a swan. It is improbable that if 'Yann is hungry and John went to the bedroom' then Brian is a rhino.
It is highly unlikely that 'Yann is hungry and Bernhard is a swan'.
It is highly unlikely that 'Yann is hungry and Bernhard is a swan'.
We believe that 'Yann is hungry and Bernhard is a swan'.

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

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

  query(conclusion).
  
'Yann is hungry and Bernhard is a swan'.