当前位置: 首页 > news >正文

知识图谱入门(一)

最近在研究Graph RAG项目,因此对相关内容做个总结,首先从知识图谱开始,供大家参考。

知识图谱是结构化知识表示的一种形式,它将知识组织成一个多关系图,其中节点表示实体,边表示实体之间的关 系。知识图谱可以表示实体之间的语义关系,帮助机器理解和推理自然语言文本。 支持用户按主题而不是字符串检索,真正实现语义检索。基于知识图谱的搜索引擎,能够以图形方式向用户反馈结 构化的知识,不必浏览大量文档即能准确定位和深度获取知识。

知识图谱概述

1.1. 知识图谱的发展

2012 年,谷歌正式提出了知识图谱( Knowledge Graph)的概念,旨在实现更智能的搜索引擎,并且于 2013 年 以后开始在学术界和业界普及。下图是 Goolge 搜索中的结果,不仅仅给出了 pagerank,还给出了知识图谱的搜 索结果。

目前,随着智能信息服务应用的不断发展,知识图谱已被广泛应用于智能搜索、智能问答、个性化推荐、情报分析、 反欺诈等领域。另外,通过知识图谱能够将 Web 上的信息、数据以及链接关系聚集为知识,使信息资源更易于计 算、理解以及评价,并且形成一套 Web 语义知识库。知识图谱以其强大的语义处理能力与开放互联能力,可为万 维网上的知识互联奠定扎实的基础,使 Web 3.0 提出的“知识之网”愿景成为了可能。 要追溯知识图谱的起源,我们可以回到 20 世纪 60 年代提出的语义网络(Semantic Networks)。 以下是其发展脉络:

1.2. 知识图谱覆盖的领域

知识图谱的覆盖了知识图谱的表示、存储、获取、推理、融合、问答、分析等七大方面。同时,它还包含了与其他 学科领域的交叉融合,主要可以分为以下四个方面:

1.3. 知识图谱的组成

  • 实体 实体是知识图谱中的基本单元,通常是名词或概念。实体可以是具体的对象(如人、地点、物品)或抽象的概念(如 概念、类别)。
  • 关系 关系是知识图谱中实体之间的连接,表示实体之间的语义关系。关系可以是二元的(表示两个实体之间的关系)或 多元的(表示多个实体之间的关系)。

知识图谱中的知识表示

知识表示的核心是通过某种形式来描述、组织和存储知识,便于机器理解与推理。知识表示主要用途如下:

知识表示的主要方法:

2.1. 知识图谱的符号表示方法

知识图谱通过图的形式来描述和表达知识,能够构建更复杂的实体关系模型。但在知识图谱的实际实践中,不同的 应用场景会对知识的建模采用不同表达能力的图表示方法。 知识图谱表示应用最多的是有向标记图(Directed Labelled Graph)。最常用的两种有向标记图模型,一种叫属性 图(Property Graph),另外一种是 RDF 图模型。但有向标记图的表达能力依然是有限的,在很多专业领域,如医 学本体构建等,需要更为复杂的关系语义的表示,例如描述对称关系、自反关系、传递关系等,这就需要用到 OWL 等本体描述语言。知识图谱领域三种最常用的知识表示方法——属性图、RDF 图模型和 OWL 本体语言。

2.1.1 属性图

属性图是图数据库 Neo4J 实现的图结构表示模型,在工业界有广泛应用。属性图的优点是表达方式非常灵活,例 如,它允许为边增加属性,非常便于表示多元关系。属性图的存储充分利用图的结构进行优化,因而在查询计算方 面具有较大优势。属性图的缺点是缺乏工业标准规范的支持,由于不关注更深层的语义表达,也不支持符号逻辑推 理。

2.1.2 RDF 图模型

