标签: tinkerpop3

如何将 Gremlin/Tinkerpop 与 Java 结合使用?

我正在从事一个涉及在 Java 中使用知识表示的项目,我的印象是某种语义网络是实现它的方法。

Gremlin/Tinkerpop 似乎有非常好的图形生成和遍历语法,但我只能让它在独立的 shell 中工作。它是一种 JVM 语言,所以大概它有某种 Java API?我尝试将源文件夹添加到 Eclipse 项目中,但它充满了错误并且拒绝工作。

有更好的方法吗?也许是一个编译库,类似于我用来处理用户输入的斯坦福 CoreNLP 库?

java artificial-intelligence gremlin tinkerpop3

4
推荐指数
1
解决办法
3578
查看次数

TinkerPop 3.1.0 控制台 - 显示堆栈跟踪?

我目前正在使用 TinkerPop 3.1.0 Console Incubating,每次都有一个选项

Display stack trace? [yN]

我无法输入“y”或“N”来显示或不显示堆栈跟踪。它只是换一个新行,让您没有机会输入 yN 答案。这意味着我无法对我的 gremlin 脚本、命令等进行任何调试。

您可以在下图中看到一个示例:Gremlin Console Stack Trace Message

我在运行 TinkerPop 3.1.0 Console Incubating 的两台独立机器上遇到了这个问题,并且我之前测试的 gremlin-2.6.0 Console 版本没有遇到同样的问题。

其他人遇到过这个问题吗?有没有快速修复的可能?或者我是否需要等待新版本并查看是否可以解决问题?

提前致谢。- 男

stack-trace gremlin tinkerpop3

4
推荐指数
1
解决办法
663
查看次数

泰坦Db无视指数

我有一个带有几个索引的图表.它们是两个具有标签限制的综合指数.(两者在不同的属性/标签上完全相同).一个肯定似乎工作,但另一个没有.我已完成以下配置文件()以加倍检查:

一个叫做KeyOnNode:属性uid和标签node:

