Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Neo4j中使用类型层次结构?

如何在Neo4j中使用类型层次结构?
EN

Stack Overflow用户
提问于 2014-07-21 19:24:13
回答 3查看 6.5K关注 0票数 12

有什么方法可以在Neo4j中对类型层次结构进行建模吗?例如,如果我想构建一个cars的类层次结构,我可能有一个"Car“的基类型,然后有一个子类来扩展它,比如"SportCar",等等。

我希望能够创建"SportCar“的实例,但是运行一个查询来获得所有的”Car“。这可能吗?如果是这样,技术是什么?

我想我要做的是创建一个“标签层次结构”--但我就是不认为neo4j支持这一点。

EN

回答 3

Stack Overflow用户

发布于 2014-07-21 19:49:19

保罗,

首先,我建议您阅读“图形数据库”,这是一本免费的O‘’Reilly电子书,可以在this link上找到。

作为对答案的快速尝试,有许多方法可以做这类事情,最好的选择取决于您试图解决的问题。一种方法是构造一个"Car“节点,然后将"SportCar”节点与具有如下类型关系的"Car“节点关联起来

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE (m:Car)
MATCH (m:CAR) WITH m CREATE (n:SportCar)-[:IS_A]->(m)

并创建其他类型的汽车,也将它们与汽车节点相关联。

然后你就可以找到所有的汽车

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MATCH (m:Car)<-[:IS_A]-(n) RETURN n

您也可以只在每个节点上放置Car和SportCar (以及LuxoCar等)标签。这只是众多方法中的两种。

恩典与和平,

吉姆

票数 13
EN

Stack Overflow用户

发布于 2017-08-26 16:55:56

至少有两种方法可以做到这点:

1)每个object使用多个lables

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE(BMW325d:Car:PassengerCar:DieselCar)
CREATE(Porsche911:Car:SportsCar:...)

本体2)创建

建模类层次结构的第二种方法是使用本体。尽管Neo4j将数据建模为属性图和本体,但它们更适合RDF,但也有使用它们的方法。

您可以使用Protégé(开源)创建本体。然后将本体保存在.owl文件中,并使用此Plugin将其上传到Neo4j。之后,将Neo4j中的节点断言到在Protégé中创建的Metagraph。在here中描述了更详细的描述。

有关此主题的更多信息...

对于您的目的来说,RDF Triple Store是一个有趣的选择,特别是如果您想要向数据添加语义,比如使用推断和继承。我建议仔细看看RDF Triple store,它们也是图-但它们以三元组(主语-谓语-宾语)而不是节点和关系来存储数据。Top Braid Composer是一个“易于学习”的-tool,用于开始使用它们。

不过,我希望属性图和RDF三元组存储之间的差距很快就会缩小,目前这是一种权衡。因此,在选择其中一个之前,您应该仔细设置对数据库的要求。

希望这能有所帮助。

票数 5
EN

Stack Overflow用户

发布于 2014-07-21 21:03:43

所以我能想到的壁橱是这个例子。

步骤1:创建汽车类型的类型层次结构。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create (c:CarType{Code:"Car"})
create (sc:CarType{Code:"SportCar"})
create (sc)-[:SubCarOf]->(c)

步骤2:创建一个"SportCar“的实例,并记录(通过一个关系属性)它是"CarType”。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
merge (sc:CarType{Code:"SportCar"})
create (i:SportCar)
create (i)-[:CarType]->(sc)

步骤3:编写一个查询,查找从"Car“派生的所有”CarType“以及类型为”Car“的任何"Car",然后查找这些实例。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
match (c)-[:CarType]->(ct:CarType{Code:"Car"})
return c as Car
union
match (sct)-[:SubCarOf*]->(ct:CarType{Code:"Car"}), 
(c)-[:CarType]->(sct)
return c as Car
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24873067