RDF 是国际万维网联盟 W3C 推动的面向 Web 的语义数据标准,所以 RDF 本身的定位首先是数据交换标准规范, 而非存储模型。RDF 的基本组成单元是三元组,即(s,p,o),例如,可以用一条三元组来描述<浙江大学, 位于, 杭 州>。一条三元组代表关于客观世界的逻辑描述或客观事实。多个三元组头尾相互连接,就形成了一个 RDF 图。本 质上,RDF 图也是一个有向标记图。 RDF 还提供了基础的表达构件用于定义类、属性等 Schema 层的术语。例如,domain、range 用于定义某个关系 的头尾节点类型,subClassOf 和 subPropertyOf 用于定义类及属性之间的层次关系等。有了 RDFS,已经可以实 现最简单的符号推理。

例如:如果将谷歌定义为一家人工智能公司,同时也知道人工智能公司是高科技公司,就可 以推理得出谷歌也是一家高科技公司。这类简单的推理已经可以减轻数据维护的负担,因为很多查询结果可以通过 推理间接得出,而不用对所有结果进行全量存储。

2.1.3 OWL 本体语言

RDF+RDFS 的表达能力是非常有限的。在实际应用中,需要定义更为复杂的概念,刻画更为复杂的概念关系。这就 需要用到 OWL 等本体表达语言。本体(Ontology)原来是一个哲学术语,后来被人工智能的研究人员作为知识表 示研究的对象引入计算机领域。本体最常用的逻辑表达语言即描述逻辑(Description Logic)。

OWL 首先可以被看作 RDF Schema 的扩展。OWL 在 RDF 的基础上增加了更多的语义表达构件。例如,通过多个 类组合定义更加复杂的类;刻画关系的一对多、多对一、多对多等关系基数(Cardinality)约束;定义常用的全称 量词和存在量词;定义互反关系、传递关系、自反关系、函数关系等更加复杂的关系语义等。 OWL 拥有众多的表达构件。

OWL 实际上有很多语言家族,不同的语言家族代表不同的表达构件的组合。不同的组 合对应不同的推理计算复杂度以及它们所适用的场景。OWL-QL 表示查询语言的意思,专为基于大规模的查询设计 的子语言;OWL 2 RL 在扩展 RDFS 表达能力的同时,保持了较低的复杂度;OWL 2 EL 专为概念术语描述、推理 而设计,在生物医疗领域广泛应用,如临床医疗术语本体 SNOMED CT 等。

2.2. 最常用的知识表示方法--属性图(neo4j 的实现)

在知识表示中,知识图谱是一种知识库,其中的数据通过图结构的数据模型或拓扑整合而成。知识图谱通常被用 来存储彼此之间具有相互联系的实体。 三元组是知识图谱的一种通用表示方式,即 G =(E, R, S),其中 E 是知识库中的实体,R 是知识库中的关系,S 代表知识库中的三元组。

三元组的基本形式主要包括实体关系、实体和概念、属性、属性值等。

• 实体是知识图谱中的最基本元素,不同的实体间存在不同的关系。

• 概念主要指集合、类别、对象类型、事物的种类,例如人物、地理等。

• 属性主要指对象可能具有的属性、特征、特性、特点以及参数,例如国籍、生日等; 属性值主要指对象指定属 性的值,例如中国、1988-09-08 等。

每个实体(概念的外延)可用一个全局唯一确定的 ID 来标识,每个属性-属性值对(attribute-value pair, AVP) 可用 来刻画实体的内在特性,而关系可用来连接两个实体,刻画它们之间的关联。

相关文章:

知识图谱入门(一)

最近在研究Graph RAG项目&#xff0c;因此对相关内容做个总结&#xff0c;首先从知识图谱开始&#xff0c;供大家参考。 知识图谱是结构化知识表示的一种形式&#xff0c;它将知识组织成一个多关系图&#xff0c;其中节点表示实体&#xff0c;边表示实体之间的关 系。知识图谱…...

springboot项目-基础数据回显

一.基础数据回显说明 微服务项目中由于从服务独立的角度考虑&#xff0c;对数据库做了分库的处理。对于基础数据表来说&#xff0c;各个服务都是需要的。项目中在使用基础数据时&#xff0c;往往是在sql中写连接然后获取基础数据的名称。例&#xff1a; select wi.name,bc.ci…...

