Exemple #1
0
    def __init__(self, possessor=None, selector=None, number=None,
                 attributes=None, noun=None, rels_nargs=None):
        if attributes is None:
            attributes = []
        if rels_nargs is None:
            rels_nargs = []

        self.possessor = possessor
        if self.possessor:
            assert isinstance(self.possessor, DeepArgument)
            assert selector.is_definite()

        self.selector = selector
        assert isinstance(self.selector, Selector)

        self.number = number

        self.attributes = attributes
        assert isinstance(self.attributes, list)
        for s in self.attributes:
            assert s
            assert isinstance(s, basestring)

        self.noun = noun
        if self.noun:
            assert isinstance(self.noun, basestring)
            assert self.noun

        self.rels_nargs = rels_nargs
        for rel, arg in self.rels_nargs:
            assert Relation.is_valid(rel)
            assert isinstance(arg, DeepArgument)
Exemple #2
0
    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)
Exemple #3
0
    def __init__(
        self,
        query=None,
        name=None,
        gender=None,
        is_animate=None,
        attributes=None,
        kind=None,
        rel2xxx=None,
        carrying=None,
    ):
        if attributes is None:
            attributes = []
        if rel2xxx is None:
            rel2xxx = {}
        if carrying is None:
            carrying = []

        self.query = query
        if self.query:
            assert Query.is_valid(self.query)

        self.name = name
        if self.name is not None:
            assert self.name
            assert isinstance(self.name, tuple)

        self.gender = gender
        if self.gender:
            assert Gender.is_valid(self.gender)

        self.is_animate = is_animate
        if self.is_animate:
            assert isinstance(self.is_animate, bool)

        self.attributes = attributes
        assert isinstance(self.attributes, list)
        for s in self.attributes:
            assert s
            assert isinstance(s, basestring)

        self.kind = kind
        if self.kind:
            assert isinstance(self.kind, 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)

        self.carrying = carrying
        for x in self.carrying:
            assert isinstance(x, int)

        self.location_history = LocationHistory()
Exemple #4
0
    def __init__(self,
                 query=None,
                 name=None,
                 gender=None,
                 is_animate=None,
                 attributes=None,
                 kind=None,
                 rel2xxx=None,
                 carrying=None):
        if attributes is None:
            attributes = []
        if rel2xxx is None:
            rel2xxx = {}
        if carrying is None:
            carrying = []

        self.query = query
        if self.query:
            assert Query.is_valid(self.query)

        self.name = name
        if self.name is not None:
            assert self.name
            assert isinstance(self.name, tuple)

        self.gender = gender
        if self.gender:
            assert Gender.is_valid(self.gender)

        self.is_animate = is_animate
        if self.is_animate:
            assert isinstance(self.is_animate, bool)

        self.attributes = attributes
        assert isinstance(self.attributes, list)
        for s in self.attributes:
            assert s
            assert isinstance(s, basestring)

        self.kind = kind
        if self.kind:
            assert isinstance(self.kind, 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)

        self.carrying = carrying
        for x in self.carrying:
            assert isinstance(x, int)

        self.location_history = LocationHistory()
Exemple #5
0
    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
Exemple #6
0
    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
Exemple #7
0
    def __init__(self,
                 possessor=None,
                 selector=None,
                 number=None,
                 attributes=None,
                 noun=None,
                 rels_nargs=None):
        if attributes is None:
            attributes = []
        if rels_nargs is None:
            rels_nargs = []

        self.possessor = possessor
        if self.possessor:
            assert isinstance(self.possessor, DeepArgument)
            assert selector.is_definite()

        self.selector = selector
        assert isinstance(self.selector, Selector)

        self.number = number

        self.attributes = attributes
        assert isinstance(self.attributes, list)
        for s in self.attributes:
            assert s
            assert isinstance(s, basestring)

        self.noun = noun
        if self.noun:
            assert isinstance(self.noun, basestring)
            assert self.noun

        self.rels_nargs = rels_nargs
        for rel, arg in self.rels_nargs:
            assert Relation.is_valid(rel)
            assert isinstance(arg, DeepArgument)
Exemple #8
0
    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)