知识图谱(Knowledge Graph)- Neo4j 5.10.0 使用 - Java SpringBoot 操作 Neo4j

知识,图谱,knowledge,graph,neo4j,使用,java,springboot,操作 · 浏览次数 : 179

小编点评

**实体** * PersonNode **关系** * Person -- hasGeneration **属性** * name * generation

正文

上一篇使用了 CQL 实现了太极拳传承谱,这次使用JAVA SpringBoot 实现,只演示获取信息,源码连接在文章最后

三要素
在知识图谱中,通过三元组 <实体 × 关系 × 属性> 集合的形式来描述事物之间的关系:

  • 实体:又叫作本体,指客观存在并可相互区别的事物,可以是具体的人、事、物,也可以是抽象的概念或联系,实体是知识图谱中最基本的元素
  • 关系:在知识图谱中,边表示知识图谱中的关系,用来表示不同实体间的某种联系
  • 属性:知识图谱中的实体和关系都可以有各自的属性

image

image

#输入查看数据库连接
neo4j$ :server status

Spring-Data-Neo4j 和 jpa 非常类似,另外:Neo4jClient 的用法见:https://github.com/neo4j-examples/movies-java-spring-data-neo4j

添加POM引用

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.0</version>
    <relativePath/>
</parent>


<!-- This is everything needed to work with Spring Data Neo4j 6.0. -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-neo4j</artifactId>
</dependency>

配置 Neo4j 连接信息:
application.yml

server:
  port: 8080

spring:
  profiles:
    active: dev

  neo4j:
    uri: neo4j://172.16.3.64:7687
    authentication:
      username: neo4j
      password: password
  data:
    neo4j:
      database: neo4j

logging:
  level:
    org.springframework.data.neo4j: DEBUG

实体 PersonNode.java

package com.vipsoft.web.entity;

import org.springframework.data.neo4j.core.schema.Id;
import org.springframework.data.neo4j.core.schema.Node;
import org.springframework.data.neo4j.core.schema.Property;

@Node("Person")
public class PersonNode {

    @Id
    private String name;


    @Property("generation")     //可以 Neo4j 属性映射
    private String generation;

    public PersonNode(String name, String generation) {
        this.name = name;
        this.generation = generation;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGeneration() {
        return generation;
    }

    public void setGeneration(String generation) {
        this.generation = generation;
    }
}

PersonRepository.java

package com.vipsoft.web.repository;

import com.vipsoft.web.entity.PersonNode;
import org.springframework.data.neo4j.repository.query.Query;
import org.springframework.data.repository.Repository;
import org.springframework.data.repository.query.Param;

import java.util.List;

/**
 * This repository is indirectly used in the {@code movies.spring.data.neo4j.api.MovieController} via a dedicated movie service.
 * It is not a public interface to indicate that access is either through the rest resources or through the service.
 *
 * @author Michael Hunger
 * @author Mark Angrish
 * @author Michael J. Simons
 */ 
public interface PersonRepository extends Repository<PersonNode, String> {

	@Query("MATCH (p:Person) WHERE p.name CONTAINS $name RETURN p")
    List<PersonNode> findSearchResults(@Param("name") String name);
}

http://localhost:2356/demo/person/陈长兴
image

源码地址:https://gitee.com/VipSoft/VipNeo4j/tree/master/Java

与知识图谱(Knowledge Graph)- Neo4j 5.10.0 使用 - Java SpringBoot 操作 Neo4j 相似的内容:

知识图谱(Knowledge Graph)- Neo4j 5.10.0 使用 - Java SpringBoot 操作 Neo4j

上一篇使用了 CQL 实现了太极拳传承谱,这次使用JAVA SpringBoot 实现,只演示获取信息,源码连接在文章最后 三要素 在知识图谱中,通过三元组 集合的形式来描述事物之间的关系: - 实体:又叫作本体,指客观存在并可相互区别的事物,可以是具体的人、事、物,也可以是抽象的概念或联系,实体是

知识图谱(Knowledge Graph)- Neo4j 5.10.0 使用 - CQL - 太极拳传承谱系表

目录创建节点删除节点查询节点创建关系新节点无属性关系删除关系案例 -- 太极拳传承谱系表创建传承人创建师徒关系创建第N代传承人案例 -- 批量执行 看到后面的案例再实操作 删除数据库中以往的图 MATCH (n) DETACH DELETE n 创建节点 CREATE命令语法 Neo4j CQL“C

知识图谱(Knowledge Graph)- Neo4j 5.10.0 使用 - Python 操作

数据基于: [知识图谱(Knowledge Graph)- Neo4j 5.10.0 使用 - CQL - 太极拳传承谱系表](https://www.cnblogs.com/vipsoft/p/17631347.html) 这是一个非常简单的web应用程序,它使用我们的Movie图形数据集来提供列

知识图谱(Knowledge Graph)- Neo4j 5.10.0 CentOS 安装

[知识图谱(Knowledge Graph)- Neo4j 5.10.0 Docker 安装](https://www.cnblogs.com/vipsoft/p/17623086.html) [知识图谱(Knowledge Graph)- Neo4j 5.10.0 CentOS 安装](https

知识图谱(Knowledge Graph)- Neo4j 5.10.0 Docker 安装

[知识图谱(Knowledge Graph)- Neo4j 5.10.0 Docker 安装](https://www.cnblogs.com/vipsoft/p/17623086.html) [知识图谱(Knowledge Graph)- Neo4j 5.10.0 CentOS 安装](https

知识图谱(Knowledge Graph)- Neo4j 5.10.0 Desktop & GraphXR

下载地址:https://neo4j.com/download/ ## 安装 ![image](https://img2023.cnblogs.com/blog/80824/202308/80824-20230816104928898-1342667053.png) 下载时会产生激活码(保存下来)

知识图谱(Knowledge Graph)- Neo4j 5.10.0 Desktop & GraphXR 连接自建数据库

``` #输入查看数据库连接 neo4j$ :server status ``` ![image](https://img2023.cnblogs.com/blog/80824/202308/80824-20230816130548712-41133454.png) 添加 远程连接,输入连接地址 !

知识图谱(Knowledge Graph)根本概念

[TOC] 2012年5月17日,Google 正式提出了知识图谱(Knowledge Graph)的概念,其初衷是为了优化搜索引擎返回的结果,增强用户搜索质量及体验。 假设我们想知道 “王健林的儿子” 是谁,百度或谷歌一下,搜索引擎会准确返回王思聪的信息,说明搜索引擎理解了用户的意图,知道我们要找

知识图谱实体对齐:无监督和自监督的方法

我们在前面介绍的都是有监督的知识图谱对齐方法,它们都需要需要已经对齐好的实体做为种子(锚点),但是在实际场景下可能并没有那么多种子给我们使用。为了解决这个问题,有许多无监督/自监督的知识图谱对齐方法被提出。其中包括基于GAN的方法,基于对比学习的方法等。他们在不需要事先给定锚点的情况下将来自不同知识图谱实体embeddings映射到一个统一的空间。

Vector | Graph:蚂蚁首个开源Graph RAG框架设计解读

引入知识图谱技术后,传统RAG链路到Graph RAG链路会有什么样的变化,如何兼容RAG中的向量数据库(Vector Database)和图数据库(Graph Database)基座,以及蚂蚁的Graph RAG开源技术方案和未来优化方向。