LabVIEW实现油浸式变压器自主监测与实时报告

油浸式变压器广泛应用于电力系统中&#xff0c;尤其是在电力传输和分配领域。为了确保变压器的安全、稳定运行&#xff0c;及时监测其工作状态至关重要。传统的变压器监测方法通常依赖人工巡检和定期检查&#xff0c;但这不能及时发现潜在的故障隐患&#xff0c;且效率较低。随…...

K8S 亲和性与反亲和性 深度好文

今天我们来实验 pod 亲和性。官网描述如下&#xff1a; 假设有如下三个节点的 K8S 集群&#xff1a; k8s31master 是控制节点 k8s31node1、k8s31node2 是工作节点 容器运行时是 containerd 一、镜像准备 1.1、镜像拉取 docker pull tomcat:8.5-jre8-alpine docker pull nginx…...

关于php语言api接口开发的流程

确定接口需求&#xff1a;首先明确接口的功能和需求&#xff0c;包括输入参数、输出结果以及接口的业务逻辑。 设计接口路由&#xff1a;根据接口需求&#xff0c;设计具体的接口路由&#xff0c;即URL路径&#xff0c;用于访问接口。 搭建PHP环境&#xff1a;确保你的服务器上…...

医疗集群系统中基于超融合数据库架构的应用与前景探析

一、引言 1.1 研究背景与意义 随着医疗信息化的飞速发展,医疗数据呈爆炸式增长。从日常诊疗记录、患者病历,到各类医疗影像、检查检验数据等,海量信息不断涌现。据统计,医疗数据的年增长率高达 30% 以上 ,2025 年,全球医疗数据量将达到 2314 艾字节(EB)。如此庞大的数…...

浅谈云计算15 | 存储可靠性技术(RAID)

存储可靠性技术 一、存储可靠性需求1.1 数据完整性1.2 数据可用性1.3 故障容错性 二、传统RAID技术剖析2.1 RAID 02.2 RAID 12.3 RAID 52.4 RAID 62.5 RAID 10 三、RAID 2.0技术3.1 RAID 2.0技术原理3.1.1 两层虚拟化管理模式3.1.2 数据分布与重构 3.2 RAID 2.0技术优势3.2.1 自…...

43.Textbox的数据绑定 C#例子 WPF例子

固定最简步骤&#xff0c;包括 XAML&#xff1a; 题头里引入命名空间 标题下面引入类 box和block绑定属性 C#&#xff1a; 通知的类&#xff0c;及对应固定的任务 引入字段 引入属性 属性双触发&#xff0c;其中一个更新block的属性 block>指向box的属性 从Textbo…...

LLM大语言模型的分类

从架构和功能的角度来看&#xff0c;LLM&#xff08;Large Language Model&#xff0c;大语言模型&#xff09;主要可以分为以下几种类型&#xff1a; **1. 基础语言模型&#xff1a;** * **定义:** 通过在大规模文本数据上进行预训练&#xff0c;学习语言的规律和模式&#…...

【北京迅为】iTOP-4412全能版使用手册-第八十七章 安装Android Studio

iTOP-4412全能版采用四核Cortex-A9&#xff0c;主频为1.4GHz-1.6GHz&#xff0c;配备S5M8767 电源管理&#xff0c;集成USB HUB,选用高品质板对板连接器稳定可靠&#xff0c;大厂生产&#xff0c;做工精良。接口一应俱全&#xff0c;开发更简单,搭载全网通4G、支持WIFI、蓝牙、…...

【深度学习】神经网络之Softmax

Softmax 函数是神经网络中常用的一种激活函数&#xff0c;尤其在分类问题中广泛应用。它将一个实数向量转换为概率分布&#xff0c;使得每个输出值都位于 [0, 1] 之间&#xff0c;并且所有输出值的和为 1。这样&#xff0c;Softmax 可以用来表示各类别的预测概率。 Softmax 函…...

容器渗透横向

