It is almost certain that Julius is a swan. It is highly unlikely that Lily is green. We doubt that Greg is yellow. There is a very good chance that if 'Julius is a swan' or 'Lily is green' or both then Winona is a sheep. It is likely that if 'Julius is a swan' or 'Greg is yellow' or both then Brian is a frog. It is probably not the case that if either 'Julius is a swan' or 'Lily is green' but not both then Mary went to the bedroom.
It is probably the case that 'Greg is yellow' or 'Lily is green' or both.
It is probably not the case that 'Greg is yellow' or 'Lily is green' or both.
It is probably the case that 'Greg is yellow' or 'Lily is green' 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.95::factA.
  0.05::factB.
  0.2::factC.
  %hop1
  0.8::factX:-or(factA,factB).
  0.7::factY:-or(factA,factC).
  0.25::factZ:-xor(factA,factB).

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

  query(conclusion).
  
'Greg is yellow' or 'Lily is green' or both.