《知识图谱》-王昊奋-读书笔记2-知识图谱的数据存储

2023-11-20 15:10

本文主要是介绍《知识图谱》-王昊奋-读书笔记2-知识图谱的数据存储,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、知识图谱数据存储工具
1. 开源工具简介
三元组数据库 Apache Jena。Jena 是一个 Java 框架类库。Jena 为了用户使用方便,提供了一个名为 Fuseki 的独立 RDF数据库 Web 应用程序。
本实验使用 Fuseki 作为认识知识图谱数据库的入门工具。
内容包括: Jena Fuseki 的安装,启动 Fusek,生成知识图谱数据,将知识图谱装载到 Fuseki ,查询知识图谱,更新知识图谱。
2. 其他类似工具
(1)RDF4J Eclipse 基金会旗下的开源孵化项目,其前身是荷兰软件公司 Aduna 开发的Sesame 框架,其功能包括: RDF 数据的解析、存储、推理和查询等。 RDF4J 提供内存和磁盘两种 RDF 存储机制,支持 SPARQL 1.1 查询和更新语言。
(2) gStore 是由北京大学开发的基于图的 RDF 三元组数据库。
gStore 是由北京大学计算机科学技术研究所数据管理实验室自 2011年开始研发的面向 RDF 知识图谱的开源图数据库系统。 2013 12 gStore 0.1 版本完全开发完成,并于2014 年开始在 GitHub 上进行开源。目前( 2019 5 月), gStore 版本已经进化到 0.8 版本。在多个国际通行基准测试数据集上,当前版本 gStore 的性能已经得到了测试与验证。
当前版本的 gStore 已经能够支持对包含 40 亿条边的 RDF 图构建数据库并进行秒级的查询响应。
不同于传统基于关系数据库的知识图谱数据管理方法, gStore 原生基于图数据模型,维持了原始 RDF 知识图谱的图结构;其数据模型是有标签、有向的多边图,每个顶点对应着一个主体或客体。 gStore 将面向 RDF SPARQL 查询,转换为面向 RDF 图的子图匹配查询,利用 gStore 所提出的基于图结构的索引来加速查询的性能。
gStore Workbench 是针对 gStore 设计的图数据库管理工具。在 gStore Workbench 上,用户可以创建新的数据库,载入 RDF 图数据,监控数据库状态和提交 SPARQL 查询请求。此外, gStore 还支持基于 HTTP 协议的远程图数据库访问。
(3)AllegroGraph Franz 公司开发的 RDF 三元组数据库。 AllegroGraph 对语义推理功能 具有较为完善的支持。除了三元组数据库的基本功能, AllegroGraph 还支持动态物化的 RDFS++ 推理机、 OWL2 RL 推理机、 Prolog 规则推理系统、时空推理机制、社会网络分析 库、可视化 RDF 图浏览器等。
(4)GraphDB 是由 Ontotext 软件公司开发的 RDF 三元组数据库。 GraphDB 实现了 RDF4J 框架的 SAIL 层,可以使用 RDF4J RDF 模型、解析器和查询引擎直接访问 GraphDB。GraphDB 的特色是对于 RDF 推理功能的良好支持。
二、以 gStore为例,进行下面的实验
1. gStore 以及 gStore Workbench 的安装
(1)引言
注意:目前, gStore 只能在 Linux 系统上通过命令行来进行部编译、部署与安装。所以使用windows的小伙伴儿们,先去准备一个虚拟机吧。
假设,现在你已经准备好了Linux操作系统。
gStore 官网:  http://www.gstore-pku.com/pcsite/index.html 
GitHub地址: https://github.com/pkumod/gStore
官方使用手册: http://openkg.cn/tool/gstore
(2)操作系统准备
在安装gStore之前需要安装Linux,这里我用用虚拟机安装Ubuntu
我准备好了Ubuntu系统,进入系统后状态如下图:
(3)软件环境准备(我用的是ubuntu系统,如果下面安装遇到问题,读者可以留言讨论)
1 zip/unzip 安装
判断 zip/unzip 是否安装
yum list installed | grep unzip (centos 系统 )
dpkg -s unzip (ubuntu 系统 )
如果没有安装,则安装
sudo yum install -y unzip zip (centos 系统 )
sudo apt-get install unzip zip (ubuntu 系统 )
2 jdk 安装
判断 jdk 是否安装
java –version
如果没有安装,则安装
sudo yum install java-1.8.0-openjdk-devel.x86_64 (centos 系统 )
sudo apt-get install openjdk-8-jdk (ubuntu 系统 )
3 gc++ 安装
判断 gc++ 是否安装
yum list installed |grep gcc-c++ (centos 系统 )
dpkg -s gcc-c++ (ubuntu 系统 )
如果没有安装,则安装
sudo yum install gcc-c++ (centos 系统 )
sudo apt-get install gcc (ubuntu 系统 )
sudo apt-get install g++ (ubuntu 系统 )
这是C语言和C++的运行环境,如果不放心是否安装好,可以用程序测试,具体可以参考这个帖子:
Ubuntu16.04下利用gcc和g++进行C/C++编辑编译
4 readline 安装
判断 readline 是否安装
yum list installed |grep readline (centos 系统 )
dpkg -s readline (ubuntu 系统 )
如果没有安装,则安装
sudo yum install readline-devel (centos 系统 )
sudo apt-get install libreadline-dev (ubuntu 系统 )
5 boost 库安装
判断 boost 是否安装
yum list installed |grep boost (centos 系统 )
dpkg -s boost (ubuntu 系统 )
如果没有安装,则安装:
版本 :1.54.0
地址: https://nchc.dl.sourceforge.net/project/boost/boost/1.54.0/boost_1_54_0.tar.gz

这篇关于《知识图谱》-王昊奋-读书笔记2-知识图谱的数据存储的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/395494

相关文章

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

pandas数据的合并concat()和merge()方式

《pandas数据的合并concat()和merge()方式》Pandas中concat沿轴合并数据框(行或列),merge基于键连接(内/外/左/右),concat用于纵向或横向拼接,merge用于... 目录concat() 轴向连接合并(1) join='outer',axis=0(2)join='o

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口