Пример #1
0
 def val_func(p, a, b):
     if p.signature.id != "Is":
         return False
     if not issubtype(a.signature.return_type, b.signature.return_type) and \
             not issubtype(b.signature.return_type, a.signature.return_type):
         return False
     if not (issubtype(a.signature.return_type, 'number') or issubtype(a.signature.return_type, 'entity')):
         return False
     return BinaryRule.val_func(p, a, b)
Пример #2
0
 def val_func(p, a, b):
     if p.signature.id != "CC":
         return False
     if a.signature.valence > 0:
         return False
     if b.signature.valence > 0:
         return False
     if a.signature.return_type != b.signature.return_type:
         return False
     return BinaryRule.val_func(p, a, b)
Пример #3
0
 def val_func(p, a, b):
     if p.signature.id in ('Is', 'CC') or a.signature.id in ('Is', 'CC') or b.signature.id in ('Is', 'CC'):
         return False
     return BinaryRule.val_func(p, a, b)