There is almost no chance that Bernhard is green. It is impossible that Gertrude is a sheep. It is impossible that John dropped the apple. It is almost certain that if 'Bernhard is green and John dropped the apple' then Julius is a rhino. There is little chance that if 'Bernhard is green' or 'John dropped the apple' or both then Greg is gray. It is probably not the case that if either 'Bernhard is green' or 'Gertrude is a sheep' but not both then Sandra got the milk.
It is almost certain that 'Gertrude is a sheep and Greg is gray'.
It is impossible that 'Gertrude is a sheep and Greg is gray'.
It is almost certain that 'Gertrude is a sheep and Greg is gray'.

  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.02::factA.
  0.0::factB.
  0.0::factC.
  %hop1
  0.95::factX:-and(factA,factC).
  0.1::factY:-or(factA,factC).
  0.25::factZ:-xor(factA,factB).

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

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