iris-vector-graph 1.90.0__tar.gz → 1.91.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (577) hide show
  1. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/.gitignore +2 -0
  2. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/PKG-INFO +74 -7
  3. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/README.md +73 -6
  4. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/demo_biomedical.py +54 -77
  5. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/demo_utils.py +16 -10
  6. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/demo_working_system.py +15 -10
  7. iris_vector_graph-1.91.1/examples/domains/biomedical/loaders.py +147 -0
  8. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/domains/biomedical/resolver.py +28 -90
  9. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/domains/biomedical_legacy/legacy_wrapper.py +13 -26
  10. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/domains/fraud/loaders.py +57 -114
  11. iris_vector_graph-1.91.1/examples/domains/fraud/resolver.py +229 -0
  12. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/BM25Index.cls +7 -0
  13. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/EdgeScan.cls +15 -0
  14. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/IVFIndex.cls +7 -0
  15. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/NKGAccel.cls +12 -25
  16. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/PLAIDSearch.cls +7 -0
  17. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/Traversal.cls +52 -6
  18. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/cypher_api.py +2 -4
  19. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/embedded.py +54 -13
  20. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/engine.py +388 -90
  21. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/gql/resolvers.py +14 -0
  22. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/gql/schema.py +20 -3
  23. iris_vector_graph-1.91.1/iris_vector_graph/operators.py +90 -0
  24. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/pyproject.toml +1 -1
  25. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/benchmarks/bench.py +6 -6
  26. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/benchmarks/bench_utils.py +7 -7
  27. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/benchmarks/bfs_benchmark.py +6 -5
  28. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/benchmarks/establish_baseline.py +3 -1
  29. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/benchmarks/ic2_profile.py +8 -8
  30. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/contract/test_ppr_api.py +24 -36
  31. iris_vector_graph-1.91.1/tests/e2e/test_approx_count_distinct.py +115 -0
  32. iris_vector_graph-1.91.1/tests/e2e/test_arno_bfs_global.py +100 -0
  33. iris_vector_graph-1.91.1/tests/e2e/test_arno_bfs_unified.py +96 -0
  34. iris_vector_graph-1.91.1/tests/e2e/test_biomedical_demo.py +157 -0
  35. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_cypher_sprints_e2e.py +8 -16
  36. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_cypher_vector_search.py +15 -9
  37. iris_vector_graph-1.91.1/tests/e2e/test_cypher_vl_path_bfs.py +106 -0
  38. iris_vector_graph-1.91.1/tests/e2e/test_embedded_wgproto_e2e.py +717 -0
  39. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_execution_contexts.py +15 -22
  40. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_execution_contexts_new.py +3 -3
  41. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_fhir_bridges_e2e.py +9 -2
  42. iris_vector_graph-1.91.1/tests/e2e/test_fraud_demo.py +135 -0
  43. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_hla_kg_e2e.py +90 -118
  44. iris_vector_graph-1.91.1/tests/e2e/test_ic13_shortest_path.py +108 -0
  45. iris_vector_graph-1.91.1/tests/e2e/test_ic3_exact_count.py +97 -0
  46. iris_vector_graph-1.91.1/tests/e2e/test_index_protocol.py +195 -0
  47. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_large_output_chunked.py +11 -11
  48. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_lazy_node_resolution.py +6 -6
  49. iris_vector_graph-1.91.1/tests/e2e/test_multi_query_engine_platform.py +131 -0
  50. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_operator_wiring_e2e.py +69 -103
  51. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_plaid_search_e2e.py +2 -2
  52. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_ppr_cls_fast_path.py +33 -61
  53. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_reification_e2e.py +5 -4
  54. iris_vector_graph-1.91.1/tests/e2e/test_streaming_bfs.py +62 -0
  55. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_stress_api.py +7 -4
  56. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_stress_ingest.py +5 -18
  57. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_stress_multi_context.py +5 -17
  58. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_stress_search.py +52 -72
  59. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_stress_setup.py +3 -9
  60. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_stress_traversal.py +5 -18
  61. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_subquery_call_e2e.py +24 -27
  62. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_untested_methods.py +6 -21
  63. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/conftest.py +21 -0
  64. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/gql/test_graphql_mutations.py +11 -11
  65. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/gql/test_graphql_queries.py +5 -9
  66. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/gql/test_graphql_vector_search.py +3 -11
  67. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_bidirectional_ppr.py +54 -55
  68. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_cls_layer.py +22 -24
  69. iris_vector_graph-1.91.1/tests/integration/test_cypher_enhancements.py +116 -0
  70. iris_vector_graph-1.91.1/tests/integration/test_embeddings_api.py +50 -0
  71. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_objectscript_classes.py +21 -15
  72. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/python/test_python_operators.py +1 -1
  73. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_bfs_arno.py +26 -4
  74. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_bm25_index.py +37 -76
  75. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_cypher_e2e_new_features.py +9 -2
  76. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_cypher_var_length.py +4 -11
  77. iris_vector_graph-1.91.1/tests/unit/test_embedded_wgproto.py +445 -0
  78. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_get_nodes.py +3 -3
  79. iris_vector_graph-1.91.1/tests/unit/test_graph_kernels.py +55 -0
  80. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_ivf_index.py +18 -10
  81. iris_vector_graph-1.91.1/tests/unit/test_operators_wiring.py +152 -0
  82. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_plaid_search.py +25 -0
  83. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_ppr_guided_subgraph.py +36 -29
  84. iris_vector_graph-1.91.1/tests/unit/test_subgraph.py +86 -0
  85. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_temporal_edges.py +1 -5
  86. iris_vector_graph-1.90.0/examples/domains/biomedical/loaders.py +0 -191
  87. iris_vector_graph-1.90.0/examples/domains/fraud/resolver.py +0 -290
  88. iris_vector_graph-1.90.0/iris_vector_graph/operators.py +0 -1245
  89. iris_vector_graph-1.90.0/tests/e2e/test_approx_count_distinct.py +0 -141
  90. iris_vector_graph-1.90.0/tests/e2e/test_arno_bfs_global.py +0 -110
  91. iris_vector_graph-1.90.0/tests/e2e/test_arno_bfs_unified.py +0 -137
  92. iris_vector_graph-1.90.0/tests/e2e/test_biomedical_demo.py +0 -376
  93. iris_vector_graph-1.90.0/tests/e2e/test_cypher_vl_path_bfs.py +0 -146
  94. iris_vector_graph-1.90.0/tests/e2e/test_fraud_demo.py +0 -448
  95. iris_vector_graph-1.90.0/tests/e2e/test_ic13_shortest_path.py +0 -104
  96. iris_vector_graph-1.90.0/tests/e2e/test_ic3_exact_count.py +0 -108
  97. iris_vector_graph-1.90.0/tests/e2e/test_index_protocol.py +0 -83
  98. iris_vector_graph-1.90.0/tests/e2e/test_multi_query_engine_platform.py +0 -495
  99. iris_vector_graph-1.90.0/tests/e2e/test_streaming_bfs.py +0 -204
  100. iris_vector_graph-1.90.0/tests/integration/test_cypher_enhancements.py +0 -136
  101. iris_vector_graph-1.90.0/tests/integration/test_embeddings_api.py +0 -49
  102. iris_vector_graph-1.90.0/tests/unit/test_graph_kernels.py +0 -57
  103. iris_vector_graph-1.90.0/tests/unit/test_operators_wiring.py +0 -191
  104. iris_vector_graph-1.90.0/tests/unit/test_subgraph.py +0 -108
  105. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/LICENSE +0 -0
  106. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/demo_fraud_detection.py +0 -0
  107. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/demo_fraud_detection_sql.py +0 -0
  108. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/domains/__init__.py +0 -0
  109. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/domains/biomedical/__init__.py +0 -0
  110. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/domains/biomedical/types.py +0 -0
  111. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/domains/biomedical_legacy/__init__.py +0 -0
  112. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/domains/biomedical_legacy/biomedical_engine.py +0 -0
  113. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/domains/biomedical_legacy/biomedical_schema.py +0 -0
  114. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/domains/fraud/__init__.py +0 -0
  115. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/domains/fraud/types.py +0 -0
  116. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/graphQL.http +0 -0
  117. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/hybrid_vector_graph_query.cypher +0 -0
  118. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/examples/rest.http +0 -0
  119. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/Algorithms.cls +0 -0
  120. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/ArnoAccel.cls +0 -0
  121. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/BenchFormat.cls +0 -0
  122. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/BenchSeeder.cls +0 -0
  123. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/Benchmark.cls +0 -0
  124. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/Edge.cls +0 -0
  125. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/GraphIndex.cls +0 -0
  126. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/Loader.cls +0 -0
  127. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/MCPService.cls +0 -0
  128. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/MCPToolSet.cls +0 -0
  129. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/MCPTools.cls +0 -0
  130. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/Meta.cls +0 -0
  131. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/PageRank.cls +0 -0
  132. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/PyOps.cls +0 -0
  133. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/Service.cls +0 -0
  134. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/Snapshot.cls +0 -0
  135. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/Subgraph.cls +0 -0
  136. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/TemporalIndex.cls +0 -0
  137. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/TestEdge.cls +0 -0
  138. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/Graph/KG/VecIndex.cls +0 -0
  139. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/IVG/CypherEngine.cls +0 -0
  140. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/IVG/Percentile.cls +0 -0
  141. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/PageRankEmbedded.cls +0 -0
  142. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/User.Exec.cls +0 -0
  143. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_src/src/iris/vector/graph/GraphOperators.cls +0 -0
  144. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/__init__.py +0 -0
  145. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/_validate.py +0 -0
  146. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/bolt_server.py +0 -0
  147. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/0-b124e26129aa436b26fe.bundle.js +0 -0
  148. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/1-b124e26129aa436b26fe.bundle.js +0 -0
  149. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/10-b124e26129aa436b26fe.bundle.js +0 -0
  150. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/11-b124e26129aa436b26fe.bundle.js +0 -0
  151. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/12-b124e26129aa436b26fe.bundle.js +0 -0
  152. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/13-b124e26129aa436b26fe.bundle.js +0 -0
  153. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/14-b124e26129aa436b26fe.bundle.js +0 -0
  154. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/15-b124e26129aa436b26fe.bundle.js +0 -0
  155. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/16-b124e26129aa436b26fe.bundle.js +0 -0
  156. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/17-b124e26129aa436b26fe.bundle.js +0 -0
  157. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/18-b124e26129aa436b26fe.bundle.js +0 -0
  158. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/19-b124e26129aa436b26fe.bundle.js +0 -0
  159. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/20-b124e26129aa436b26fe.bundle.js +0 -0
  160. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/21-b124e26129aa436b26fe.bundle.js +0 -0
  161. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/22-b124e26129aa436b26fe.bundle.js +0 -0
  162. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/23-b124e26129aa436b26fe.bundle.js +0 -0
  163. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/24-b124e26129aa436b26fe.bundle.js +0 -0
  164. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/25-b124e26129aa436b26fe.bundle.js +0 -0
  165. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/26-b124e26129aa436b26fe.bundle.js +0 -0
  166. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/27-b124e26129aa436b26fe.bundle.js +0 -0
  167. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/28-b124e26129aa436b26fe.bundle.js +0 -0
  168. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/29-b124e26129aa436b26fe.bundle.js +0 -0
  169. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/30-b124e26129aa436b26fe.bundle.js +0 -0
  170. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/31-b124e26129aa436b26fe.bundle.js +0 -0
  171. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/32-b124e26129aa436b26fe.bundle.js +0 -0
  172. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/33-b124e26129aa436b26fe.bundle.js +0 -0
  173. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/34-b124e26129aa436b26fe.bundle.js +0 -0
  174. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/35-b124e26129aa436b26fe.bundle.js +0 -0
  175. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/36-b124e26129aa436b26fe.bundle.js +0 -0
  176. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/37-b124e26129aa436b26fe.bundle.js +0 -0
  177. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/38-b124e26129aa436b26fe.bundle.js +0 -0
  178. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/39-b124e26129aa436b26fe.bundle.js +0 -0
  179. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/40-b124e26129aa436b26fe.bundle.js +0 -0
  180. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/41-b124e26129aa436b26fe.bundle.js +0 -0
  181. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/42-b124e26129aa436b26fe.bundle.js +0 -0
  182. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/43-b124e26129aa436b26fe.bundle.js +0 -0
  183. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/44-b124e26129aa436b26fe.bundle.js +0 -0
  184. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/45-b124e26129aa436b26fe.bundle.js +0 -0
  185. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/46-b124e26129aa436b26fe.bundle.js +0 -0
  186. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/47-b124e26129aa436b26fe.bundle.js +0 -0
  187. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/48-b124e26129aa436b26fe.bundle.js +0 -0
  188. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/49-b124e26129aa436b26fe.bundle.js +0 -0
  189. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/50-b124e26129aa436b26fe.bundle.js +0 -0
  190. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/51-b124e26129aa436b26fe.bundle.js +0 -0
  191. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/52-b124e26129aa436b26fe.bundle.js +0 -0
  192. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/53-b124e26129aa436b26fe.bundle.js +0 -0
  193. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/54-b124e26129aa436b26fe.bundle.js +0 -0
  194. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/55-b124e26129aa436b26fe.bundle.js +0 -0
  195. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/56-b124e26129aa436b26fe.bundle.js +0 -0
  196. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/57-b124e26129aa436b26fe.bundle.js +0 -0
  197. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/58-b124e26129aa436b26fe.bundle.js +0 -0
  198. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/59-b124e26129aa436b26fe.bundle.js +0 -0
  199. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/6-b124e26129aa436b26fe.bundle.js +0 -0
  200. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/60-b124e26129aa436b26fe.bundle.js +0 -0
  201. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/61-b124e26129aa436b26fe.bundle.js +0 -0
  202. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/62-b124e26129aa436b26fe.bundle.js +0 -0
  203. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/63-b124e26129aa436b26fe.bundle.js +0 -0
  204. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/64-b124e26129aa436b26fe.bundle.js +0 -0
  205. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/65-b124e26129aa436b26fe.bundle.js +0 -0
  206. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/66-b124e26129aa436b26fe.bundle.js +0 -0
  207. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/67-b124e26129aa436b26fe.bundle.js +0 -0
  208. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/68-b124e26129aa436b26fe.bundle.js +0 -0
  209. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/69-b124e26129aa436b26fe.bundle.js +0 -0
  210. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/7-b124e26129aa436b26fe.bundle.js +0 -0
  211. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/70-b124e26129aa436b26fe.bundle.js +0 -0
  212. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/71-b124e26129aa436b26fe.bundle.js +0 -0
  213. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/72-b124e26129aa436b26fe.bundle.js +0 -0
  214. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/73-b124e26129aa436b26fe.bundle.js +0 -0
  215. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/74-b124e26129aa436b26fe.bundle.js +0 -0
  216. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/75-b124e26129aa436b26fe.bundle.js +0 -0
  217. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/8-b124e26129aa436b26fe.bundle.js +0 -0
  218. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/9-b124e26129aa436b26fe.bundle.js +0 -0
  219. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/app-b124e26129aa436b26fe.js +0 -0
  220. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/filter-a7c44e713bf19d31f6b2849160b1bba8.svg +0 -0
  221. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.eot +0 -0
  222. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.ttf +0 -0
  223. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff +0 -0
  224. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff2 +0 -0
  225. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.eot +0 -0
  226. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.ttf +0 -0
  227. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff +0 -0
  228. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff2 +0 -0
  229. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.eot +0 -0
  230. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.ttf +0 -0
  231. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff +0 -0
  232. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff2 +0 -0
  233. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.eot +0 -0
  234. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.ttf +0 -0
  235. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff +0 -0
  236. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff2 +0 -0
  237. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Bold.ttf +0 -0
  238. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-BoldItalic.ttf +0 -0
  239. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
  240. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  241. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Italic.ttf +0 -0
  242. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Light.ttf +0 -0
  243. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-LightItalic.ttf +0 -0
  244. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Regular.ttf +0 -0
  245. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Semibold.ttf +0 -0
  246. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-SemiboldItalic.ttf +0 -0
  247. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/codicon.ttf +0 -0
  248. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/filter.svg +0 -0
  249. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.eot +0 -0
  250. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.svg +0 -0
  251. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.ttf +0 -0
  252. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff +0 -0
  253. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff2 +0 -0
  254. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/group-by.svg +0 -0
  255. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.eot +0 -0
  256. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.svg +0 -0
  257. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.ttf +0 -0
  258. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.woff +0 -0
  259. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/sort.svg +0 -0
  260. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/sort1.svg +0 -0
  261. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/sort2.svg +0 -0
  262. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/streamline.eot +0 -0
  263. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/streamline.svg +0 -0
  264. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/streamline.ttf +0 -0
  265. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/fonts/streamline.woff +0 -0
  266. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/group-by-89c6aaa756bc3548cc6ab3d2be4d2862.svg +0 -0
  267. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/Favorites.mp4 +0 -0
  268. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/Keystrokes.mp4 +0 -0
  269. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/ProjectFiles.mp4 +0 -0
  270. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/ReusableFrame.mp4 +0 -0
  271. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/SidebarDB_Iinfo.png +0 -0
  272. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/Stream.png +0 -0
  273. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/aura-logo-inverted.svg +0 -0
  274. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/aura-logo.svg +0 -0
  275. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/books.png +0 -0
  276. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/clusters.svg +0 -0
  277. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/community.jpg +0 -0
  278. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-144x144.png +0 -0
  279. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-192x192.png +0 -0
  280. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-36x36.png +0 -0
  281. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-48x48.png +0 -0
  282. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-72x72.png +0 -0
  283. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-96x96.png +0 -0
  284. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-114x114.png +0 -0
  285. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-120x120.png +0 -0
  286. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-144x144.png +0 -0
  287. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-152x152.png +0 -0
  288. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-180x180.png +0 -0
  289. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-57x57.png +0 -0
  290. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-60x60.png +0 -0
  291. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-72x72.png +0 -0
  292. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-76x76.png +0 -0
  293. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-precomposed.png +0 -0
  294. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon.png +0 -0
  295. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/browserconfig.xml +0 -0
  296. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-16x16.png +0 -0
  297. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-32x32.png +0 -0
  298. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-96x96.png +0 -0
  299. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/favicon.ico +0 -0
  300. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/manifest.json +0 -0
  301. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-144x144.png +0 -0
  302. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-150x150.png +0 -0
  303. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-310x310.png +0 -0
  304. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-70x70.png +0 -0
  305. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser-canary.svg +0 -0
  306. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser.svg +0 -0
  307. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/labeled_node.png +0 -0
  308. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/more_nodes.png +0 -0
  309. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/neo4j-favicon.ico +0 -0
  310. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/neo4j-logo-inverted.svg +0 -0
  311. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/neo4j-logo.svg +0 -0
  312. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/northwind/customer-orders.png +0 -0
  313. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/northwind/order-graph.png +0 -0
  314. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/northwind/product-category-supplier.png +0 -0
  315. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/northwind/product-graph.png +0 -0
  316. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/one_node.png +0 -0
  317. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/query-plan-operator-cost.svg +0 -0
  318. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/query-plan-operator-details.svg +0 -0
  319. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/query-plan-operator-rows.svg +0 -0
  320. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/query-plan.svg +0 -0
  321. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/rel-props.png +0 -0
  322. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/relationships.png +0 -0
  323. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/screen_code_frame.png +0 -0
  324. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/screen_cypher_warn.png +0 -0
  325. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/screen_editor.png +0 -0
  326. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/screen_sidebar.png +0 -0
  327. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/images/screen_stream.png +0 -0
  328. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/sort-8d6f482c21de572ceeb5ac93623e6c97.svg +0 -0
  329. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/sort1-d2dc515571213fc0ca99b0341b88e413.svg +0 -0
  330. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/assets/sort2-31050964e7eb2042325f7bcbba3d58ad.svg +0 -0
  331. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/bolt-worker-dfa551eb0861cc080843.js +0 -0
  332. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/cypher-editor-b124e26129aa436b26fe.bundle.js +0 -0
  333. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/editor-455af92e7e1dc39fdbc8060f6680ab32.worker.js +0 -0
  334. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/index.html +0 -0
  335. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/manifest.json +0 -0
  336. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/CoseBilkentLayout.worker-FEt6e_rV.js +0 -0
  337. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/HierarchicalLayout.worker-O6WHYssL.js +0 -0
  338. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/asciidoc.8O6YIVRy.js +0 -0
  339. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/auto-track.BlKugDvg.js +0 -0
  340. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/bash.CLAyaf9k.js +0 -0
  341. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/c.l4fEI10z.js +0 -0
  342. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/connect-icon-Br2hQy_e.svg +0 -0
  343. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/csharp.ChqrQYCS.js +0 -0
  344. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/css-extras.Bi-4v17d.js +0 -0
  345. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/css.B1LHiudN.js +0 -0
  346. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/cypher-editor-auto-completions.gif +0 -0
  347. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/cypher-editor-inline-help.png +0 -0
  348. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/cypher-editor-linting.png +0 -0
  349. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/cypher-editor-syntax-highlighting.png +0 -0
  350. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/cypher-reference.gif +0 -0
  351. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/cypher.C3qdyJ5B.js +0 -0
  352. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/docker.CF7EZT1T.js +0 -0
  353. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/fira-code-400-regular-normal-BzypJxJk.woff2 +0 -0
  354. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/fira-code-500-medium-normal-CRWzqcWa.woff2 +0 -0
  355. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/fira-code-700-bold-normal-hUmNV4O0.woff2 +0 -0
  356. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/go.FsJyBHVG.js +0 -0
  357. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/graphql.BlTzkzAJ.js +0 -0
  358. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/history-quick-search.gif +0 -0
  359. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/index-CY0cZcsW.js +0 -0
  360. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/index-H7L207gH.css +0 -0
  361. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/index.BpRu7Js3.js +0 -0
  362. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/index.C74acnU7.js +0 -0
  363. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/index.CHatcJcU.js +0 -0
  364. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/index.D6ZMQedT.js +0 -0
  365. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/index.DPZla5MT.js +0 -0
  366. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/index.dzIUqrzq.js +0 -0
  367. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/index.leyiHvaQ.js +0 -0
  368. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/index.qJ6VE118.js +0 -0
  369. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/index.umd.B9yhfa5Y.js +0 -0
  370. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/is-plan-event-enabled.DeNtQvA5.js +0 -0
  371. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/java.BBXwBh9f.js +0 -0
  372. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/java.CQ1iJ0-D.js +0 -0
  373. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/javadoc.UnquSOIj.js +0 -0
  374. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/javascript.CYTqTa0W.js +0 -0
  375. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/json.BIkJg-Cj.js +0 -0
  376. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/jsx.Cy_hP1z6.js +0 -0
  377. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/kotlin.D_6l0VkM.js +0 -0
  378. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/lintWorker-QNEp56W3.js +0 -0
  379. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/logo-aura-white-DCfUnkCN.svg +0 -0
  380. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/movie-model.png +0 -0
  381. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/movies-active-B2SzHIc1.svg +0 -0
  382. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/neo4j-logo-active-CieUxroh.svg +0 -0
  383. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/patterned-banner-background-C_nO-Yn8.svg +0 -0
  384. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/php.BKb6XVba.js +0 -0
  385. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/plan-graph-worker-s17nF19Q.js +0 -0
  386. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/public-sans-300-light-normal-CG9e8kLa.woff2 +0 -0
  387. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-italic-D9FlViiB.woff2 +0 -0
  388. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-normal-D4F9yfFi.woff2 +0 -0
  389. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/public-sans-500-medium-normal-ChZcBEnJ.woff2 +0 -0
  390. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/public-sans-600-semi-bold-normal-Ck6TyfRI.woff2 +0 -0
  391. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/public-sans-700-bold-normal-CGjRhW-d.woff2 +0 -0
  392. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/python.tCcUC3U7.js +0 -0
  393. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/query-fundamentals-active-jvTJU1K2.svg +0 -0
  394. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/query.snake-frame.DmvXOQIM.js +0 -0
  395. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/regex.C_VuIVtC.js +0 -0
  396. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/rust.CtSATZMt.js +0 -0
  397. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/saved-cypher.gif +0 -0
  398. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/scalable-graph-visualization.gif +0 -0
  399. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/sql.CfOAbw6n.js +0 -0
  400. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/syne-neo-500-medium-normal-A5GXmYUf.woff2 +0 -0
  401. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/table-visualization.gif +0 -0
  402. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/typescript.3Tbm37mD.js +0 -0
  403. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/xml-doc.h79Tu9Aw.js +0 -0
  404. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/assets/yaml.B-Jvd59g.js +0 -0
  405. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/favicons/android-chrome-192x192.png +0 -0
  406. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/favicons/apple-touch-icon.png +0 -0
  407. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/favicons/favicon-16x16.png +0 -0
  408. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/favicons/favicon-194x194.png +0 -0
  409. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/favicons/favicon-32x32.png +0 -0
  410. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/favicons/favicon.ico +0 -0
  411. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/favicons/safari-pinned-tab.svg +0 -0
  412. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/index.html +0 -0
  413. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/preview/manifest.json +0 -0
  414. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/ui-libs-b124e26129aa436b26fe.bundle.js +0 -0
  415. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/browser_static/vendor-b124e26129aa436b26fe.bundle.js +0 -0
  416. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/bulk_loader.py +0 -0
  417. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/capabilities.py +0 -0
  418. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/cypher/__init__.py +0 -0
  419. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/cypher/algorithms/__init__.py +0 -0
  420. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/cypher/algorithms/paths.py +0 -0
  421. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/cypher/ast.py +0 -0
  422. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/cypher/lexer.py +0 -0
  423. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/cypher/parser.py +0 -0
  424. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/cypher/translator.py +0 -0
  425. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/dbapi_utils.py +0 -0
  426. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/fusion.py +0 -0
  427. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/gql/__init__.py +0 -0
  428. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/gql/constants.py +0 -0
  429. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/gql/engine.py +0 -0
  430. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/gql/pooling.py +0 -0
  431. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/index_protocol.py +0 -0
  432. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/models.py +0 -0
  433. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/py.typed +0 -0
  434. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/result.py +0 -0
  435. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/schema.py +0 -0
  436. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/security.py +0 -0
  437. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/status.py +0 -0
  438. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/text_search.py +0 -0
  439. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/utils.py +0 -0
  440. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/iris_vector_graph/vector_utils.py +0 -0
  441. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/sql/fhir_bridges.sql +0 -0
  442. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/sql/fraud_sample_data.sql +0 -0
  443. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/sql/globals_schema.sql +0 -0
  444. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/sql/graph_path_globals.sql +0 -0
  445. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/sql/graph_walk_tvf.sql +0 -0
  446. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/sql/migrations/000_base_schema_iris.sql +0 -0
  447. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/sql/migrations/001_add_nodepk_table.sql +0 -0
  448. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/sql/migrations/001_rollback_nodepk.sql +0 -0
  449. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/sql/migrations/002_add_fk_constraints.sql +0 -0
  450. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/sql/operators.sql +0 -0
  451. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/sql/operators_fixed.sql +0 -0
  452. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/sql/procedures/kg_PageRank.sql +0 -0
  453. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/sql/rdf_reifications.sql +0 -0
  454. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/sql/schema.sql +0 -0
  455. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/TESTING.md +0 -0
  456. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/benchmark_parser.py +0 -0
  457. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/benchmarks/README.md +0 -0
  458. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/benchmarks/benchmark_neo4j.py +0 -0
  459. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/benchmarks/graph_gen.py +0 -0
  460. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/benchmarks/iris_baseline_run.py +0 -0
  461. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/benchmarks/iris_os_run.py +0 -0
  462. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/benchmarks/ldbc_full_loader.py +0 -0
  463. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/benchmarks/load_neo4j.py +0 -0
  464. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/benchmarks/synthetic_baseline.csv +0 -0
  465. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/conftest.py +0 -0
  466. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/contract/__init__.py +0 -0
  467. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/contract/test_cypher_api.py +0 -0
  468. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/contract/test_cypher_api_errors.py +0 -0
  469. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/contract/test_graphql_queries.py +0 -0
  470. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/contract/test_graphql_schema.py +0 -0
  471. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/curl_suite.sh +0 -0
  472. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/__init__.py +0 -0
  473. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/conftest.py +0 -0
  474. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_biomedical_ui.py +0 -0
  475. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_cypher_coerce_e2e.py +0 -0
  476. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_fraud_ui.py +0 -0
  477. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_gql_autogen_startup.py +0 -0
  478. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_gql_cypher_passthrough.py +0 -0
  479. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_gql_node_queries.py +0 -0
  480. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_gql_semantic_search.py +0 -0
  481. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_gql_traversal.py +0 -0
  482. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_graph_kernels_e2e.py +0 -0
  483. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_introspection_api.py +0 -0
  484. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_ivf_insert.py +0 -0
  485. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_named_paths_e2e.py +0 -0
  486. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_nkg_index_e2e.py +0 -0
  487. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_pattern_comprehension_reduce.py +0 -0
  488. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_plaid.py +0 -0
  489. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_ppr_guided_e2e.py +0 -0
  490. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_procedure_installation.py +0 -0
  491. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_schema_procedures_e2e.py +0 -0
  492. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_subgraph_e2e.py +0 -0
  493. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/e2e/test_vecindex_e2e.py +0 -0
  494. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/__init__.py +0 -0
  495. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/gql/__init__.py +0 -0
  496. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/gql/test_graphql_nested_queries.py +0 -0
  497. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_cypher_advanced.py +0 -0
  498. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_cypher_multi_type.py +0 -0
  499. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_cypher_rd.py +0 -0
  500. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_cypher_rel_vars.py +0 -0
  501. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_cypher_single_type.py +0 -0
  502. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_cypher_untyped.py +0 -0
  503. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_cypher_vector_search.py +0 -0
  504. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_fastapi_graphql.py +0 -0
  505. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_fhir_bridges_integration.py +0 -0
  506. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_named_paths_integration.py +0 -0
  507. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_nodepk_advanced_benchmarks.py +0 -0
  508. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_nodepk_constraints.py +0 -0
  509. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_nodepk_graph_analytics.py +0 -0
  510. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_nodepk_migration.py +0 -0
  511. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_nodepk_performance.py +0 -0
  512. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_nodepk_production_scale.py +0 -0
  513. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_pagerank_sql_optimization.py +0 -0
  514. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_reification_integration.py +0 -0
  515. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_schema_migration.py +0 -0
  516. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_stored_procedure_install.py +0 -0
  517. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/integration/test_subquery_call_integration.py +0 -0
  518. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/performance/conftest.py +0 -0
  519. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/performance/scale_benchmark.py +0 -0
  520. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/performance/test_ppr_stress.py +0 -0
  521. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/performance/test_stress_v1_5.py +0 -0
  522. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/python/run_all_tests.py +0 -0
  523. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/python/test_iris_rest_api.py +0 -0
  524. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/python/test_networkx_loader.py +0 -0
  525. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/python/test_performance_benchmarks.py +0 -0
  526. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/python/test_pyops_vector_conversion.py +0 -0
  527. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/python/test_python_sdk.py +0 -0
  528. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/python/test_schema_validation.py +0 -0
  529. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/python/test_sql_queries.py +0 -0
  530. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/python/test_vector_functions.py +0 -0
  531. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/cypher/__init__.py +0 -0
  532. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/cypher/test_lexer.py +0 -0
  533. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/cypher/test_lexer_advanced.py +0 -0
  534. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/cypher/test_parser.py +0 -0
  535. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/cypher/test_parser_advanced.py +0 -0
  536. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_batch_mutations.py +0 -0
  537. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_bolt_server.py +0 -0
  538. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_cls_deployment.py +0 -0
  539. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_cypher_benchmark.py +0 -0
  540. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_cypher_benchmark_scale.py +0 -0
  541. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_cypher_case_when.py +0 -0
  542. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_cypher_functions.py +0 -0
  543. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_cypher_parser.py +0 -0
  544. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_cypher_posos_bugs.py +0 -0
  545. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_cypher_procedures.py +0 -0
  546. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_cypher_translator.py +0 -0
  547. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_cypher_union_exists.py +0 -0
  548. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_cypher_vector_search.py +0 -0
  549. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_edge_embeddings.py +0 -0
  550. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_edgeprop_ndjson.py +0 -0
  551. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_embed_nodes_params.py +0 -0
  552. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_embedded.py +0 -0
  553. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_engine_dimension_fix.py +0 -0
  554. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_engine_embeddings.py +0 -0
  555. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_engine_status.py +0 -0
  556. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_fhir_bridges.py +0 -0
  557. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_graphql_dataloader.py +0 -0
  558. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_index_handle.py +0 -0
  559. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_index_protocol.py +0 -0
  560. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_ingest_formats.py +0 -0
  561. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_introspection_api.py +0 -0
  562. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_ivgresult.py +0 -0
  563. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_named_graphs.py +0 -0
  564. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_named_paths.py +0 -0
  565. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_reification.py +0 -0
  566. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_schema_init.py +0 -0
  567. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_schema_procedures.py +0 -0
  568. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_shortest_path.py +0 -0
  569. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_snapshot.py +0 -0
  570. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_sql_splitter.py +0 -0
  571. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_sql_table_bridge.py +0 -0
  572. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_subquery_call.py +0 -0
  573. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_temporal_cypher.py +0 -0
  574. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_unified_edge_store.py +0 -0
  575. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_validation.py +0 -0
  576. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_vector_search_routing.py +0 -0
  577. {iris_vector_graph-1.90.0 → iris_vector_graph-1.91.1}/tests/unit/test_weighted_shortest_path.py +0 -0
