首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将远程sparql端点json结果转换为JSON-LD

将远程sparql端点json结果转换为JSON-LD
EN

Stack Overflow用户
提问于 2014-02-22 21:00:43
回答 2查看 1.7K关注 0票数 3

我的本地机器上有一个Sparql端点(Openrdf sesame)。我能够在json (使用sparql-客户机节点模块)中获得查询(6)的结果。现在,我需要把这个json转换成json-ld,这样我就可以很容易地将它显示在玉器文件中。在我的node.js应用程序中不使用rdfstore-js,我如何做到这一点?我确实读过关于jsonld节点模块的文章。json数据相当庞大,因此我无法为它指定上下文。

rdfstore-js的问题:因为端点在我的本地机器上,所以我面临跨域问题。因此,我试图将数据从远程sparql端点加载到存储中,但它无法工作。https://github.com/antoniogarrote/rdfstore-js/issues/20

或者,我愿意接受一些建议,我可以不用json-ld来显示数据。

编辑:在阅读了Gregg的建议后,我尝试使用构造查询。但是,sesame服务器以文本/纯文本的形式返回查询的响应。我试着进行内容协商,给出了json-ld的接受头。但是它会失败--给我“找不到可接受的文件格式”。

谢谢!

我现在正在使用模块,如下所示。我得到的回复是文本/普通的。有没有办法将纯文本转换成json-ld?

代码语言:javascript
复制
var queryString = syllPrefix+" CONSTRUCT { ?uri ?p ?o } where  { ?uri a syll:Person . ?uri ?p ?o}";
var encodedquerystring = encodeURIComponent(queryString);
var options = {
        host: 'localhost',
        port: 8080,
        path: '/openrdf-sesame/repositories/myrepo?query=' +encodedquerystring,
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
            'Accept': 'text/plain',
        },
      };


var req = http.get(options, function(res) {
  //  console.log("Got response: " + res.statusCode);
   // console.log('HEADERS: ' + JSON.stringify(res.headers));
    var data = "";
    res.on('data', function (chunk) {
      data += chunk;
    });
    res.on('end', function () {
      console.log (data);
    });
  }).on('error', function(e) {
    console.log("Got error: " + e.message);
  });
  req.end();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-24 11:23:29

Sesame不支持JSON格式。您需要在现有的Sesame安装中安装一个与Sesame兼容的JSON写入器库(如jsonld-java)。

为此,获取jsonld-javajsonld-java-sesame jar文件以及它们的依赖项(不幸的是,这有点麻烦,因为您还需要包含几个第三方依赖项,比如Apache和Jackson --但您可以从Maven Central下载所有内容),并将它们放到Tomcat中的芝麻部署目录中。通常,这个目录应该类似于[TOMCAT_DIR]/webapps/openrdf-sesame/WEB-INF/lib。完成此操作后,需要重新启动Tomcat以使Sesame识别新的作者。

一旦完成,提供正确的Accept (媒体类型application/ld+json)应该可以在图形查询中获得JSON结果。

或者,您可以尝试使用RDF1.1JSON替代序列化格式,这并不是真正像JSON那样的标准,而是由Sesame支持的。媒体类型application/rdf+json

票数 4
EN

Stack Overflow用户

发布于 2014-02-22 21:47:55

要从sparql(至少是Ruby版本)获得JSON,请使用构造或描述,而不是选择或询问。如果直接使用,则可以将生成的图形序列化为JSON-LD (在支持此功能的平台上,如Python、Ruby或Java),或者如果是远程连接,HTTP服务应该允许您使用application/ld+json对结果进行内容协商。

将SELECT或ASK转换为JSON更有问题,并且需要一个结果集词汇表。应用程序/sparql+json不易被直接解释为

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21960492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档