問題タブ [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.

0 投票する
1 に答える
1326 参照

python - OrientDB の Graph Schema Constraints で BulbFlow (bulbs) Python ORM を使用できますか?

BulbFlowを使用するアプリケーションを構築しています。BulbFlow ORM は Django ORM に似ています。実際のデータベース バックエンドとして、OrientDB 1.3.0と Rexster 2.2.0 を使用しています。

これら 2 つの製品を一緒に使用することについて、誰かが洞察を持っているかどうか疑問に思っています。BulbFlow では、データ モデルの Python ベースの定義が可能です。ただし、OrientDB には、クラスと制約を含む独自のスキーマ定義システムがあります。併用する方法はありますか?それとも、OrientDB の制約システムは Rexster/BulbFlow で既に使用されていますか?

洞察力を前もって感謝します。

0 投票する
1 に答える
55 参照

python - 電球 - Neo4J - Heroku Config エラー?

電球を使用して、Heroku で Neo4J アプリをセットアップしています。ローカルでは問題なく動作しますが、heroku にデプロイすると、次のコードのエラー部分が発生します。

私は何をすべきですか?

私も試しましたcfg.set_neo4j_heroku()が、役に立ちませんでした。

0 投票する
2 に答える
655 参照

python - Bulbsを使用してneo4j Cypherクエリを入力するには?

Bulbs の最大の有用性は、オブジェクト グラフ マッパーを使用できることだと思いますが、既に作成されたサイファー クエリも含めたい場合、この API を介して直接入力するにはどうすればよいでしょうか? プロジェクトのドキュメントを調べたところ、次のセクションが見つかりました。

http://bulbflow.com/docs/api/bulbs/neo4jserver/cypher/

...しかし、クエリの入力方法や戻り値の構文は、私には少しわかりにくかったようです。

0 投票する
0 に答える
719 参照

graph-databases - Gremlin / Bulbflow: エッジと関連する頂点のプロパティに基づいてノードを選択する方法

長い投稿で申し訳ありませんが、私が探しているものについての誤解を避けたいです:)

私は現在、グラフ データベースを発見し、bulbflow/neo4j を少し試しています。したがって、ほとんどのリクエストにgremlinを使用しようとしていますが、必要なリクエストが実行可能かどうかはわかりません. このようなユースケースでグラフデータベースを使用しようとすることは間違っているかもしれないので、私が正しい道を進んでいるかどうかを教えてください。

最初に、少しコンテキストを提供させてください。

私は、C コードを生成する DSL 言語用のコンパイラーである初期段階のオープンソース プロジェクトに取り組んでいます。現在、多くの理由 (言語、再設計、コミュニティへの開放など...) のために、すべてを Python で書き直すことを計画しています。コンパイラには、コンパイルされたインターフェイスとテンプレートのキャッシュと呼ばれるものが含まれています。インターフェイスはテンプレートを記述し、各テンプレートは構成 (インターフェイスによって記述された変数に関連付けられた型指定された値のリスト) に関連付けられます。

私が構築したいリクエストの目的は、入力構成に応じて単一のテンプレート実装を選択することです (実際にはコンパイラの生成メカニズムで使用されます)。最後に、この「キャッシュ」内で見つけることができる要素に単一性を提供するために、探している単一の要素を (可能であれば) gremlin を介して直接要求できるようにしたいと考えています。現在、Python コードでこの構成を手動で一致させていますが、gremlin 内で直接実行できるかどうかを知りたいです。

-

それでは、私のユース ケースのサンプル グラフを定義しましょう。3 種類の頂点があります。

  1. Def (定義) には、「署名」と呼ばれる文字列プロパティが含まれています。これは、実際には、このノードによって定義されたテンプレートの署名です。
  2. 元のソースとプリコンパイル済みファイルへのパスである 2 つのプロパティを含む Impl (実装)。
  3. Var (変数)。変数のシグネチャである String プロパティを含みます。

次に、いくつかの種類のエッジ:

  • Def -> impl_by -> Impl (1 つの定義に対して複数の実装が存在する可能性があり、プロパティは含まれません)
  • Impl -> select_by -> Var (実装は、構成変数の値に対する制約によって選択される場合があります。この型の各エッジには、実際には型、値、および制約 (比較演算子) の 3 つのプロパティが含まれます)