gremlin> g.V().hasLabel("node").has("uid", "xxxxxxxx").profile().cap(...)
==>Traversal Metrics
Step                                                               Count  Traversers       Time (ms)    % Dur
=============================================================================================================
TitanGraphStep([~label.eq(node), uid.eq(dammit_...                     1           1           2.565    96.84
  optimization                                                                                 1.383
  backend-query                                                        1                       0.231
SideEffectCapStep([~metrics])                                          1           1           0.083     3.16
                                            >TOTAL                     -           -           2.648        -
Run Code Online (Sandbox Code Playgroud)

以上是完全可以接受的,效果很好.我假设魔术线是backend-query.

另一种叫做NameOnSuperNode:属性name和标签supernode:

gremlin> g.V().hasLabel("supernode").has("name", "xxxxxxxx").profile().cap(...)
==>Traversal Metrics
Step                                                               Count  Traversers       Time (ms)    % Dur
=============================================================================================================
TitanGraphStep([~label.eq(supernode), name.eq(n...                     1           1        5763.163   100.00
  optimization                                                                                 2.261
  scan                                                                                         0.000
SideEffectCapStep([~metrics])                                          1           1           0.073     0.00 …
Run Code Online (Sandbox Code Playgroud)

gremlin titan tinkerpop tinkerpop3

4
推荐指数
1
解决办法
1977
查看次数

值映射返回数组

在 Tinkerpop3 valueMap 返回一个数组时,如何获得真正的键值对(没有数组)?

gremlin> Gremlin.version()
==>3.0.1-incubating

:> def trav = g.V().hasLabel('Group'); trav.valueMap()
==>{joinTime=[2016-12-05T22:27:01.088Z], groupId=[9de5-45cf-b40d-e357b40e87b1], mCanInvite=[true]}

:> def trav = g.V().hasLabel('Group'); trav.local(properties().group().by(key()).by(value()))
==>{joinTime={2016-12-05T22:27:01.088Z=1}, groupId={9de5-45cf-b40d-e357b40e87b1=1}, mCanInvite={true=1}
Run Code Online (Sandbox Code Playgroud)

gremlin tinkerpop tinkerpop3

4
推荐指数
1
解决办法
1753
查看次数

Gremlin 按顶点属性分组并获取同一顶点中其他属性的总和

我们有顶点来存储各种作业及其类型,并算作属性。我必须按状态和数量进行分组。我尝试了以下查询,该查询适用于一个属性(receiveCount)

g.V().hasLabel("Jobs").has("Type",within("A","B","C")).group().by("Type").by(fold().match(__.as("p").unfold().values("receiveCount").sum().as("totalRec")).select("totalRec")).next()
Run Code Online (Sandbox Code Playgroud)

我想提供 10 个以上的属性,例如 successCount、FailedCount 等。有没有更好的方法来提供呢?

graph gremlin datastax-enterprise tinkerpop tinkerpop3

4
推荐指数
1
解决办法
6679
查看次数

Tinkerpop多个数据库的通用版本

摘要

我正在开发一个能够跨越tinkerpop支持的多个图形数据库的应用程序

细节

根据我的研究,相同版本的tinkerpop库(gremlin-python)不能与所有图形数据库的最新版本一起使用.这种情况的最佳方法是什么?我打算测试的数据库是

  1. JanusGraph 0.2.0支持gremlin-python 3.2.7
  2. NEO4J 3.3.3支持gremlin-python 3.3.2

我仍在尝试集成更多数据库,如orientDB和Amazon Neptune,你知道他们将支持哪个版本.

neo4j tinkerpop tinkerpop3 gremlin-server janusgraph

4
推荐指数
1
解决办法
286
查看次数

多个过滤器使用和/或的 TinkerPop 问题

我被过滤多个属性和提取的节点,因此,如果有多个filter接合用andor。2 工作正常,但从 3 开始它似乎崩溃了。

下面是错误的简化演示。

filter

gremlin> g.V().filter(has("name", "marko"))
==>v[1]

gremlin> g.V().filter(has("name", "marko")).and().filter(has("name", "marko"))
==>v[1]

gremlin> g.V().filter(has("name", "marko")).and().filter(has("name", "marko")).and().filter(has("name", "marko"))
java.util.ConcurrentModificationException
Type ':help' or ':h' for help.
Display stack trace? [yN]
Run Code Online (Sandbox Code Playgroud)

没有 filter

gremlin> g.V().has("name", "marko")
==>v[1]

gremlin> g.V().has("name", "marko").and().has("name", "marko")
==>v[1]

gremlin> g.V().has("name", "marko").and().has("name", "marko").and().has("name", "marko")
java.util.ConcurrentModificationException
Type ':help' or ':h' for help.
Display stack trace? [yN]
Run Code Online (Sandbox Code Playgroud)

dummy-name是不存在的东西。仍然因不同的错误而崩溃

gremlin> g.V().hasLabel("dummy-name").filter(has("name", "a").or().has("name", "b").or().has("name", "c"))
    java.lang.ArrayIndexOutOfBoundsException
    Type ':help' or ':h' for help. …
Run Code Online (Sandbox Code Playgroud)

gremlin tinkerpop3 gremlin-server

4
推荐指数
1
解决办法
365
查看次数

如何列出正在运行的gremlin查询?如何取消慢速或长时间运行的查询?

大多数数据库为用户提供了列出正在运行的查询的机制,并在需要时取消它们 这对于终止花费大量时间的查询特别有用.例如,在MySQL中你会做这样的事情:

mysql>show processlist;
mysql> kill <pid>;
Run Code Online (Sandbox Code Playgroud)

我怎样才能在gremlin服务器上做类似的事情?到目前为止,唯一可用的旋钮是scriptEvaluationTimeoutyaml配置,它允许您在超时时终止请求.我对能够列出所有正在运行的查询的API以及可以让我按ID删除查询的API感兴趣.如果不支持,tinkerpop是否有计划在较新版本中支持它?就像是:

g.query()
g.query('123')
g.query('123').cancel()
Run Code Online (Sandbox Code Playgroud)

graph-databases gremlin tinkerpop tinkerpop3 gremlin-server

4
推荐指数
1
解决办法
290
查看次数

如何使用 GraphQL 执行 Gremlin 查询?

我有 Gremlin 和 Amazon Neptune 的后端服务。我想提供一个 GraphQL 端点来在 Neptune 中执行查询。我发现了一个可能有效的旧黑客马拉松项目。但是,我想知道是否有更好的方法来实现它。

gremlin tinkerpop3 graphql amazon-neptune

4
推荐指数
1
解决办法
2678
查看次数

如何在gremlin中搜索同一propertykey的多个值

获取具有相同属性键的值的最佳方法是什么?

编辑:很抱歉更改问题,我的要求是从任一部门获得一名员工

我需要获取为IT或销售部门工作的所有员工,并由ID为123的经理进行管理.

我用过

g.V().has('managerId',123).out('manages').as('employee')
   .out('worksFor').has('departmentName','IT','Sales')
   .select('employee')
Run Code Online (Sandbox Code Playgroud)

其中out('worksAt')给人部门.

我们可以在一个has()步骤中执行此操作,还是应该使用union()步骤

g.V().has('managerId',123).out('manages').as('employee').out('worksFor')
    .union(__.has('departmentName','IT'),__.has('departmentName','Sales')
    .select('employee')
Run Code Online (Sandbox Code Playgroud)

gremlin tinkerpop tinkerpop3

3
推荐指数
2
解决办法
1851
查看次数