我的本地机器上有一个 Sparql Endpoint(openrdf sesame)。我能够在 json 中获得查询(6)的结果(使用 sparql-client 节点模块)。现在,我需要把这个 json 转换成 json-ld,这样我就可以很容易地在玉文件中显示它。如何在我的 node.js 应用程序中不使用 rdfstore-js 来做到这一点?我确实阅读了有关 jsonld 节点模块的信息。json 数据非常庞大,因此我无法为其指定上下文。
rdfstore-js 的问题:由于端点在我的本地机器上,我面临跨域问题。因此,我尝试将数据从远程 sparql 端点加载到存储中,但它不起作用。 https://github.com/antoniogarrote/rdfstore-js/issues/20
或者,我愿意接受可以在没有 json-ld 的情况下显示数据的建议。
编辑:阅读 Gregg 的建议后,我尝试使用 CONSTRUCT 查询。但是,芝麻服务器以文本/纯文本形式返回查询响应。我通过为 json-ld 提供接受标头来尝试内容协商。但它会失败 - 给我“找不到可接受的文件格式”。
谢谢!
我现在正在使用 http nodejs 模块,如下所示。我得到文本/纯文本的响应。有没有办法将纯文本转换为 json-ld ?
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();