#gStore-weekly | gBuilder功能详解之结构化数据抽取

上一个weekly中已经详细讲解了schema的设计,在schema设计好了之后,gBuilder支持将结构化和非结构化数据转化为RDF图数据。其中结构化数据支持数据的无损转化。

1. 技术介绍

gBuilder的结构化数据抽取采用D2RQ技术实现。 

DR2Q是一个能够将关系数据库中的内容转换成RDF三元组的工具,由于知识图谱中储存的数据通常为三元组格式,而知识图谱构建模块的数据大多储存在关系数据库中,以不同的表的形式来区分,所以需要进行转换。D2RQ主要包括 D2R Server, D2RQ Engine 以及 D2RQ Mapping 语言。 

虽然D2RQ为知识图谱构建模块提供了一个较好的结构化数据自动转换为RDF数据的工具,但由于D2RQ无法与知识图谱Schema相结合,如果完全依赖D2RQ工具的话,会导致生成的RDF数据不符合知识图谱Schema结构,因此,gBuilder结构化数据抽取是一个基于D2RQ和知识图谱Schema的知识图谱构建功能模块。

2. 功能介绍

对于结构化数据通过对表的字段自动化映射到Schema中,从而自动化构建知识图谱,主要包括获取数据库信息、表与实体映射、字段与属性、关系映射、跨表数据映射、生成mapping文件、D2RQ自动抽取。其中映射入口为项目卡片中的对应的【映射】按钮。

2.1 连接关系型数据库

映射首先需要连接存储原始数据的关系型数据库,通过输入数据库名称、数据库类型、数据库地址、用户名、密码、端口号、类型等信息,然后点击连接数据库进行数据库连接。其中当前我们支持MySQL、Oracle、SQL Server、OpenGauss、PostgreSQL、达梦六种数据库类型。类型中我们支持所有表、所有视图、表加视图三种方式进行选择。

例如我们下图连接了一个名称为gbuidlerduie 的MySQL数据库。

连接成功后可以筛选需要进行映射的表,因为数据库中可能存在很多的表,而我们根据schema来选择需要后续操作的表。选择需要映射的表,然后通过点击中间的箭头,即可将其选中:

2.2 关系表与实体的映射

我们在schema设计的实体一般来说都会有一张表或多个表与同一个实体对应,在连接好关系型数据库且选择了需要映射的关系表后,需要将schema中实体同关系表对应起来,我们点击状态为未映射的表点击【映射】进行映射编辑。

依次点击需要处理的关系表,确定其对应的实体及uri标识列(默认是主键),点击后选择在schema中的具体实体名称,针对该实体我们要保障它的唯一性,所以需要选择对应的关系型数据库中的字段(可以选择一个或者多个)作为该实体在知识图谱中的URI(类似关系型数据库中的主键字段)。

同时,由于可能在结构化抽取过程中会定时抽取,为了避免每次全量抽取,提升抽取效率,我们在本步骤进行映射时也可以增加约束条件,在后面进行映射时就只映射符合约束条件的数据,类似SQL语句中的where条件,我们点击【条件】按钮,在弹出的弹框中编写我们的约束条件,例如我们编写只抽取t_song 表中 id>100的数据,那么后面在抽取该表时就只抽取id>100的数据。

处理完的表,按钮会变为蓝色。如需要修改重新点击即可。

如需删除某张表的映射,可右键点击,同时可以点击【批量删除】进行批量的表删除,以及【重置映射】对所有映射关系进行重置。用户也可根据【已映射】和【未映射】状态进行筛选。

对于该步骤我们可以查看当前schema中已经映射好了的实体有哪些,点击【预览映射】即可查看,便于使用者能查看当前映射整体情况,已经映射好的将会以亮色展示,未映射的以灰色展示。

注:只有经过该步操作的表,才会在后续步骤中被处理,因此请确保你要生成三元组的表都进行了映射。

2.3 关系表与谓词的映射

