>>> more_general(("sunny", "?", "?"), ("sunny", "?", "warm")) True >>> more_general(("sunny", "?", "warm"), ("sunny", "?", "?")) False >>> more_general(("?", "?", "warm"), ("sunny", "?", "?")) False >>> more_general(("warm",), ("⊥",)) True >>> more_general(("⊥",), ("windy",)) False >>> more_general(("⊥",), ("⊥",)) True >>> more_general(('?', 'warm', '?', '?', '?', '?'), ('sunny', 'warm', '?', 'strong', 'warm', 'same')) True >>> more_general(('sunny', '?', '?', '?', '?', '?'), ('?', '?', '?', 'strong', '?', '?')) False >>> min_generalizations(('sunny', 'warm'), ('rainy', 'warm')) [('?', 'warm')] >>> min_generalizations(('⊥', '⊥', 'sunny'), ('rainy', 'windy', 'cloudy')) [('rainy', 'windy', '?')] >>> min_generalizations(('⊥', '⊥'), ('a', 'b')) [('a', 'b')] >>> min_specializations(('?', 'x'), domains=[["a", "b", "c"], ["x", "y"]], x=('b', 'x')) [('a', 'x'), ('c', 'x'), ('?', '⊥')] >>> min_specializations(('?', '?'), domains=[["a", "b"], ["x"]], x=('b', 'x')) [('a', '?')] >>> min_specializations(('⊥',), domains=[['a', 'b', 'c']], x=['a']) []