- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的本地机器上有一个 Sparql Endpoint(openrdf sesame)。我能够在 json 中获得查询(6)的结果(使用 sparql-client Node 模块)。现在,我需要将这个 json 转换为 json-ld,以便我可以轻松地在 jade 文件中显示它。如果不在我的 node.js 应用程序中使用 rdfstore-js,我该如何做到这一点?我确实读过 jsonld Node 模块。 json 数据非常大,所以我无法为其指定上下文。
rdfstore-js 的问题:由于端点在我的本地机器上,我面临着跨域问题。因此,我尝试将数据从远程 sparql 端点加载到存储中,但它不起作用。 https://github.com/antoniogarrote/rdfstore-js/issues/20
或者,我愿意接受可以在没有 json-ld 的情况下显示数据的建议。
编辑:阅读 Gregg 的建议后,我尝试使用 CONSTRUCT 查询。然而,芝麻服务器以文本/纯文本形式返回查询响应。我通过为 json-ld 提供接受 header 来尝试内容协商。但它会失败 - 给我“找不到可接受的文件格式”。
谢谢!
我现在正在使用 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();
最佳答案
Sesame 不支持开箱即用的 JSON-LD 格式。您需要将与 Sesame 兼容的 JSON-LD 编写器库(例如 jsonld-java )安装到您现有的 Sesame 安装中。
为此,获取 jsonld-java
和 jsonld-java-sesame
jar 文件及其依赖项(不幸的是,这有点麻烦,因为您需要包括几个第三方依赖项,例如 Apache 库和 Jackson,以及 - 但您可以从 Maven Central 下载所有内容)并将它们放入 Tomcat 内的 Sesame 部署目录中。通常这个目录应该类似于 [TOMCAT_DIR]/webapps/openrdf-sesame/WEB-INF/lib
。完成此操作后,您将需要重新启动 Tomcat for Sesame 以识别新编写器。
完成此操作后,提供正确的 Accept header (媒体类型 application/ld+json
)应该会在图形查询中获得 JSON-LD 结果。
或者,您可以尝试使用 RDF 1.1 JSON Alternate Serialization格式,这并不是像 JSON-LD 这样的真正标准,但 受 Sesame 支持。媒体类型application/rdf+json
.
关于node.js - 将远程 sparql 端点 json 结果转换为 JSON-LD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21960492/
我正在使用 SPARQL,我想知道是否可以在 in 子句中放入 sparql?更具体地说,我需要获取对此 sparql 查询具有特定条件的实体(s1,s2)[s1 在某个字段上的聚合值大于 5] se
我们有办法在 SPARQL 中做一个不减少的累加和吗? 例如, SELECT ?p WHERE { VALUES ?p { 1 1 2 } } ORDER BY ?p 将导致 1 2 4, - 而
在这个小片段中,第二行的 a 是做什么的? CONSTRUCT { ?uri a skos:Concept ; skos:prefLabel ?prefLabel ; 我确
我写了一个 Sparql 查询。 PREFIX table: SELECT ?name ?color FROM WHERE { ?element table:group ?group. ?gro
下面的两个查询有什么区别吗? select distinct ?i where{ ?i rdf:type . FILTER EXISTS { ?i ?b.
我不太明白为什么在SPARQL中他们没有实现基本的逻辑运算符。然而,在大多数情况下,可以通过多种方式获得相同的结果。 这个问题的目的是快速引用可以替代“or”语句的可能方式。 这是我能想到的: 1)联
我的问题很简单:我有一个源my:g1,其中包含: my:a1 my:b "literal 1" 然后我有第二个源my:g2,其中包含: my:a2 my:b my:c. my:c rdfs:label
我在处理数字数据类型时遇到 SPARQL 问题。 我有一个本体 ( http://cabas.ugr.es/ontology/ugr ),我在其中定义了一对属性,表示特定性别的学生人数:
我有以下 SPARQL 查询: PREFIX rdfs: PREFIX type: PREFIX prop: SELECT * WHERE { ?person a foaf:Per
我想知道如何在sparql中表达以下问题: “请告诉我每个 child 都上麻省理工学院的 parent ” 更一般地说,我想知道查询 sparql 的限制是什么?请问数据库中有哪些类型的答案不能
我正在尝试编写一个优雅的 SPARQL,为多个可能的查询提供一个解决方案。我有多个主语和多个谓词,我想接收一个对象。单一解决方案的存在非常不确定,因此我给出了多种选择。如果我没记错的话,这可以通过以下
这是一个关于 Sparql 和 Wikidata 的问题。我想制定一个返回实例类型关系的查询,但如果它不可用,则返回其子类。我尝试过: SELECT DISTINCT ?ent_type WHER
我想做一些类似的事情 { SELECT ?page, "A" AS ?type WHERE { ?s rdfs:label "Microsoft"@en;
我正在尝试进行 SPARQL 查询,该查询返回一个变量,其中包含两个单词,由某些内容分隔。实际上,我尝试获取一个变量,如 ?πληθυσμός_population(希腊语和英语)。但是,我更喜欢与“
我想知道 SPARQL 默认情况下是否采用开放世界假设,或者这是否取决于执行 SPARQL 查询的三元组存储。 这个假设在查询中的含义是什么。 致以诚挚的问候。 最佳答案 嗯.... 我想知道这对于这
我在处理数字数据类型时遇到 SPARQL 问题。 我有一个本体 ( http://cabas.ugr.es/ontology/ugr ),我在其中定义了一对属性,表示特定性别的学生人数:
我正在玩DBPedia . 通过这个查询,我得到了所有出生在伦敦的人: SELECT ?person WHERE { ?person dbo:birthPlace :London } 但
我需要处理 SPARQL 查询。有没有人有很好的链接来学习 SPARQL 查询?我正在寻找有关 SPARQL 查询和示例语法的好文章,以便我可以快速学习。 最佳答案 Lee Feigenbaum 的
我有一个 SPARQL 查询,它在 Virtuoso SPARQL 查询编辑器中运行时提供结果,但相同的查询在 SPARQL 查询验证器中给出语法错误。问题是什么?为什么显示语法错误? PREFIX
我正在运行 sparql 查询 PREFIX rdfs: PREFIX rdfs: SELECT DISTINCT(?film_link) ?film_name ?wiki
我是一名优秀的程序员,十分优秀!