问题标签 [graph-databases]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1122 浏览

python - Python:使用 RDFLIB 绘制 Sesame 数据库

是否可以使用 RDFLIB 绘制 Sesame RDF 数据库的图形?这是我尝试过的:

这是错误:

我认为唯一的技巧是指定一个正确的 URL 以使 Sesame 返回一个 .rdf xml 布局。

问题作者:转贴到http://answers.semanticweb.com/questions/9414/python-using-rdflib-to-graph-a-sesame-database(见那里的答案)

0 投票
3 回答
9757 浏览

graph - 在 Neo4J 中存储多个图形

我有一个将关系信息存储在 MySQL 表中的应用程序(contact_id、other_contact_id、strength、recorded_at)。如果我需要做的只是显示联系人的关系是谁,甚至生成两个联系人的相互联系人列表,这很好。

但现在我需要生成如下统计数据:“2011 年 1 月,强度为 3 或更高的双向连接的总数是多少”或(假设每个联系人都是一个组的一部分)“哪个组的连接数最多到其他团体等

我很快发现生成这些统计信息的 SQL 很快就变得笨拙了。

所以我写了一个脚本,对于任何给定的日期,它都会在内存中生成一个图表。然后我可以针对该图表运行我想要的任何统计数据。更容易理解,一般来说,性能也更高——除了生成图形部分。

我的下一个想法是缓存这些图表,以便在需要运行新统计数据时调用它们(或生成以后的图表:例如,对于今天的图表,我采用昨天的图表并应用自昨天以来发生的任何更改)。我尝试了 memcached,它在图表增长 > 1 MB 之前效果很好。

所以现在我正在考虑使用像 Neo4J 这样的图形数据库。

唯一的问题是,我没有一张图表。或者我会,但它会随着时间的推移而变化,我需要能够用不同的参考时间来查询它。

那么,我可以:

  • 在 Neo4J 中存储多个图形并分别重新检索/交互它们?然后,我将为每个日期创建并存储单独的社交图。

或者

  • 为每条边添加有效的时间戳并适当地过滤图形:因此,如果我想要“5 月 1 日”的图形,我只会遵循“5 月 1 日”之前创建的两个节点之间的最新边(如果所有边是在 5 月 1 日之后创建的,那么这些节点将不会连接)。

我对图形数据库很陌生,所以任何帮助/指针/提示都将不胜感激。

0 投票
1 回答
1067 浏览

database - 图数据库查询

我已经开展了一个项目,该项目跟踪用户可以从哪里购买商品的商店。我决定使用 Neo4j 作为数据库。

这是我想到的数据库的一部分:每个商店都有一个节点,每个节点都有子节点,用于存储该商店中可用的物品。

考虑这种情况:现在一个特定的用户(他总是去一个特定的商店购买他所有的物品)想知道他可以从哪里获得他想要购买的所有(或最大)数量的物品的替代商店。

问题在于,对所有商店及其所有商品进行详尽搜索,然后进行匹配将占用大量空间/时间。是否有任何程序/算法可以帮助我以最小的空间/时间成本解决这个问题?

PS:请注意,我只想坚持使用 Neo4j,因为它非常有效地解决了许多其他数据库问题。

0 投票
1 回答
650 浏览

social-networking - 我的网站的交互式网络图?

我的后端有一个 neo4j 数据库,我想在前端以美观和交互的方式向用户显示图形的一个子集。我希望它看起来非常引人注目,接近gephi 的工作方式,因此我需要为这项工作选择合适的技术。想到 Flash 和 Silverlight,但 HTLM5 可能胜任这项工作。Unity 也可能是另一种选择,但这可能会产生巨大的开发成本。

理想情况下,我想使用开箱即用的解决方案,或者定制一个已被证明有效的解决方案。最不理想的选择是自己实现它。

你们能推荐一个适合我的问题的现有解决方案吗?

0 投票
1 回答
742 浏览

database - 具有数千条边的 neo4j

我需要一个强大的数据库来经常查询数千个节点,每个节点大约有 2000 条边。

neo4j 能够管理这些关系吗?我必须找到另一个解决方案吗?

0 投票
3 回答
1225 浏览

database - 使用neo4j索引文件系统有意义吗

我正在开发一个基于 Java 的备份客户端,它扫描文件系统上的文件并使用它找到要备份的目录和文件名填充 Sqlite 数据库。使用 neo4j 代替 sqlite 有意义吗?它会更高效,更容易用于此应用程序吗?我在想,因为文件系统是一棵树(如果考虑符号链接,则为图形),gaph 数据库可能合适吗?sqlite 数据库模式只定义了 2 个表,一个用于目录(完整路径和其他信息),一个用于文件(仅名称与包含目录表中目录的外键),因此它相对简单。

应用程序需要索引数百万个文件,因此解决方案需要快速。

0 投票
2 回答
404 浏览

graph-theory - 我需要知道什么来实现概念图数据库的证明?

我有一个需要图形数据库的产品,不幸的是,我发现的所有图形数据库都不够成熟,要花很多钱,或者不能满足我的需求。
我想实现一个量身定制的图形数据库,它具有以下功能:

  • 图只能是有向的。
  • 数据库必须嵌入正在运行的进程中,因此它将保存在内存中。
  • 数据库只会执行以下操作:
    • 从节点读取。
    • 写入节点(创建/更新)
    • 删除节点
    • 边缘重定向(具有指向一个节点的边缘的节点现在将指向另一个节点的操作)
    • 与此问题无关的图搜索算法。
  • 图数据库只需要包含和处理三种类型的节点。

为了写这个作为概念证明,我需要知道什么?写它需要多少时间?
面向函数的方法(我知道它可以更好地处理递归)是否比面向对象的方法更适合这里?
我的约束是否使其更易于实施?

0 投票
1 回答
2067 浏览

graph-databases - OrientDB 创建链接问题

有人可以解释一下我在这里做错了什么吗?我似乎无法使链接正常工作。当它创建链接时,为什么它说它创建了 0 个链接?当我想删除 postid 时为什么会出现错误:字符串索引超出范围:28?

0 投票
1 回答
345 浏览

java - Neo4j 跨会话查询数据

我无法在 Neo4j 的嵌入式 Java 版本中访问以前创建的数据库。我想做的是打开一个 GraphDatabaseService,添加几百万个关系(不使用 BatchInserter,只使用事务),然后关闭最后一个事务和连接。这看起来像:

[在这里我输入了一个非常大的 csv(数百万关系),还给出了关系和 userId 索引]

然后我需要做的是打开一个新的 GraphDatabaseService 并访问我刚刚插入的所有数据。我查看了 Neo4j 列表,他们确认这是可能的,但没有提供任何细节。

我不想重新创建索引,但是当我尝试简单地重新打开它时,我收到一个错误,即索引(来自上面的 userIds)“无法解析”。理想情况下,如果有人对第二组代码的外观有一个大纲,那就太好了。我的非功能性的看起来像:

[或我想运行的其他查询]

任何帮助将不胜感激!

0 投票
2 回答
555 浏览

database - 支持高效排序和/或范围检索的图形数据库

以 Twitter 的数据模型为例:

用户 A 关注了 N 个其他用户,每个用户发布了 N 个不同的帖子。帖子带有时间戳。

是否有支持有效读取用户 A 关注的用户的最新 N 个帖子的数据存储或图形数据库?

帖子最好按排序顺序存储(如 Cassandra ColumnFamily 或 Redis ZSET)。

此外,跨不同机器分片数据的能力也很关键。