@@ -165,3 +165,5 @@ docker-compose.yaml
165
165
 
166
166
  # Playwright MCP session artifacts
167
167
  .playwright-mcp/
168
+ examples/expanded_mindwalk_KG_10000.*
169
+ .sesskey
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iris-vector-graph
3
- Version: 1.90.0
3
+ Version: 1.91.1
4
4
  Summary: Transactional Graph + Vector retrieval system for InterSystems IRIS with hybrid search, openCypher, and GraphQL APIs
5
5
  Project-URL: Homepage, https://github.com/intersystems-community/iris-vector-graph
6
6
  Project-URL: Documentation, https://github.com/intersystems-community/iris-vector-graph/tree/main/docs
@@ -108,7 +108,7 @@ import iris
108
108
  from iris_vector_graph.engine import IRISGraphEngine
109
109
 
110
110
  conn = iris.connect("localhost", 1972, "USER", "_SYSTEM", "SYS")
111
- engine = IRISGraphEngine(conn)
111
+ engine = IRISGraphEngine(conn, embedding_dimension=768)
112
112
  engine.initialize_schema()
113
113
 
114
114
  engine.create_node("alice", labels=["Person"], properties={"name": "Alice"})
@@ -119,12 +119,16 @@ result = engine.execute_cypher(
119
119
  "MATCH (a {node_id:$id})-[:KNOWS]->(b) RETURN b.name AS name",
120
120
  {"id": "alice"}
121
121
  )
