gremlin中的一种遍历(模式匹配)
A type of traversal (pattern match) in gremlin
注意:我的背景是 sparql,我正在学习 属性 Graph 和 Gremlin。刚刚开始旅程
有一种特殊类型的遍历,到目前为止我还没有看到如何很好地表达它。
遍历的类型是选择一组匹配的起始节点,基于它们如何连接到一条路径或一组节点沿着多节点的路径。
简单的例子是:
找到所有喜欢组织发布的消息的人。
在 sparql 中它类似于
?p a Person .
?p likes ?msg .
?msg a Message .
?msg twitted_by ?Org .
?Org a Organization .
谁能告诉我如何表达这是 Gremlin。在我不断学习的过程中,也许可以给我一些教程,帮助我掌握如何编写这种遍历。
我不熟悉 SPARQL 语法,
但根据你的描述,我认为你正在寻找这样的东西:
g.V().hasLabel("Person").where(
out('likes').hasLabel('Message').
out('twitted_by').hasLabel('Organization')
)
示例:https://gremlify.com/ywp5cd33un
我建议你从 Kevin Lawrence 的书中学习 Gremlin PRACTICAL GREMLIN
注意:我的背景是 sparql,我正在学习 属性 Graph 和 Gremlin。刚刚开始旅程
有一种特殊类型的遍历,到目前为止我还没有看到如何很好地表达它。
遍历的类型是选择一组匹配的起始节点,基于它们如何连接到一条路径或一组节点沿着多节点的路径。
简单的例子是:
找到所有喜欢组织发布的消息的人。
在 sparql 中它类似于
?p a Person .
?p likes ?msg .
?msg a Message .
?msg twitted_by ?Org .
?Org a Organization .
谁能告诉我如何表达这是 Gremlin。在我不断学习的过程中,也许可以给我一些教程,帮助我掌握如何编写这种遍历。
我不熟悉 SPARQL 语法, 但根据你的描述,我认为你正在寻找这样的东西:
g.V().hasLabel("Person").where(
out('likes').hasLabel('Message').
out('twitted_by').hasLabel('Organization')
)
示例:https://gremlify.com/ywp5cd33un
我建议你从 Kevin Lawrence 的书中学习 Gremlin PRACTICAL GREMLIN