コード例 #1
0
ファイル: kgtkunreifyvalues.py プロジェクト: yyht/kgtk
    def write_new_edge(
        self,
        kw: KgtkWriter,
        unreifiedw: typing.Optional[KgtkWriter],
        potential_edge_attributes: typing.List[typing.List[str]],
        node1_value: str,
        node2_value: str,
        edge_id: str,
        label_column_idx: int,
        node2_column_idx: int,
        node1_column_name: str,
        label_column_name: str,
        node2_column_name: str,
        id_column_name: str,
    ):
        new_label_value: str = self.new_label_value if self.new_label_value is not None else self.value_label_value
        kw.writemap({
            node1_column_name: node1_value,
            label_column_name: new_label_value,
            node2_column_name: node2_value,
            id_column_name: edge_id,
        })
        self.output_line_count += 1

        if unreifiedw is not None:
            unreifiedw.writemap({
                node1_column_name: node1_value,
                label_column_name: new_label_value,
                node2_column_name: node2_value,
                id_column_name: edge_id,
            })

        self.write_edge_attributes(
            kw,
            unreifiedw,
            potential_edge_attributes,
            edge_id,
            label_column_idx,
            node2_column_idx,
            node1_column_name,
            label_column_name,
            node2_column_name,
            id_column_name,
        )
コード例 #2
0
    def write_new_edge(
        self,
        kw: KgtkWriter,
        unreifiedw: typing.Optional[KgtkWriter],
        potential_edge_attributes: typing.List[typing.List[str]],
        edge_id: str,
        rdf_subject_value: str,
        rdf_predicate_value: str,
        rdf_object_value: str,
        label_column_idx: int,
        node2_column_idx: int,
        node1_column_name: str,
        label_column_name: str,
        node2_column_name: str,
        id_column_name: str,
    ):
        kw.writemap({
            node1_column_name: rdf_subject_value,
            label_column_name: rdf_predicate_value,
            node2_column_name: rdf_object_value,
            id_column_name: edge_id,
        })
        self.output_line_count += 1

        if unreifiedw is not None:
            unreifiedw.writemap({
                node1_column_name: rdf_subject_value,
                label_column_name: rdf_predicate_value,
                node2_column_name: rdf_object_value,
                id_column_name: edge_id,
            })

        self.write_edge_attributes(
            kw,
            unreifiedw,
            potential_edge_attributes,
            edge_id,
            label_column_idx,
            node2_column_idx,
            node1_column_name,
            label_column_name,
            node2_column_name,
            id_column_name,
        )
コード例 #3
0
    def write_edge_attributes(
        self,
        kw: KgtkWriter,
        unreifiedw: typing.Optional[KgtkWriter],
        potential_edge_attributes: typing.List[typing.List[str]],
        edge_id: str,
        label_column_idx: int,
        node2_column_idx: int,
        node1_column_name: str,
        label_column_name: str,
        node2_column_name: str,
        id_column_name: str,
    ):
        width: int = self.get_width(len(potential_edge_attributes))
        attribute_number: int = 0
        edge_row: typing.List[str]
        for edge_row in potential_edge_attributes:
            attribute_number += 1

            attr_edge_id: str = self.make_new_id(edge_id, attribute_number,
                                                 width)

            kw.writemap({
                node1_column_name: edge_id,
                label_column_name: edge_row[label_column_idx],
                node2_column_name: edge_row[node2_column_idx],
                id_column_name: attr_edge_id
            })
            self.output_line_count += 1

            if unreifiedw is not None:
                unreifiedw.writemap({
                    node1_column_name:
                    edge_id,
                    label_column_name:
                    edge_row[label_column_idx],
                    node2_column_name:
                    edge_row[node2_column_idx],
                    id_column_name:
                    attr_edge_id
                })