6

大规模数据架构的问题当然是一个很大的话题,我远非专家。但是,我对 JSON-LD 如何大规模使用感兴趣,所以请原谅缺乏特异性和高级问题。

显然,像谷歌这样的大玩家将 JSON-LD 合并到谷歌知识图谱中。

以此为例,假设知识图谱中使用JSON-LD作为I/O的数据格式,那么数据库是如何构建的,才能查询到如此海量的数据呢?它是否依赖于转换为 RDF 三元组以使用 SPARQL 进行查询,或者是否有其他架构可以以原始 JSON-LD 格式查询数据?如果有的话,有什么技巧可以大规模处理(和查询)JSON-LD?

像 MongoDB 或 Virtuoso(?) 这样的系统对于管理大型 JSON 格式的数据并使其可查询很有用,但是是否希望将 JSON(-LD) 指定为数据的后端格式,而不是 xml(如果希望使用某种 RDF)?

再次为含糊之处道歉。任何输入,例如关于该主题的一般指示或讨论都将不胜感激。

4

1 回答 1

4

所以 tl;dr 是通过将 JSON-LD 插入到大规模查询数据的东西中来大规模查询 JSON-LD。

JSON-LD 是一种便于交换的数据语法。具体怎么查询,真的没有任何意义。

大规模查询它只需将其放入数据库即可。由于存在到 RDF 数据模型的明显映射,因此任何 RDF 数据库都可以工作。JSON-LD 也可能很容易被引入任何文档数据库,例如 MarkLogic,然后可以在其中进行查询。如果你有一个 JSON 文档符合的常规模式,那么插入它们并使用 SQL 查询就不难了。事实上,Postgres 在某种程度上原生支持 JSON,所以这可能会立即工作。

这些选项中的任何一个都会让您“大规模”查询。有些系统会比其他系统更好,这取决于您对大规模的定义以及您将向系统投入什么样的工作负载。在查询数据的方式中,还有 SPARQL 或 SQL 的设计选择,或者两者都不是。我是 SPARQL over SQL 的个人粉丝,但我对此有一些偏见。

imo JSON-LD,或者只是 JSON,是后端系统和前端之间的良好交换语法,其中 JSON 很容易在任何 Javascript 环境中解析和使用。JSON/JSON-LD 是人类可读的,因此它也可以作为我们普通人的表示语法。但是对于系统之间的交换,数据的二进制序列化更有意义。

于 2017-09-20T21:04:16.733 回答