本质上要获得 1.获得容器IP段 2.获得主机IP段 3.获得本机IP 4.通过CNI或Docker0等扫描本机端口 Flannel 容器信息 rootubuntu-linux-22-04-desktop:/home/parallels/Desktop# k get po -A -o wide NAMESPACE NAME …...

黑马Java面试教程_P1_导学与准备篇

系列博客目录 文章目录 系列博客目录导学Why?举例 准备篇企业是如何筛选简历的(筛选简历的规则)HR如何筛选简历部门负责人筛选简历 简历注意事项简历整体结构个人技能该如何描述项目该如何描述 应届生该如何找到合适的练手项目项目来源找到项目后&#xff0c;如何深入学习项目…...

《自动驾驶与机器人中的SLAM技术》ch4:预积分学

目录 1 预积分的定义 2 预积分的测量模型 ( 预积分的测量值可由 IMU 的测量值积分得到 ) 2.1 旋转部分 2.2 速度部分 2.3 平移部分 2.4 将预积分测量和误差式代回最初的定义式 3 预积分的噪声模型和协方差矩阵 3.1 旋转部分 3.2 速度部分 3.3 平移部分 3.4 噪声项合并 4 零偏的…...

Docker部署MySQL 5.7:持久化数据的实战技巧

在生产环境中使用Docker启动MySQL 5.7时&#xff0c;需要考虑数据持久化、配置文件管理、安全性等多个方面。以下是一个详细的步骤指南。 1. 准备工作 &#xff08;1&#xff09;创建挂载目录 在宿主机上创建用于挂载的目录&#xff0c;以便持久化数据和配置文件。 sudo mkdi…...

Spring框架 了解

深入浅出Spring框架&#xff1a;为初学者量身定制的入门指南 引言 在现代Java开发中&#xff0c;Spring框架无疑是构建企业级应用的核心技术之一。无论是初学者还是经验丰富的开发者&#xff0c;掌握Spring都能极大地提升你的编程技能和项目开发效率。本文将带你深入了解Spri…...

低代码独特架构带来的编译难点及多线程解决方案

前言 在当今软件开发领域&#xff0c;低代码平台以其快速构建应用的能力&#xff0c;吸引了众多开发者与企业的目光。然而&#xff0c;低代码平台独特的架构在带来便捷的同时&#xff0c;也给编译过程带来了一系列棘手的难点。 一&#xff0c;低代码编译的难点 &#xff08;1…...

如何使用Ultralytics训练自己的yolo5 yolo8 yolo10 yolo11等目标检测模型

Ultralytics正在以惊人的速度吸收优秀的CV算法&#xff0c;之前Ultralytics定位于YOLOV8&#xff0c;但逐渐地扩展到支持其他版本的YOLO&#xff0c;最新版本的ultralytics全面支持yolo5 yolo7 yolo8 yolo9 yolo10 yolo11&#xff0c;包含模型的训练、验证、预测、部署等。毫无…...

Java技术栈 —— Andorid开发入门

Java技术栈 —— Andorid开发入门 一、搭建开发环境二、HelloWorld三、将Andorid项目打包成APK文件&#xff0c;并安装至手机上四、开发常见问题 一、搭建开发环境 不用Intellij&#xff0c;而是用Andorid Studio(免费)&#xff0c;这是专门给Andorid的IDE。 参考文章或视频链…...

Qt天气预报系统获取天气数据

Qt天气预报系统获取天气数据 1、获取天气数据1.1添加天气类头文件1.2定义今天和未来几天天气数据类1.3定义一个解析JSON数据的函数1.4在mainwindow中添加weatherData.h1.5创建今天天气数据和未来几天天气数据对象1.6添加parseJson定义1.7把解析JSON数据添加进去1.8添加错误1.9解…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...

Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践

前言&#xff1a;本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中&#xff0c;跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南&#xff0c;你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案&#xff0c;并结合内网…...

C++_哈希表

本篇文章是对C学习的哈希表部分的学习分享 相信一定会对你有所帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、基础概念 1. 哈希核心思想&#xff1a; 哈希函数的作用&#xff1a;通过此函数建立一个Key与存储位置之间的映射关系。理想目标&#xff1a;实现…...