selected_by エッジ (またはリレーションシップ、bulflow の語彙に従う) は、選択制約を記述し、次のプロパティを持ちます。

  • val (元の実装の変数に関連付けられた値)
  • op (制約が有効かどうかを判断するために行う比較の種類を示す比較演算子)

これは、次のようなグラフとして変換されます (このグラフでは、selected_by エッジから型を省略します)。

私がやりたいことは、Vars との関係に応じて 1 つ (または複数) の Impl を選択することです。次のような構成があるとします。

構成 1:

これは、Peter != Kat AND 16 > 9 から Impl(3) を選択しますが、Peter != John から Impl(1) も、16 !< 15 から Impl(2) も選択しません。

私は複数のレベルでブロックされていたので、これが実現可能かどうか疑問に思い始めていました:

  • そのような引数 (構成) を gremlin スクリプトに与える方法が見つかりませんでした
  • 出力エッジの条件に基づいて Impl を選択する方法が見つかりませんでした。

これがあまり混乱しないことを願っています。

乾杯、そしてありがとう!

編集:

バックトラッキングとフィルターを繰り返し使用することで、リクエストの一部を機能させることができました。リクエスト (X は開始頂点、VALUE は照合する値、NAME は照合する変数の名前) は次のようになります。

リクエストの根拠:

VALUE/NAME の組み合わせごとにこの部分を繰り返します。

現在欠けている唯一のことは、select_by エッジの「op」プロパティを使用して、使用するフィルターを構築する方法を決定する方法がわからないことです。たとえば、構成を正確に一致させたい場合が 3 つあります (したがって、この要求のように「op」プロパティを無視します)。ただし、「op」プロパティを考慮に入れたい場合もあります。関連するコンパレーターをフィルターで使用します。

それを行う方法はありますか?(または、別の質問を投稿する必要がありますか?)

0 投票する
1 に答える
1196 参照

neo4j - バルブのエッジを更新する適切な方法 (neo4j または titan)

Bulbsグラフデータベースとのインターフェースを実験しています。(本番環境では Titan を使用しますが、実験にはローカルでは Neo4j が最適と思われます)。

私はこの概念に頭を包むことができません...

電球は、新しい頂点を作成する方法を示しています...

ドキュメントを掘り下げて、それを「取得または作成」に置き換えることもできます:

私が理解できないのは、既存の Edge を取得する方法です。これまでの私の試みは、既存の関係にアクセスして更新するのではなく、何十もの「ジェームズがジュリーを知っている」関係を再作成することで終わりました。

誰かが私を正しい方向に向けることができますか?

0 投票する
1 に答える
504 参照

python - Gremlin / Bulbflow: execute() から整数の結果を取得する方法

この質問がバカすぎて申し訳ありません... 私は Python+Django+Bulbs+Neo4j の初心者です。

以下に詳述するように、Python + Django シェルを使用しているときに、g.gremlin.execute() によって生成された整数を取得しようとしていますが、成功しませんでした。

まず、Neo4j の Gremlin コンソールでのクエリ:

以下で試したように、Python + Djangoシェルでこの結果を取得し、変数に渡すために何をするつもりですか:

これから先も行けません。

誰が私が間違っているのか教えてください。どうもありがとう!

0 投票する
1 に答える
893 参照

python - Bulbflow – リスト/辞書をプロパティとして保存する方法

Bulbflowを使用して Python 経由でNeo4jにアクセスしています。

現在、Python リストをノード プロパティとして保存しようとしていますが、一貫してエラーが発生しています。documentationから、リストはモデルで定義されたときに受け入れられるタイプであることがわかりますが、モデルが定義された後にリストプロパティを保存したいと思います。

しかし、次のエラーが表示されます。

関数を使用してみましconvert_to_dbたが、構文がわかりませんでした。

これを達成する方法についてのアイデアはありますか?タプルのリストを持っているという問題はありますか?

ありがとう!

============== 更新 ==============

ピーターの提案に従って、単純なフラットリストで同じことを試みたところ、同じエラーが発生しました:

