It is unlikely that Brian is a rhino. It is unlikely that Mary went to the office. It is almost certain that John moved to the garden. It is probable that if 'Mary went to the office and John moved to the garden' then Bernhard is a swan. It is probably the case that if 'Mary went to the office and John moved to the garden' then Julius is gray. There is a very good chance that if 'John moved to the garden and Mary went to the office' then Greg is a lion.
There is little chance that 'Greg is a lion and Julius is gray'.
There is little chance that 'Greg is a lion and Julius is gray'.
It is probably the case that 'Greg is a lion and Julius 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.2::factA.
  0.2::factB.
  0.95::factC.
  %hop1
  0.7::factX:-and(factB,factC).
  0.7::factY:-and(factB,factC).
  0.8::factZ:-and(factC,factB).

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

  query(conclusion).
  
'Greg is a lion and Julius is gray'.