Exemple #1
0
 def add_edge(self, source, target, label):
     self._G.add_edge(source, target, label=label)
     t = penman.Triple(source=source.identifier,
                       relation=label,
                       target=target.identifier)
     triples = self._triples + [t]
     triples = penman.alphanum_order(triples)
     self._update_penman_graph(triples)
Exemple #2
0
 def replace_node_attribute(self, node, attr, old, new):
     node.replace_attribute(attr, old, new)
     triples = []
     found = False
     for t in self._triples:
         if t.source == node.identifier and t.relation == attr and t.target == old:
             found = True
             t = penman.Triple(source=node.identifier, relation=attr, target=new)
         triples.append(t)
     if not found:
         raise KeyError
     self._triples = penman.alphanum_order(triples)
Exemple #3
0
    def add_node(self, instance):
        identifier = instance[0]
        assert identifier.isalpha()
        if identifier in self.variables():
            i = 2
            while identifier + str(i) in self.variables():
                i += 1
            identifier += str(i)
        triples = self._triples + [Triple(identifier, 'instance', instance)]
        self._triples = penman.alphanum_order(triples)

        node = AMRNode(identifier, [('instance', instance)])
        self._G.add_node(node)
        return node
Exemple #4
0
 def add_node_attribute(self, node, attr, value):
     node.add_attribute(attr, value)
     t = penman.Triple(source=node.identifier, relation=attr, target=value)
     self._triples = penman.alphanum_order(self._triples + [t])
Exemple #5
0
 def __str__(self):
     self._triples = penman.alphanum_order(self._triples)
     return amr_codec.encode(self)