在映射好实体后,接下来需要将实体的属性进行映射。具体将三元组来源于同一张表的列与schema中实体的谓词进行对应。依次选择下拉框中要处理的关系表, 在选好需要处理的表后,平台会将该表有的字段读取出来,例如人物表拥有人物名称、年龄、性别、出生日期等字段,会在平台的【表中的列】的下面展示出来。

如果将表中的列元素拖拽入对应的数据属性谓词框中,生成三元组的宾语为该列的字面值,若需要生成的三元组的宾语,则点击“拖拽变量”按钮,并输入常量值,例如年龄可用常量值100,但是设置常量值后所有人的年龄均会变为设置的常量值。

如果将表中的列元素拖拽入对应的对象属性谓词框中,生成三元组的宾语为该列值对应的实体,因此还需要右键点击以确定其对应实体及对应依据。

完成对应关系处理后,点击右上角“保存当前表”,则下拉框中的表会显示成"已处理",所有表处理完之后就可以点击“下一步”按钮进行后续处理, 若拖拽入对象属性谓词框中的元素没有点击右键进行映射,元素会呈现紫色,无法点击“下一步”按钮。

同样的也可通过【预览映射】查看当前实体属性同schema中的映射情况。

2.4 处理跨表数据

存在希望生成的三元组的主语和宾语来自不同的关系表,即需要处理跨表数据。通过依次选择主语所在的表、schema中谓词、宾语所在的表、宾语所在的列,以及跨表连接的依据。

这里会涉及到两种情况,一种是对于实体的属性值来源于其他的表,以及实体和实体的关系之间来源于其他的表。

第一种例如人物的性别这个属性的值它来源于另外一张表中,当前表中只是编码,例如001这种,但是还需要将001转化为具体的男或者女,那么就需要通过在另外一张编码表中去找到这样涉及多表的数据处理需要用此步骤,如下图所示:首先我们选择主语的表人物表t_person 谓语(即属性)为性别,性别来源的表为t_b_bcode编码表, 然后用标题作为性别的具体值,然后添加join依据,即我们用人物表t_person中的性别字段去等于t_b_bcode编码表中的id字段来去join。在设置好这个依据后就可以将人的性别在最终的三元组中为一个具体的男还是女。

第二种实体之间的关系,即宾语是对象而非某一列的字面值,宾语列选择none对象,系统会匹配到该表对应的实体,然后根据上面的一样去进行join依据的设置,这样即可进行实体之间关系的三元组抽取。

join依据中依次选择要连接的两张表和连接的列,如若需要跨多张表,可添加多组join依据。

同时我们可以进行编辑操作,修改前面设置的映射关系。

通过以上四个步骤能够使用户按照自己的需求实现关系数据库到RDF三元组的转换,并且从繁琐的映射规则编写中解放出来我们的流程可以满足用户绝大部分需求。如果还有更复杂的要求,我们也可以支持一键生成mapping文件,通过编写mapping文件或处理关系数据库来完成。

2.5 生成mapping文件

通过在项目卡片上点击【mapping生成】即可根据前面四步设置的映射关系自动生成mapping文件。

此外,也可对生成的mapping文件进行编辑和修改:

2.6 D2RQ自动抽取

通过点击项目管理卡片的【生成NT文件】即可通过任务的方式使用D2RQ引擎将数据自动抽取为NT文件,文件的数据格式为RDF三元组。

除此之外还支持直接导入一个已有的项目使用,见gBuilder功能详解之项目管理章节对应内容。 

若大家在实际项目中需要使用gBuilder可联系运营同学或者发送邮件进行项目层面合作沟通。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/197645.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

API接口测试工具为什么尤其重要

在现代软件开发中,API接口测试工具扮演着关键的角色,连接不同的软件组件,实现数据传递和功能调用。为确保API的可靠性、安全性和性能,此工具成为不可或缺的一部分。本文将介绍API接口测试工具的重要性! 1. 自动化测试的效率 API接…

mongodb——概念介绍(文档,集合,固定集合,元数据,常用数据类型)

