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.
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/.gitignore +1 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/PKG-INFO +333 -81
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/README.md +329 -80
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/Centrality.cls +18 -8
- iris_vector_graph-2.0.0/iris_src/src/Graph/KG/Communities.cls +583 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/Edge.cls +3 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/EdgeScan.cls +7 -39
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/EmbedQueue.cls +1 -1
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/GraphIndex.cls +1 -1
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/Meta.cls +10 -31
- iris_vector_graph-2.0.0/iris_src/src/Graph/KG/NKGAccel.cls +227 -0
- iris_vector_graph-2.0.0/iris_src/src/Graph/KG/NKGAccelAdjacency.cls +314 -0
- iris_vector_graph-2.0.0/iris_src/src/Graph/KG/NKGAccelCentrality.cls +641 -0
- iris_vector_graph-2.0.0/iris_src/src/Graph/KG/NKGAccelLoader.cls +117 -0
- 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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/PageRank.cls +2 -1
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/TemporalIndex.cls +3 -2
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/TestEdge.cls +1 -1
- iris_vector_graph-2.0.0/iris_src/src/Graph/KG/Traversal.cls +155 -0
- iris_vector_graph-2.0.0/iris_src/src/Graph/KG/TraversalBFS.cls +441 -0
- iris_vector_graph-2.0.0/iris_src/src/Graph/KG/TraversalBuild.cls +267 -0
- iris_vector_graph-2.0.0/iris_src/src/Graph/KG/TraversalKHop.cls +222 -0
- iris_vector_graph-2.0.0/iris_src/src/Graph/KG/TraversalPaths.cls +312 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/__init__.py +24 -1
- iris_vector_graph-2.0.0/iris_vector_graph/_engine/admin.py +382 -0
- iris_vector_graph-2.0.0/iris_vector_graph/_engine/algorithms.py +1090 -0
- iris_vector_graph-2.0.0/iris_vector_graph/_engine/embeddings.py +730 -0
- iris_vector_graph-2.0.0/iris_vector_graph/_engine/fhir.py +319 -0
- iris_vector_graph-2.0.0/iris_vector_graph/_engine/nodes_edges.py +1042 -0
- iris_vector_graph-2.0.0/iris_vector_graph/_engine/query.py +868 -0
- iris_vector_graph-2.0.0/iris_vector_graph/_engine/schema.py +848 -0
- iris_vector_graph-2.0.0/iris_vector_graph/_engine/snapshot.py +896 -0
- iris_vector_graph-2.0.0/iris_vector_graph/_engine/temporal.py +271 -0
- iris_vector_graph-2.0.0/iris_vector_graph/_engine/vector.py +1099 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/bulk_loader.py +9 -2
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/translator.py +1933 -1729
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher_api.py +10 -0
- iris_vector_graph-2.0.0/iris_vector_graph/embed_selector.py +123 -0
- iris_vector_graph-2.0.0/iris_vector_graph/engine.py +864 -0
- iris_vector_graph-2.0.0/iris_vector_graph/errors.py +104 -0
- iris_vector_graph-2.0.0/iris_vector_graph/index_config.py +71 -0
- iris_vector_graph-2.0.0/iris_vector_graph/index_protocol.py +104 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/schema.py +23 -75
- iris_vector_graph-2.0.0/iris_vector_graph/status.py +202 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/stores/arno_bridge.py +13 -64
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/stores/iris_sql_store.py +229 -129
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/stores/lazy_kg.py +5 -1
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/pyproject.toml +8 -1
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/conftest.py +130 -33
- iris_vector_graph-2.0.0/tests/e2e/test_analytics_dispatch.py +471 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_arno_bfs_global.py +11 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_arno_bfs_unified.py +12 -0
- iris_vector_graph-2.0.0/tests/e2e/test_betweenness_neighborhood_e2e.py +97 -0
- iris_vector_graph-2.0.0/tests/e2e/test_betweenness_os_e2e.py +61 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_centrality_e2e.py +7 -9
- iris_vector_graph-2.0.0/tests/e2e/test_closeness_os_e2e.py +67 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_communities_e2e.py +8 -23
- iris_vector_graph-2.0.0/tests/e2e/test_edge_weights.py +40 -0
- iris_vector_graph-2.0.0/tests/e2e/test_eigenvector_os_e2e.py +58 -0
- iris_vector_graph-2.0.0/tests/e2e/test_igraph_fastpath_parity.py +159 -0
- iris_vector_graph-2.0.0/tests/e2e/test_msbfs_closeness.py +106 -0
- iris_vector_graph-2.0.0/tests/e2e/test_objectscript_split_resolution.py +81 -0
- iris_vector_graph-2.0.0/tests/e2e/test_sdk_ergonomics_178_180_e2e.py +297 -0
- iris_vector_graph-2.0.0/tests/e2e/test_unified_index_api.py +77 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_bidirectional_ppr.py +53 -73
- iris_vector_graph-2.0.0/tests/perf/test_betweenness_vs_gds.py +318 -0
- iris_vector_graph-2.0.0/tests/perf/test_head_to_head.py +241 -0
- iris_vector_graph-2.0.0/tests/regression/__init__.py +0 -0
- iris_vector_graph-2.0.0/tests/regression/engine_api_baseline.json +164 -0
- iris_vector_graph-2.0.0/tests/regression/test_complexity.py +123 -0
- iris_vector_graph-2.0.0/tests/regression/test_engine_api.py +76 -0
- iris_vector_graph-2.0.0/tests/regression/test_module_size.py +63 -0
- iris_vector_graph-2.0.0/tests/regression/test_no_silent_swallow.py +56 -0
- iris_vector_graph-2.0.0/tests/test_schema_contract.py +100 -0
- iris_vector_graph-2.0.0/tests/unit/cypher/__init__.py +0 -0
- iris_vector_graph-2.0.0/tests/unit/test_betweenness_os_unit.py +42 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_bfs_arno.py +11 -16
- iris_vector_graph-2.0.0/tests/unit/test_bulk_load_session.py +177 -0
- iris_vector_graph-2.0.0/tests/unit/test_closeness_os_unit.py +25 -0
- iris_vector_graph-2.0.0/tests/unit/test_concept_first_status.py +159 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_var_length.py +1 -2
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_vector_search.py +5 -2
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_edge_embeddings.py +14 -20
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_edgeprop_ndjson.py +5 -4
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_embed_nodes_params.py +11 -13
- iris_vector_graph-2.0.0/tests/unit/test_embed_selector.py +174 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_embedded.py +4 -2
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_engine_deep.py +16 -21
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_engine_mocked.py +1 -1
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_engine_status.py +54 -8
- iris_vector_graph-2.0.0/tests/unit/test_error_model.py +80 -0
- iris_vector_graph-2.0.0/tests/unit/test_index_config.py +62 -0
- iris_vector_graph-2.0.0/tests/unit/test_index_handle.py +99 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_ivf_index.py +16 -1
- iris_vector_graph-2.0.0/tests/unit/test_khop_dispatch.py +47 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_module_coverage.py +4 -3
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_schema_init.py +3 -0
- iris_vector_graph-2.0.0/tests/unit/test_sync_model.py +150 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_temporal_edges.py +49 -19
- iris_vector_graph-1.99.3/iris_src/src/Graph/KG/Traversal.cls +0 -1280
- iris_vector_graph-1.99.3/iris_vector_graph/engine.py +0 -7459
- iris_vector_graph-1.99.3/iris_vector_graph/index_protocol.py +0 -66
- iris_vector_graph-1.99.3/iris_vector_graph/status.py +0 -155
- iris_vector_graph-1.99.3/tests/e2e/test_graph_json_os_e2e.py +0 -55
- iris_vector_graph-1.99.3/tests/e2e/test_shared_lkg_e2e.py +0 -53
- iris_vector_graph-1.99.3/tests/unit/test_graph_json_os_unit.py +0 -29
- iris_vector_graph-1.99.3/tests/unit/test_index_handle.py +0 -88
- iris_vector_graph-1.99.3/tests/unit/test_shared_lkg_unit.py +0 -57
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/LICENSE +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/demo_biomedical.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/demo_fraud_detection.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/demo_fraud_detection_sql.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/demo_utils.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/demo_working_system.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/__init__.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/biomedical/__init__.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/biomedical/loaders.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/biomedical/resolver.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/biomedical/types.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/biomedical_legacy/__init__.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/biomedical_legacy/biomedical_engine.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/biomedical_legacy/biomedical_schema.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/biomedical_legacy/legacy_wrapper.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/fraud/__init__.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/fraud/loaders.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/fraud/resolver.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/domains/fraud/types.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/graphQL.http +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/hybrid_vector_graph_query.cypher +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/examples/rest.http +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/Algorithms.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/ArnoAccel.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/BM25Index.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/BenchFormat.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/BenchSeeder.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/Benchmark.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/IVFIndex.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/Loader.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/MCPService.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/MCPToolSet.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/MCPTools.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/PLAIDSearch.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/PyOps.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/Service.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/Snapshot.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/Subgraph.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/Graph/KG/VecIndex.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/IVG/CypherEngine.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/IVG/Percentile.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/PageRankEmbedded.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/User.Exec.cls +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_src/src/iris/vector/graph/GraphOperators.cls +0 -0
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/_validate.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/bolt_server.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/0-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/1-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/10-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/11-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/12-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/13-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/14-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/15-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/16-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/17-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/18-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/19-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/20-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/21-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/22-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/23-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/24-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/25-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/26-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/27-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/28-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/29-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/30-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/31-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/32-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/33-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/34-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/35-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/36-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/37-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/38-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/39-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/40-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/41-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/42-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/43-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/44-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/45-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/46-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/47-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/48-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/49-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/50-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/51-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/52-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/53-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/54-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/55-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/56-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/57-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/58-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/59-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/6-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/60-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/61-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/62-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/63-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/64-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/65-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/66-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/67-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/68-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/69-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/7-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/70-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/71-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/72-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/73-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/74-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/75-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/8-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/9-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/app-b124e26129aa436b26fe.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/filter-a7c44e713bf19d31f6b2849160b1bba8.svg +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.eot +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.ttf +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff2 +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.eot +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.ttf +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff2 +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.eot +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.ttf +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff2 +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.eot +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.ttf +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff2 +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Bold.ttf +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-BoldItalic.ttf +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Italic.ttf +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Light.ttf +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-LightItalic.ttf +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Regular.ttf +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Semibold.ttf +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/OpenSans-SemiboldItalic.ttf +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/codicon.ttf +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/filter.svg +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.eot +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.svg +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.ttf +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff2 +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/group-by.svg +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.eot +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.svg +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.ttf +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.woff +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/sort.svg +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/sort1.svg +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/sort2.svg +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/streamline.eot +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/streamline.svg +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/streamline.ttf +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/fonts/streamline.woff +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/group-by-89c6aaa756bc3548cc6ab3d2be4d2862.svg +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/Favorites.mp4 +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/Keystrokes.mp4 +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/ProjectFiles.mp4 +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/ReusableFrame.mp4 +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/SidebarDB_Iinfo.png +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/Stream.png +0 -0
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/aura-logo.svg +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/books.png +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/clusters.svg +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/community.jpg +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/labeled_node.png +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/more_nodes.png +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/neo4j-favicon.ico +0 -0
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/neo4j-logo.svg +0 -0
- {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
- {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
- {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
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/one_node.png +0 -0
- {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
- {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
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/query-plan.svg +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/rel-props.png +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/relationships.png +0 -0
- {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
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/screen_editor.png +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/screen_sidebar.png +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/images/screen_stream.png +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/sort-8d6f482c21de572ceeb5ac93623e6c97.svg +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/sort1-d2dc515571213fc0ca99b0341b88e413.svg +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/assets/sort2-31050964e7eb2042325f7bcbba3d58ad.svg +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/bolt-worker-dfa551eb0861cc080843.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/cypher-editor-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/editor-455af92e7e1dc39fdbc8060f6680ab32.worker.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/index.html +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/manifest.json +0 -0
- {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
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/asciidoc.8O6YIVRy.js +0 -0
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/bash.CLAyaf9k.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/c.l4fEI10z.js +0 -0
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/csharp.ChqrQYCS.js +0 -0
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/css.B1LHiudN.js +0 -0
- {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
- {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
- {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
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/cypher-reference.gif +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/cypher.C3qdyJ5B.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/docker.CF7EZT1T.js +0 -0
- {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
- {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
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/go.FsJyBHVG.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/graphql.BlTzkzAJ.js +0 -0
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index-CY0cZcsW.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index-H7L207gH.css +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index.BpRu7Js3.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index.C74acnU7.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index.CHatcJcU.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index.D6ZMQedT.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index.DPZla5MT.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index.dzIUqrzq.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index.leyiHvaQ.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/index.qJ6VE118.js +0 -0
- {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
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/java.BBXwBh9f.js +0 -0
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/javadoc.UnquSOIj.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/javascript.CYTqTa0W.js +0 -0
- {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
- {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
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/lintWorker-QNEp56W3.js +0 -0
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/movie-model.png +0 -0
- {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
- {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
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/php.BKb6XVba.js +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/python.tCcUC3U7.js +0 -0
- {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
- {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
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/rust.CtSATZMt.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/saved-cypher.gif +0 -0
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/sql.CfOAbw6n.js +0 -0
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/table-visualization.gif +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/assets/typescript.3Tbm37mD.js +0 -0
- {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
- {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
- {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
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/favicons/favicon-16x16.png +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/favicons/favicon-194x194.png +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/favicons/favicon-32x32.png +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/favicons/favicon.ico +0 -0
- {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
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/index.html +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/preview/manifest.json +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/ui-libs-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/browser_static/vendor-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/capabilities.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cli.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/__init__.py +0 -0
- {iris_vector_graph-1.99.3/tests/contract → iris_vector_graph-2.0.0/iris_vector_graph/cypher/algorithms}/__init__.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/algorithms/paths.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/aql/__init__.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/aql/ast.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/aql/lexer.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/aql/parser.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/aql/translator.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/ast.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/lexer.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/cypher/parser.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/dbapi_utils.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/embedded.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/fhir_bridge.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/fusion.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/gql/__init__.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/gql/constants.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/gql/engine.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/gql/pooling.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/gql/resolvers.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/gql/schema.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/models.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/operators.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/py.typed +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/result.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/sdk.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/security.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/store_protocol.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/stores/__init__.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/text_search.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/utils.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/iris_vector_graph/vector_utils.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/fhir_bridges.sql +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/fraud_sample_data.sql +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/globals_schema.sql +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/graph_path_globals.sql +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/graph_walk_tvf.sql +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/migrations/000_base_schema_iris.sql +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/migrations/001_add_nodepk_table.sql +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/migrations/001_rollback_nodepk.sql +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/migrations/002_add_fk_constraints.sql +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/operators.sql +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/operators_fixed.sql +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/procedures/kg_PageRank.sql +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/rdf_reifications.sql +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/sql/schema.sql +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/TESTING.md +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmark_parser.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/README.md +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/bench.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/bench_utils.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/benchmark_neo4j.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/bfs_benchmark.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/establish_baseline.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/graph_gen.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/ic2_profile.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/iris_baseline_run.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/iris_os_run.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/ldbc_full_loader.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/load_neo4j.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/benchmarks/synthetic_baseline.csv +0 -0
- {iris_vector_graph-1.99.3/tests/integration → iris_vector_graph-2.0.0/tests/contract}/__init__.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/contract/test_cypher_api.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/contract/test_cypher_api_errors.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/contract/test_graphql_queries.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/contract/test_graphql_schema.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/contract/test_ppr_api.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/curl_suite.sh +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/__init__.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/conftest.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/fixtures/__init__.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/fixtures/centrality_graphs.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/fixtures/community_graphs.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_approx_count_distinct.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_aql_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_biomedical_demo.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_biomedical_ui.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_communities_perf.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_cypher_coerce_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_cypher_gaps_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_cypher_sprints_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_cypher_vector_search.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_cypher_vl_path_bfs.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_embed_queue_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_embedded_wgproto_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_execution_contexts.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_execution_contexts_new.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_fhir_bridges_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_fraud_demo.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_fraud_ui.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_gql_autogen_startup.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_gql_cypher_passthrough.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_gql_node_queries.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_gql_semantic_search.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_gql_traversal.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_graph_kernels_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_hla_kg_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_ic13_shortest_path.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_ic3_exact_count.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_index_protocol.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_introspection_api.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_ivf_insert.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_large_output_chunked.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_lazy_kg_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_lazy_node_resolution.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_multi_query_engine_platform.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_named_paths_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_nkg_index_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_operator_wiring_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_pattern_comprehension_reduce.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_plaid.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_plaid_search_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_ppr_cls_fast_path.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_ppr_guided_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_procedure_installation.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_reification_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_schema_procedures_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_store_injection_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_streaming_bfs.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_stress_api.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_stress_ingest.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_stress_multi_context.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_stress_search.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_stress_setup.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_stress_traversal.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_subgraph_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_subquery_call_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_temporal_store_e2e.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_untested_methods.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/e2e/test_vecindex_e2e.py +0 -0
- {iris_vector_graph-1.99.3/tests/integration/gql → iris_vector_graph-2.0.0/tests/integration}/__init__.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/conftest.py +0 -0
- {iris_vector_graph-1.99.3/tests/perf → iris_vector_graph-2.0.0/tests/integration/gql}/__init__.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/gql/test_graphql_mutations.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/gql/test_graphql_nested_queries.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/gql/test_graphql_queries.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/gql/test_graphql_vector_search.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_cls_layer.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_cypher_advanced.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_cypher_enhancements.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_cypher_multi_type.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_cypher_rd.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_cypher_rel_vars.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_cypher_single_type.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_cypher_untyped.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_cypher_vector_search.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_embeddings_api.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_fastapi_graphql.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_fhir_bridges_integration.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_named_paths_integration.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_nodepk_advanced_benchmarks.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_nodepk_constraints.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_nodepk_graph_analytics.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_nodepk_migration.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_nodepk_performance.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_nodepk_production_scale.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_objectscript_classes.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_pagerank_sql_optimization.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_reification_integration.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_schema_migration.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_stored_procedure_install.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/integration/test_subquery_call_integration.py +0 -0
- {iris_vector_graph-1.99.3/tests/unit/cypher → iris_vector_graph-2.0.0/tests/perf}/__init__.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/perf/test_leiden_four_way.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/performance/conftest.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/performance/scale_benchmark.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/performance/test_ppr_stress.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/performance/test_stress_v1_5.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/run_all_tests.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/test_iris_rest_api.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/test_networkx_loader.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/test_performance_benchmarks.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/test_pyops_vector_conversion.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/test_python_operators.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/test_python_sdk.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/test_schema_validation.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/test_sql_queries.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/python/test_vector_functions.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/cypher/test_lexer.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/cypher/test_lexer_advanced.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/cypher/test_parser.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/cypher/test_parser_advanced.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_aql_lexer.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_aql_parser.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_aql_translator.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_arno_bridge.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_batch_mutations.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_bm25_index.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_bolt_server.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_centrality_translator.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_centrality_unit.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cls_deployment.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_communities_translator.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_communities_unit.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_coverage_boost.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_benchmark.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_benchmark_scale.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_case_when.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_e2e_new_features.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_functions.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_parser.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_posos_bugs.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_procedures.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_translator.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_cypher_union_exists.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_embedded_wgproto.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_engine_dimension_fix.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_engine_embeddings.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_fhir_bridge.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_fhir_bridges.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_get_nodes.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_graph_kernels.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_graphql_dataloader.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_index_protocol.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_ingest_formats.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_introspection_api.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_ivgresult.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_lazy_kg.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_named_graphs.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_named_paths.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_operators_coverage.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_operators_wiring.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_plaid_search.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_ppr_guided_subgraph.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_reification.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_retrieve_and_vector_distance.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_schema_procedures.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_shortest_path.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_snapshot.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_sql_splitter.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_sql_table_bridge.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_store_protocol.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_subgraph.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_subquery_call.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_supporting_modules.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_temporal_cypher.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_translator_coverage.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_unified_edge_store.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_validation.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_vector_search_routing.py +0 -0
- {iris_vector_graph-1.99.3 → iris_vector_graph-2.0.0}/tests/unit/test_weighted_shortest_path.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iris-vector-graph
|
|
3
|
-
Version:
|
|
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
|
|
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 (
|
|
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
|
|
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
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
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
|
-
|
|
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
|
-
|
|
828
|
+
---
|
|
829
|
+
|
|
830
|
+
### Algorithm Selection Guide
|
|
692
831
|
|
|
693
|
-
|
|
694
|
-
|
|
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
|
-
|
|
697
|
-
subgraph = ops.kg_SUBGRAPH(seed_ids=["service:auth"], k_hops=3)
|
|
844
|
+
---
|
|
698
845
|
|
|
699
|
-
|
|
700
|
-
|
|
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
|
-
#
|
|
703
|
-
|
|
704
|
-
|
|
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
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
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
|
-
|
|
790
|
-
|
|
791
|
-
|
|
|
792
|
-
|
|
793
|
-
|
|
|
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 |
|
|
965
|
+
| BM25Index search (174 nodes, 3-term) | 0.3ms | `$Order` posting-list |
|
|
801
966
|
| PPR (10K nodes) | 62ms | Pure ObjectScript |
|
|
802
|
-
|
|
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
|
-
- [
|
|
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.
|