There is little chance that Lily is yellow. It is highly likely that Brian is a lion. There is a very good chance that Fred is in the school. There is almost no chance that if either 'Lily is yellow' or 'Fred is in the school' but not both then Mary dropped the milk. There is a very good chance that if 'Lily is yellow' or 'Brian is a lion' or both then Jessica is a cat. There is little chance that if 'Lily is yellow and Fred is in the school' then Greg is a swan.
It is probable that 'Fred is in the school and Brian is a lion'.
It is probable that 'Fred is in the school and Brian is a lion'.
It is improbable that 'Fred is in the school and Brian is a lion'.

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

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

  query(conclusion).
  
'Fred is in the school and Brian is a lion'.