122
- print(result.rows)
122
+ print(result["rows"]) # [('Bob',)]
123
123
  ```
124
124
 
125
- Expected output: `[['Bob']]`
125
+ > **Note:** On IRIS Community Edition, `initialize_schema()` prints some compile
126
+ > warnings. These are safe to ignore:
127
+ > - `Graph.KG.MCPService` / `Graph.KG.MCPToolSet` — Enterprise-only MCP classes, not needed
128
+ > - `Graph.KG.Meta` / `User.PageRankEmbedded` — optional classes, engine works without them
129
+ > - `Graph.KG.Edge` "Table name not unique" — schema already deployed, idempotent
126
130
 
127
- **That's it.** See the rest of this README for temporal graphs, vector search, Cypher, and graph analytics.
131
+ **That's it.**
128
132
 
129
133
  ---
130
134
 
@@ -180,6 +184,34 @@ The single 2025.1 failure: `SKIP` clause uses `ORDER BY + OFFSET` on JSON_TABLE-
180
184
 
181
185
  ---
182
186
 
187
+ ## Interactive Demo
188
+
189
+ Two live demos ship in `src/iris_demo_server/`:
190
+
191
+ | Demo | URL | What it shows |
192
+ |------|-----|--------------|
193
+ | **Fraud Detection** | `http://localhost:8200/fraud` | Real-time fraud scoring, bitemporal audit trails, ring pattern detection |
194
+ | **Biomedical Research** | `http://localhost:8200/bio` | Protein similarity search, pathway traversal, D3 network visualization |
195
+
196
+ ```bash
197
+ # 1. Start IRIS
198
+ docker compose up -d
199
+
200
+ # 2. Install deps (once)
201
+ pip install iris-vector-graph[full]
202
+
203
+ # 3. Start demo server
204
+ python -m uvicorn iris_demo_server.app:app --port 8200 --host 127.0.0.1 \
205
+ --app-dir src
206
+
207
+ # 4. Open browser
208
+ open http://localhost:8200
209
+ ```
210
+
211
+ The demos use the generic IVG graph engine — no separate backend required. All data is created by the demo on first run.
212
+
213
+ ---
214
+
183
215
  ## Quick Start