复制
相关文章
必知|Scala类型层次结构
java的除了原始类型的所有类都有一个默认的父类Object,那么scala的统一父类是什么呢?这个是有人在群里问浪尖的一个问题,今天浪尖就给大家讲解一下Scala类型层次结构
Spark学习技巧
2020/04/27
1.2K0
文件层次结构
文件系统层次结构标准(英语:Filesystem Hierarchy Standard,FHS)定义了Linux操作系统中的主要目录及目录内容。在大多数情况下,它是一个传统BSD文件系统层次结构的形式化与扩充。
JNingWei
2018/09/28
9900
如何在神经网络中表示部分-整体的层次结构
本文来自NVIDIA GTC21的一篇演讲,主讲人是多伦多大学、谷歌和Vector研究所的Geoffrey Hinton,他将介绍一个关于表征的单一想法,该想法把transformers,SimclR,neural fields取得的进展结合到一个叫做GLOM的想象系统中。
用户1324186
2021/07/06
8050
层次模型(树形结构)
在层次模型中,每个结点表示一个记录类型,每个记录类型可包含若干个字段,记录类型描述的是实体,字段描述的是实体的属性。
孙晨c
2019/10/29
2.3K0
opencv 9 -- 轮廓 层次结构
轮廓之间的父子关系 使用函数 cv2.findContours 来查找轮廓, 我们需要传入一个参数:轮廓提取模式(Contour_Retrieval_Mode)。 我们总是 把它设置为 cv2
wust小吴
2019/07/08
9690
Akka 使用系列之三: 层次结构和容错机制
本文介绍了如何使用 Akka 进行并行编程,包括 Actor 的创建和停止、消息传递、以及基于层次结构的容错机制。通过示例代码,展示了如何在 Akka 中实现并行编程,并总结了 Akka 在并行编程中的优势和适用场景。
AlgorithmDog
2017/12/29
9940
Akka 使用系列之三: 层次结构和容错机制
如何在Hive中使用Struct类型
Hive中支持多种数据类型除了常用的TINYINT、SMALLINT、INT、BIGINT、BOOLEAN、FLOAT、DOUBLE、STRING、BINARY、TIMESTAMP、DECIMAL、DATE、VARCHAR、CHAR类型外,当然还包含一些复杂的数据类型(array、map、struct、union)。本篇文章Fayson主要介绍在Hive中使用Struct类型存储数据。
Fayson
2018/11/16
11.3K0
如何在Hive中使用Map类型
在前面的文章Fayson介绍了《Hive创建外部表CSV数据中列含有逗号问题处理》。本篇文章Fayson主要介绍在Hive中使用Map类型存储数据。
Fayson
2018/11/16
21.5K0
如何在TypeScript中使用类型保护
类型保护是一种TypeScript技术,用于获取变量类型信息,通常使用在条件块语句中。类型守卫是返回布尔值的常规函数,接受一个类型并告诉TypeScript是否可以缩小到更具体的类型。类型保护具有唯一的属性,可以确保测试的值是根据返回的布尔值设置的类型。
前端修罗场
2023/10/07
2490
存储器层次结构
实际的软件开发过程中,常会遇到服务端请求响应时间长,吞吐率不够。 分析对应问题时,你肯定听过“主要瓶颈不在CPU,而在I/O”,存储很重要。
JavaEdge
2022/12/13
9090
存储器层次结构
Eclipse 项目层次结构设置
Eclipse 中新建工程或者是导入一个工程,包层次默认为 Flat ,也就是完成名称,但是这种显示会让包结构非常复杂,而且非常不好找,一般我是将其配置为 Hierarchical 即分层次的。
zucchiniy
2019/10/30
1.2K0
Java IO层次体系结构[通俗易懂]
在整个Java.io包中最重要的就是5个类和一个接口。5个类指的是File、OutputStream、InputStream、Writer、Reader;一个接口指的是Serializable.掌握了这些IO的核心操作那么对于Java中的IO体系也就有了一个初步的认识了
全栈程序员站长
2022/09/05
5730
Java IO层次体系结构[通俗易懂]
如何在Ubuntu上安装Neo4J
图表是由边连接的一组顶点。在数据库领域,图形是一组项目,每个项目与数据集中的另一个项目具有任何类型的关系。
何处惹尘埃
2018/08/02
4.6K1
如何在Ubuntu上安装Neo4J
变成语言的层次和类型
C++中的每个变量都有其数据类型,数据类型决定这变量所占内存空间的大小和布局方式、该空间能存储的值的范围,以及变量能参与的运算。
宇宙之一粟
2020/10/26
2450
如何在Python 3中安装pandas包和使用数据结构
Python pandas包用于数据操作和分析,旨在让您以更直观的方式处理标记或关系数据。
信姜缘
2018/10/11
19.7K0
如何在TypeScript中使用基本类型
英文 | https://www.digitalocean.com/community/tutorials/how-to-use-basic-types-in-typescript
前端老道
2022/03/29
3.7K0
存储器层次结构介绍
这里先说一下存储器系统: 寄存器 -----> 高速缓存 -----> 主存储 存储器对程序的性能有着巨大的影响,程序的运行就是对数据的不停的计算和搬移,其中最为耗时的就是程序对数据的搬移。因此,存储器对数据的存取速度是至关重要的。 CPU在访问寄存器中的数据只需要一个周期就可以访问到,在高速缓存中需要4-75个周期,如果在主存器上则需要上百个周期,如果在磁盘上则需要几千万个周期。
HeaiKun
2020/07/06
1.4K0
WordPress 模板层次结构信息图
我们知道 WordPress 主题有很多文件,比如:index.php,single.php,archive.php 等,WordPress 会根据不同类型的内容决定使用模板文件,这个就是 WordPress Template Hierarchy(WordPress 模板层次结构),如果结合 WordPress 的高级功能,比如 WordPress 自定义日志类型,自定义分类模式等,这个模板层次结构会非常复杂。虽然 WordPress 官方整理了模板层次结果图,但是还是显得非常复杂,所以 Marktime Media 重新设计了 WordPress 模板层次结构信息图(点击打开大图):
Denis
2023/04/14
6340
WordPress 模板层次结构信息图
类的层次结构设计
在写程序时,我们会经常遇到如上图所示的一种情形——深层调用,ClassD1和ClassD2需要调用ClassA关联的ClassX、ClassY和ClassZ等,对于这种情况,经常见到通过构造函数一层层往下传递做法。
一见
2018/08/07
5970
类的层次结构设计
点击加载更多

相似问题

使用类型参数的类型层次结构?

10

对象父子容器层次结构(如继承)

20

子类型层次结构

20

从较低层次结构中的子层次结构移动到更高层次的子层次结构,如sub main()

10

Neo4j -父子层次结构+春天

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文