何か案は?

0 投票する
1 に答える
188 参照

bulbs - 電球レクスターシステムエラー

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 return 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 return 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\' が指定されていない場合、この引数の最後のスクリプトが値を返します","re​​xster.offset.end":"返されるデータのページ セットの終了インデックス","re​​xster.offset.start ":"返されるデータのページ セットの開始インデックス","params":"スクリプト エンジンにバインドするパラメーターのマップ","language":"使用するグレムリン言語フレーバー (デフォルトは groovy)" ,"script":"評価される Gremlin スクリプト"}},"success":false}')要素のプロパティをそのネイティブ データ型で表示します (デフォルトは false)","load":"\'スクリプト\' の前に実行する \'ストアド プロシージャ\' のリスト (\'script\' が指定されていない場合、この引数の最後のスクリプトは値を返します","re​​xster.offset.end":"返されるデータのページ セットの終了インデックス","re​​xster.offset.start":"返されるページ化されたデータのセット","params":"スクリプト エンジンにバインドするパラメーターのマップ","language":"使用するグレムリン言語フレーバー (デフォルトは groovy)","script":"the評価される Gremlin スクリプト"}},"success":false}')要素のプロパティをそのネイティブ データ型で表示します (デフォルトは false)","load":"\'スクリプト\' の前に実行する \'ストアド プロシージャ\' のリスト (\'script\' が指定されていない場合、この引数の最後のスクリプトは値を返します","re​​xster.offset.end":"返されるデータのページ セットの終了インデックス","re​​xster.offset.start":"返されるページ化されたデータのセット","params":"スクリプト エンジンにバインドするパラメーターのマップ","language":"使用するグレムリン言語フレーバー (デフォルトは groovy)","script":"the評価される Gremlin スクリプト"}},"success":false}')\'script\' の前に実行する \'ストアド プロシージャ\' のリスト (\'script\' が指定されていない場合、この引数の最後のスクリプトは値を返します","re​​xster.offset.end": "返されるデータのページ セットの終了インデックス","re​​xster.offset.start":"返されるデータのページ セットの開始インデックス","params":"スクリプトにバインドするパラメーターのマップengine","language":"使用するグレムリン言語フレーバー (デフォルトは groovy)","script":"評価される Gremlin スクリプト"}},"success":false}')\'script\' の前に実行する \'ストアド プロシージャ\' のリスト (\'script\' が指定されていない場合、この引数の最後のスクリプトは値を返します","re​​xster.offset.end": "返されるデータのページ セットの終了インデックス","re​​xster.offset.start":"返されるデータのページ セットの開始インデックス","params":"スクリプトにバインドするパラメーターのマップengine","language":"使用するグレムリン言語フレーバー (デフォルトは groovy)","script":"評価される Gremlin スクリプト"}},"success":false}')"返されるデータのページ セットの終了インデックス","re​​xster.offset.start":"返されるデータのページ セットの開始インデックス","params":"スクリプトにバインドするパラメーターのマップengine","language":"使用するグレムリン言語フレーバー (デフォルトは groovy)","script":"評価される Gremlin スクリプト"}},"success":false}')"返されるデータのページ セットの終了インデックス","re​​xster.offset.start":"返されるデータのページ セットの開始インデックス","params":"スクリプトにバインドするパラメーターのマップengine","language":"使用するグレムリン言語フレーバー (デフォルトは groovy)","script":"評価される Gremlin スクリプト"}},"success":false}')

これは古い投稿です: https://groups.google.com/forum/#!msg/gremlin-users/s7Ag1tjbxLs/kaBOSyed_9kJですが、他の人も同じ問題に遭遇したようです。それでも、デフォルト構成で何が間違っているか、または何を変更すべきかを示すドキュメントを見つけることができませんでした。

ヒントを提供できるドキュメント/ディスカッションまたはアイデアに感謝します。

0 投票する
1 に答える
58 参照

neo4j - 電球 Neo4j 更新エラー

私はフォームの辞書を渡しています

関数 createVertex に

while ループにはまってしまいます。更新または競合の問題に「コミット」の問題があると思われます。誰かがこの問題を解決する方法をアドバイスできますか?

ありがとう