使用图数据库将连接的元数据添加到边的惯用方式是什么 [英] What is the idiomatic way to add connected meta data to an edge using a graph database

查看:54
本文介绍了使用图数据库将连接的元数据添加到边的惯用方式是什么的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从图形数据库的角度考虑数据是我的新手,有一个方面让我感觉缺少一些基本知识.

I am pretty new to thinking about data in terms of graph databases and there is one aspect which I feel I am missing something fundamental about.

我希望了解将边缘连接到另一个节点的惯用方式,以表示有关该关系的连接细节.例如,我们可能有两个代表两个人的节点,分别是 Bob Sue ,并且我们之间可能有关系,就像 [Bob]-知道-[起诉] .现在,假设我们要代表诸如 Picadilly Circus 之类的地方,并且还希望为 how Bob Sue 彼此认识,在精神上我想这样做:

I am looking to understand the idiomatic way to connect an edge to another node, for the purpose of representing connected detail regarding the relationship. For example we may have two nodes representing two people, Bob and Sue, and we may have a relationship between them like so [Bob] --Knows-- [Sue]. Now, lets say we want to also represent places like Picadilly Circus and we also want to give context to how Bob and Sue know each other, mentally I want to do this:

[Bob] --knows-- [Sue]
        \--met at-- [Picadilly Circus]

我觉得我在这里遗漏了一些东西,因为到目前为止我没有读过任何东西似乎暗示着我看过的任何图形数据库实现都支持这种边对边的关系.

I feel I am missing something here as nothing I have read so far seem to suggest any of the graph DB implementations I have looked at support this edge-from-an-edge relationship.

顺便说一句,我也正在研究三重存储数据库,并且出现了相同的问题,我只能认为拥有5个存储数据库可以解决此问题,但这也不存在!

As an aside I was also looking at triple-store databases and the same question arises, and I can only think that having a 5-store database would solve the issue, but that does not exist either!

任何指针都感激不尽!谢谢.

Any pointers gratefully received! Thank you.

推荐答案

Objectivity/DB是可扩展的,可分发的对象/图形数据库,它完全支持您要执行的操作.

Objectivity/DB is a massively scalable, distributable object/graph database that supports exactly what you want to do.

一个很好的例子是代表两个人之间的电话.您不想每次Bob呼叫Sue时都从Bob到Sue创建新的优势.您想要的是如下图所示的内容.Objectivity/DB是一个基于模式的数据库,在图中,我们将Call对象类型定义为边,从而可以在查询中将其表示为边.我们可以编写复杂的边缘限定符,以根据连接数据中存在的广泛语义(例如,连接到Call的CallDetail对象)来限定边缘的内向或外向.

A good example is representing phone calls between two people. You don't want to create a new edge from Bob to Sue every time Bob calls Sue. What you want is something that looks like the diagram below. Objectivity/DB is a schema-based database and in the diagram, we will define the Call object type as an edge which allows it to be represented as an edge in queries. We can write complex edge qualifiers that qualify the edge in or out based on a broad range of semantics that exist in the connected data like the CallDetail objects connected to Call.

您可以执行从Bob到Sue的高速查询,以查看他们是否有任何通话,也可以执行查询以查看在通话持续时间超过日期的日期范围内,他们是否有通话(CallDetail).30分钟.

You can perform high speed queries from Bob to Sue to see if they have had any calls at all, or you can perform a query to see if they had a call (CallDetail) within a date range where the call lasted more than 30 minutes.

我们已经建立了这样的系统,在运行这些类型的复杂查询时,每小时可以吸收数十亿个数据项.该查询语言还支持导航查询,其查询度可达100度.

We've built systems like this that can ingest billions of data items per hour while running these kinds of complex queries. The query language also supports navigational queries that go out 100's of degrees.

这篇关于使用图数据库将连接的元数据添加到边的惯用方式是什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