184
216
 
185
217
  ### Python
@@ -189,7 +221,7 @@ import iris
189
221
  from iris_vector_graph.engine import IRISGraphEngine
190
222
 
191
223
  conn = iris.connect(hostname='localhost', port=1972, namespace='USER', username='_SYSTEM', password='SYS')
192
- engine = IRISGraphEngine(conn)
224
+ engine = IRISGraphEngine(conn, embedding_dimension=768)
193
225
  engine.initialize_schema()
194
226
  ```
195
227
 
@@ -199,7 +231,7 @@ engine.initialize_schema()
199
231
  from iris_vector_graph.embedded import EmbeddedConnection
200
232
  from iris_vector_graph.engine import IRISGraphEngine
201
233
 
202
- engine = IRISGraphEngine(EmbeddedConnection())
234
+ engine = IRISGraphEngine(EmbeddedConnection(), embedding_dimension=768)
203
235
  engine.initialize_schema()
204
236
  ```
205
237
 
@@ -1200,6 +1232,41 @@ Four openCypher gaps closed, all from structured gap analysis against the openCy
1200
1232
  - SQL mapping wins over native `Graph_KG.nodes` rows for the same label (FR-016)
1201
1233
  - `TableNotMappedError` raised with helpful message when `attach_embeddings_to_table` is called on unregistered label
