iris-vector-graph 1.99.3__tar.gz → 2.0.0__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 (667) hide show
  1. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/.gitignore +1 -0
  2. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/PKG-INFO +333 -81
  3. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/README.md +329 -80
  4. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/Centrality.cls +18 -8
  5. iris_vector_graph-2.0.0/iris_src/src/Graph/KG/Communities.cls +583 -0
  6. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/Edge.cls +3 -0
  7. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/EdgeScan.cls +7 -39
  8. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/EmbedQueue.cls +1 -1
  9. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/GraphIndex.cls +1 -1
  10. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/Meta.cls +10 -31
  11. iris_vector_graph-2.0.0/iris_src/src/Graph/KG/NKGAccel.cls +227 -0
  12. iris_vector_graph-2.0.0/iris_src/src/Graph/KG/NKGAccelAdjacency.cls +314 -0
  13. iris_vector_graph-2.0.0/iris_src/src/Graph/KG/NKGAccelCentrality.cls +641 -0
  14. iris_vector_graph-2.0.0/iris_src/src/Graph/KG/NKGAccelLoader.cls +117 -0
  15. iris_vector_graph-1.99.3/iris_src/src/Graph/KG/NKGAccel.cls → iris_vector_graph-2.0.0/iris_src/src/Graph/KG/NKGAccelTraversal.cls +22 -496
  16. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/PageRank.cls +2 -1
  17. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/TemporalIndex.cls +3 -2
  18. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/TestEdge.cls +1 -1
  19. iris_vector_graph-2.0.0/iris_src/src/Graph/KG/Traversal.cls +155 -0
  20. iris_vector_graph-2.0.0/iris_src/src/Graph/KG/TraversalBFS.cls +441 -0
  21. iris_vector_graph-2.0.0/iris_src/src/Graph/KG/TraversalBuild.cls +267 -0
  22. iris_vector_graph-2.0.0/iris_src/src/Graph/KG/TraversalKHop.cls +222 -0
  23. iris_vector_graph-2.0.0/iris_src/src/Graph/KG/TraversalPaths.cls +312 -0
  24. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/__init__.py +24 -1
  25. iris_vector_graph-2.0.0/iris_vector_graph/_engine/admin.py +382 -0
  26. iris_vector_graph-2.0.0/iris_vector_graph/_engine/algorithms.py +1090 -0
  27. iris_vector_graph-2.0.0/iris_vector_graph/_engine/embeddings.py +730 -0
  28. iris_vector_graph-2.0.0/iris_vector_graph/_engine/fhir.py +319 -0
  29. iris_vector_graph-2.0.0/iris_vector_graph/_engine/nodes_edges.py +1042 -0
  30. iris_vector_graph-2.0.0/iris_vector_graph/_engine/query.py +868 -0
  31. iris_vector_graph-2.0.0/iris_vector_graph/_engine/schema.py +848 -0
  32. iris_vector_graph-2.0.0/iris_vector_graph/_engine/snapshot.py +896 -0
  33. iris_vector_graph-2.0.0/iris_vector_graph/_engine/temporal.py +271 -0
  34. iris_vector_graph-2.0.0/iris_vector_graph/_engine/vector.py +1099 -0
  35. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/bulk_loader.py +9 -2
  36. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/translator.py +1933 -1729
  37. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher_api.py +10 -0
  38. iris_vector_graph-2.0.0/iris_vector_graph/embed_selector.py +123 -0
  39. iris_vector_graph-2.0.0/iris_vector_graph/engine.py +864 -0
  40. iris_vector_graph-2.0.0/iris_vector_graph/errors.py +104 -0
  41. iris_vector_graph-2.0.0/iris_vector_graph/index_config.py +71 -0
  42. iris_vector_graph-2.0.0/iris_vector_graph/index_protocol.py +104 -0
  43. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/schema.py +23 -75
  44. iris_vector_graph-2.0.0/iris_vector_graph/status.py +202 -0
  45. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/stores/arno_bridge.py +13 -64
  46. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/stores/iris_sql_store.py +229 -129
  47. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/stores/lazy_kg.py +5 -1
  48. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/pyproject.toml +8 -1
  49. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/conftest.py +130 -33
  50. iris_vector_graph-2.0.0/tests/e2e/test_analytics_dispatch.py +471 -0
  51. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_arno_bfs_global.py +11 -0
  52. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_arno_bfs_unified.py +12 -0
  53. iris_vector_graph-2.0.0/tests/e2e/test_betweenness_neighborhood_e2e.py +97 -0
  54. iris_vector_graph-2.0.0/tests/e2e/test_betweenness_os_e2e.py +61 -0
  55. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_centrality_e2e.py +7 -9
  56. iris_vector_graph-2.0.0/tests/e2e/test_closeness_os_e2e.py +67 -0
  57. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_communities_e2e.py +8 -23
  58. iris_vector_graph-2.0.0/tests/e2e/test_edge_weights.py +40 -0
  59. iris_vector_graph-2.0.0/tests/e2e/test_eigenvector_os_e2e.py +58 -0
  60. iris_vector_graph-2.0.0/tests/e2e/test_igraph_fastpath_parity.py +159 -0
  61. iris_vector_graph-2.0.0/tests/e2e/test_msbfs_closeness.py +106 -0
  62. iris_vector_graph-2.0.0/tests/e2e/test_objectscript_split_resolution.py +81 -0
  63. iris_vector_graph-2.0.0/tests/e2e/test_sdk_ergonomics_178_180_e2e.py +297 -0
  64. iris_vector_graph-2.0.0/tests/e2e/test_unified_index_api.py +77 -0
  65. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_bidirectional_ppr.py +53 -73
  66. iris_vector_graph-2.0.0/tests/perf/test_betweenness_vs_gds.py +318 -0
  67. iris_vector_graph-2.0.0/tests/perf/test_head_to_head.py +241 -0
  68. iris_vector_graph-2.0.0/tests/regression/__init__.py +0 -0
  69. iris_vector_graph-2.0.0/tests/regression/engine_api_baseline.json +164 -0
  70. iris_vector_graph-2.0.0/tests/regression/test_complexity.py +123 -0
  71. iris_vector_graph-2.0.0/tests/regression/test_engine_api.py +76 -0
  72. iris_vector_graph-2.0.0/tests/regression/test_module_size.py +63 -0
  73. iris_vector_graph-2.0.0/tests/regression/test_no_silent_swallow.py +56 -0
  74. iris_vector_graph-2.0.0/tests/test_schema_contract.py +100 -0
  75. iris_vector_graph-2.0.0/tests/unit/cypher/__init__.py +0 -0
  76. iris_vector_graph-2.0.0/tests/unit/test_betweenness_os_unit.py +42 -0
  77. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_bfs_arno.py +11 -16
  78. iris_vector_graph-2.0.0/tests/unit/test_bulk_load_session.py +177 -0
  79. iris_vector_graph-2.0.0/tests/unit/test_closeness_os_unit.py +25 -0
  80. iris_vector_graph-2.0.0/tests/unit/test_concept_first_status.py +159 -0
  81. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_var_length.py +1 -2
  82. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_vector_search.py +5 -2
  83. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_edge_embeddings.py +14 -20
  84. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_edgeprop_ndjson.py +5 -4
  85. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_embed_nodes_params.py +11 -13
  86. iris_vector_graph-2.0.0/tests/unit/test_embed_selector.py +174 -0
  87. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_embedded.py +4 -2
  88. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_engine_deep.py +16 -21
  89. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_engine_mocked.py +1 -1
  90. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_engine_status.py +54 -8
  91. iris_vector_graph-2.0.0/tests/unit/test_error_model.py +80 -0
  92. iris_vector_graph-2.0.0/tests/unit/test_index_config.py +62 -0
  93. iris_vector_graph-2.0.0/tests/unit/test_index_handle.py +99 -0
  94. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_ivf_index.py +16 -1
  95. iris_vector_graph-2.0.0/tests/unit/test_khop_dispatch.py +47 -0
  96. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_module_coverage.py +4 -3
  97. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_schema_init.py +3 -0
  98. iris_vector_graph-2.0.0/tests/unit/test_sync_model.py +150 -0
  99. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_temporal_edges.py +49 -19
  100. iris_vector_graph-1.99.3/iris_src/src/Graph/KG/Traversal.cls +0 -1280
  101. iris_vector_graph-1.99.3/iris_vector_graph/engine.py +0 -7459
  102. iris_vector_graph-1.99.3/iris_vector_graph/index_protocol.py +0 -66
  103. iris_vector_graph-1.99.3/iris_vector_graph/status.py +0 -155
  104. iris_vector_graph-1.99.3/tests/e2e/test_graph_json_os_e2e.py +0 -55
  105. iris_vector_graph-1.99.3/tests/e2e/test_shared_lkg_e2e.py +0 -53
  106. iris_vector_graph-1.99.3/tests/unit/test_graph_json_os_unit.py +0 -29
  107. iris_vector_graph-1.99.3/tests/unit/test_index_handle.py +0 -88
  108. iris_vector_graph-1.99.3/tests/unit/test_shared_lkg_unit.py +0 -57
  109. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/LICENSE +0 -0
  110. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/demo_biomedical.py +0 -0
  111. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/demo_fraud_detection.py +0 -0
  112. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/demo_fraud_detection_sql.py +0 -0
  113. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/demo_utils.py +0 -0
  114. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/demo_working_system.py +0 -0
  115. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/__init__.py +0 -0
  116. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/biomedical/__init__.py +0 -0
  117. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/biomedical/loaders.py +0 -0
  118. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/biomedical/resolver.py +0 -0
  119. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/biomedical/types.py +0 -0
  120. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/biomedical_legacy/__init__.py +0 -0
  121. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/biomedical_legacy/biomedical_engine.py +0 -0
  122. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/biomedical_legacy/biomedical_schema.py +0 -0
  123. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/biomedical_legacy/legacy_wrapper.py +0 -0
  124. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/fraud/__init__.py +0 -0
  125. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/fraud/loaders.py +0 -0
  126. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/fraud/resolver.py +0 -0
  127. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/fraud/types.py +0 -0
  128. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/graphQL.http +0 -0
  129. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/hybrid_vector_graph_query.cypher +0 -0
  130. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/rest.http +0 -0
  131. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/Algorithms.cls +0 -0
  132. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/ArnoAccel.cls +0 -0
  133. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/BM25Index.cls +0 -0
  134. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/BenchFormat.cls +0 -0
  135. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/BenchSeeder.cls +0 -0
  136. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/Benchmark.cls +0 -0
  137. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/IVFIndex.cls +0 -0
  138. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/Loader.cls +0 -0
  139. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/MCPService.cls +0 -0
  140. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/MCPToolSet.cls +0 -0
  141. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/MCPTools.cls +0 -0
  142. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/PLAIDSearch.cls +0 -0
  143. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/PyOps.cls +0 -0
  144. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/Service.cls +0 -0
  145. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/Snapshot.cls +0 -0
  146. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/Subgraph.cls +0 -0
  147. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/VecIndex.cls +0 -0
  148. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/IVG/CypherEngine.cls +0 -0
  149. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/IVG/Percentile.cls +0 -0
  150. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/PageRankEmbedded.cls +0 -0
  151. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/User.Exec.cls +0 -0
  152. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/iris/vector/graph/GraphOperators.cls +0 -0
  153. {iris_vector_graph-1.99.3/iris_vector_graph/cypher/algorithms → iris_vector_graph-2.0.0/iris_vector_graph/_engine}/__init__.py +0 -0
  154. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/_validate.py +0 -0
  155. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/bolt_server.py +0 -0
  156. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/0-b124e26129aa436b26fe.bundle.js +0 -0
  157. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/1-b124e26129aa436b26fe.bundle.js +0 -0
  158. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/10-b124e26129aa436b26fe.bundle.js +0 -0
  159. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/11-b124e26129aa436b26fe.bundle.js +0 -0
  160. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/12-b124e26129aa436b26fe.bundle.js +0 -0
  161. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/13-b124e26129aa436b26fe.bundle.js +0 -0
  162. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/14-b124e26129aa436b26fe.bundle.js +0 -0
  163. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/15-b124e26129aa436b26fe.bundle.js +0 -0
  164. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/16-b124e26129aa436b26fe.bundle.js +0 -0
  165. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/17-b124e26129aa436b26fe.bundle.js +0 -0
  166. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/18-b124e26129aa436b26fe.bundle.js +0 -0
  167. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/19-b124e26129aa436b26fe.bundle.js +0 -0
  168. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/20-b124e26129aa436b26fe.bundle.js +0 -0
  169. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/21-b124e26129aa436b26fe.bundle.js +0 -0
  170. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/22-b124e26129aa436b26fe.bundle.js +0 -0
  171. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/23-b124e26129aa436b26fe.bundle.js +0 -0
  172. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/24-b124e26129aa436b26fe.bundle.js +0 -0
  173. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/25-b124e26129aa436b26fe.bundle.js +0 -0
  174. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/26-b124e26129aa436b26fe.bundle.js +0 -0
  175. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/27-b124e26129aa436b26fe.bundle.js +0 -0
  176. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/28-b124e26129aa436b26fe.bundle.js +0 -0
  177. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/29-b124e26129aa436b26fe.bundle.js +0 -0
  178. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/30-b124e26129aa436b26fe.bundle.js +0 -0
  179. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/31-b124e26129aa436b26fe.bundle.js +0 -0
  180. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/32-b124e26129aa436b26fe.bundle.js +0 -0
  181. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/33-b124e26129aa436b26fe.bundle.js +0 -0
  182. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/34-b124e26129aa436b26fe.bundle.js +0 -0
  183. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/35-b124e26129aa436b26fe.bundle.js +0 -0
  184. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/36-b124e26129aa436b26fe.bundle.js +0 -0
  185. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/37-b124e26129aa436b26fe.bundle.js +0 -0
  186. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/38-b124e26129aa436b26fe.bundle.js +0 -0
  187. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/39-b124e26129aa436b26fe.bundle.js +0 -0
  188. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/40-b124e26129aa436b26fe.bundle.js +0 -0
  189. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/41-b124e26129aa436b26fe.bundle.js +0 -0
  190. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/42-b124e26129aa436b26fe.bundle.js +0 -0
  191. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/43-b124e26129aa436b26fe.bundle.js +0 -0
  192. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/44-b124e26129aa436b26fe.bundle.js +0 -0
  193. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/45-b124e26129aa436b26fe.bundle.js +0 -0
  194. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/46-b124e26129aa436b26fe.bundle.js +0 -0
  195. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/47-b124e26129aa436b26fe.bundle.js +0 -0
  196. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/48-b124e26129aa436b26fe.bundle.js +0 -0
  197. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/49-b124e26129aa436b26fe.bundle.js +0 -0
  198. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/50-b124e26129aa436b26fe.bundle.js +0 -0
  199. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/51-b124e26129aa436b26fe.bundle.js +0 -0
  200. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/52-b124e26129aa436b26fe.bundle.js +0 -0
  201. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/53-b124e26129aa436b26fe.bundle.js +0 -0
  202. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/54-b124e26129aa436b26fe.bundle.js +0 -0
  203. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/55-b124e26129aa436b26fe.bundle.js +0 -0
  204. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/56-b124e26129aa436b26fe.bundle.js +0 -0
  205. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/57-b124e26129aa436b26fe.bundle.js +0 -0
  206. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/58-b124e26129aa436b26fe.bundle.js +0 -0
  207. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/59-b124e26129aa436b26fe.bundle.js +0 -0
  208. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/6-b124e26129aa436b26fe.bundle.js +0 -0
  209. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/60-b124e26129aa436b26fe.bundle.js +0 -0
  210. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/61-b124e26129aa436b26fe.bundle.js +0 -0
  211. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/62-b124e26129aa436b26fe.bundle.js +0 -0
  212. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/63-b124e26129aa436b26fe.bundle.js +0 -0
  213. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/64-b124e26129aa436b26fe.bundle.js +0 -0
  214. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/65-b124e26129aa436b26fe.bundle.js +0 -0
  215. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/66-b124e26129aa436b26fe.bundle.js +0 -0
  216. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/67-b124e26129aa436b26fe.bundle.js +0 -0
  217. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/68-b124e26129aa436b26fe.bundle.js +0 -0
  218. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/69-b124e26129aa436b26fe.bundle.js +0 -0
  219. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/7-b124e26129aa436b26fe.bundle.js +0 -0
  220. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/70-b124e26129aa436b26fe.bundle.js +0 -0
  221. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/71-b124e26129aa436b26fe.bundle.js +0 -0
  222. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/72-b124e26129aa436b26fe.bundle.js +0 -0
  223. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/73-b124e26129aa436b26fe.bundle.js +0 -0
  224. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/74-b124e26129aa436b26fe.bundle.js +0 -0
  225. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/75-b124e26129aa436b26fe.bundle.js +0 -0
  226. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/8-b124e26129aa436b26fe.bundle.js +0 -0
  227. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/9-b124e26129aa436b26fe.bundle.js +0 -0
  228. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/app-b124e26129aa436b26fe.js +0 -0
  229. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/filter-a7c44e713bf19d31f6b2849160b1bba8.svg +0 -0
  230. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.eot +0 -0
  231. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.ttf +0 -0
  232. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff +0 -0
  233. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff2 +0 -0
  234. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.eot +0 -0
  235. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.ttf +0 -0
  236. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff +0 -0
  237. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff2 +0 -0
  238. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.eot +0 -0
  239. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.ttf +0 -0
  240. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff +0 -0
  241. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff2 +0 -0
  242. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.eot +0 -0
  243. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.ttf +0 -0
  244. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff +0 -0
  245. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff2 +0 -0
  246. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Bold.ttf +0 -0
  247. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-BoldItalic.ttf +0 -0
  248. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
  249. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  250. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Italic.ttf +0 -0
  251. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Light.ttf +0 -0
  252. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-LightItalic.ttf +0 -0
  253. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Regular.ttf +0 -0
  254. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Semibold.ttf +0 -0
  255. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-SemiboldItalic.ttf +0 -0
  256. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/codicon.ttf +0 -0
  257. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/filter.svg +0 -0
  258. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.eot +0 -0
  259. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.svg +0 -0
  260. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.ttf +0 -0
  261. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff +0 -0
  262. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff2 +0 -0
  263. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/group-by.svg +0 -0
  264. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.eot +0 -0
  265. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.svg +0 -0
  266. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.ttf +0 -0
  267. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.woff +0 -0
  268. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/sort.svg +0 -0
  269. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/sort1.svg +0 -0
  270. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/sort2.svg +0 -0
  271. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/streamline.eot +0 -0
  272. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/streamline.svg +0 -0
  273. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/streamline.ttf +0 -0
  274. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/streamline.woff +0 -0
  275. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/group-by-89c6aaa756bc3548cc6ab3d2be4d2862.svg +0 -0
  276. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/Favorites.mp4 +0 -0
  277. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/Keystrokes.mp4 +0 -0
  278. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/ProjectFiles.mp4 +0 -0
  279. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/ReusableFrame.mp4 +0 -0
  280. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/SidebarDB_Iinfo.png +0 -0
  281. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/Stream.png +0 -0
  282. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/aura-logo-inverted.svg +0 -0
  283. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/aura-logo.svg +0 -0
  284. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/books.png +0 -0
  285. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/clusters.svg +0 -0
  286. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/community.jpg +0 -0
  287. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-144x144.png +0 -0
  288. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-192x192.png +0 -0
  289. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-36x36.png +0 -0
  290. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-48x48.png +0 -0
  291. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-72x72.png +0 -0
  292. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-96x96.png +0 -0
  293. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-114x114.png +0 -0
  294. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-120x120.png +0 -0
  295. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-144x144.png +0 -0
  296. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-152x152.png +0 -0
  297. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-180x180.png +0 -0
  298. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-57x57.png +0 -0
  299. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-60x60.png +0 -0
  300. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-72x72.png +0 -0
  301. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-76x76.png +0 -0
  302. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-precomposed.png +0 -0
  303. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon.png +0 -0
  304. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/browserconfig.xml +0 -0
  305. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-16x16.png +0 -0
  306. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-32x32.png +0 -0
  307. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-96x96.png +0 -0
  308. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/favicon.ico +0 -0
  309. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/manifest.json +0 -0
  310. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-144x144.png +0 -0
  311. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-150x150.png +0 -0
  312. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-310x310.png +0 -0
  313. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-70x70.png +0 -0
  314. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser-canary.svg +0 -0
  315. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser.svg +0 -0
  316. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/labeled_node.png +0 -0
  317. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/more_nodes.png +0 -0
  318. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/neo4j-favicon.ico +0 -0
  319. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/neo4j-logo-inverted.svg +0 -0
  320. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/neo4j-logo.svg +0 -0
  321. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/northwind/customer-orders.png +0 -0
  322. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/northwind/order-graph.png +0 -0
  323. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/northwind/product-category-supplier.png +0 -0
  324. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/northwind/product-graph.png +0 -0
  325. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/one_node.png +0 -0
  326. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/query-plan-operator-cost.svg +0 -0
  327. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/query-plan-operator-details.svg +0 -0
  328. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/query-plan-operator-rows.svg +0 -0
  329. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/query-plan.svg +0 -0
  330. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/rel-props.png +0 -0
  331. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/relationships.png +0 -0
  332. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/screen_code_frame.png +0 -0
  333. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/screen_cypher_warn.png +0 -0
  334. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/screen_editor.png +0 -0
  335. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/screen_sidebar.png +0 -0
  336. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/screen_stream.png +0 -0
  337. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/sort-8d6f482c21de572ceeb5ac93623e6c97.svg +0 -0
  338. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/sort1-d2dc515571213fc0ca99b0341b88e413.svg +0 -0
  339. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/sort2-31050964e7eb2042325f7bcbba3d58ad.svg +0 -0
  340. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/bolt-worker-dfa551eb0861cc080843.js +0 -0
  341. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/cypher-editor-b124e26129aa436b26fe.bundle.js +0 -0
  342. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/editor-455af92e7e1dc39fdbc8060f6680ab32.worker.js +0 -0
  343. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/index.html +0 -0
  344. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/manifest.json +0 -0
  345. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/CoseBilkentLayout.worker-FEt6e_rV.js +0 -0
  346. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/HierarchicalLayout.worker-O6WHYssL.js +0 -0
  347. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/asciidoc.8O6YIVRy.js +0 -0
  348. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/auto-track.BlKugDvg.js +0 -0
  349. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/bash.CLAyaf9k.js +0 -0
  350. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/c.l4fEI10z.js +0 -0
  351. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/connect-icon-Br2hQy_e.svg +0 -0
  352. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/csharp.ChqrQYCS.js +0 -0
  353. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/css-extras.Bi-4v17d.js +0 -0
  354. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/css.B1LHiudN.js +0 -0
  355. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/cypher-editor-auto-completions.gif +0 -0
  356. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/cypher-editor-inline-help.png +0 -0
  357. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/cypher-editor-linting.png +0 -0
  358. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/cypher-editor-syntax-highlighting.png +0 -0
  359. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/cypher-reference.gif +0 -0
  360. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/cypher.C3qdyJ5B.js +0 -0
  361. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/docker.CF7EZT1T.js +0 -0
  362. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/fira-code-400-regular-normal-BzypJxJk.woff2 +0 -0
  363. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/fira-code-500-medium-normal-CRWzqcWa.woff2 +0 -0
  364. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/fira-code-700-bold-normal-hUmNV4O0.woff2 +0 -0
  365. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/go.FsJyBHVG.js +0 -0
  366. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/graphql.BlTzkzAJ.js +0 -0
  367. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/history-quick-search.gif +0 -0
  368. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index-CY0cZcsW.js +0 -0
  369. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index-H7L207gH.css +0 -0
  370. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index.BpRu7Js3.js +0 -0
  371. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index.C74acnU7.js +0 -0
  372. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index.CHatcJcU.js +0 -0
  373. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index.D6ZMQedT.js +0 -0
  374. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index.DPZla5MT.js +0 -0
  375. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index.dzIUqrzq.js +0 -0
  376. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index.leyiHvaQ.js +0 -0
  377. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index.qJ6VE118.js +0 -0
  378. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index.umd.B9yhfa5Y.js +0 -0
  379. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/is-plan-event-enabled.DeNtQvA5.js +0 -0
  380. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/java.BBXwBh9f.js +0 -0
  381. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/java.CQ1iJ0-D.js +0 -0
  382. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/javadoc.UnquSOIj.js +0 -0
  383. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/javascript.CYTqTa0W.js +0 -0
  384. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/json.BIkJg-Cj.js +0 -0
  385. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/jsx.Cy_hP1z6.js +0 -0
  386. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/kotlin.D_6l0VkM.js +0 -0
  387. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/lintWorker-QNEp56W3.js +0 -0
  388. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/logo-aura-white-DCfUnkCN.svg +0 -0
  389. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/movie-model.png +0 -0
  390. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/movies-active-B2SzHIc1.svg +0 -0
  391. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/neo4j-logo-active-CieUxroh.svg +0 -0
  392. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/patterned-banner-background-C_nO-Yn8.svg +0 -0
  393. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/php.BKb6XVba.js +0 -0
  394. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/plan-graph-worker-s17nF19Q.js +0 -0
  395. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/public-sans-300-light-normal-CG9e8kLa.woff2 +0 -0
  396. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-italic-D9FlViiB.woff2 +0 -0
  397. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-normal-D4F9yfFi.woff2 +0 -0
  398. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/public-sans-500-medium-normal-ChZcBEnJ.woff2 +0 -0
  399. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/public-sans-600-semi-bold-normal-Ck6TyfRI.woff2 +0 -0
  400. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/public-sans-700-bold-normal-CGjRhW-d.woff2 +0 -0
  401. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/python.tCcUC3U7.js +0 -0
  402. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/query-fundamentals-active-jvTJU1K2.svg +0 -0
  403. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/query.snake-frame.DmvXOQIM.js +0 -0
  404. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/regex.C_VuIVtC.js +0 -0
  405. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/rust.CtSATZMt.js +0 -0
  406. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/saved-cypher.gif +0 -0
  407. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/scalable-graph-visualization.gif +0 -0
  408. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/sql.CfOAbw6n.js +0 -0
  409. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/syne-neo-500-medium-normal-A5GXmYUf.woff2 +0 -0
  410. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/table-visualization.gif +0 -0
  411. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/typescript.3Tbm37mD.js +0 -0
  412. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/xml-doc.h79Tu9Aw.js +0 -0
  413. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/yaml.B-Jvd59g.js +0 -0
  414. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/favicons/android-chrome-192x192.png +0 -0
  415. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/favicons/apple-touch-icon.png +0 -0
  416. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/favicons/favicon-16x16.png +0 -0
  417. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/favicons/favicon-194x194.png +0 -0
  418. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/favicons/favicon-32x32.png +0 -0
  419. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/favicons/favicon.ico +0 -0
  420. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/favicons/safari-pinned-tab.svg +0 -0
  421. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/index.html +0 -0
  422. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/manifest.json +0 -0
  423. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/ui-libs-b124e26129aa436b26fe.bundle.js +0 -0
  424. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/vendor-b124e26129aa436b26fe.bundle.js +0 -0
  425. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/capabilities.py +0 -0
  426. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cli.py +0 -0
  427. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/__init__.py +0 -0
  428. {iris_vector_graph-1.99.3/tests/contract → iris_vector_graph-2.0.0/iris_vector_graph/cypher/algorithms}/__init__.py +0 -0
  429. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/algorithms/paths.py +0 -0
  430. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/aql/__init__.py +0 -0
  431. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/aql/ast.py +0 -0
  432. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/aql/lexer.py +0 -0
  433. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/aql/parser.py +0 -0
  434. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/aql/translator.py +0 -0
  435. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/ast.py +0 -0
  436. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/lexer.py +0 -0
  437. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/parser.py +0 -0
  438. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/dbapi_utils.py +0 -0
  439. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/embedded.py +0 -0
  440. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/fhir_bridge.py +0 -0
  441. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/fusion.py +0 -0
  442. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/gql/__init__.py +0 -0
  443. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/gql/constants.py +0 -0
  444. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/gql/engine.py +0 -0
  445. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/gql/pooling.py +0 -0
  446. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/gql/resolvers.py +0 -0
  447. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/gql/schema.py +0 -0
  448. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/models.py +0 -0
  449. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/operators.py +0 -0
  450. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/py.typed +0 -0
  451. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/result.py +0 -0
  452. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/sdk.py +0 -0
  453. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/security.py +0 -0
  454. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/store_protocol.py +0 -0
  455. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/stores/__init__.py +0 -0
  456. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/text_search.py +0 -0
  457. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/utils.py +0 -0
  458. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/vector_utils.py +0 -0
  459. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/fhir_bridges.sql +0 -0
  460. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/fraud_sample_data.sql +0 -0
  461. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/globals_schema.sql +0 -0
  462. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/graph_path_globals.sql +0 -0
  463. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/graph_walk_tvf.sql +0 -0
  464. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/migrations/000_base_schema_iris.sql +0 -0
  465. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/migrations/001_add_nodepk_table.sql +0 -0
  466. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/migrations/001_rollback_nodepk.sql +0 -0
  467. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/migrations/002_add_fk_constraints.sql +0 -0
  468. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/operators.sql +0 -0
  469. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/operators_fixed.sql +0 -0
  470. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/procedures/kg_PageRank.sql +0 -0
  471. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/rdf_reifications.sql +0 -0
  472. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/schema.sql +0 -0
  473. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/TESTING.md +0 -0
  474. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmark_parser.py +0 -0
  475. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/README.md +0 -0
  476. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/bench.py +0 -0
  477. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/bench_utils.py +0 -0
  478. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/benchmark_neo4j.py +0 -0
  479. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/bfs_benchmark.py +0 -0
  480. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/establish_baseline.py +0 -0
  481. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/graph_gen.py +0 -0
  482. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/ic2_profile.py +0 -0
  483. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/iris_baseline_run.py +0 -0
  484. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/iris_os_run.py +0 -0
  485. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/ldbc_full_loader.py +0 -0
  486. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/load_neo4j.py +0 -0
  487. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/synthetic_baseline.csv +0 -0
  488. {iris_vector_graph-1.99.3/tests/integration → iris_vector_graph-2.0.0/tests/contract}/__init__.py +0 -0
  489. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/contract/test_cypher_api.py +0 -0
  490. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/contract/test_cypher_api_errors.py +0 -0
  491. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/contract/test_graphql_queries.py +0 -0
  492. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/contract/test_graphql_schema.py +0 -0
  493. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/contract/test_ppr_api.py +0 -0
  494. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/curl_suite.sh +0 -0
  495. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/__init__.py +0 -0
  496. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/conftest.py +0 -0
  497. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/fixtures/__init__.py +0 -0
  498. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/fixtures/centrality_graphs.py +0 -0
  499. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/fixtures/community_graphs.py +0 -0
  500. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_approx_count_distinct.py +0 -0
  501. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_aql_e2e.py +0 -0
  502. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_biomedical_demo.py +0 -0
  503. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_biomedical_ui.py +0 -0
  504. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_communities_perf.py +0 -0
  505. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_cypher_coerce_e2e.py +0 -0
  506. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_cypher_gaps_e2e.py +0 -0
  507. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_cypher_sprints_e2e.py +0 -0
  508. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_cypher_vector_search.py +0 -0
  509. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_cypher_vl_path_bfs.py +0 -0
  510. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_embed_queue_e2e.py +0 -0
  511. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_embedded_wgproto_e2e.py +0 -0
  512. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_execution_contexts.py +0 -0
  513. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_execution_contexts_new.py +0 -0
  514. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_fhir_bridges_e2e.py +0 -0
  515. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_fraud_demo.py +0 -0
  516. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_fraud_ui.py +0 -0
  517. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_gql_autogen_startup.py +0 -0
  518. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_gql_cypher_passthrough.py +0 -0
  519. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_gql_node_queries.py +0 -0
  520. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_gql_semantic_search.py +0 -0
  521. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_gql_traversal.py +0 -0
  522. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_graph_kernels_e2e.py +0 -0
  523. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_hla_kg_e2e.py +0 -0
  524. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_ic13_shortest_path.py +0 -0
  525. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_ic3_exact_count.py +0 -0
  526. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_index_protocol.py +0 -0
  527. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_introspection_api.py +0 -0
  528. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_ivf_insert.py +0 -0
  529. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_large_output_chunked.py +0 -0
  530. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_lazy_kg_e2e.py +0 -0
  531. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_lazy_node_resolution.py +0 -0
  532. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_multi_query_engine_platform.py +0 -0
  533. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_named_paths_e2e.py +0 -0
  534. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_nkg_index_e2e.py +0 -0
  535. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_operator_wiring_e2e.py +0 -0
  536. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_pattern_comprehension_reduce.py +0 -0
  537. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_plaid.py +0 -0
  538. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_plaid_search_e2e.py +0 -0
  539. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_ppr_cls_fast_path.py +0 -0
  540. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_ppr_guided_e2e.py +0 -0
  541. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_procedure_installation.py +0 -0
  542. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_reification_e2e.py +0 -0
  543. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_schema_procedures_e2e.py +0 -0
  544. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_store_injection_e2e.py +0 -0
  545. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_streaming_bfs.py +0 -0
  546. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_stress_api.py +0 -0
  547. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_stress_ingest.py +0 -0
  548. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_stress_multi_context.py +0 -0
  549. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_stress_search.py +0 -0
  550. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_stress_setup.py +0 -0
  551. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_stress_traversal.py +0 -0
  552. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_subgraph_e2e.py +0 -0
  553. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_subquery_call_e2e.py +0 -0
  554. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_temporal_store_e2e.py +0 -0
  555. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_untested_methods.py +0 -0
  556. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_vecindex_e2e.py +0 -0
  557. {iris_vector_graph-1.99.3/tests/integration/gql → iris_vector_graph-2.0.0/tests/integration}/__init__.py +0 -0
  558. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/conftest.py +0 -0
  559. {iris_vector_graph-1.99.3/tests/perf → iris_vector_graph-2.0.0/tests/integration/gql}/__init__.py +0 -0
  560. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/gql/test_graphql_mutations.py +0 -0
  561. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/gql/test_graphql_nested_queries.py +0 -0
  562. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/gql/test_graphql_queries.py +0 -0
  563. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/gql/test_graphql_vector_search.py +0 -0
  564. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_cls_layer.py +0 -0
  565. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_cypher_advanced.py +0 -0
  566. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_cypher_enhancements.py +0 -0
  567. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_cypher_multi_type.py +0 -0
  568. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_cypher_rd.py +0 -0
  569. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_cypher_rel_vars.py +0 -0
  570. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_cypher_single_type.py +0 -0
  571. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_cypher_untyped.py +0 -0
  572. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_cypher_vector_search.py +0 -0
  573. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_embeddings_api.py +0 -0
  574. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_fastapi_graphql.py +0 -0
  575. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_fhir_bridges_integration.py +0 -0
  576. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_named_paths_integration.py +0 -0
  577. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_nodepk_advanced_benchmarks.py +0 -0
  578. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_nodepk_constraints.py +0 -0
  579. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_nodepk_graph_analytics.py +0 -0
  580. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_nodepk_migration.py +0 -0
  581. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_nodepk_performance.py +0 -0
  582. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_nodepk_production_scale.py +0 -0
  583. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_objectscript_classes.py +0 -0
  584. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_pagerank_sql_optimization.py +0 -0
  585. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_reification_integration.py +0 -0
  586. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_schema_migration.py +0 -0
  587. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_stored_procedure_install.py +0 -0
  588. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_subquery_call_integration.py +0 -0
  589. {iris_vector_graph-1.99.3/tests/unit/cypher → iris_vector_graph-2.0.0/tests/perf}/__init__.py +0 -0
  590. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/perf/test_leiden_four_way.py +0 -0
  591. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/performance/conftest.py +0 -0
  592. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/performance/scale_benchmark.py +0 -0
  593. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/performance/test_ppr_stress.py +0 -0
  594. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/performance/test_stress_v1_5.py +0 -0
  595. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/run_all_tests.py +0 -0
  596. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/test_iris_rest_api.py +0 -0
  597. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/test_networkx_loader.py +0 -0
  598. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/test_performance_benchmarks.py +0 -0
  599. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/test_pyops_vector_conversion.py +0 -0
  600. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/test_python_operators.py +0 -0
  601. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/test_python_sdk.py +0 -0
  602. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/test_schema_validation.py +0 -0
  603. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/test_sql_queries.py +0 -0
  604. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/test_vector_functions.py +0 -0
  605. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/cypher/test_lexer.py +0 -0
  606. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/cypher/test_lexer_advanced.py +0 -0
  607. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/cypher/test_parser.py +0 -0
  608. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/cypher/test_parser_advanced.py +0 -0
  609. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_aql_lexer.py +0 -0
  610. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_aql_parser.py +0 -0
  611. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_aql_translator.py +0 -0
  612. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_arno_bridge.py +0 -0
  613. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_batch_mutations.py +0 -0
  614. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_bm25_index.py +0 -0
  615. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_bolt_server.py +0 -0
  616. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_centrality_translator.py +0 -0
  617. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_centrality_unit.py +0 -0
  618. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cls_deployment.py +0 -0
  619. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_communities_translator.py +0 -0
  620. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_communities_unit.py +0 -0
  621. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_coverage_boost.py +0 -0
  622. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_benchmark.py +0 -0
  623. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_benchmark_scale.py +0 -0
  624. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_case_when.py +0 -0
  625. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_e2e_new_features.py +0 -0
  626. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_functions.py +0 -0
  627. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_parser.py +0 -0
  628. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_posos_bugs.py +0 -0
  629. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_procedures.py +0 -0
  630. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_translator.py +0 -0
  631. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_union_exists.py +0 -0
  632. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_embedded_wgproto.py +0 -0
  633. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_engine_dimension_fix.py +0 -0
  634. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_engine_embeddings.py +0 -0
  635. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_fhir_bridge.py +0 -0
  636. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_fhir_bridges.py +0 -0
  637. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_get_nodes.py +0 -0
  638. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_graph_kernels.py +0 -0
  639. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_graphql_dataloader.py +0 -0
  640. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_index_protocol.py +0 -0
  641. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_ingest_formats.py +0 -0
  642. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_introspection_api.py +0 -0
  643. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_ivgresult.py +0 -0
  644. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_lazy_kg.py +0 -0
  645. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_named_graphs.py +0 -0
  646. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_named_paths.py +0 -0
  647. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_operators_coverage.py +0 -0
  648. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_operators_wiring.py +0 -0
  649. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_plaid_search.py +0 -0
  650. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_ppr_guided_subgraph.py +0 -0
  651. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_reification.py +0 -0
  652. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_retrieve_and_vector_distance.py +0 -0
  653. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_schema_procedures.py +0 -0
  654. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_shortest_path.py +0 -0
  655. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_snapshot.py +0 -0
  656. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_sql_splitter.py +0 -0
  657. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_sql_table_bridge.py +0 -0
  658. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_store_protocol.py +0 -0
  659. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_subgraph.py +0 -0
  660. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_subquery_call.py +0 -0
  661. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_supporting_modules.py +0 -0
  662. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_temporal_cypher.py +0 -0
  663. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_translator_coverage.py +0 -0
  664. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_unified_edge_store.py +0 -0
  665. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_validation.py +0 -0
  666. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_vector_search_routing.py +0 -0
  667. {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_weighted_shortest_path.py +0 -0
@@ -167,3 +167,4 @@ docker-compose.yaml
167
167
  .playwright-mcp/
168
168
  examples/expanded_mindwalk_KG_10000.*
169
169
  .sesskey
170
+ data/drkg/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iris-vector-graph
3
- Version: 1.99.3
3
+ Version: 2.0.0
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
@@ -29,6 +29,9 @@ Requires-Dist: biopython>=1.81; extra == 'biodata'
29
29
  Requires-Dist: bioservices>=1.11.0; extra == 'biodata'
30
30
  Requires-Dist: mygene>=3.2.0; extra == 'biodata'
31
31
  Requires-Dist: obonet>=1.0.0; extra == 'biodata'
32
+ Provides-Extra: browser
33
+ Requires-Dist: fastapi>=0.118.0; extra == 'browser'
34
+ Requires-Dist: uvicorn>=0.37.0; extra == 'browser'
32
35
  Provides-Extra: cli
33
36
  Requires-Dist: click>=8.0.0; extra == 'cli'
34
37
  Requires-Dist: httpx>=0.28.1; extra == 'cli'
@@ -146,11 +149,28 @@ print(result["rows"]) # [('Bob',)]
146
149
  ## Install
147
150
 
148
151
  ```bash
149
- pip install iris-vector-graph # Core: just intersystems-irispython
152
+ pip install iris-vector-graph # Core: 266KB — just intersystems-irispython
150
153
  pip install iris-vector-graph[full] # Full: + FastAPI, GraphQL, numpy, networkx
154
+ pip install iris-vector-graph[communities] # + igraph, leidenalg (fast Leiden + closeness)
151
155
  pip install iris-vector-graph[plaid] # + sklearn for PLAID K-means build
152
156
  ```
153
157
 
158
+ **Graph Browser** (interactive UI at `/browser/`) — the browser static files are not
159
+ included in the default wheel to keep it small (266KB vs 30MB). To enable the browser:
160
+
161
+ ```bash
162
+ # Install from source — includes browser_static/ automatically
163
+ pip install 'iris-vector-graph[browser]' --no-binary iris-vector-graph
164
+
165
+ # Or: clone the repo and copy the assets next to your installed package
166
+ git clone https://github.com/intersystems-community/iris-vector-graph
167
+ cp -r iris-vector-graph/iris_vector_graph/browser_static \
168
+ $(python -c "import iris_vector_graph; print(iris_vector_graph.__file__[:-11])")
169
+ ```
170
+
171
+ The API server works fine without the browser assets — the `/browser/` route returns
172
+ a helpful message if `browser_static/` is not present.
173
+
154
174
  ### ObjectScript Only (IPM)
155
175
 
156
176
  ```
@@ -179,7 +199,7 @@ Pure ObjectScript — VecIndex, PLAIDSearch, PageRank, Subgraph, GraphIndex, Tem
179
199
  | **GraphQL** | Auto-generated schema from knowledge graph labels. |
180
200
  | **Embedded Python** | `EmbeddedConnection` — zero-boilerplate dbapi2 adapter for IRIS Language=python methods. |
181
201
  | **Multi-graph** | `USE graphname` maps to IRIS namespace/schema switching via `set_schema_prefix()`. |
182
- | **NKGAccel** | Rust-accelerated BFS via `Graph.KG.NKGAccel` — requires enterprise IRIS + `libarno_callout.so`. |
202
+ | **NKGAccel** | Rust-accelerated BFS via `Graph.KG.NKGAccel` — requires the native accelerator library. |
183
203
 
184
204
  ## Compliance
185
205
 
@@ -258,7 +278,7 @@ IRIS_USERNAME=_SYSTEM IRIS_PASSWORD=SYS \
258
278
  python3 -m uvicorn iris_vector_graph.cypher_api:app --port 8000
259
279
  ```
260
280
 
261
- - **Browser** — `http://localhost:8000/browser/` (force-directed graph visualization)
281
+ - **Browser** — `http://localhost:8000/browser/` (force-directed graph visualization — requires browser assets, see [Install](#install))
262
282
  - **Bolt TCP** — `bolt://localhost:7687` (Python/Java/Go/.NET drivers, LangChain, cypher-shell)
263
283
  - **HTTP API** — `http://localhost:8000/api/cypher` (curl, httpie, REST clients)
264
284
 
@@ -542,7 +562,7 @@ SQL Tables (probe: 23ms)
542
562
  ...
543
563
  Adjacency Globals
544
564
  ✓ ^KG (50,000 source nodes indexed)
545
- ✗ ^NKG (Arno integer index)
565
+ ✗ ^NKG (integer adjacency index for Rust acceleration)
546
566
  ...
547
567
  ```
548
568
 
@@ -567,20 +587,20 @@ results = engine.plaid_search("colbert_idx", query_tokens, k=10)
567
587
 
568
588
  Finds the minimum-**cost** path between two nodes using Dijkstra's algorithm. Unlike `shortestPath()` which minimizes hops, this minimizes the sum of edge weights.
569
589
 
570
- Edge weights come from the numeric value stored in `^KG("out",0,s,p,o)` set automatically when you call `create_edge` or `WriteAdjacency` with a weight parameter.
590
+ Edge weights are set via the `weight` parameter on `create_edge` (or updated later with `set_edge_weight`).
571
591
 
572
592
  ```python
573
593
  # Store weighted edges
574
594
  engine.create_node("svc:auth")
575
595
  engine.create_node("svc:db")
576
- iris_obj = engine._iris_obj()
577
- iris_obj.classMethodVoid("Graph.KG.EdgeScan", "WriteAdjacency",
578
- "svc:auth", "CALLS", "svc:db", "5.2") # weight=5.2ms latency
579
-
580
- iris_obj.classMethodVoid("Graph.KG.EdgeScan", "WriteAdjacency",
581
- "svc:auth", "CALLS", "svc:cache", "0.3")
582
- iris_obj.classMethodVoid("Graph.KG.EdgeScan", "WriteAdjacency",
583
- "svc:cache", "CALLS", "svc:db", "0.8")
596
+ engine.create_node("svc:cache")
597
+
598
+ engine.create_edge("svc:auth", "CALLS", "svc:db", weight=5.2) # 5.2ms latency
599
+ engine.create_edge("svc:auth", "CALLS", "svc:cache", weight=0.3)
600
+ engine.create_edge("svc:cache", "CALLS", "svc:db", weight=0.8)
601
+
602
+ # Update a weight later
603
+ engine.set_edge_weight("svc:auth", "CALLS", "svc:db", 4.9)
584
604
  ```
585
605
 
586
606
  ```cypher
@@ -685,27 +705,169 @@ RETURN node, score
685
705
 
686
706
  ## Graph Analytics
687
707
 
708
+ IVG ships a full graph algorithm suite backed by automatic dispatch chains — the fastest available tier runs transparently.
709
+
710
+ #### Betweenness dispatch (ER-2000, sampled 200 sources)
711
+
712
+ | Tier | Backend | When it fires | Latency |
713
+ |------|---------|---------------|---------|
714
+ | 1 | **Native Rust accelerator** | arno library deployed + `^NKG` built | ~8ms |
715
+ | 2 | **ObjectScript Brandes** | arno absent; `^NKG` built | ~70ms |
716
+ | 3 | **Python LazyKG** | `^NKG` not built | slow, always works |
717
+
718
+ #### Closeness dispatch (ER-2000, harmonic)
719
+
720
+ | Tier | Backend | When it fires | Latency |
721
+ |------|---------|---------------|---------|
722
+ | 1 | **igraph C closeness** | igraph installed in IRIS embedded Python | ~115ms |
723
+ | 2 | **ObjectScript MSBFS** | igraph absent; dependency-free 64-bit frontier BFS | ~400ms |
724
+ | 3 | **Python LazyKG** | fallback of last resort | slow, always works |
725
+
726
+ igraph closeness is **bit-identical to networkx** (Pearson r = 1.0). Install into IRIS embedded Python with `irispython -m pip install igraph` — see [scripts/install-embedded-deps.sh](scripts/install-embedded-deps.sh).
727
+
728
+ #### Leiden dispatch
729
+
730
+ | Tier | Backend | When it fires | Latency (ER-2000) |
731
+ |------|---------|---------------|---------|
732
+ | 1 | **arno Rust** | arno library + leidenalg compiled | ~8ms |
733
+ | 2 | **leidenalg server-side** | leidenalg installed in IRIS embedded Python | ~137ms |
734
+ | 3 | **LazyKG + leidenalg** | leidenalg in external Python | ~137ms |
735
+ | 4 | **networkx Louvain** | no leidenalg anywhere | degraded quality |
736
+
737
+ Dispatch is **automatic and transparent** — call the engine method, get the fastest path available.
738
+
739
+ ### Centrality (v1.98.0 + v2.0.0)
740
+
688
741
  ```python
689
- from iris_vector_graph.operators import IRISGraphOperators
742
+ # Degree centrality — out/in/both, optionally predicate-filtered
743
+ scores = engine.degree_centrality(direction="out", top_k=20)
744
+ # → [{"id": "auth-service", "score": 0.847, "degree": 12}, ...]
745
+
746
+ # Betweenness centrality — Brandes (2001), Rust parallel when accelerator loaded
747
+ # sample_size=200: Brandes-Pich approximation (fast, good ranking)
748
+ # sample_size=0: exact full Brandes (slower, ground truth)
749
+ scores = engine.betweenness_centrality(sample_size=200, top_k=20)
750
+ # → [{"id": "api-gateway", "score": 4821.3}, ...]
751
+
752
+ # Neighborhood betweenness — O(neighborhood), not O(graph)
753
+ # Scales to any total graph size; performance depends on hops neighborhood only
754
+ scores = engine.betweenness_centrality_neighborhood(
755
+ seed="MESH:D009101", # Multiple Myeloma (or any node ID)
756
+ hops=2, # 2-hop neighborhood: ~500-5K nodes for biomedical KGs
757
+ sample_size=200,
758
+ top_k=20,
759
+ )
760
+ # → [{"id": "TP53", "score": 1234.5}, ...] (hub bottlenecks in disease neighborhood)
761
+
762
+ # Closeness centrality — harmonic (default) or classical
763
+ scores = engine.closeness_centrality(formula="harmonic", top_k=20)
764
+ # formula="classical": standard Bavelas–Freeman, undefined for disconnected graphs
765
+ # formula="harmonic": Beauchamp (1965), well-defined for disconnected graphs
766
+
767
+ # Eigenvector centrality — power iteration, L2-normalized
768
+ scores = engine.eigenvector_centrality(max_iter=50, tol=1e-6, top_k=20)
769
+ # matches networkx.eigenvector_centrality_numpy (raw adjacency A, not transition matrix)
770
+ ```
771
+
772
+ **Via Cypher:**
773
+
774
+ ```cypher
775
+ CALL ivg.degreeCentrality({direction: "out", topK: 20})
776
+ YIELD node, score, degree
777
+
778
+ CALL ivg.betweenness({sampleSize: 200, topK: 20})
779
+ YIELD node, score
780
+
781
+ CALL ivg.closeness({formula: "harmonic", topK: 20})
782
+ YIELD node, score
783
+
784
+ CALL ivg.eigenvector({maxIter: 50, topK: 20})
785
+ YIELD node, score
786
+ ```
787
+
788
+ ---
789
+
790
+ ### Community Detection (v1.99.0)
791
+
792
+ ```python
793
+ # Leiden community detection (Traag et al. 2019)
794
+ # gamma=1.0: ModularityVertexPartition (canonical Leiden, default)
795
+ # gamma != 1.0: CPMVertexPartition (resolution parameter, smaller communities)
796
+ communities = engine.leiden_communities(gamma=1.0, top_k=100)
797
+ # → [{"id": "node-a", "community": 0, "size": 23}, ...]
798
+
799
+ # Triangle count + local clustering coefficient
800
+ triangles = engine.triangle_count(top_k=100)
801
+ # → [{"id": "hub-node", "triangles": 45, "lcc": 0.73}, ...]
802
+
803
+ # Strongly connected components (iterative Tarjan 1972)
804
+ sccs = engine.strongly_connected_components(top_k=100)
805
+ # → [{"id": "node-a", "component": 0, "size": 8}, ...]
806
+
807
+ # K-core decomposition (Batagelj-Zaversnik 2003, O(V+E))
808
+ cores = engine.k_core_decomposition(top_k=100)
809
+ # → [{"id": "dense-hub", "coreness": 5}, ...]
810
+ ```
811
+
812
+ **Via Cypher:**
813
+
814
+ ```cypher
815
+ CALL ivg.leiden({gamma: 1.0, topK: 100})
816
+ YIELD node, community, size
817
+
818
+ CALL ivg.triangleCount({topK: 100})
819
+ YIELD node, triangles, lcc
820
+
821
+ CALL ivg.scc({topK: 100})
822
+ YIELD node, component, size
823
+
824
+ CALL ivg.kcore({topK: 100})
825
+ YIELD node, coreness
826
+ ```
690
827
 
691
- ops = IRISGraphOperators(conn)
828
+ ---
829
+
830
+ ### Algorithm Selection Guide
692
831
 
693
- # Personalized PageRank
694
- scores = ops.kg_PAGERANK(seed_entities=["service:auth"], damping=0.85)
832
+ | Question | Algorithm | Notes |
833
+ |----------|-----------|-------|
834
+ | Who has the most connections? | `degree_centrality` | Fast, O(V+E) |
835
+ | Who controls information flow? | `betweenness_centrality` | Use `sample_size=200` for large graphs |
836
+ | Which disease-network bottlenecks matter? | `betweenness_centrality_neighborhood` | O(neighborhood), not O(graph) |
837
+ | Who reaches others fastest? | `closeness_centrality(formula="harmonic")` | Handles disconnected graphs |
838
+ | Who is most influential by propagation? | `eigenvector_centrality` | Captures network prestige |
839
+ | What are the dense clusters? | `leiden_communities` | Best modularity; use `gamma<1.0` for smaller communities |
840
+ | How tightly connected are nodes? | `triangle_count` | LCC field = local clustering coefficient |
841
+ | Are there feedback loops? | `strongly_connected_components` | Directed-graph cycles |
842
+ | What is the network's backbone? | `k_core_decomposition` | High coreness = structural core |
695
843
 
696
- # K-hop subgraph
697
- subgraph = ops.kg_SUBGRAPH(seed_ids=["service:auth"], k_hops=3)
844
+ ---
698
845
 
699
- # PPR-guided subgraph (prevents k^n blowup)
700
- guided = ops.kg_PPR_GUIDED_SUBGRAPH(seed_ids=["service:auth"], top_k=50, max_hops=5)
846
+ ### Native Accelerator (Rust, Production Performance)
847
+
848
+ ```bash
849
+ # Copy the accelerator library to your IRIS container
850
+ docker cp libarno_callout_arm64_linux.so <container>:/usr/irissys/mgr/libarno_callout.so
701
851
 
702
- # Community detection
703
- communities = ops.kg_CDLP()
704
- components = ops.kg_WCC()
852
+ # Load it at IRIS startup (e.g., in %ZSTART or your application init)
853
+ Do ##class(Graph.KG.NKGAccel).Load("/usr/irissys/mgr/libarno_callout.so")
854
+ ```
855
+
856
+ Without the accelerator, all algorithms fall back gracefully to the ObjectScript parallel (Tier 2) or Python LazyKG (Tier 3) path. See [docs/performance/GRAPH_ALGORITHMS.md](docs/performance/GRAPH_ALGORITHMS.md) for tier latencies.
857
+
858
+ Algorithms that operate under memory budgets emit warnings to `^IVG.warnings`:
859
+
860
+ ```python
861
+ # Check if any nodes were skipped due to memory budget
862
+ warnings = engine.get_community_warnings(max_entries=50)
863
+ warnings += engine.get_centrality_warnings(max_entries=50)
864
+ for w in warnings:
865
+ print(w) # {"node_id": "...", "reason": "mem_budget_exceeded", ...}
705
866
  ```
706
867
 
707
868
  ---
708
869
 
870
+
709
871
  ## FHIR Bridge
710
872
 
711
873
  ```python
@@ -738,85 +900,175 @@ conditions = tool("patient-123") # → {"conditions": [...], "error": None}
738
900
 
739
901
  ## Architecture
740
902
 
741
- ### Global Structure
742
-
743
- | Global | Purpose |
744
- |--------|---------|
745
- | `^KG("out", s, p, o)` | Knowledge graph — outbound edges |
746
- | `^KG("in", o, p, s)` | Knowledge graph — inbound edges |
747
- | `^KG("tout", ts, s, p, o)` | Temporal index — outbound, ordered by timestamp |
748
- | `^KG("tin", ts, o, p, s)` | Temporal index — inbound, ordered by timestamp |
749
- | `^KG("bucket", bucket, s)` | Pre-aggregated edge count per 5-minute bucket |
750
- | `^KG("tagg", bucket, s, p, key)` | Pre-aggregated COUNT/SUM/MIN/MAX/HLL per bucket |
751
- | `^KG("edgeprop", ts, s, p, o, key)` | Rich edge attributes |
752
- | `^NKG` | Integer-encoded `^KG` for Arno acceleration |
753
- | `^VecIdx` | VecIndex RP-tree ANN |
754
- | `^PLAID` | PLAID multi-vector |
755
- | `^BM25Idx` | BM25 lexical search index |
756
-
757
- ### Schema (Graph_KG)
758
-
759
- | Table | Purpose |
760
- |-------|---------|
761
- | `nodes` | Node registry (node_id PK) |
762
- | `rdf_edges` | Edges (s, p, o_id) |
763
- | `rdf_labels` | Node labels (s, label) |
764
- | `rdf_props` | Node properties (s, key, val) |
765
- | `kg_NodeEmbeddings` | HNSW vector index (id, emb VECTOR) |
766
- | `kg_EdgeEmbeddings` | Triple embeddings (s, p, o_id, emb VECTOR) — composite PK |
767
- | `fhir_bridges` | ICD-10→MeSH clinical code mappings |
768
-
769
- ### ObjectScript Classes
770
-
771
- | Class | Key Methods |
772
- |-------|-------------|
773
- | `Graph.KG.TemporalIndex` | InsertEdge, BulkInsert, QueryWindow, GetVelocity, FindBursts, GetAggregate, GetBucketGroups, GetDistinctCount, Purge |
774
- | `Graph.KG.VecIndex` | Create, InsertJSON, Build, SearchJSON, SearchMultiJSON, InsertBatchJSON |
775
- | `Graph.KG.PLAIDSearch` | StoreCentroids, BuildInvertedIndex, Search |
776
- | `Graph.KG.PageRank` | RunJson, PageRankGlobalJson |
777
- | `Graph.KG.Algorithms` | WCCJson, CDLPJson |
778
- | `Graph.KG.Subgraph` | SubgraphJson, PPRGuidedJson |
779
- | `Graph.KG.Traversal` | BuildKG, BuildNKG, BFSFastJson, ShortestPathJson |
780
- | `Graph.KG.BulkLoader` | BulkLoad (`INSERT %NOINDEX %NOCHECK` + `%BuildIndices`) |
781
- | `Graph.KG.BM25Index` | Build, Search, Insert, Drop, Info, SearchProc (`kg_BM25` stored procedure) |
782
- | `Graph.KG.IVFIndex` | Build, Search, Drop, Info, SearchProc (`kg_IVF` stored procedure) |
783
- | `Graph.KG.EdgeScan` | MatchEdges (`Graph_KG.MatchEdges` stored procedure), WriteAdjacency, DeleteAdjacency |
903
+ ```
904
+ ┌─────────────────────────────────────────────────────────────────────┐
905
+ │ iris-vector-graph v2.0.0 │
906
+ ├─────────────────────────────────────────────────────────────────────┤
907
+ │ │
908
+ │ ┌───────────────┐ ┌───────────────┐ ┌───────────────────┐ │
909
+ │ │ Python SDK │ │ Cypher/AQL │ │ Bolt (wire) │ │
910
+ │ │ IRISGraph │ │ translator │ │ neo4j-driver │ │
911
+ │ │ Engine │ │ + executor │ │ compatible │ │
912
+ │ └───────┬───────┘ └───────┬───────┘ └────────┬──────────┘ │
913
+ │ └──────────────┬────┘ │ │
914
+ │ ▼ │ │
915
+ │ ┌────────────────────────┐ │ │
916
+ │ │ GraphStore protocol │◄─────────────┘ │
917
+ │ │ (pluggable backend) │ │
918
+ │ └───────────┬────────────┘ │
919
+ │ │ │
920
+ │ ┌──────────────┼──────────────┐ │
921
+ │ ▼ ▼ ▼ │
922
+ │ ┌─────────────┐ ┌──────────┐ ┌───────────────┐ │
923
+ │ │ SQL layer │ │ ^KG │ │ ^NKG │ │
924
+ │ │ Graph_KG.* │ globals │ integer adj │ │
925
+ │ │ (nodes, │ (edges, │ index │ │
926
+ │ │ edges, │ temp, └───────┬───────┘ │
927
+ │ │ vectors) │ │ PPR) │ │ │
928
+ │ └─────────────┘ └──────────┘ │ │
929
+ │ ▼ │
930
+ │ ┌────────────────────┐ │
931
+ │ │ Algorithm tiers │ │
932
+ │ ├────────────────────┤ │
933
+ │ │ 1. Rust accelerator│ fastest │
934
+ │ │ (rayon parallel)│ │
935
+ │ │ 2. ObjectScript │ │
936
+ │ │ parallel 8× │ │
937
+ │ │ 3. Python LazyKG │ always works│
938
+ │ └────────────────────┘ │
939
+ │ │
940
+ │ Centrality: betweenness (Brandes) · closeness · eigenvector │
941
+ │ degree │
942
+ │ Community: Leiden · triangle count · SCC · k-core │
943
+ Search: vector (HNSW/IVF/PLAID) · BM25 · temporal · PPR │
944
+ │ │
945
+ └─────────────────────────────────────────────────────────────────────┘
946
+ ```
947
+
948
+ For global structure, SQL schema, and ObjectScript class reference, see [docs/architecture/ARCHITECTURE.md](docs/architecture/ARCHITECTURE.md).
784
949
 
785
950
  ---
786
951
 
787
952
  ## Performance
788
953
 
789
- | Operation | Latency | Dataset |
790
- |-----------|---------|---------|
791
- | Temporal edge ingest | 134K edges/sec | RE2-TT 535M edges, Enterprise IRIS |
792
- | Window query (selective) | 0.1ms | O(results), B-tree traversal |
793
- | GetAggregate (1 bucket, 5min) | 0.085ms | 50K-edge dataset |
954
+ **Graph traversal & search** (M3 Ultra, Community IRIS 2025.1, 8.9K nodes / 31K edges):
955
+
956
+ | Operation | Latency | Notes |
957
+ |-----------|---------|-------|
958
+ | 1-hop neighbors | 0.3ms | `$Order` on `^KG` |
959
+ | Temporal window query | 0.1ms | O(results), B-tree |
960
+ | GetAggregate (1 bucket, 5min) | 0.085ms | Pre-aggregated |
794
961
  | GetAggregate (288 buckets, 24hr) | 0.160ms | O(buckets), not O(edges) |
795
- | GetBucketGroups (3 sources, 1hr) | 0.193ms | |
796
- | GetDistinctCount (1 bucket) | 0.101ms | 16-register HLL |
797
962
  | VecIndex search (1K vecs, 128-dim) | 4ms | RP-tree + `$vectorop` SIMD |
798
963
  | HNSW search (143K vecs, 768-dim) | 1.7ms | Native IRIS VECTOR index |
799
964
  | PLAID search (500 docs, 4 tokens) | ~14ms | Centroid scoring + MaxSim |
800
- | BM25Index search (174 nodes, 3-term) | 0.3ms | Pure ObjectScript `$Order` posting-list |
965
+ | BM25Index search (174 nodes, 3-term) | 0.3ms | `$Order` posting-list |
801
966
  | PPR (10K nodes) | 62ms | Pure ObjectScript |
802
- | 1-hop neighbors | 0.3ms | `$Order` on `^KG` |
967
+
968
+ For graph algorithm benchmarks (betweenness, Leiden, centrality vs networkx, tier comparison), see **[docs/performance/GRAPH_ALGORITHMS.md](docs/performance/GRAPH_ALGORITHMS.md)**.
969
+
970
+ ### Comparative performance & scale
971
+
972
+ IVG has been validated end-to-end on a real biomedical knowledge graph
973
+ ([DRKG](https://github.com/gnn4dr/DRKG): ~97K nodes / ~5.9M edges) and compared
974
+ head-to-head against Neo4j Graph Data Science and networkx on shared fixtures.
975
+
976
+ **Methodology** — same machine, same graphs (Zachary karate club, Erdős–Rényi
977
+ random graphs, and DRKG), same Community-edition core budget for both engines.
978
+ Each engine loads the identical edge set, then runs degree / betweenness /
979
+ closeness centrality and Leiden community detection. Correctness is checked by
980
+ correlating every IVG result against networkx as a reference (results match
981
+ exactly). Timings are wall-clock medians.
982
+
983
+ **Rough findings** (full numbers in
984
+ [DRKG_SCALE.md](docs/performance/DRKG_SCALE.md)):
985
+
986
+ - On read-side graph analytics — **degree and betweenness centrality, and Leiden
987
+ community detection** — IVG is competitive with or faster than Neo4j GDS, while
988
+ producing identical results to networkx.
989
+ - **Closeness centrality** uses a three-tier dispatch. With igraph installed in
990
+ IRIS embedded Python: ~10ms on ER(500) and ~115ms on ER(2000), bit-identical
991
+ to networkx (Pearson r = 1.0), competitive with GDS (~9ms / ~138ms). Without
992
+ igraph, the second tier is a dependency-free pure-ObjectScript MSBFS (64-source
993
+ batching, `$BITLOGIC` frontiers) — substantially faster than the old sequential
994
+ all-pairs BFS while remaining 100% correct (Pearson r ≥ 0.9999 vs networkx).
995
+ Both tiers degrade gracefully to Python LazyKG as a final fallback.
996
+ - IVG reaches this by running the heavy algorithms server-side: pure-ObjectScript
997
+ over its integer adjacency index for traversal-style work, and IRIS *embedded
998
+ Python* (igraph / leidenalg) for the algorithms where a mature parallel C
999
+ library wins — in-process, with no data leaving the database.
1000
+ - At biomedical-KG scale, the full DRKG (5.9M edges) loads, indexes, and becomes
1001
+ query-ready in single-digit minutes, with adjacency maintained incrementally
1002
+ during ingest (no separate post-load build phase).
1003
+
1004
+ These are indicative engineering benchmarks on a developer machine, not a
1005
+ formal audited comparison; numbers vary with hardware, graph shape, and tuning.
1006
+
1007
+ ### Running the benchmarks
1008
+
1009
+ ```bash
1010
+ # Algorithm parity vs networkx (no external services needed)
1011
+ pytest tests/e2e/test_centrality_e2e.py
1012
+
1013
+ # Head-to-head IVG vs Neo4j GDS vs networkx (needs a Neo4j+GDS instance)
1014
+ IVG_HEADTOHEAD=1 \
1015
+ NEO4J_URI=bolt://localhost:7687 NEO4J_USER=neo4j NEO4J_PASSWORD=<pw> \
1016
+ pytest tests/perf/test_head_to_head.py -s
1017
+ # (the Neo4j leg is skipped automatically if no instance is reachable)
1018
+
1019
+ # Biomedical-scale load (downloads DRKG ~217MB, loads into the IRIS container)
1020
+ python scripts/load_drkg.py --embeddings
1021
+ ```
1022
+
1023
+ JSON results are written under `benchmarks/`. See
1024
+ [DRKG_SCALE.md](docs/performance/DRKG_SCALE.md) for the full methodology, the
1025
+ per-metric numbers, and the IRIS tuning notes (global buffer pool, journaling,
1026
+ embedded-Python dispatch).
803
1027
 
804
1028
  ---
805
1029
 
806
1030
  ## Documentation
807
1031
 
1032
+ - [**User Guide**](docs/USER_GUIDE.md) — API reference for developers: algorithms, Cypher, error handling
1033
+ - [**Admin Guide**](docs/ADMIN_GUIDE.md) — deployment, container setup, accelerator library, troubleshooting
1034
+ - [Architecture Reference](docs/architecture/ARCHITECTURE.md) — globals, SQL schema, ObjectScript classes
1035
+ - [Performance Benchmarks](docs/performance/GRAPH_ALGORITHMS.md) — algorithm latency vs networkx
808
1036
  - [Python SDK Reference](docs/python/PYTHON_SDK.md)
809
- - [Architecture](docs/architecture/ARCHITECTURE.md)
810
- - [Schema Reference](docs/architecture/ACTUAL_SCHEMA.md)
811
- - [Temporal Graph Full Spec](docs/enhancements/006-temporal-property-graph-full-spec.md)
812
- - [Setup Guide](docs/setup/QUICKSTART.md)
1037
+ - [Temporal Graph Spec](docs/enhancements/006-temporal-property-graph-full-spec.md)
813
1038
  - [Testing Policy](docs/TESTING_POLICY.md)
814
1039
 
815
1040
  ---
816
1041
 
817
1042
  ## Changelog
818
1043
 
1044
+ ### v2.0.0 (2026-05-29)
1045
+
1046
+ **Major release: all centrality algorithms accelerated to Rust rayon parallel. New neighborhood betweenness for biomedical KGs.**
1047
+
1048
+ **Centrality ObjectScript fast paths (specs 168-170):**
1049
+ - **`ClosenessGlobal`** — harmonic/classical closeness via BFS over `^NKG`; matches `networkx.harmonic_centrality` (raw `sumInv`). Fix: was incorrectly dividing by `(n-1)` total container count.
1050
+ - **`EigenvectorGlobal`** — L2-normalized power iteration; matches `networkx.eigenvector_centrality_numpy`.
1051
+ - **`BetweennessGlobal`** — Brandes (2001) with sampled approximation (`maxSources=200` default) and `%SYSTEM.WorkMgr` 8-way ObjectScript parallelism; `$BITLOGIC` BFS cuts per-source cost 2×.
1052
+
1053
+ **Native Rust accelerator: parallel Brandes (spec 171):**
1054
+ - Rust function reads adjacency cache once (version-keyed), stores in process-static memory, runs rayon parallel Brandes — zero IRIS I/O on cache hits.
1055
+ - Benchmark: karate **6×**, ER(500) **68×**, ER(2000) **5×** faster than networkx on sampled=200.
1056
+ - Exact Brandes: karate **4×**, ER(500) **5×** faster than networkx; see [performance doc](docs/performance/GRAPH_ALGORITHMS.md) for full numbers.
1057
+
1058
+ **Neighborhood betweenness for biomedical KGs (spec 173):**
1059
+ - `engine.betweenness_centrality_neighborhood(seed, hops=2, sample_size=200, top_k=20)` — extracts 2-hop disease neighborhood (~500-5K nodes), runs Brandes on subgraph only. **Performance scales with neighborhood size, not total KG size.** A 10M-node biomedical KG with a 5K-node disease neighborhood runs in ~10ms.
1060
+ - Rust implementation extracts subgraph from in-process adjacency cache (microseconds) then runs rayon Brandes on the subgraph. Zero IRIS I/O after first call.
1061
+ - Biomedical use case: "Which genes are the bottlenecks between Multiple Myeloma and its known drug targets?"
1062
+
1063
+ **Bug fixes:**
1064
+ - `<MAXNUMBER>` overflow in ObjectScript Brandes — replaced O(N²) comma-string BFS queue with `^||bfsQueue` global; capped all intermediate arithmetic with `+$Number(expr,15)`.
1065
+ - `$Number(x,15)` doesn't cap magnitude (only precision) — added `+` unary prefix to force numeric evaluation before storage.
1066
+ - IRIS emits `"score":.666` (no leading zero) for fractional scores — `_fix_iris_json()` regex patches all JSON output before `json.loads()`.
1067
+ - Rust accelerator repeated-call 5,000ms regression — `NameSpace::try_new` opened a new CalIn session per call; fixed by version-keyed `BETWEENNESS_ADJ_CACHE` that skips IRIS I/O on cache hits.
1068
+ - `ExportAdjacencyNKG` NODEMAP format — now embeds node names in adjacency cache eliminating N round-trips to `^NKG("$ND",i)` per Brandes call (was 997ms → 16ms on ER(500)).
1069
+
819
1070
  ### v1.99.0 (2026-05-28)
1071
+
820
1072
  - **feat**: Spec 163 — Community Detection & Cluster Analysis Suite. Four new graph algorithms via the GraphStore protocol + Cypher procedures + dual-path architecture (arno Rust accelerator primary + LazyKG pure-Python fallback):
821
1073
  - `engine.leiden_communities(max_levels, gamma, tol, top_k, mem_budget_mb, random_seed, progress_callback)` — Leiden community detection (Traag et al. 2019). At `gamma=1.0` uses `ModularityVertexPartition` (canonical Leiden); at `gamma != 1.0` uses `CPMVertexPartition` for resolution control. ARI = 1.0 with `leidenalg` reference (4-way benchmark on karate, ER(500), ER(2000)).
822
1074
  - `engine.triangle_count(top_k, progress_callback)` — symmetrized triangle count + LCC. Pearson > 0.95 with `networkx.triangles(networkx.Graph(G_directed))` on Erdős-Rényi 100-node fixture.