美文网首页
KG知识图谱 学习 Part3 - 知识图谱存储

KG知识图谱 学习 Part3 - 知识图谱存储

作者: 遇见Miu | 来源:发表于2020-05-12 09:24 被阅读0次

📜主要是知识的存储和数据库的选型
😅其实这部分的内容我在学习的时候觉得挺枯燥的,其实主要用到的是Neo4j图数据库,也就是第3部分往后的内容,其他的感觉不是很重要


综述


1.知识存储模型

1.知识存储模型

  • 关系型数据库——适用于体量比较小的知识图谱的存储
  • 三元组——因语义网而产生的,适用于体量比较小的,网页的
  • 图数据库——体量比较大的知识图谱的存储

2.存储模型选择原则一

💡注:如果一个对象本身,没有研究它与其他对象之间的关系,那就没有必要进行图谱存储; 统计类的,常规需要去计算的内容没有必要存储在图谱中,也就是不需要基于知识存储的模型来进行存储;

3.1.关系型数据库:三元组表

💡S为对象,P为属性,O为取值

读取对象多个属性的时候,会有大量的自连接操作

3.2.关系型数据库:属性表

💡属性表的优点:RDF的灵活性;缺点:要查询一个人(属性未定时),需要遍历所有的表

3.3.关系型数据库:垂直分割

💡垂直分割的缺点:一个属性就需要一个数据表;删除一个对象需要遍历所有的表

💡以上三种传统型数据库存储知识图谱,小数量的情况下没有问题,但是数据量规模大就不适用了

4.RDF三元组

RDF三元组是基于XML进行描述的

5.图数据库



2.图数据库选型

1.RDF数据库排行

https://db-engines.com/en/ranking/rdf+store

💡MarkLogic商用,Jena是基于Java的开源框架

2.Jena:开源Java框架,本体处理工具

💡通常使用Protege和Jena相结合来处理本体对象;基于本体对象构建知识图谱时,使用Protege进行本体对象的设计,用Jena进行开发

3.Neo4j:嵌入式、基于磁盘、可视化的图数据库

4.Titan:分布式图形数据库

工业级的应用或者大量级数据的应用一般使用Titan

3.Neo4j开发环境

官网下载客户端,本地启动服务即可

Hello World

收藏中有Hello World示例

💡database和message为两个节点,r为关系

  • Graph

  • Table

  • Text

  • Code



4.Neo4j-CQL语法基础

1.概念


实例

💡同一个类型的节点的属性可以是不一样的

2.关键字词汇表

3.DDL-创建节点

4.DDL-创建关系



5.语法实践

1.调出CQL语法

:play cypher

2.创建

// 创建一个人的节点,对他的属性赋值
CREATE (ee:Person { name: "Emil", from: "Sweden", klout: 99 })

💡最后加RETURN和不加会有显示的区别

3.查询

// 查询名字叫Emil的人
MATCH (ee:Person) WHERE ee.name = "Emil" RETURN ee;

如果想创建唯一的节点对象

// Create unique property constraint
// Replace:
// 'LabelName' with node label
// 'propertyKey' with property that should be unique
CREATE CONSTRAINT ON (n:<LabelName>) ASSERT n.<propertyKey> IS UNIQUE

4.创建多个节点

MATCH (ee:Person) WHERE ee.name = "Emil"
CREATE (js:Person { name: "Johan", from: "Sweden", learn: "surfing" }),
(ir:Person { name: "Ian", from: "England", title: "author" }),
(rvb:Person { name: "Rik", from: "Belgium", pet: "Orval" }),
(ally:Person { name: "Allison", from: "California", hobby: "surfing" }),
(ee)-[:KNOWS {since: 2001}]->(js),(ee)-[:KNOWS {rating: 5}]->(ir),
(js)-[:KNOWS]->(ir),(js)-[:KNOWS]->(rvb),
(ir)-[:KNOWS]->(js),(ir)-[:KNOWS]->(ally),
(rvb)-[:KNOWS]->(ally)

6.案例操作

1.内置案例movie graph

2.开始示例

  • Movie Graph 如何系统性地创建图谱的
  • Northwind Graph 如何从其他形式的内容转换过来的

3.创建各个节点和关系

// 创建节点
CREATE (TheMatrix:Movie {title:'The Matrix', released:1999, tagline:'Welcome to the Real World'})
CREATE (Keanu:Person {name:'Keanu Reeves', born:1964})
// 创建关系
CREATE
(Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrix),
(Carrie)-[:ACTED_IN {roles:['Trinity']}]->(TheMatrix)

4.1.查询

💡查询所得对象的属性在下面显示

4.2.查询



7.系统监控(暂时没有用到)


相关文章

  • KG知识图谱 学习 Part3 - 知识图谱存储

    ?主要是知识的存储和数据库的选型?其实这部分的内容我在学习的时候觉得挺枯燥的,其实主要用到的是Neo4j图数据库,...

  • 知识图谱概论-王昊奋

    知识图谱与语义技术概论 知识图谱(KG)的概念 知识图谱(KG)得益于Web的发展(更多的是数据层面),有着来源于...

  • 2019-06-04

    知识图谱入门笔记(1) 知识图谱的概念 KG的概念演化(KG不是突然出现的)KG演化过程 KG的应用: 辅助搜索 ...

  • 知识图谱学习笔记(九)——知识图谱的存储与检索

    知识图谱的存储与检索 1. 概述 知识图谱中的知识表示:知识图谱中的知识是通过RDF的结构进行表示的,其基本构成单...

  • 知识图谱系列教程

    awesome-knowledge-graph 整理知识图谱相关学习资料,提供系统化的知识图谱学习路径 知识图谱是...

  • 知识图谱入门简介

    一、 知识图谱技术体系 知识图谱的构建主要涉及到知识建模、知识抽取、知识融合、知识存储、知识计算以及知识应用,具体...

  • 知识图谱:方法、实践与应用笔记-前言

    本书目的 1. 梳理组织知识图谱涉及的知识点。如:知识建模、关系抽取、图存储、自动推理、图谱表示学习、语义搜索、智...

  • 1-知识图谱概述

    知识图谱与语义技术概述 典型知识库项目简介 知识图谱相关技术简介知识表示、知识抽取、知识存储、知识融合知识推理、知...

  • 如何高效地存储与检索大规模的图谱数据?

    摘要:本文简要介绍知识图谱的存储与检索相关的知识。 本文分享自华为云社区《知识图谱的存储与检索[https://b...

  • 领域综述 | 知识图谱概论(一)

    本篇文章从知识图谱历史发展的角度向大家介绍知识图谱。 目录: 什么是知识图谱 知识图谱的发展史 一.什么是知识图谱...

网友评论

      本文标题:KG知识图谱 学习 Part3 - 知识图谱存储

      本文链接:https://www.haomeiwen.com/subject/deuvnhtx.html