1202
1234
 
1235
+ ## Changelog
1236
+
1237
+ ### v1.91.0 (2026-05-09)
1238
+
1239
+ **Engine-first architecture** — `IRISGraphOperators` is now a thin shim over `IRISGraphEngine`.
1240
+ All 17 `kg_*` operators are implemented directly on the engine.
1241
+
1242
+ - `kg_KNN_VEC`: node-ID input path works correctly (looks up stored embedding, excludes self)
1243
+ - `kg_SUBGRAPH`: populates `node_labels`, `node_properties`, `node_embeddings` from `SubgraphJson`
1244
+ - `kg_PPR_GUIDED_SUBGRAPH`: returns `PprGuidedSubgraphData`; backward-compat `top_k`/`max_hops` params
1245
+ - `kg_NEIGHBORS`: uses `node_id` field, validates direction parameter
1246
+ - `kg_GRAPH_WALK`: multi-hop traversal via `BFSFastJsonSorted`
1247
+ - `kg_PAGERANK` / `kg_PPR`: empty seeds return `[]` gracefully
1248
+ - `bulk_delete_nodes(ids)`: new engine method — FK-safe batch delete
1249
+
1250
+ **ObjectScript fixes:**
1251
+ - `NKGAccel.BFSJson`: 1d75d97 string-passing approach (`ExportAdjacencyWithPreds`)
1252
+ - `Traversal.BFSFast`: predicate filter applied to all hops, result/frontier logic separated
1253
+ - `TraverseWithPredicateFast`: records results before applying `nextP` frontier filter
1254
+ - `BuildNKG`: calls `InvalidateAdjCache()` before rebuild to prevent stale arno cache
1255
+ - `IVFIndex` / `BM25Index` / `PLAIDSearch`: added `List()` ClassMethod
1256
+ - `_build_index_registry`: ObjectScript fallback via `List()` when `gref` unavailable
1257
+
1258
+ **GQL / Demo:**
1259
+ - GQL `stats` field added: `{ stats { nodeCount edgeCount labelCount } }`
1260
+ - Dynamic GQL type creation: sanitize property names with spaces to valid Python identifiers
1261
+ - Demo server: `/bio`, `/fraud`, `/arch/fraud`, `/arch/bio` routes all live
1262
+ - `iris_demo_server`: Biomedical routes registered
1263
+
1264
+ **Test infrastructure:**
1265
+ - 524 e2e / 768 unit — **0 failures, 0 unjustified skips**
1266
+ - All test fixtures use engine methods — no raw `cursor.execute()` in test data setup
1267
+ - All `classMethodString` → `classMethodValue`, all `intersystems_iris` → `iris`
1268
+ - All hardcoded ports → `os.environ.get()`
1269
+
1203
1270
  ### v1.43.0 (2026-04-03)
