首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Sparql插件使用

Sparql插件使用
EN

Stack Overflow用户
提问于 2014-06-03 08:57:07
回答 1查看 243关注 0票数 0

我正在测试Neo4J,以将其与我的公司今年使用的EA平台进行比较。这个平台在我们使用SPARQL/SPARUL查询的MySQL数据库上进行中继。除了SPARUL支持(目前还不是强制性的),我们的想法是用Neo4J替换这个Neo4J数据库,并测试用SPARQL直接查询它是否有好处,或者用密码和类似的测试来翻译SPARQL查询是否更好。

由于我对Neo4J2的SPARQL插件有一些问题,所以我切换到1.9.7。我已经用从.nt文件中导入的一些数据填充了testdb,但是当我使用我的高级rest客户端对chrome进行查询时,我没有得到我希望的结果。像这样的简单查询

代码语言:javascript
运行
复制
{
    "query" : "SELECT ?x ?y WHERE { ?x <http://neo4j.org#RUN_ON> ?y . }"
}

什么都不回。当我通过SPARQL插件通过insert_quad插入数据时,例如使用类似于

代码语言:javascript
运行
复制
  "s" : "http://neo4j.org#Application_process_1",
  "p" : "http://neo4j.org#RUN_ON",
  "o" : "http://neo4j.org#Database_3",
  "c" : "http://neo4j.org"

相反,它起作用了。

我注意到,在本例中,节点和关系的组成与我通过Java创建节点时得到的不同(例如,关系有3个属性: cp、c、p,而我没有)

我是否必须将所有数据通过插件插入到数据库中,才能通过SPARQL查询?我可以通过Java这样做吗?例如,我可以对文件使用解析器,并为我所读的每一行创建一个查询?(类似于为每种资源插入一些强制性属性)。否则,有一种方法可以通过neo4j中的SPARQL插件加载多个数据,而无需将它们全部写入?(类似于文件项上的“for on”)

来寻求帮助。

编辑:,我对使用SPARQL性能更好的另一种技术不感兴趣。我现在只想知道,如果Neo4j的SPARQL插件允许我以编程的方式执行类似于多次插入的操作,或者如果我被迫使用它将数据插入到我想用插件本身查询的图表中。关键是,如果可能的话,使用SPARQL测试某些复杂查询的性能,并使用关系数据库和仅使用Neo4j的原生API (或Cypher)的解决方案,根据旧解决方案评估各种因素。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-03 11:02:54

你确定你想这么做吗?虽然NEO4j很好,但是还有很多其他的生产质量SPARQL解决方案。我不能推荐一个非标准的(sparql http协议明智的),非供应商支持的插件作为有效的技术解决方案。

你正在从SPARQL之一的MySQL解决方案,这是最先进的2010年,但没有竞争力(或维护)这些天。

我建议你改看维奥索来自OWLIM家族的东西。如果您的数据不是很大(几百万个三倍),那么来自阿帕奇·耶娜开放rdf芝麻的解决方案(这也是在sparql插件中使用的)符合您的需要。在我的测试中,扩展明智的系统Bigdata也超过了Neo4j的性能。

我列出了主要基于java的解决方案,因为您可以看到Neo4j也是其中之一。

换句话说,看看如何升级到真正的SPARQL解决方案,或者为Cypher和Neo4j重写。

现在谈谈你的实际问题。当您在加载数据时引入上下文或命名图形时,您可能也需要在查询中使用它。

代码语言:javascript
运行
复制
{
    "query" : "SELECT ?x ?y 
               WHERE { GRAPH<http://neo4j.org>{?x <http://neo4j.org#RUN_ON> ?y . }}"
}

然而,对于您的客户来说,一个关键的事情是他们可能正在使用sparql通过http访问您的数据。这正是Neo4j sparql不兼容的地方,即neo4jsparql需要一个json字符串,而sparql http需要一个称为查询的uri参数。

我想我最好能理解你的问题。您直接使用Neo4J api将节点插入到neo4j图中。然后尝试使用SPARQL插件来查询所插入的节点。这是行不通的,因为SPARQL插件期望存在某种图形结构。您要么需要仔细研究由SPARQL插件生成的图形并准确地重新创建它,要么使用:com.tinkerpop.blueprints.oupls.sail.GraphSail addStatement为您正确地这样做。

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

https://stackoverflow.com/questions/24010978

复制
相关文章

相似问题

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