mongodb 层级结构 实例:系统上运行的进程及节点集,一个实例可以有多个库,默认端口 27017。 库:多个集合组成数据库,每个数据库都是独立的,有自己的用户、权限信息,独立的存储文件集 合。 集合&…

【【VDMA彩条显示实验之四 含C语言代码】】

VDMA彩条显示实验之四 含C语言代码 VTC 手册简介 所有的视频都需要有时序 有时序的地方就需要有 时序控制器 VTC的 主要作用是 产生 视频时序 相对于上一节 在这里 我们会理解的更多 观察 这个 HB 信号 其实这个和上一节的图片差不多 在 行同步信号 前面就是前沿 在 行同步…

Java爬虫框架下代理使用中的TCP连接池问题及解决方案

引言 当使用Java爬虫框架进行代理爬取时,可能会遇到TCP连接池问题,导致"java.net.BindException: Cannot assign requested address"等错误。本文将介绍如何以爬取小红书为案例,解决Java爬虫框架中代理使用中的TCP连接池问题&…

关于漏洞:检测到目标SSL证书已过期【原理扫描】

这个漏洞是监听443端口的,如果我们是正式的网站且使用了https那么更新证书即可。 但是我的服务器上面几乎是个空服务器,谁会用443呢? 找不到谁用了那我就部署一个nginx,用nginx代理443,找个证书配一下呗。 然而当我…

Netty源码学习4——服务端是处理新连接的netty的reactor模式

零丶引入 在前面的源码学习中,梳理了服务端的启动,以及NioEventLoop事件循环的工作流程,并了解了Netty处理网络io重要的Channel ,ChannelHandler,ChannelPipeline。 这一篇将学习服务端是如何构建新的连接。 一丶网络包…

二百零六、Flume——Flume1.9.0单机版部署脚本(附截图)

一、目的 在实际项目部署时,要实现易部署易维护,需要把安装步骤变成安装脚本实现快速部署 二、部署脚本在Linux中文件位置 文件夹中只有脚本文件flume-install.sh和tar包apache-flume-1.9.0-bin.tar.gz 三、Flume安装脚本 #!/bin/bash #获取服务器名…

3D 纹理渲染如何帮助设计师有效、清晰地表达设计理念

在线工具推荐: 三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 - 3D模型预览图生成服务 定义 3D 渲染可视化及其用途 3D 可视化是一种艺术形式。这是一个机会。这是进步。借助 3D 纹理…

Apache POI(Java)

一、Apache POI介绍 Apache POI是Apache组织提供的开源的工具包(jar包)。大多数中小规模的应用程序开发主要依赖于Apache POI(HSSF XSSF)。它支持Excel 库的所有基本功能; 文本的导入和导出是它的主要特点。 我们可以使用 POI 在…

单链表相关面试题--2.反转一个单链表

/* 解题思路: 此题一般常用的方法有两种,三指针翻转法和头插法 1. 三指针翻转法记录连续的三个节点,原地修改节点指向 2. 头插法每一个节点都进行头插 */ // 三个指针翻转的思想完成逆置 struct ListNode* reverseList(struct ListNode* head…

Jenkins自动化部署(虚拟机部署)

文章目录 一、持续集成和持续交付二、自动化部署流程三、虚拟机安装四、安装Jenkins环境4.1.安装java环境4.2. 安装Jenkins4.3.Jenkins配置 五、nginx安装和配置5.1. 安装nginx5.2.通过Linux命令创建文件夹和文件:5.3. 配置nginx 六、将代码上传到Git仓库七、Jenkin…

《Python数据科学项目实战》:开启数据科学之旅的实战指南!

《Python数据科学项目实战》是一本内容丰富且组织结构严谨的书籍,它旨在帮助读者通过实际案例研究掌握使用Python进行数据科学工作的必要知识。本书的案例研究涵盖了在线广告分析、使用新闻数据跟踪疾病暴发等多个现实世界的场景,使读者能够将所学知识应…