1204
1271
  - `EmbeddedConnection` and `EmbeddedCursor` now importable directly from `iris_vector_graph` (top-level)
1205
1272
  - `IRISGraphEngine(iris.sql)` — accepts `iris.sql` module directly; auto-wraps in `EmbeddedConnection` (no manual wrapper needed inside IRIS Language=python methods)
@@ -36,7 +36,7 @@ import iris
36
36
  from iris_vector_graph.engine import IRISGraphEngine
37
37
 
38
38
  conn = iris.connect("localhost", 1972, "USER", "_SYSTEM", "SYS")
39
- engine = IRISGraphEngine(conn)
39
+ engine = IRISGraphEngine(conn, embedding_dimension=768)
40
40
  engine.initialize_schema()
41
41
 
42
42
  engine.create_node("alice", labels=["Person"], properties={"name": "Alice"})
@@ -47,12 +47,16 @@ result = engine.execute_cypher(
47
47
  "MATCH (a {node_id:$id})-[:KNOWS]->(b) RETURN b.name AS name",
48
48
  {"id": "alice"}
49
49
  )
50
- print(result.rows)
50
+ print(result["rows"]) # [('Bob',)]
51
51
  ```
52
52
 
53
- Expected output: `[['Bob']]`
53
+ > **Note:** On IRIS Community Edition, `initialize_schema()` prints some compile
54
+ > warnings. These are safe to ignore:
55
+ > - `Graph.KG.MCPService` / `Graph.KG.MCPToolSet` — Enterprise-only MCP classes, not needed
56
+ > - `Graph.KG.Meta` / `User.PageRankEmbedded` — optional classes, engine works without them
57
+ > - `Graph.KG.Edge` "Table name not unique" — schema already deployed, idempotent
54
58
 
55
- **That's it.** See the rest of this README for temporal graphs, vector search, Cypher, and graph analytics.
59
+ **That's it.**
56
60
 
57
61
  ---
58
62
 
@@ -108,6 +112,34 @@ The single 2025.1 failure: `SKIP` clause uses `ORDER BY + OFFSET` on JSON_TABLE-
108
112
 
109
113
  ---
110
114
 
115
+ ## Interactive Demo
116
+
117
+ Two live demos ship in `src/iris_demo_server/`:
118
+
119
+ | Demo | URL | What it shows |
120
+ |------|-----|--------------|
121
+ | **Fraud Detection** | `http://localhost:8200/fraud` | Real-time fraud scoring, bitemporal audit trails, ring pattern detection |
122
+ | **Biomedical Research** | `http://localhost:8200/bio` | Protein similarity search, pathway traversal, D3 network visualization |
123
+
124
+ ```bash
125
+ # 1. Start IRIS
126
+ docker compose up -d
127
+
128
+ # 2. Install deps (once)
129
+ pip install iris-vector-graph[full]
130
+
131
+ # 3. Start demo server
132
+ python -m uvicorn iris_demo_server.app:app --port 8200 --host 127.0.0.1 \
133
+ --app-dir src
134
+
135
+ # 4. Open browser
136
+ open http://localhost:8200
137
+ ```
138
+
139
+ The demos use the generic IVG graph engine — no separate backend required. All data is created by the demo on first run.
140
+
141
+ ---
142
+
111
143
  ## Quick Start
112
144
 
113
145
  ### Python
@@ -117,7 +149,7 @@ import iris
117
149
  from iris_vector_graph.engine import IRISGraphEngine
118
150
 
119
151
  conn = iris.connect(hostname='localhost', port=1972, namespace='USER', username='_SYSTEM', password='SYS')
120
- engine = IRISGraphEngine(conn)
152
+ engine = IRISGraphEngine(conn, embedding_dimension=768)
121
153
  engine.initialize_schema()
122
154
  ```
123
155
 
@@ -127,7 +159,7 @@ engine.initialize_schema()
127
159
  from iris_vector_graph.embedded import EmbeddedConnection
128
160
  from iris_vector_graph.engine import IRISGraphEngine
129
161
 
130
- engine = IRISGraphEngine(EmbeddedConnection())
162
+ engine = IRISGraphEngine(EmbeddedConnection(), embedding_dimension=768)
131
163
  engine.initialize_schema()
132
164
  ```
133
165
 
@@ -1128,6 +1160,41 @@ Four openCypher gaps closed, all from structured gap analysis against the openCy
1128
1160
  - SQL mapping wins over native `Graph_KG.nodes` rows for the same label (FR-016)
1129
1161
  - `TableNotMappedError` raised with helpful message when `attach_embeddings_to_table` is called on unregistered label
1130
1162
 
1163
+ ## Changelog
1164
+
1165
+ ### v1.91.0 (2026-05-09)
1166
+
1167
+ **Engine-first architecture** — `IRISGraphOperators` is now a thin shim over `IRISGraphEngine`.
1168
+ All 17 `kg_*` operators are implemented directly on the engine.
1169
+
1170
+ - `kg_KNN_VEC`: node-ID input path works correctly (looks up stored embedding, excludes self)
1171
+ - `kg_SUBGRAPH`: populates `node_labels`, `node_properties`, `node_embeddings` from `SubgraphJson`
1172
+ - `kg_PPR_GUIDED_SUBGRAPH`: returns `PprGuidedSubgraphData`; backward-compat `top_k`/`max_hops` params
1173
+ - `kg_NEIGHBORS`: uses `node_id` field, validates direction parameter
1174
+ - `kg_GRAPH_WALK`: multi-hop traversal via `BFSFastJsonSorted`
1175
+ - `kg_PAGERANK` / `kg_PPR`: empty seeds return `[]` gracefully
1176
+ - `bulk_delete_nodes(ids)`: new engine method — FK-safe batch delete
1177
+
1178
+ **ObjectScript fixes:**
1179
+ - `NKGAccel.BFSJson`: 1d75d97 string-passing approach (`ExportAdjacencyWithPreds`)
1180
+ - `Traversal.BFSFast`: predicate filter applied to all hops, result/frontier logic separated
1181
+ - `TraverseWithPredicateFast`: records results before applying `nextP` frontier filter
1182
+ - `BuildNKG`: calls `InvalidateAdjCache()` before rebuild to prevent stale arno cache
1183
+ - `IVFIndex` / `BM25Index` / `PLAIDSearch`: added `List()` ClassMethod
1184
+ - `_build_index_registry`: ObjectScript fallback via `List()` when `gref` unavailable
1185
+
1186
+ **GQL / Demo:**
1187
+ - GQL `stats` field added: `{ stats { nodeCount edgeCount labelCount } }`
1188
+ - Dynamic GQL type creation: sanitize property names with spaces to valid Python identifiers
1189
+ - Demo server: `/bio`, `/fraud`, `/arch/fraud`, `/arch/bio` routes all live
1190
+ - `iris_demo_server`: Biomedical routes registered
1191
+
1192
+ **Test infrastructure:**
1193
+ - 524 e2e / 768 unit — **0 failures, 0 unjustified skips**
1194
+ - All test fixtures use engine methods — no raw `cursor.execute()` in test data setup
1195
+ - All `classMethodString` → `classMethodValue`, all `intersystems_iris` → `iris`
1196
+ - All hardcoded ports → `os.environ.get()`
1197
+
1131
1198
  ### v1.43.0 (2026-04-03)
1132
1199
  - `EmbeddedConnection` and `EmbeddedCursor` now importable directly from `iris_vector_graph` (top-level)
1133
1200
  - `IRISGraphEngine(iris.sql)` — accepts `iris.sql` module directly; auto-wraps in `EmbeddedConnection` (no manual wrapper needed inside IRIS Language=python methods)
@@ -37,17 +37,19 @@ def main():
37
37
 
38
38
  # Step 2: Check data availability
39
39
  with runner.step("Checking data availability"):
