| 61 | self.parse_edge(edge) |
| 62 | |
| 63 | def parse_node(self, node_json): |
| 64 | node_t = str(node_json['type']) |
| 65 | if node_t not in self.gmeta.node_type_info: |
| 66 | self.gmeta.node_type_info[node_t] = len(self.gmeta.node_type_info) |
| 67 | self.gmeta.node_type_count += 1 |
| 68 | |
| 69 | for feature in node_json['features']: |
| 70 | name = feature['type'] + '_' + feature['name'] |
| 71 | t = feature['type'] |
| 72 | v = feature['value'] |
| 73 | |
| 74 | if name not in self.gmeta.node_feature_dim: |
| 75 | self.gmeta.node_feature_dim[name] = 0 |
| 76 | if t == 'sparse': |
| 77 | for i in v: |
| 78 | self.gmeta.node_feature_dim[name] = \ |
| 79 | max(i, self.gmeta.node_feature_dim[name]) |
| 80 | elif t == 'dense': |
| 81 | self.gmeta.node_feature_dim[name] = len(v) |
| 82 | |
| 83 | if name not in self.gmeta.node_meta: |
| 84 | self.node_type_info[t] += 1 |
| 85 | idx = self.node_type_info[t] - 1 |
| 86 | self.gmeta.node_meta[name] = (name, t, idx) |
| 87 | |
| 88 | def parse_edge(self, edge_json): |
| 89 | edge_t = str(edge_json['type']) |