问题标签 [bulbs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 您可以将 BulbFlow (bulbs) Python ORM 与 OrientDB 的 Graph Schema Constraints 一起使用吗?
我正在构建一个使用BulbFlow的应用程序。BulbFlow ORM 类似于 Django ORM。作为一个实际的数据库后端,我使用OrientDB 1.3.0和 Rexster 2.2.0。
我想知道是否有人对一起使用这两种产品有任何见解。BulbFlow 允许基于 Python 定义数据模型。然而 OrientDB 有自己的模式定义系统,包括类和约束。有没有办法一起使用它们?还是 Rexster/BulbFlow 已经在使用 OrientDB 的约束系统?
提前感谢您的洞察力。
python - 灯泡流:如何获得一系列顶点?
我试图找出如何从图中获取一系列顶点,我知道这可以在 gremlin 中使用
但是如何使用灯泡流模型 api 来完成呢?
python - 灯泡 - Neo4J - Heroku 配置错误?
我正在使用灯泡在 Heroku 上设置 Neo4J 应用程序。在本地它运行良好,但是当我在 heroku 上部署它时,它会在以下代码中引发错误部分:
我应该做什么?
我也试过了,cfg.set_neo4j_heroku()
但没用。
python - 如何使用 Bulbs 输入 neo4j Cypher 查询?
我知道 Bulbs 的最大效用是它可以让您使用对象图映射器,但如果我还想包含一个已经编写好的密码查询,我该如何直接通过这个 API 输入呢?通过查看项目的文档,我发现了这一部分:
http://bulbflow.com/docs/api/bulbs/neo4jserver/cypher/
...但是如何输入查询的语法或返回值对我来说似乎有点不清楚。
graph-databases - Gremlin / Bulbflow:如何根据边缘和相关顶点的属性选择节点
很抱歉这篇文章很长,但我想避免对我正在寻找的内容产生任何误解:)
我目前正在发现图形数据库,并尝试使用bulbflow/neo4j。因此,我正在尝试对我的大多数请求使用 gremlin,但我不知道我想要的请求是否可行。我什至可能在尝试将图形数据库用于此类用例时是错误的,所以请不要介意告诉我您是否认为我走在正确的道路上。
首先,让我提供一些上下文:
我从事一个早期的开源项目,它是一个用于生成 C 代码的 DSL 语言的编译器。由于许多原因(语言、重新设计、向社区开放等等……),我们目前正计划用 python 重写整个东西。编译器包括我称之为已编译接口和模板的缓存。接口描述了模板,每个模板都与一个配置相关联(与接口描述的变量相关联的类型值列表)。
我希望构建的请求的目的是根据输入配置(实际用于编译器的生成机制)选择单个模板实现。最后,我希望能够通过 gremlin(如果可能的话)直接请求我正在寻找的单个元素,以便为可以在此“缓存”中找到的元素提供唯一性。目前,我在python代码中手动匹配这个配置,但我想知道直接在gremlin中是否可行。
-
因此,让我们为我的用例定义一个示例图:我们有三种类型的顶点:
- Def(Definition),包含一个名为“signature”的String属性,其实就是这个节点定义的模板的签名。
- Impl(实现),包含两个属性,它们是原始源文件和预编译文件的路径。
- Var(变量),包含一个字符串属性,它是变量的签名。
然后,几种边缘:
- Def -> impl_by -> Impl(一个定义可以存在多个实现,不包含任何属性)
- Impl -> select_by -> Var (可以通过对配置变量值的约束来选择实现,这种类型的每个边实际上包含三个属性:类型、值和约束 - 比较运算符 -)
selected_by 边(或关系,遵循 bulflow 的词汇表)描述了选择约束,因此具有以下属性:
- val(与原始实现的变量关联的值)
- op(比较运算符告诉要进行哪种比较以使约束有效或无效)
这可以转换为一个图,例如(我将省略该图中 selected_by 边的类型):
我想做的是根据它们与 Vars 的关系选择一个(或多个)Impl。假设我有如下配置:
配置一:
这将选择 Impl(3) since Peter != Kat AND 16 > 9,但不会选择 Impl(1) since Peter != John 或 Impl(2) since 16 !< 15。
我在多个级别上被阻止,所以我开始怀疑这是否可行:
- 我找不到如何将此类参数(配置)提供给 gremlin 脚本
- 我找不到如何根据传出边缘的条件选择 Impl。
我希望这不会太混乱。
干杯,谢谢!
编辑:
通过反复使用回溯和过滤器,我设法使我的请求工作的一部分。请求(X 是起始顶点,VALUE 是我要匹配的值,NAME 是要匹配的变量的名称)如下所示:
请求的依据:
对每对 VALUE/NAME 重复此部分:
目前唯一缺少的是我不知道如何使用 select_by 边缘的 'op' 属性来确定如何构建要使用的过滤器。例如,在某些情况下,我想完全匹配配置(因此,在此请求中,我忽略了“op”属性),但在某些情况下,我想考虑“op”属性,并且在过滤器中使用相关的比较器。
有什么办法吗?(或者我应该发布另一个问题?)
neo4j - 更新灯泡边缘的正确方法(neo4j 或 titan)
我正在尝试与Bulbs
图形数据库交互。(生产将使用 Titan,本地 Neo4j 似乎最适合进行实验)。
我无法理解这个概念......
灯泡展示了如何创建新的顶点...
深入研究文档,我也可以将其替换为“获取或创建”:
我想不通的是如何获得现有的边缘。到目前为止,我的尝试以重建数十个“詹姆斯知道朱莉”的关系而告终,而不是访问现有的关系来更新。
有人可以指出我正确的方向吗?
python - Gremlin / Bulbflow:如何从 execute() 中获取整数结果
对不起,如果这个问题太愚蠢而无法问...我是 Python+Django+Bulbs+Neo4j 的新手。
我正在尝试——没有成功——在使用 Python+Django shell 时获取 g.gremlin.execute() 生成的整数,如下所述。
首先是 Neo4j 的 Gremlin 控制台中的查询:
我打算在 Python+Django shell 中得到这个结果,将它传递给一个变量,如下所示:
从现在开始我不能再进一步了。
谁能告诉我我做错了什么?非常感谢!
bulbs - 灯泡 rexster 系统错误
我正在使用 Rexster 2.4.0 和 Bulbs 0.3.14
随着 Rexster 在 localhost 上运行,我正在尝试熟悉灯泡,但在尝试时:
回溯(最近一次通话最后):
文件“”,第 1 行,在文件“/Users/lolmac/anaconda/lib/python2.7/site-packages/bulbs/rexster/graph.py”,第 54 行,在init super(Graph, self) 中。初始化(配置)
文件“/Users/lolmac/anaconda/lib/python2.7/site-packages/bulbs/base/graph.py”,第 58 行,在init self.vertices = self.build_proxy(Vertex)
文件“/Users/lolmac/anaconda/lib/python2.7/site-packages/bulbs/base/graph.py”,第 124 行,在 build_proxy 返回 self.factory.build_element_proxy(element_class, index_class)
文件“/Users/lolmac/anaconda/lib/python2.7/site-packages/bulbs/factory.py”,第 19 行,在 build_element_proxy primary_index = self.get_index(element_class,index_class,index_name)
文件“/Users/lolmac/anaconda/lib/python2.7/site-packages/bulbs/factory.py”,第 27 行,在 get_index index = index_proxy.get_or_create(index_name)
文件“/Users/lolmac/anaconda/lib/python2.7/site-packages/bulbs/rexster/index.py”,第 80 行,在 get_or_create resp = self.client.get_or_create_vertex_index(index_name, index_params)
文件“/Users/lolmac/anaconda/lib/python2.7/site-packages/bulbs/rexster/client.py”,第 660 行,在 get_or_create_vertex_index resp = self.gremlin(script, params)
文件“/Users/lolmac/anaconda/lib/python2.7/site-packages/bulbs/rexster/client.py”,第 354 行,在 gremlin 中返回 self.request.post(gremlin_path,params)
文件“/Users/lolmac/anaconda/lib/python2.7/site-packages/bulbs/rest.py”,第 128 行,在 post return self.request(POST, path, params)
文件“/Users/lolmac/anaconda/lib/python2.7/site-packages/bulbs/rest.py”,第 183 行,在请求中返回 self.response_class(http_resp, self.config)
文件“/Users/lolmac/anaconda/lib/python2.7/site-packages/bulbs/rexster/client.py”,第 198 行,在init self.handle_response(response)
文件“/Users/lolmac/anaconda/lib/python2.7/site-packages/bulbs/rexster/client.py”,第 222 行,在 handle_response response_handler(http_resp)
文件“/Users/lolmac/anaconda/lib/python2.7/site-packages/bulbs/rest.py”,第 50 行,在 server_error 中引发 SystemError(http_resp)
SystemError: ({'status': '500', 'transfer-encoding': 'chunked', 'server': 'grizzly/2.2.16', 'connection': 'close', 'date': 'Mon, 14 2013 年 10 月 19:43:45 GMT', 'access-control-allow-origin': '*', 'content-type': 'application/json'}, '{"message":"","error": “javax.script.ScriptException:groovy.lang.MissingMethodException:没有方法签名:groovy.lang.MissingMethodException.stopTransaction()适用于参数类型:()值:[]”,“api”:{“description”: "为一个图评估一个临时 Gremlin 脚本。","parameters":{"rexster.returnKeys":"要返回的元素属性键数组(默认是返回所有元素属性)","rexster.showTypes":"显示元素的属性及其本机数据类型(默认为 false)","load":"要在 \'script\' 之前执行的 \'stored procedure\' 列表(如果未指定 \'script\',则此参数中的最后一个脚本将返回值","rexster.offset.end":"要返回的分页数据集的结束索引","rexster.offset.start ":"要返回的分页数据集的开始索引","params":"要绑定到脚本引擎的参数映射","language":"要使用的 gremlin 语言风格(默认为 groovy)" ,"script":"要评估的 Gremlin 脚本"}},"success":false}')显示元素的属性及其本机数据类型(默认为 false)","load":"在 \'script\' 之前执行的 \'stored procedure\' 列表(如果 \'script\' 是如果未指定,则此参数中的最后一个脚本将返回值","rexster.offset.end":"要返回的分页数据集的结束索引","rexster.offset.start":"a 的开始索引要返回的分页数据集","params":"绑定到脚本引擎的参数映射","language":"要使用的 gremlin 语言风格(默认为 groovy)","script":"the要评估的 Gremlin 脚本"}},"success":false}')显示元素的属性及其本机数据类型(默认为 false)","load":"在 \'script\' 之前执行的 \'stored procedure\' 列表(如果 \'script\' 是如果未指定,则此参数中的最后一个脚本将返回值","rexster.offset.end":"要返回的分页数据集的结束索引","rexster.offset.start":"a 的开始索引要返回的分页数据集","params":"绑定到脚本引擎的参数映射","language":"要使用的 gremlin 语言风格(默认为 groovy)","script":"the要评估的 Gremlin 脚本"}},"success":false}')在 \'script\' 之前执行的 \'stored procedure\' 列表(如果未指定 \'script\' 则此参数中的最后一个脚本将返回值“”rexster.offset.end”: "要返回的分页数据集的结束索引","rexster.offset.start":"要返回的分页数据集的开始索引","params":"要绑定到脚本的参数映射engine","language":"要使用的 gremlin 语言风格(默认为 groovy)","script":"要评估的 Gremlin 脚本"}},"success":false}')在 \'script\' 之前执行的 \'stored procedure\' 列表(如果未指定 \'script\' 则此参数中的最后一个脚本将返回值“”rexster.offset.end”: "要返回的分页数据集的结束索引","rexster.offset.start":"要返回的分页数据集的开始索引","params":"要绑定到脚本的参数映射engine","language":"要使用的 gremlin 语言风格(默认为 groovy)","script":"要评估的 Gremlin 脚本"}},"success":false}')"要返回的分页数据集的结束索引","rexster.offset.start":"要返回的分页数据集的开始索引","params":"要绑定到脚本的参数映射engine","language":"要使用的 gremlin 语言风格(默认为 groovy)","script":"要评估的 Gremlin 脚本"}},"success":false}')"要返回的分页数据集的结束索引","rexster.offset.start":"要返回的分页数据集的开始索引","params":"要绑定到脚本的参数映射engine","language":"要使用的 gremlin 语言风格(默认为 groovy)","script":"要评估的 Gremlin 脚本"}},"success":false}')
这是一篇旧帖子:https ://groups.google.com/forum/#!msg/gremlin-users/s7Ag1tjbxLs/kaBOSyed_9kJ ,但似乎其他人也遇到了同样的问题。尽管如此,我还是找不到任何说明默认配置有什么问题或要更改什么的文档。
感谢任何可以提供提示的文档/讨论或想法。
neo4j - 灯泡 Neo4j 更新错误
我正在传递形式的字典
到函数 createVertex
它卡在while循环中。我怀疑更新中存在“提交”问题或种族问题。有人可以建议如何解决这个问题吗?
谢谢