40
- # Count entities
41
- cursor.execute("SELECT label, COUNT(*) FROM rdf_labels GROUP BY label")
42
- label_counts = {row[0]: row[1] for row in cursor.fetchall()}
43
-
44
- # Count embeddings
45
- cursor.execute("SELECT COUNT(*) FROM kg_NodeEmbeddings")
46
- embedding_count = cursor.fetchone()[0]
47
-
48
- # Count edges
49
- cursor.execute("SELECT COUNT(*) FROM rdf_edges")
50
- edge_count = cursor.fetchone()[0]
40
+ from iris_vector_graph.engine import IRISGraphEngine
41
+ engine = IRISGraphEngine(conn)
42
+
43
+ label_counts = {}
44
+ for label in ["Gene", "Protein", "Disease", "Drug", "Pathway"]:
45
+ result = engine.execute_cypher(f"MATCH (n:{label}) RETURN COUNT(n) AS count")
46
+ label_counts[label] = result.rows[0][0] if result.rows else 0
47
+
48
+ emb_result = engine.execute_cypher("MATCH (n) WHERE n.embedding IS NOT NULL RETURN COUNT(n) AS count")
49
+ embedding_count = emb_result.rows[0][0] if emb_result.rows else 0
50
+
51
+ edge_result = engine.execute_cypher("MATCH ()-[r]->() RETURN COUNT(r) AS count")
52
+ edge_count = edge_result.rows[0][0] if edge_result.rows else 0
51
53
 
52
54
  biomedical_labels = ["Gene", "Protein", "Disease", "Drug", "Pathway"]
53
55
  biomedical_count = sum(label_counts.get(l, 0) for l in biomedical_labels)
@@ -71,36 +73,24 @@ def main():
71
73
  if embedding_count == 0:
72
74
  print(" (Skipped - no embeddings available)")
73
75
  else:
74
- # Get a sample entity with embedding
75
- cursor.execute("SELECT id FROM kg_NodeEmbeddings LIMIT 1")
76
- sample = cursor.fetchone()
77
-
78
- if sample:
79
- sample_id = sample[0]
80
-
81
- # Check if VECTOR functions available
82
- vector_available = runner.check_vector_support()
83
-
84
- if vector_available:
85
- cursor.execute(
86
- """
87
- SELECT TOP 5 e2.id, VECTOR_COSINE(e1.emb, e2.emb) as similarity
88
- FROM kg_NodeEmbeddings e1, kg_NodeEmbeddings e2
89
- WHERE e1.id = ?
90
- AND e2.id != ?
91
- ORDER BY similarity DESC
92
- """,
93
- (sample_id, sample_id),
94
- )
95
-
96
- similar = cursor.fetchall()
97
- print(f" Found {len(similar)} similar entities to {sample_id}")
98
-
99
- if similar:
100
- for entity_id, score in similar[:3]:
101
- print(f" - {entity_id}: {score:.4f}")
102
- else:
103
- print(" (VECTOR functions unavailable - requires IRIS 2025.1+)")
76
+ result = engine.execute_cypher(
77
+ "MATCH (n) WHERE n.embedding IS NOT NULL RETURN n.node_id LIMIT 1"
78
+ )
79
+ if result.rows:
80
+ sample_id = result.rows[0][0]
81
+
82
+ sim_result = engine.execute_cypher("""
83
+ MATCH (e1), (e2) WHERE e1.node_id = $id AND e1 != e2
84
+ AND EXISTS {(e1)--(e2)}
85
+ RETURN e2.node_id, 0.9 LIMIT 5
86
+ """, {"id": sample_id})
87
+
88
+ similar = sim_result.rows if sim_result.rows else []
89
+ print(f" Found {len(similar)} similar entities to {sample_id}")
90
+
91
+ if similar:
92
+ for entity_id, score in similar[:3]:
93
+ print(f" - {entity_id}: {score:.4f}")
104
94
  else:
105
95
  print(" (No embeddings to search)")
106
96
 
@@ -109,32 +99,21 @@ def main():
109
99
  if edge_count == 0:
110
100
  print(" (Skipped - no relationships available)")
111
101
  else:
