docs: def from_triples(cls, triples, remap_nodeids=True):
          """
          Decode triples, as from :meth:`to_triples`, into a Dmrs object.
          """
          top_nid = str(LTOP_NODEID)
          top = lnk = surface = identifier = None
          nids, nd, edges = [], {}, []
          for src, rel, tgt in triples:
              src, tgt = str(src), str(tgt)  # hack for int-converted src/tgt
              if src == top_nid and rel == 'top':
                  top = tgt
                  continue
              elif src not in nd:
                  if top is None:
                      top=src
                  nids.append(src)
                  nd[src] = {'pred': None, 'lnk': None, 'carg': None, 'si': []}
              if rel == 'predicate':
                  nd[src]['pred'] = Pred.surface_or_abstract(tgt)
              elif rel == 'lnk':
                  cfrom, cto = tgt.strip('"<>').split(':')
                  nd[src]['lnk'] = Lnk.charspan(int(cfrom), int(cto))
              elif rel == 'carg':
                  if (tgt[0], tgt[-1]) == ('"', '"'):
                      tgt = tgt[1:-1]
                  nd[src]['carg'] = tgt
              elif rel.islower():
                  nd[src]['si'].append((rel, tgt))
              else:
                  rargname, post = rel.rsplit('-', 1)
                  edges.append((src, tgt, rargname, post))
          if remap_nodeids:
              nidmap = dict((nid, FIRST_NODEID+i) for i, nid in enumerate(nids))
          else:
              nidmap = dict((nid, nid) for nid in nids)
          nodes = [
              Node(
                  nodeid=nidmap[nid],
                  pred=nd[nid]['pred'],
                  sortinfo=nd[nid]['si'],
                  lnk=nd[nid]['lnk'],
                  carg=nd[nid]['carg']
              ) for i, nid in enumerate(nids)
          ]
          links = [Link(nidmap[s], nidmap[t], r, p) for s, t, r, p in edges]
          if top:
              links.append(Link(LTOP_NODEID, nidmap[top], None, H_POST))
          return cls(
              nodes=nodes,
              links=links,
              lnk=lnk,
              surface=surface,
              identifier=identifier
          )