知识图谱操作(二)Neo4j -设计基础SQL(CYPHER查询)

Expand:将一个实体扩张至该节点所有相关的实体集

    def expand(self, entity_name):
        query = (
            "MATCH (a:Entity {name: $entity_name})-[r]->(b:Entity) "
            "RETURN b AS child,r.type AS relation_type"
        )
        with self.driver.session() as session:
            result = session.run(query, entity_name=entity_name)
            linked_nodes = []

            for record in result:
                if record["child"].id is not None and record["child"].id != '':
                    linked_nodes.append(
                        {
                            "id": record["child"].id,
                            "name": record["child"]["name"],
                            "type": record["relation_type"],
                        }
                    )
            return linked_nodes

Describe:返回该实体的所有描述(Description)

    def describe(self, entity_name):
        query = (
            "MATCH (a:Entity {name: $entity_name})-[r]->(b:Description) "
            "RETURN b AS des,r.type AS relation_type"
        )
        with self.driver.session() as session:
            result = session.run(query, entity_name=entity_name)

            types = []
            descriptions = []
            for record in result:
                now_type = record["relation_type"]
                if now_type not in types:
                    matched = []
                    types.append(now_type)
                    for flag in result:
                        if flag["relation_type"] == now_type:
                            matched.append(
                                {"name": flag["des"]["name"],
                                 "page": flag["de
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值