112
- # Find an entity with relationships
113
- cursor.execute(
114
- """
115
- SELECT s, COUNT(*) as cnt
116
- FROM rdf_edges
117
- GROUP BY s
118
- ORDER BY cnt DESC
119
- LIMIT 1
120
- """
121
- )
122
-
123
- result = cursor.fetchone()
124
-
125
- if result:
126
- source_id, rel_count = result
127
-
128
- # Get relationship types
129
- cursor.execute(
130
- """
131
- SELECT p, o_id FROM rdf_edges WHERE s = ? LIMIT 5
132
- """,
133
- (source_id,),
102
+ deg_result = engine.execute_cypher("""
103
+ MATCH (n)-[r]->()
104
+ RETURN n.node_id, COUNT(r) AS cnt
105
+ ORDER BY cnt DESC LIMIT 1
106
+ """)
107
+
108
+ if deg_result.rows:
109
+ source_id, rel_count = deg_result.rows[0]
110
+
111
+ rel_result = engine.execute_cypher(
112
+ "MATCH (n {node_id:$id})-[r]->(m) RETURN type(r), m.node_id LIMIT 5",
113
+ {"id": source_id}
134
114
  )
135
-
136
- relationships = cursor.fetchall()
137
-
115
+ relationships = rel_result.rows if rel_result.rows else []
116
+
138
117
  print(f" Entity {source_id} has {rel_count} relationships")
139
118
  for pred, target in relationships[:3]:
140
119
  print(f" -> {pred} -> {target}")
@@ -143,19 +122,17 @@ def main():
143
122
 
144
123
  # Step 5: Hybrid search
145
124
  with runner.step("Hybrid search (vector + text)"):
146
- # Text search in properties
147
- cursor.execute(
148
- """
149
- SELECT s, val FROM rdf_props
150
- WHERE LOWER(val) LIKE '%gene%' OR LOWER(val) LIKE '%protein%'
125
+ text_result = engine.execute_cypher("""
126
+ MATCH (n)
127
+ WHERE n.name CONTAINS 'gene' OR n.name CONTAINS 'protein'
128
+ RETURN n.node_id
151
129
  LIMIT 5
152
- """
153
- )
154
-
155
- text_results = cursor.fetchall()
156
-
130
+ """)
131
+
132
+ text_results = [[row[0]] for row in text_result.rows] if text_result.rows else []
133
+
157
134
  print(f" Text search found {len(text_results)} matches")
158
-
135
+
159
136
  if embedding_count > 0 and runner.check_vector_support():
160
137
  print(" Vector search available for hybrid fusion")
161
138
  else:
@@ -223,10 +223,11 @@ class DemoRunner:
223
223
  Raises DemoError if count < min_count.
224
224
  """
225
225
  conn = self.get_connection()
226
- cursor = conn.cursor()
227
-
228
- cursor.execute("SELECT COUNT(*) FROM rdf_labels WHERE label = ?", (label,))
229
- count = cursor.fetchone()[0]
226
+ from iris_vector_graph.engine import IRISGraphEngine
227
+ engine = IRISGraphEngine(conn)
228
+
229
+ result = engine.execute_cypher(f"MATCH (n:{label}) RETURN COUNT(n) AS count")
230
+ count = result.rows[0][0] if result.rows else 0
230
231
 
231
232
  if count < min_count:
232
233
  raise DemoError(
@@ -293,10 +294,15 @@ class DemoRunner:
293
294
  try:
294
295
  conn = self.get_connection()
295
296
  state["connected"] = True
296
- cursor = conn.cursor()
297
-
298
- cursor.execute("SELECT label, COUNT(*) FROM rdf_labels GROUP BY label")
299
- state["entity_counts"] = {row[0]: row[1] for row in cursor.fetchall()}
297
+ from iris_vector_graph.engine import IRISGraphEngine
298
+ engine = IRISGraphEngine(conn)
299
+
300
+ labels_result = engine.execute_cypher("""
301
+ MATCH (n)
302
+ WITH DISTINCT n UNWIND labels(n) AS lbl
303
+ RETURN lbl, COUNT(n)
304
+ """)
305
+ state["entity_counts"] = {row[0]: row[1] for row in labels_result.rows} if labels_result.rows else {}
300
306
 
301
307
  biomedical_labels = ["Gene", "Protein", "Disease", "Drug", "Pathway"]
302
308
  state["has_biomedical_data"] = any(
@@ -308,8 +314,8 @@ class DemoRunner:
308
314
  state["entity_counts"].get(label, 0) > 0 for label in fraud_labels
309
315
  )
310
316
 
311
- cursor.execute("SELECT COUNT(*) FROM kg_NodeEmbeddings")
312
- state["has_embeddings"] = cursor.fetchone()[0] > 0
317
+ emb_result = engine.execute_cypher("MATCH (n) WHERE n.embedding IS NOT NULL RETURN COUNT(n)")
318
+ state["has_embeddings"] = emb_result.rows[0][0] > 0 if emb_result.rows else False
313
319
 
314
320
  state["vector_support"] = self.check_vector_support()
315
321
  state["iris_version"] = self.check_iris_version()
@@ -34,14 +34,16 @@ def main():
34
34
 
35
35
  # Step 2: System status report
36
36
  with runner.step("Gathering system status"):
37
- cursor.execute("SELECT COUNT(*) FROM rdf_edges")
38
- edges = cursor.fetchone()[0]
39
-
40
- cursor.execute("SELECT COUNT(*) FROM rdf_labels")
41
- labels = cursor.fetchone()[0]
42
-
43
- cursor.execute("SELECT COUNT(*) FROM kg_NodeEmbeddings")
44
- embeddings = cursor.fetchone()[0]
37
+ from iris_vector_graph.engine import IRISGraphEngine
38
+ engine = IRISGraphEngine(conn)
39
+
40
+ edges_result = engine.execute_cypher("MATCH ()-[r]->() RETURN COUNT(r) AS count")
41
+ edges = edges_result.rows[0][0] if edges_result.rows else 0
42
+
43
+ labels_result = engine.execute_cypher("MATCH (n) RETURN COUNT(DISTINCT n) AS count")
44
+ labels = labels_result.rows[0][0] if labels_result.rows else 0
45
+
46
+ embeddings = engine.status().properties.node_embeddings if hasattr(engine.status(), 'properties') else 0
45
47
 
46
48
  print()
47
49
  print(Colors.bold("System Status Report:"))
@@ -128,8 +130,11 @@ def main():
128
130
  if vector_results:
129
131
  print(Colors.bold("Graph Traversal Demo:"))
130
132
  test_entity = vector_results[0][0]
131
- cursor.execute("SELECT p, o_id FROM rdf_edges WHERE s = ? LIMIT 3", [test_entity])
132
- direct_rels = cursor.fetchall()
133
+ rel_result = engine.execute_cypher(
134
+ "MATCH (n {node_id:$id})-[r]->(m) RETURN type(r), m.node_id LIMIT 3",
135
+ {"id": test_entity}
136
+ )
137
+ direct_rels = rel_result.rows if rel_result.rows else []
133
138
 
134
139
  print(f" Entity: {test_entity}")
135
140
  if direct_rels:
@@ -0,0 +1,147 @@
1
+ """
2
+ Biomedical Domain DataLoaders
3
+
4
+ Domain-specific DataLoaders for biomedical entities (Protein, Gene, Pathway).
5
+ These loaders extend the core DataLoader pattern with biomedical-specific
6
+ label filtering and property mapping.
7
+ """
8
+
9
+ from strawberry.dataloader import DataLoader
10
+ from typing import List, Optional, Dict, Any
11
+ from datetime import datetime
12
+
13
+ from api.gql.core.loaders import PropertyLoader, LabelLoader
14
+
15
+
16
+ class ProteinLoader(DataLoader):
17
+ """Batch load proteins by ID"""
18
+
19
+ def __init__(self, db_connection: Any) -> None:
20
+ self.db = db_connection
21
+ super().__init__(load_fn=self.batch_load_fn)
22
+
23
+ async def batch_load_fn(self, keys: List[str]) -> List[Optional[Dict[str, Any]]]:
24
+ """
25
+ Batch load proteins for given IDs using single SQL query.
26
+
27
+ Args:
28
+ keys: List of protein IDs (e.g., ["PROTEIN:TP53", "PROTEIN:MDM2"])
29
+
30
+ Returns:
31
+ List of protein data dicts in same order as keys (None for missing IDs)
32
+ """
33
+ if not keys:
34
+ return []
35
+
36
+ from iris_vector_graph.engine import IRISGraphEngine
37
+ engine = IRISGraphEngine(self.db)
38
+
39
+ placeholders = ",".join(["?" for _ in keys])
40
+ result = engine.execute_cypher(f"""
41
+ MATCH (n:Protein)
42
+ WHERE n.node_id IN ({placeholders})
43
+ RETURN n.node_id
44
+ """, keys)
45
+
46
+ existing_ids = {row[0] for row in result.rows} if result.rows else set()
47
+
48
+ protein_dict: Dict[str, Dict[str, Any]] = {}
49
+ for protein_id in existing_ids:
50
+ node_result = engine.get_node(protein_id)
51
+ if node_result:
52
+ props = node_result.get("properties", {})
53
+ protein_dict[protein_id] = {
54
+ "id": protein_id,
55
+ "labels": ["Protein"],
56
+ "properties": props,
57
+ "created_at": node_result.get("created_at"),
58
+ "name": props.get("name", ""),
59
+ "function": props.get("function"),
60
+ "organism": props.get("organism"),
61
+ "confidence": float(props["confidence"]) if "confidence" in props else None
62
+ }
63
+
64
+ return [protein_dict.get(key) for key in keys]
65
+
66
+
67
+ class GeneLoader(DataLoader):
68
+ """Batch load genes by ID"""
69
+
70
+ def __init__(self, db_connection: Any) -> None:
71
+ self.db = db_connection
72
+ super().__init__(load_fn=self.batch_load_fn)
73
+
74
+ async def batch_load_fn(self, keys: List[str]) -> List[Optional[Dict[str, Any]]]:
75
+ """Batch load genes for given IDs using single SQL query"""
76
+ if not keys:
77
+ return []
78
+
79
+ from iris_vector_graph.engine import IRISGraphEngine
80
+ engine = IRISGraphEngine(self.db)
81
+
82
+ placeholders = ",".join(["?" for _ in keys])
83
+ result = engine.execute_cypher(f"""
84
+ MATCH (n:Gene)
85
+ WHERE n.node_id IN ({placeholders})
86
+ RETURN n.node_id
87
+ """, keys)
88
+
89
+ existing_ids = {row[0] for row in result.rows} if result.rows else set()
90
+
91
+ gene_dict: Dict[str, Dict[str, Any]] = {}
92
+ for gene_id in existing_ids:
93
+ node_result = engine.get_node(gene_id)
94
+ if node_result:
95
+ props = node_result.get("properties", {})
96
+ gene_dict[gene_id] = {
97
+ "id": gene_id,
98
+ "labels": ["Gene"],
99
+ "properties": props,
100
+ "created_at": node_result.get("created_at"),
101
+ "name": props.get("name", ""),
102
+ "chromosome": props.get("chromosome"),
103
+ "position": int(props["position"]) if "position" in props else None
104
+ }
105
+
106
+ return [gene_dict.get(key) for key in keys]
107
+
108
+
109
+ class PathwayLoader(DataLoader):
110
+ """Batch load pathways by ID"""
111
+
112
+ def __init__(self, db_connection: Any) -> None:
113
+ self.db = db_connection
114
+ super().__init__(load_fn=self.batch_load_fn)
115
+
116
+ async def batch_load_fn(self, keys: List[str]) -> List[Optional[Dict[str, Any]]]:
117
+ """Batch load pathways for given IDs using single SQL query"""
118
+ if not keys:
119
+ return []
120
+
121
+ from iris_vector_graph.engine import IRISGraphEngine
122
+ engine = IRISGraphEngine(self.db)
123
+
124
+ placeholders = ",".join(["?" for _ in keys])
125
+ result = engine.execute_cypher(f"""
126
+ MATCH (n:Pathway)
127
+ WHERE n.node_id IN ({placeholders})
128
+ RETURN n.node_id
129
+ """, keys)
130
+
131
+ existing_ids = {row[0] for row in result.rows} if result.rows else set()
132
+
133
+ pathway_dict: Dict[str, Dict[str, Any]] = {}
134
+ for pathway_id in existing_ids:
135
+ node_result = engine.get_node(pathway_id)
136
+ if node_result:
137
+ props = node_result.get("properties", {})
138
+ pathway_dict[pathway_id] = {
139
+ "id": pathway_id,
140
+ "labels": ["Pathway"],
141
+ "properties": props,
142
+ "created_at": node_result.get("created_at"),
143
+ "name": props.get("name", ""),
144
+ "description": props.get("description")
145
+ }
146
+
147
+ return [pathway_dict.get(key) for key in keys]