def __init__(self, status=Status.ACTUAL, purpose=Purpose.INFO, is_intense=False, verb=None, adverbs=None, rel2xxx=None): if rel2xxx is None: rel2xxx = {} if adverbs is None: adverbs = [] self.status = status assert Status.is_valid(self.status) self.purpose = purpose assert Purpose.is_valid(self.purpose) self.is_intense = is_intense assert isinstance(self.is_intense, bool) self.verb = verb if self.verb: assert isinstance(self.verb, DeepVerb) self.adverbs = adverbs for s in self.adverbs: assert isinstance(s, basestring) self.rel2xxx = rel2xxx for rel, xxx in self.rel2xxx.iteritems(): assert Relation.is_valid(rel) assert isinstance(xxx, list) for xx in xxx: assert isinstance(xx, list) for x in xx: assert isinstance(x, int)
def __init__(self, status, purpose, is_intense, verb, adverbs, rels_vargs, subj_index): self.status = status assert Status.is_valid(self.status) self.purpose = purpose assert Purpose.is_valid(self.purpose) self.is_intense = is_intense assert isinstance(self.is_intense, bool) self.verb = verb assert isinstance(self.verb, DeepVerb) self.adverbs = adverbs for s in self.adverbs: assert isinstance(s, basestring) self.rels_vargs = rels_vargs assert isinstance(self.rels_vargs, list) for r, n in self.rels_vargs: assert Relation.is_valid(r) assert isinstance(n, DeepArgument) # There must be at least one argument. assert self.rels_vargs # Subject is guaranteed to exist, including imperatives where the "you" # is omitted in the surface structure. self.subj_index = subj_index assert isinstance(self.subj_index, int) assert 0 <= self.subj_index < len(self.rels_vargs) # If imperative, subject must be "you". if self.verb.modality.flavor == ModalFlavor.IMPERATIVE: subj = self.rels_vargs[self.subj_index][1] assert is_you(subj) # Subject must be able to be the subject; other args must not be able to # not be the subject. for i, (r, n) in enumerate(self.rels_vargs): res = n.arg_position_restriction() if i == self.subj_index: cant_be = ArgPosRestriction.NOT_SUBJECT else: cant_be = ArgPosRestriction.SUBJECT try: assert res != cant_be except: import json print json.dumps(self.dump(), indent=4, sort_keys=True) raise