【发布时间】:2013-03-08 15:58:43
【问题描述】:
我喜欢从 SPARQL 端点获取基于 RDF 数据的视觉效果。如果 d3 有一个额外的外部数据加载器,它可以通过发出 SPARQL 查询来提取数据,那将是一个很好的补充。
已经有人在做这样的事情了吗?对这样的企业有什么建议吗?还是我确实忽略了一个完全显而易见的解决方案?
【问题讨论】:
我喜欢从 SPARQL 端点获取基于 RDF 数据的视觉效果。如果 d3 有一个额外的外部数据加载器,它可以通过发出 SPARQL 查询来提取数据,那将是一个很好的补充。
已经有人在做这样的事情了吗?对这样的企业有什么建议吗?还是我确实忽略了一个完全显而易见的解决方案?
【问题讨论】:
实际上有一个 d3sparql 项目可以根据 SPARQL 查询的结果创建 d3 可视化。
这是它的自我描述方式:
JavaScript 自然适合查询 SPARQL 端点,该端点提供 REST 服务以 JSON 格式返回结果。 d3sparql.js 库提供了通过 Ajax 调用 (XMLHttpRequest) 执行 SPARQL 查询并通过 D3 库显示结果的函数。基本上,这个库将 SPARQL 查询结果 JSON 格式(又名 application/sparql-results+json)转换为主要 D3 布局可以接受的几种 JSON 格式。许多示例是从 bl.ocks.org 和 bost.ocks.org 借来的。
【讨论】:
首先,我也是!我绝对希望在 d3 中看到 SPARQL 查询功能(实际上是任何 RDF 或 SPARQL 功能)。 据我所知,不存在这样的情况。
所以现在:看看this question,了解如何使用 jQuery 访问 SPARQL 端点。
另外,您可能想详细了解同源政策以及如何使用 JSONP 规避它。这个article at IBM developerWorks 是一个很好的介绍。
而且看看sgvizler.js (source) 的实现可能会很有趣。
【讨论】:
我终于开始创建一个d3-sparql 插件,它是根据 d3 v4 插件架构构建的。 (也可以使用d3 v3 version。)
Download 并将插件添加到您的项目中:
<script src="d3-sparql.min.js"></script>
指定 endpoint 和 *query" 以获取准备用于 d3 可视化的数据:
d3.sparql(endpoint, query, function (error, data) {
console.log(data);
}
该插件还在 JavaScript 等效项 Date() 和 Number() 中转换 RDF 数据类型。
【讨论】: