It is probably the case that Sumit is tired. It is highly unlikely that Bernhard is a rhino. It is probably the case that Greg is a lion. Chances are slight that if either 'Greg is a lion' or 'Sumit is tired' but not both then Brian is yellow. It is probable that if 'Greg is a lion' or 'Sumit is tired' or both then Fred dropped the milk. It is unlikely that if either 'Sumit is tired' or 'Greg is a lion' but not both then John left the football.
It is impossible that 'Sumit is tired' or 'Brian is yellow' or both.
It is likely that 'Sumit is tired' or 'Brian is yellow' or both.
It is impossible that 'Sumit is tired' or 'Brian is yellow' or both.

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

  %hop2
  conclusion:-or(factA,factX).

  query(conclusion).
  
'Sumit is tired' or 'Brian is yellow' or both.