iris-vector-graph 2.2.0__tar.gz → 2.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/PKG-INFO +73 -32
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/README.md +68 -31
- iris_vector_graph-2.3.1/examples/demo_rdf_semantic_layer.py +335 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/EdgeScan.cls +24 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/GraphIndex.cls +8 -4
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/Loader.cls +8 -1
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/NKGAccelAdjacency.cls +7 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/NKGAccelTraversal.cls +8 -0
- iris_vector_graph-2.3.1/iris_vector_graph/_engine/_rdf_utils.py +221 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/_engine/admin.py +93 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/_engine/fhir.py +15 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/_engine/nodes_edges.py +11 -0
- iris_vector_graph-2.3.1/iris_vector_graph/_engine/prov.py +267 -0
- iris_vector_graph-2.3.1/iris_vector_graph/_engine/rdf_export.py +231 -0
- iris_vector_graph-2.3.1/iris_vector_graph/_engine/shacl.py +238 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/_engine/temporal.py +11 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/engine.py +4 -1
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/schema.py +6 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/status.py +34 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/pyproject.toml +6 -1
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/TESTING.md +29 -19
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/benchmarks/README.md +11 -8
- iris_vector_graph-2.3.1/tests/integration/test_index_consistency_e2e.py +150 -0
- iris_vector_graph-2.3.1/tests/integration/test_rdf_semantic_layer_e2e.py +326 -0
- iris_vector_graph-2.3.1/tests/unit/test_drift_detector.py +146 -0
- iris_vector_graph-2.3.1/tests/unit/test_prov_export.py +331 -0
- iris_vector_graph-2.3.1/tests/unit/test_rdf_coverage_boost.py +301 -0
- iris_vector_graph-2.3.1/tests/unit/test_rdf_export.py +366 -0
- iris_vector_graph-2.3.1/tests/unit/test_shacl_validation.py +319 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/.gitignore +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/LICENSE +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/demo_biomedical.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/demo_fraud_detection.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/demo_fraud_detection_sql.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/demo_utils.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/demo_working_system.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/domains/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/domains/biomedical/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/domains/biomedical/loaders.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/domains/biomedical/resolver.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/domains/biomedical/types.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/domains/biomedical_legacy/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/domains/biomedical_legacy/biomedical_engine.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/domains/biomedical_legacy/biomedical_schema.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/domains/biomedical_legacy/legacy_wrapper.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/domains/fraud/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/domains/fraud/loaders.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/domains/fraud/resolver.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/domains/fraud/types.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/graphQL.http +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/hybrid_vector_graph_query.cypher +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/examples/rest.http +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/Algorithms.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/ArnoAccel.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/BM25Index.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/BenchFormat.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/BenchSeeder.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/Benchmark.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/Centrality.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/Communities.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/Edge.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/EmbedQueue.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/IVFIndex.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/MCPService.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/MCPToolSet.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/MCPTools.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/Meta.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/NKGAccel.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/NKGAccelCentrality.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/NKGAccelLoader.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/PLAIDSearch.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/PageRank.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/PyOps.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/Service.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/Snapshot.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/Subgraph.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/TemporalIndex.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/TestEdge.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/Traversal.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/TraversalBFS.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/TraversalBuild.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/TraversalKHop.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/TraversalPaths.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/Graph/KG/VecIndex.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/IVG/CypherEngine.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/IVG/Percentile.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/PageRankEmbedded.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/User.Exec.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_src/src/iris/vector/graph/GraphOperators.cls +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/_engine/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/_engine/algorithms.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/_engine/embeddings.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/_engine/query.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/_engine/query.py,cover +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/_engine/schema.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/_engine/snapshot.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/_engine/snapshot.py,cover +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/_engine/vector.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/_validate.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/api_auth.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/bolt_server.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/0-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/1-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/10-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/11-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/12-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/13-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/14-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/15-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/16-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/17-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/18-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/19-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/20-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/21-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/22-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/23-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/24-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/25-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/26-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/27-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/28-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/29-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/30-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/31-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/32-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/33-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/34-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/35-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/36-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/37-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/38-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/39-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/40-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/41-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/42-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/43-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/44-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/45-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/46-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/47-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/48-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/49-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/50-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/51-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/52-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/53-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/54-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/55-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/56-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/57-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/58-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/59-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/6-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/60-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/61-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/62-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/63-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/64-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/65-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/66-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/67-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/68-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/69-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/7-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/70-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/71-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/72-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/73-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/74-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/75-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/8-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/9-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/app-b124e26129aa436b26fe.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/filter-a7c44e713bf19d31f6b2849160b1bba8.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.eot +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.ttf +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Bold.woff2 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.eot +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.ttf +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Light.woff2 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.eot +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.ttf +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Medium.woff2 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.eot +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.ttf +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/FiraCode-Regular.woff2 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Bold.ttf +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-BoldItalic.ttf +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Italic.ttf +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Light.ttf +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-LightItalic.ttf +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Regular.ttf +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-Semibold.ttf +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/OpenSans-SemiboldItalic.ttf +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/codicon.ttf +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/filter.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.eot +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.ttf +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/fontawesome-webfont.woff2 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/group-by.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.eot +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.ttf +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/neo4j-world.woff +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/sort.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/sort1.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/sort2.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/streamline.eot +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/streamline.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/streamline.ttf +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/fonts/streamline.woff +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/group-by-89c6aaa756bc3548cc6ab3d2be4d2862.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/Favorites.mp4 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/Keystrokes.mp4 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/ProjectFiles.mp4 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/ReusableFrame.mp4 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/SidebarDB_Iinfo.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/Stream.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/aura-logo-inverted.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/aura-logo.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/books.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/clusters.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/community.jpg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-144x144.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-192x192.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-36x36.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-48x48.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-72x72.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/android-icon-96x96.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-114x114.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-120x120.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-144x144.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-152x152.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-180x180.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-57x57.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-60x60.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-72x72.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-76x76.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon-precomposed.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/apple-icon.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/browserconfig.xml +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-16x16.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-32x32.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/favicon-96x96.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/favicon.ico +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/manifest.json +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-144x144.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-150x150.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-310x310.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/ms-icon-70x70.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser-canary.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/device-icons/neo4j-browser.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/labeled_node.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/more_nodes.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/neo4j-favicon.ico +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/neo4j-logo-inverted.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/neo4j-logo.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/northwind/customer-orders.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/northwind/order-graph.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/northwind/product-category-supplier.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/northwind/product-graph.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/one_node.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/query-plan-operator-cost.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/query-plan-operator-details.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/query-plan-operator-rows.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/query-plan.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/rel-props.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/relationships.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/screen_code_frame.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/screen_cypher_warn.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/screen_editor.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/screen_sidebar.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/images/screen_stream.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/sort-8d6f482c21de572ceeb5ac93623e6c97.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/sort1-d2dc515571213fc0ca99b0341b88e413.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/assets/sort2-31050964e7eb2042325f7bcbba3d58ad.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/bolt-worker-dfa551eb0861cc080843.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/cypher-editor-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/editor-455af92e7e1dc39fdbc8060f6680ab32.worker.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/index.html +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/manifest.json +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/CoseBilkentLayout.worker-FEt6e_rV.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/HierarchicalLayout.worker-O6WHYssL.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/asciidoc.8O6YIVRy.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/auto-track.BlKugDvg.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/bash.CLAyaf9k.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/c.l4fEI10z.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/connect-icon-Br2hQy_e.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/csharp.ChqrQYCS.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/css-extras.Bi-4v17d.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/css.B1LHiudN.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/cypher-editor-auto-completions.gif +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/cypher-editor-inline-help.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/cypher-editor-linting.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/cypher-editor-syntax-highlighting.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/cypher-reference.gif +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/cypher.C3qdyJ5B.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/docker.CF7EZT1T.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/fira-code-400-regular-normal-BzypJxJk.woff2 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/fira-code-500-medium-normal-CRWzqcWa.woff2 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/fira-code-700-bold-normal-hUmNV4O0.woff2 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/go.FsJyBHVG.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/graphql.BlTzkzAJ.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/history-quick-search.gif +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/index-CY0cZcsW.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/index-H7L207gH.css +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/index.BpRu7Js3.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/index.C74acnU7.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/index.CHatcJcU.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/index.D6ZMQedT.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/index.DPZla5MT.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/index.dzIUqrzq.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/index.leyiHvaQ.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/index.qJ6VE118.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/index.umd.B9yhfa5Y.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/is-plan-event-enabled.DeNtQvA5.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/java.BBXwBh9f.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/java.CQ1iJ0-D.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/javadoc.UnquSOIj.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/javascript.CYTqTa0W.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/json.BIkJg-Cj.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/jsx.Cy_hP1z6.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/kotlin.D_6l0VkM.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/lintWorker-QNEp56W3.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/logo-aura-white-DCfUnkCN.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/movie-model.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/movies-active-B2SzHIc1.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/neo4j-logo-active-CieUxroh.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/patterned-banner-background-C_nO-Yn8.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/php.BKb6XVba.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/plan-graph-worker-s17nF19Q.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/public-sans-300-light-normal-CG9e8kLa.woff2 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-italic-D9FlViiB.woff2 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/public-sans-400-regular-normal-D4F9yfFi.woff2 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/public-sans-500-medium-normal-ChZcBEnJ.woff2 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/public-sans-600-semi-bold-normal-Ck6TyfRI.woff2 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/public-sans-700-bold-normal-CGjRhW-d.woff2 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/python.tCcUC3U7.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/query-fundamentals-active-jvTJU1K2.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/query.snake-frame.DmvXOQIM.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/regex.C_VuIVtC.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/rust.CtSATZMt.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/saved-cypher.gif +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/scalable-graph-visualization.gif +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/sql.CfOAbw6n.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/syne-neo-500-medium-normal-A5GXmYUf.woff2 +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/table-visualization.gif +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/typescript.3Tbm37mD.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/xml-doc.h79Tu9Aw.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/assets/yaml.B-Jvd59g.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/favicons/android-chrome-192x192.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/favicons/apple-touch-icon.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/favicons/favicon-16x16.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/favicons/favicon-194x194.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/favicons/favicon-32x32.png +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/favicons/favicon.ico +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/favicons/safari-pinned-tab.svg +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/index.html +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/preview/manifest.json +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/ui-libs-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/browser_static/vendor-b124e26129aa436b26fe.bundle.js +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/bulk_loader.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/capabilities.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/cli.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/cypher/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/cypher/algorithms/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/cypher/algorithms/paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/cypher/aql/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/cypher/aql/ast.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/cypher/aql/lexer.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/cypher/aql/parser.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/cypher/aql/translator.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/cypher/ast.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/cypher/lexer.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/cypher/parser.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/cypher/translator.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/cypher/translator.py,cover +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/cypher_api.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/dbapi_utils.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/embed_selector.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/embedded.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/errors.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/fhir_bridge.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/fusion.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/gql/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/gql/constants.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/gql/engine.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/gql/pooling.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/gql/resolvers.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/gql/schema.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/index_config.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/index_protocol.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/models.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/operators.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/py.typed +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/result.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/sdk.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/security.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/store_protocol.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/stores/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/stores/arno_bridge.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/stores/iris_sql_store.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/stores/lazy_kg.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/text_search.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/utils.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/iris_vector_graph/vector_utils.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/sql/fhir_bridges.sql +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/sql/fraud_sample_data.sql +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/sql/globals_schema.sql +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/sql/graph_path_globals.sql +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/sql/graph_walk_tvf.sql +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/sql/migrations/000_base_schema_iris.sql +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/sql/migrations/001_add_nodepk_table.sql +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/sql/migrations/001_rollback_nodepk.sql +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/sql/migrations/002_add_fk_constraints.sql +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/sql/operators.sql +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/sql/operators_fixed.sql +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/sql/procedures/kg_PageRank.sql +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/sql/rdf_reifications.sql +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/sql/schema.sql +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/benchmark_parser.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/benchmarks/bench.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/benchmarks/bench_193_full.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/benchmarks/bench_utils.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/benchmarks/benchmark_neo4j.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/benchmarks/bfs_benchmark.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/benchmarks/establish_baseline.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/benchmarks/graph_gen.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/benchmarks/ic2_profile.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/benchmarks/iris_baseline_run.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/benchmarks/iris_os_run.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/benchmarks/ldbc_full_loader.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/benchmarks/load_neo4j.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/benchmarks/synthetic_baseline.csv +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/conftest.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/contract/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/contract/conftest.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/contract/test_cypher_api.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/contract/test_cypher_api_errors.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/contract/test_graphql_queries.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/contract/test_graphql_schema.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/contract/test_ppr_api.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/curl_suite.sh +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/conftest.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/fixtures/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/fixtures/centrality_graphs.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/fixtures/community_graphs.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_analytics_dispatch.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_approx_count_distinct.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_aql_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_arno_bfs_global.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_arno_bfs_unified.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_betweenness_neighborhood_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_betweenness_os_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_biomedical_demo.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_biomedical_ui.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_centrality_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_closeness_os_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_communities_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_communities_perf.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_cypher_coerce_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_cypher_gaps_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_cypher_sprints_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_cypher_vector_search.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_cypher_vl_path_bfs.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_edge_weights.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_eigenvector_os_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_embed_queue_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_embedded_wgproto_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_execution_contexts.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_execution_contexts_new.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_fhir_bridges_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_fraud_demo.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_fraud_ui.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_gql_autogen_startup.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_gql_cypher_passthrough.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_gql_node_queries.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_gql_semantic_search.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_gql_traversal.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_graph_kernels_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_hla_kg_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_ic13_shortest_path.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_ic3_exact_count.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_igraph_fastpath_parity.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_index_protocol.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_introspection_api.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_ivf_insert.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_large_output_chunked.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_lazy_kg_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_lazy_node_resolution.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_msbfs_closeness.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_multi_query_engine_platform.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_named_paths_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_nkg_index_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_objectscript_split_resolution.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_operator_wiring_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_pattern_comprehension_reduce.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_plaid.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_plaid_search_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_ppr_cls_fast_path.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_ppr_guided_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_procedure_installation.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_reification_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_schema_procedures_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_sdk_ergonomics_178_180_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_store_injection_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_streaming_bfs.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_stress_api.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_stress_ingest.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_stress_multi_context.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_stress_search.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_stress_setup.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_stress_traversal.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_subgraph_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_subquery_call_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_temporal_store_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_unified_index_api.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_untested_methods.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/e2e/test_vecindex_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/conftest.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/gql/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/gql/test_graphql_mutations.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/gql/test_graphql_nested_queries.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/gql/test_graphql_queries.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/gql/test_graphql_vector_search.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_196_bug_fixes.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_admin_introspection.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_algorithm_branches.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_algorithms_deep_coverage.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_algorithms_error_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_algorithms_integration.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_algorithms_new_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_api_completeness.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_arno_bridge_mock_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_arno_bridge_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_arno_store_layer.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_bidirectional_ppr.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_bulk_load_session.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_bulk_loader_live.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_cls_layer.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_coverage_final_push.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_coverage_push_final.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_cypher_advanced.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_cypher_api_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_cypher_api_exception_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_cypher_enhancements.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_cypher_multi_type.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_cypher_rd.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_cypher_rel_vars.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_cypher_single_type.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_cypher_untyped.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_cypher_vector_search.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_diabolical_qa.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_doc_claims.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_embeddings_api.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_embeddings_integration.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_embeddings_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_engine_misc_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_engine_utils_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_fastapi_graphql.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_fhir_bridges_integration.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_fhir_event_sidecar.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_fusion_dbapi_bulk.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_gql_resolvers_live.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_lazykg_algorithms.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_lazykg_fallback_forced.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_named_paths_integration.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_nodepk_advanced_benchmarks.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_nodepk_constraints.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_nodepk_graph_analytics.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_nodepk_migration.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_nodepk_performance.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_nodepk_production_scale.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_nodes_edges_and_algo_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_nodes_edges_deep.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_objectscript_classes.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_pagerank_sql_optimization.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_query_deep.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_query_engine_branches.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_query_engine_special.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_query_fastpaths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_query_paths_deep.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_query_special_patterns.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_reification_integration.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_remaining_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_schema_and_engine_procs.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_schema_deep.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_schema_migration.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_snapshot_deep.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_snapshot_import_export.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_snapshot_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_sql_parameterization.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_sql_store_direct.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_sql_store_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_store_algorithms.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_store_bfs_deep.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_store_exception_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_store_write_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_stored_procedure_install.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_subquery_call_integration.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_vector_advanced_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_vector_engine_deep.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_vector_index_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_vector_index_paths2.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_vector_optimizer_live.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/integration/test_vector_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/perf/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/perf/test_betweenness_vs_gds.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/perf/test_head_to_head.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/perf/test_leiden_four_way.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/performance/conftest.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/performance/scale_benchmark.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/performance/test_ppr_stress.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/performance/test_stress_v1_5.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/python/run_all_tests.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/python/test_iris_rest_api.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/python/test_networkx_loader.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/python/test_performance_benchmarks.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/python/test_pyops_vector_conversion.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/python/test_python_operators.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/python/test_python_sdk.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/python/test_schema_validation.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/python/test_sql_queries.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/python/test_vector_functions.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/regression/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/regression/engine_api_baseline.json +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/regression/test_complexity.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/regression/test_engine_api.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/regression/test_module_size.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/regression/test_no_silent_swallow.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/test_schema_contract.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/cypher/__init__.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/cypher/test_lexer.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/cypher/test_lexer_advanced.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/cypher/test_parser.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/cypher/test_parser_advanced.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_193_bfs_nkg_fast_path.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_194_readme.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_admin_remaining.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_admin_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_algorithm_warning_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_algorithms_extended_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_algorithms_large_graph_warn.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_algorithms_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_api_security.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_aql_lexer.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_aql_parser.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_aql_translator.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_aql_translator_extra.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_arno_bridge.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_batch_mutations.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_betweenness_os_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_bfs_arno.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_bm25_index.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_bolt_relationship_encoding.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_bolt_server.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_bulk_load_session.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_bulk_loader_coverage.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_bulk_loader_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_centrality_translator.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_centrality_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_cli.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_closeness_os_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_cls_deployment.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_communities_translator.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_communities_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_concept_first_status.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_coverage_boost.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_cypher_api_admin.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_cypher_api_coverage.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_cypher_api_extra.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_cypher_benchmark.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_cypher_benchmark_scale.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_cypher_case_when.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_cypher_e2e_new_features.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_cypher_functions.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_cypher_parser.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_cypher_posos_bugs.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_cypher_procedures.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_cypher_translator.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_cypher_union_exists.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_cypher_var_length.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_cypher_vector_search.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_dbapi_utils_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_edge_embeddings.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_edgeprop_ndjson.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_embed_nodes_params.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_embed_selector.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_embed_selector_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_embedded.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_embedded_wgproto.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_embeddings_remaining.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_embeddings_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_engine_deep.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_engine_dimension_fix.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_engine_embeddings.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_engine_mocked.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_engine_status.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_engine_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_error_model.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_fhir_bridge.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_fhir_bridges.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_fhir_event_sidecar.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_gds_shims.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_get_nodes.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_gql_coverage.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_gql_edge_cases.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_gql_resolver_bodies.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_graph_kernels.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_graphql_dataloader.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_index_config.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_index_handle.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_index_protocol.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_ingest_formats.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_introspection_api.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_ivf_index.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_ivgresult.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_khop_dispatch.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_lazy_kg.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_module_coverage.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_named_graphs.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_named_paths.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_nodes_edges_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_operators_coverage.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_operators_wiring.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_parse_cache.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_plaid_search.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_ppr_guided_subgraph.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_predicate_order.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_query_extra_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_query_fastpath_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_query_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_reification.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_retrieve_and_vector_distance.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_schema_engine_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_schema_init.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_schema_procedures.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_schema_remaining.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_schema_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_sdk.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_sdk_async.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_sdk_coverage.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_shortest_path.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_snapshot.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_snapshot_restore_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_snapshot_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_sql_splitter.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_sql_store_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_sql_table_bridge.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_store_protocol.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_structural_guard.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_structural_guard_e2e.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_subgraph.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_subquery_call.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_supporting_modules.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_sync_model.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_temporal_cypher.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_temporal_edges.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_temporal_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_translator_coverage.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_translator_deep_coverage.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_translator_extended.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_translator_gaps.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_unified_edge_store.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_utilities_final.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_utils_coverage.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_validation.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_vector_search_routing.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/tests/unit/test_vector_unit.py +0 -0
- {iris_vector_graph-2.2.0 → iris_vector_graph-2.3.1}/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: 2.
|
|
3
|
+
Version: 2.3.1
|
|
4
4
|
Summary: Transactional Graph + Vector retrieval system for InterSystems IRIS with hybrid search, openCypher, and GraphQL APIs
|
|
5
5
|
Project-URL: Homepage, https://github.com/intersystems-community/iris-vector-graph
|
|
6
6
|
Project-URL: Documentation, https://github.com/intersystems-community/iris-vector-graph/tree/main/docs
|
|
@@ -63,6 +63,7 @@ Requires-Dist: networkx>=3.0; extra == 'full'
|
|
|
63
63
|
Requires-Dist: numpy>=1.24.0; extra == 'full'
|
|
64
64
|
Requires-Dist: pandas>=2.0.0; extra == 'full'
|
|
65
65
|
Requires-Dist: pydantic>=2.11.9; extra == 'full'
|
|
66
|
+
Requires-Dist: pyshacl>=0.25.0; extra == 'full'
|
|
66
67
|
Requires-Dist: python-dotenv>=1.0.0; extra == 'full'
|
|
67
68
|
Requires-Dist: python-igraph>=0.11; extra == 'full'
|
|
68
69
|
Requires-Dist: rdflib>=6.0.0; extra == 'full'
|
|
@@ -79,6 +80,9 @@ Requires-Dist: psutil>=5.9.0; extra == 'performance'
|
|
|
79
80
|
Provides-Extra: plaid
|
|
80
81
|
Requires-Dist: numpy>=1.24.0; extra == 'plaid'
|
|
81
82
|
Requires-Dist: scikit-learn>=1.3.0; extra == 'plaid'
|
|
83
|
+
Provides-Extra: rdf
|
|
84
|
+
Requires-Dist: pyshacl>=0.25.0; extra == 'rdf'
|
|
85
|
+
Requires-Dist: rdflib>=6.0.0; extra == 'rdf'
|
|
82
86
|
Provides-Extra: visualization
|
|
83
87
|
Requires-Dist: graphviz>=0.20.0; extra == 'visualization'
|
|
84
88
|
Requires-Dist: matplotlib>=3.7.0; extra == 'visualization'
|
|
@@ -143,19 +147,22 @@ print(result["rows"]) # [('Bob',)]
|
|
|
143
147
|
|
|
144
148
|
## What It Does
|
|
145
149
|
|
|
146
|
-
| Feature
|
|
147
|
-
|
|
148
|
-
| **openCypher**
|
|
149
|
-
| **Temporal property graph** | Time-windowed edges, pre-aggregated bucket analytics, O(1) window queries
|
|
150
|
-
| **Vector search**
|
|
151
|
-
| **Graph analytics**
|
|
152
|
-
| **Shortest path**
|
|
153
|
-
| **NKG fast-path**
|
|
154
|
-
| **Bulk loader**
|
|
155
|
-
| **FHIR bridge**
|
|
156
|
-
| **Bolt protocol**
|
|
157
|
-
| **Embedded Python**
|
|
158
|
-
| **IPM / ZPM**
|
|
150
|
+
| Feature | Notes |
|
|
151
|
+
| --------------------------- | ---------------------------------------------------------------------------------------------------- |
|
|
152
|
+
| **openCypher** | `MATCH`, `CREATE`, `MERGE`, `DELETE`, `WITH`, `UNWIND`, variable-length paths, subqueries |
|
|
153
|
+
| **Temporal property graph** | Time-windowed edges, pre-aggregated bucket analytics, O(1) window queries |
|
|
154
|
+
| **Vector search** | HNSW (native IRIS VECTOR), IVFFlat, PLAID multi-vector, BM25 full-text |
|
|
155
|
+
| **Graph analytics** | Betweenness, closeness, eigenvector, degree centrality; Leiden community detection; SCC; k-core; PPR |
|
|
156
|
+
| **Shortest path** | Unweighted BFS (`shortestPath`), weighted Dijkstra (`ivg.shortestPath.weighted`) |
|
|
157
|
+
| **NKG fast-path** | `[*1..N]` Cypher patterns route to integer-keyed `^NKG` index, bypassing SQL translation |
|
|
158
|
+
| **Bulk loader** | 190–312K edges/s direct `^KG` write; incremental `^NKG` rebuild |
|
|
159
|
+
| **FHIR bridge** | ICD-10 → knowledge graph mapping via FHIR R4 |
|
|
160
|
+
| **Bolt protocol** | neo4j-driver compatible wire protocol (TCP + WebSocket) |
|
|
161
|
+
| **Embedded Python** | Graph algorithms run server-side via IRIS embedded Python (igraph, leidenalg) |
|
|
162
|
+
| **IPM / ZPM** | ObjectScript-only install via InterSystems Package Manager |
|
|
163
|
+
| **RDF export** | `export_rdf()` — full or filtered graph to Turtle/NT/NQuads/JSON-LD |
|
|
164
|
+
| **SHACL validation** | `validate_shacl()` — SHACL Core via PySHACL; `ValidationReport` dataclass |
|
|
165
|
+
| **PROV-O** | `prov_export()` — temporal edges as W3C PROV-O provenance graph |
|
|
159
166
|
|
|
160
167
|
---
|
|
161
168
|
|
|
@@ -165,16 +172,16 @@ Hardware: M3 Ultra, Community IRIS 2026.1, ARM64 Docker.
|
|
|
165
172
|
|
|
166
173
|
### Query latency
|
|
167
174
|
|
|
168
|
-
| Query
|
|
169
|
-
|
|
170
|
-
| 1-hop neighbor lookup
|
|
171
|
-
| NKG fast-path `[*1..N]`, hops 2–5
|
|
172
|
-
| IC3 2-hop with LIMIT (LDBC SF10)
|
|
173
|
-
| IC13 shortest path (LDBC SF10)
|
|
174
|
-
| HNSW vector search (768-dim)
|
|
175
|
-
| BM25 full-text (174 nodes, 3-term)
|
|
176
|
-
| Temporal window query
|
|
177
|
-
| Pre-aggregated bucket (24hr/288 buckets) | 0.16ms
|
|
175
|
+
| Query | Latency | Notes |
|
|
176
|
+
| ---------------------------------------- | --------- | -------------------------------------- |
|
|
177
|
+
| 1-hop neighbor lookup | ~0.4ms | `$Order` on `^KG` |
|
|
178
|
+
| NKG fast-path `[*1..N]`, hops 2–5 | 1.4–2.0ms | **4.9–13.4x faster than SQL path** |
|
|
179
|
+
| IC3 2-hop with LIMIT (LDBC SF10) | 1.2ms | 3.5x faster than GES/GraphScope |
|
|
180
|
+
| IC13 shortest path (LDBC SF10) | 2.1–3.2ms | Comparable to GES at SF1000 on cluster |
|
|
181
|
+
| HNSW vector search (768-dim) | 1.7ms | Native IRIS VECTOR index |
|
|
182
|
+
| BM25 full-text (174 nodes, 3-term) | 0.3ms | Posting-list `$Order` |
|
|
183
|
+
| Temporal window query | 0.1ms | O(results), B-tree |
|
|
184
|
+
| Pre-aggregated bucket (24hr/288 buckets) | 0.16ms | O(buckets), not O(edges) |
|
|
178
185
|
|
|
179
186
|
### Algorithm comparison (vs Neo4j GDS and networkx)
|
|
180
187
|
|
|
@@ -238,16 +245,50 @@ Full schema and ObjectScript class reference: [docs/architecture/ARCHITECTURE.md
|
|
|
238
245
|
|
|
239
246
|
---
|
|
240
247
|
|
|
248
|
+
## Semantic Layer (RDF / SHACL / PROV-O)
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
pip install 'iris-vector-graph[rdf]'
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
```python
|
|
255
|
+
# Export graph as Turtle (full or filtered)
|
|
256
|
+
engine.export_rdf("kg.ttl")
|
|
257
|
+
engine.export_rdf("proteins.nt", format="nt", label_filter=["Protein", "Disease"])
|
|
258
|
+
engine.export_rdf_from_cypher("MATCH (p:Patient)-[r]->(e) RETURN p,r,e", "patients.ttl")
|
|
259
|
+
|
|
260
|
+
# Persistent namespace prefixes
|
|
261
|
+
engine.register_namespace("fhir", "http://hl7.org/fhir/")
|
|
262
|
+
|
|
263
|
+
# SHACL Core validation
|
|
264
|
+
report = engine.validate_shacl("shapes/patient.ttl")
|
|
265
|
+
if not report.conforms:
|
|
266
|
+
for v in report.violations:
|
|
267
|
+
print(f"{v.focus_node}: {v.message} [{v.severity}]")
|
|
268
|
+
|
|
269
|
+
# PROV-O temporal provenance
|
|
270
|
+
engine.prov_export("provenance.ttl", ts_start=1700000000)
|
|
271
|
+
prov = engine.prov_as_dict(edge_id=42)
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
Every write to ivg is stored as W3C-aligned SPO triples (`rdf_edges`, `rdf_props`, `rdf_labels`)
|
|
275
|
+
with OWL 2 RL inference, named graph support, and RDF-star style edge qualifiers.
|
|
276
|
+
See [docs/SEMANTIC_LAYER.md](docs/SEMANTIC_LAYER.md) for the full guide: format
|
|
277
|
+
reference, SHACL shape writing, PROV-O vocabulary mapping, and integration patterns.
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
241
281
|
## Documentation
|
|
242
282
|
|
|
243
|
-
| Document
|
|
244
|
-
|
|
245
|
-
| [User Guide](docs/USER_GUIDE.md)
|
|
246
|
-
| [Admin Guide](docs/ADMIN_GUIDE.md)
|
|
247
|
-
| [Admin API](docs/ADMIN_API.md)
|
|
248
|
-
| [Benchmarks](docs/performance/BENCHMARKS.md)
|
|
249
|
-
| [Graph Algorithms](docs/performance/GRAPH_ALGORITHMS.md) | Centrality and community detection benchmark details
|
|
250
|
-
| [
|
|
283
|
+
| Document | Contents |
|
|
284
|
+
| -------------------------------------------------------- | ----------------------------------------------------------- |
|
|
285
|
+
| [User Guide](docs/USER_GUIDE.md) | Cypher examples, temporal edges, vector search, bulk loader |
|
|
286
|
+
| [Admin Guide](docs/ADMIN_GUIDE.md) | Container setup, schema management, index rebuilding |
|
|
287
|
+
| [Admin API](docs/ADMIN_API.md) | Python API reference for engine administration |
|
|
288
|
+
| [Benchmarks](docs/performance/BENCHMARKS.md) | Full methodology, LDBC SNB results, ingestion throughput |
|
|
289
|
+
| [Graph Algorithms](docs/performance/GRAPH_ALGORITHMS.md) | Centrality and community detection benchmark details |
|
|
290
|
+
| [Semantic Layer](docs/SEMANTIC_LAYER.md) | RDF export, SHACL validation, PROV-O provenance |
|
|
291
|
+
| [Changelog](CHANGELOG.md) | Full version history |
|
|
251
292
|
|
|
252
293
|
---
|
|
253
294
|
|
|
@@ -56,19 +56,22 @@ print(result["rows"]) # [('Bob',)]
|
|
|
56
56
|
|
|
57
57
|
## What It Does
|
|
58
58
|
|
|
59
|
-
| Feature
|
|
60
|
-
|
|
61
|
-
| **openCypher**
|
|
62
|
-
| **Temporal property graph** | Time-windowed edges, pre-aggregated bucket analytics, O(1) window queries
|
|
63
|
-
| **Vector search**
|
|
64
|
-
| **Graph analytics**
|
|
65
|
-
| **Shortest path**
|
|
66
|
-
| **NKG fast-path**
|
|
67
|
-
| **Bulk loader**
|
|
68
|
-
| **FHIR bridge**
|
|
69
|
-
| **Bolt protocol**
|
|
70
|
-
| **Embedded Python**
|
|
71
|
-
| **IPM / ZPM**
|
|
59
|
+
| Feature | Notes |
|
|
60
|
+
| --------------------------- | ---------------------------------------------------------------------------------------------------- |
|
|
61
|
+
| **openCypher** | `MATCH`, `CREATE`, `MERGE`, `DELETE`, `WITH`, `UNWIND`, variable-length paths, subqueries |
|
|
62
|
+
| **Temporal property graph** | Time-windowed edges, pre-aggregated bucket analytics, O(1) window queries |
|
|
63
|
+
| **Vector search** | HNSW (native IRIS VECTOR), IVFFlat, PLAID multi-vector, BM25 full-text |
|
|
64
|
+
| **Graph analytics** | Betweenness, closeness, eigenvector, degree centrality; Leiden community detection; SCC; k-core; PPR |
|
|
65
|
+
| **Shortest path** | Unweighted BFS (`shortestPath`), weighted Dijkstra (`ivg.shortestPath.weighted`) |
|
|
66
|
+
| **NKG fast-path** | `[*1..N]` Cypher patterns route to integer-keyed `^NKG` index, bypassing SQL translation |
|
|
67
|
+
| **Bulk loader** | 190–312K edges/s direct `^KG` write; incremental `^NKG` rebuild |
|
|
68
|
+
| **FHIR bridge** | ICD-10 → knowledge graph mapping via FHIR R4 |
|
|
69
|
+
| **Bolt protocol** | neo4j-driver compatible wire protocol (TCP + WebSocket) |
|
|
70
|
+
| **Embedded Python** | Graph algorithms run server-side via IRIS embedded Python (igraph, leidenalg) |
|
|
71
|
+
| **IPM / ZPM** | ObjectScript-only install via InterSystems Package Manager |
|
|
72
|
+
| **RDF export** | `export_rdf()` — full or filtered graph to Turtle/NT/NQuads/JSON-LD |
|
|
73
|
+
| **SHACL validation** | `validate_shacl()` — SHACL Core via PySHACL; `ValidationReport` dataclass |
|
|
74
|
+
| **PROV-O** | `prov_export()` — temporal edges as W3C PROV-O provenance graph |
|
|
72
75
|
|
|
73
76
|
---
|
|
74
77
|
|
|
@@ -78,16 +81,16 @@ Hardware: M3 Ultra, Community IRIS 2026.1, ARM64 Docker.
|
|
|
78
81
|
|
|
79
82
|
### Query latency
|
|
80
83
|
|
|
81
|
-
| Query
|
|
82
|
-
|
|
83
|
-
| 1-hop neighbor lookup
|
|
84
|
-
| NKG fast-path `[*1..N]`, hops 2–5
|
|
85
|
-
| IC3 2-hop with LIMIT (LDBC SF10)
|
|
86
|
-
| IC13 shortest path (LDBC SF10)
|
|
87
|
-
| HNSW vector search (768-dim)
|
|
88
|
-
| BM25 full-text (174 nodes, 3-term)
|
|
89
|
-
| Temporal window query
|
|
90
|
-
| Pre-aggregated bucket (24hr/288 buckets) | 0.16ms
|
|
84
|
+
| Query | Latency | Notes |
|
|
85
|
+
| ---------------------------------------- | --------- | -------------------------------------- |
|
|
86
|
+
| 1-hop neighbor lookup | ~0.4ms | `$Order` on `^KG` |
|
|
87
|
+
| NKG fast-path `[*1..N]`, hops 2–5 | 1.4–2.0ms | **4.9–13.4x faster than SQL path** |
|
|
88
|
+
| IC3 2-hop with LIMIT (LDBC SF10) | 1.2ms | 3.5x faster than GES/GraphScope |
|
|
89
|
+
| IC13 shortest path (LDBC SF10) | 2.1–3.2ms | Comparable to GES at SF1000 on cluster |
|
|
90
|
+
| HNSW vector search (768-dim) | 1.7ms | Native IRIS VECTOR index |
|
|
91
|
+
| BM25 full-text (174 nodes, 3-term) | 0.3ms | Posting-list `$Order` |
|
|
92
|
+
| Temporal window query | 0.1ms | O(results), B-tree |
|
|
93
|
+
| Pre-aggregated bucket (24hr/288 buckets) | 0.16ms | O(buckets), not O(edges) |
|
|
91
94
|
|
|
92
95
|
### Algorithm comparison (vs Neo4j GDS and networkx)
|
|
93
96
|
|
|
@@ -151,16 +154,50 @@ Full schema and ObjectScript class reference: [docs/architecture/ARCHITECTURE.md
|
|
|
151
154
|
|
|
152
155
|
---
|
|
153
156
|
|
|
157
|
+
## Semantic Layer (RDF / SHACL / PROV-O)
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
pip install 'iris-vector-graph[rdf]'
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
```python
|
|
164
|
+
# Export graph as Turtle (full or filtered)
|
|
165
|
+
engine.export_rdf("kg.ttl")
|
|
166
|
+
engine.export_rdf("proteins.nt", format="nt", label_filter=["Protein", "Disease"])
|
|
167
|
+
engine.export_rdf_from_cypher("MATCH (p:Patient)-[r]->(e) RETURN p,r,e", "patients.ttl")
|
|
168
|
+
|
|
169
|
+
# Persistent namespace prefixes
|
|
170
|
+
engine.register_namespace("fhir", "http://hl7.org/fhir/")
|
|
171
|
+
|
|
172
|
+
# SHACL Core validation
|
|
173
|
+
report = engine.validate_shacl("shapes/patient.ttl")
|
|
174
|
+
if not report.conforms:
|
|
175
|
+
for v in report.violations:
|
|
176
|
+
print(f"{v.focus_node}: {v.message} [{v.severity}]")
|
|
177
|
+
|
|
178
|
+
# PROV-O temporal provenance
|
|
179
|
+
engine.prov_export("provenance.ttl", ts_start=1700000000)
|
|
180
|
+
prov = engine.prov_as_dict(edge_id=42)
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Every write to ivg is stored as W3C-aligned SPO triples (`rdf_edges`, `rdf_props`, `rdf_labels`)
|
|
184
|
+
with OWL 2 RL inference, named graph support, and RDF-star style edge qualifiers.
|
|
185
|
+
See [docs/SEMANTIC_LAYER.md](docs/SEMANTIC_LAYER.md) for the full guide: format
|
|
186
|
+
reference, SHACL shape writing, PROV-O vocabulary mapping, and integration patterns.
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
154
190
|
## Documentation
|
|
155
191
|
|
|
156
|
-
| Document
|
|
157
|
-
|
|
158
|
-
| [User Guide](docs/USER_GUIDE.md)
|
|
159
|
-
| [Admin Guide](docs/ADMIN_GUIDE.md)
|
|
160
|
-
| [Admin API](docs/ADMIN_API.md)
|
|
161
|
-
| [Benchmarks](docs/performance/BENCHMARKS.md)
|
|
162
|
-
| [Graph Algorithms](docs/performance/GRAPH_ALGORITHMS.md) | Centrality and community detection benchmark details
|
|
163
|
-
| [
|
|
192
|
+
| Document | Contents |
|
|
193
|
+
| -------------------------------------------------------- | ----------------------------------------------------------- |
|
|
194
|
+
| [User Guide](docs/USER_GUIDE.md) | Cypher examples, temporal edges, vector search, bulk loader |
|
|
195
|
+
| [Admin Guide](docs/ADMIN_GUIDE.md) | Container setup, schema management, index rebuilding |
|
|
196
|
+
| [Admin API](docs/ADMIN_API.md) | Python API reference for engine administration |
|
|
197
|
+
| [Benchmarks](docs/performance/BENCHMARKS.md) | Full methodology, LDBC SNB results, ingestion throughput |
|
|
198
|
+
| [Graph Algorithms](docs/performance/GRAPH_ALGORITHMS.md) | Centrality and community detection benchmark details |
|
|
199
|
+
| [Semantic Layer](docs/SEMANTIC_LAYER.md) | RDF export, SHACL validation, PROV-O provenance |
|
|
200
|
+
| [Changelog](CHANGELOG.md) | Full version history |
|
|
164
201
|
|
|
165
202
|
---
|
|
166
203
|
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Demo: RDF Semantic Layer — Export, SHACL Validation, PROV-O Provenance
|
|
3
|
+
|
|
4
|
+
Demonstrates the three semantic layer capabilities added in v2.3.0:
|
|
5
|
+
|
|
6
|
+
1. RDF Export — full graph and filtered subgraph to Turtle/N-Triples/JSON-LD
|
|
7
|
+
2. SHACL — validate data quality with shape constraints
|
|
8
|
+
3. PROV-O — export temporal edge provenance as W3C PROV-O
|
|
9
|
+
|
|
10
|
+
Prerequisites:
|
|
11
|
+
pip install 'iris-vector-graph[rdf]'
|
|
12
|
+
scripts/test-container.sh up # start IRIS Community Edition
|
|
13
|
+
|
|
14
|
+
Run:
|
|
15
|
+
python examples/demo_rdf_semantic_layer.py
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
import json
|
|
19
|
+
import os
|
|
20
|
+
import sys
|
|
21
|
+
import tempfile
|
|
22
|
+
|
|
23
|
+
# ---------------------------------------------------------------------------
|
|
24
|
+
# Connection
|
|
25
|
+
# ---------------------------------------------------------------------------
|
|
26
|
+
|
|
27
|
+
def connect():
|
|
28
|
+
try:
|
|
29
|
+
import iris.dbapi as dbapi
|
|
30
|
+
conn = dbapi.connect(
|
|
31
|
+
hostname=os.environ.get("IRIS_HOST", "localhost"),
|
|
32
|
+
port=int(os.environ.get("IVG_PORT", "21972")),
|
|
33
|
+
namespace="USER",
|
|
34
|
+
username=os.environ.get("IRIS_USER", "_SYSTEM"),
|
|
35
|
+
password=os.environ.get("IRIS_PASSWORD", "SYS"),
|
|
36
|
+
)
|
|
37
|
+
return conn
|
|
38
|
+
except Exception as e:
|
|
39
|
+
print(f"[ERROR] Cannot connect to IRIS: {e}")
|
|
40
|
+
print(" Start the container with: scripts/test-container.sh up")
|
|
41
|
+
sys.exit(1)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
# ---------------------------------------------------------------------------
|
|
45
|
+
# Seed data — a small FHIR-like clinical graph
|
|
46
|
+
# ---------------------------------------------------------------------------
|
|
47
|
+
|
|
48
|
+
PATIENTS = [
|
|
49
|
+
{"id": "Patient/p001", "name": "Alice Chen", "birthDate": "1980-03-15", "cohort": "HFrEF"},
|
|
50
|
+
{"id": "Patient/p002", "name": "Bob Martinez", "birthDate": "1955-07-22", "cohort": "HFrEF"},
|
|
51
|
+
{"id": "Patient/p003", "name": "Carol Kim", "cohort": "control"}, # missing birthDate
|
|
52
|
+
]
|
|
53
|
+
|
|
54
|
+
ENCOUNTERS = [
|
|
55
|
+
{"id": "Encounter/e001", "type": "Admission", "patient": "Patient/p001"},
|
|
56
|
+
{"id": "Encounter/e002", "type": "Discharge", "patient": "Patient/p001"},
|
|
57
|
+
{"id": "Encounter/e003", "type": "Admission", "patient": "Patient/p002"},
|
|
58
|
+
]
|
|
59
|
+
|
|
60
|
+
TIMESTAMPS = {
|
|
61
|
+
("Patient/p001", "admitted", "Encounter/e001"): (1700000000, 1700086400),
|
|
62
|
+
("Patient/p001", "discharged", "Encounter/e002"): (1700086400, 1700100000),
|
|
63
|
+
("Patient/p002", "admitted", "Encounter/e003"): (1700200000, None),
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
PATIENT_SHAPE = """
|
|
67
|
+
@prefix sh: <http://www.w3.org/ns/shacl#> .
|
|
68
|
+
@prefix fhir: <http://hl7.org/fhir/> .
|
|
69
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
|
70
|
+
|
|
71
|
+
fhir:PatientShape a sh:NodeShape ;
|
|
72
|
+
sh:targetClass fhir:Patient ;
|
|
73
|
+
sh:property [
|
|
74
|
+
sh:path fhir:birthDate ;
|
|
75
|
+
sh:minCount 1 ;
|
|
76
|
+
sh:message "Patient must have a birthDate" ;
|
|
77
|
+
] ;
|
|
78
|
+
sh:property [
|
|
79
|
+
sh:path fhir:name ;
|
|
80
|
+
sh:minCount 1 ;
|
|
81
|
+
sh:message "Patient must have a name" ;
|
|
82
|
+
] .
|
|
83
|
+
"""
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def seed(engine):
|
|
87
|
+
"""Load sample clinical data into IVG."""
|
|
88
|
+
print("\n--- Seeding clinical graph ---")
|
|
89
|
+
for p in PATIENTS:
|
|
90
|
+
props = {k: v for k, v in p.items() if k not in ("id",)}
|
|
91
|
+
engine.create_node(
|
|
92
|
+
p["id"],
|
|
93
|
+
labels=["http://hl7.org/fhir/Patient"],
|
|
94
|
+
properties={f"http://hl7.org/fhir/{k}": v for k, v in props.items()},
|
|
95
|
+
)
|
|
96
|
+
print(f" {len(PATIENTS)} patients loaded")
|
|
97
|
+
|
|
98
|
+
for enc in ENCOUNTERS:
|
|
99
|
+
props = {k: v for k, v in enc.items() if k not in ("id", "patient")}
|
|
100
|
+
engine.create_node(enc["id"], labels=["http://hl7.org/fhir/Encounter"], properties=props)
|
|
101
|
+
engine.create_edge(enc["patient"], "http://hl7.org/fhir/encounter", enc["id"])
|
|
102
|
+
print(f" {len(ENCOUNTERS)} encounters loaded")
|
|
103
|
+
|
|
104
|
+
for (src, pred, tgt), (ts_start, ts_end) in TIMESTAMPS.items():
|
|
105
|
+
engine.create_edge_temporal(
|
|
106
|
+
source=src,
|
|
107
|
+
predicate=f"http://hl7.org/fhir/{pred}",
|
|
108
|
+
target=tgt,
|
|
109
|
+
timestamp=ts_start,
|
|
110
|
+
)
|
|
111
|
+
print(f" {len(TIMESTAMPS)} temporal edges loaded")
|
|
112
|
+
|
|
113
|
+
engine.register_namespace("fhir", "http://hl7.org/fhir/")
|
|
114
|
+
engine.register_namespace("ex", "http://example.org/")
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
# ---------------------------------------------------------------------------
|
|
118
|
+
# Demo 1: RDF Export
|
|
119
|
+
# ---------------------------------------------------------------------------
|
|
120
|
+
|
|
121
|
+
def demo_export(engine, outdir):
|
|
122
|
+
print("\n--- Part 1: RDF Export ---")
|
|
123
|
+
|
|
124
|
+
# 1a. Full graph as Turtle
|
|
125
|
+
ttl_path = os.path.join(outdir, "clinical.ttl")
|
|
126
|
+
result = engine.export_rdf(ttl_path)
|
|
127
|
+
print(f" Full export → {ttl_path}")
|
|
128
|
+
print(f" {result['triples']} triples, {result['nodes']} nodes, {result['edges']} edges")
|
|
129
|
+
|
|
130
|
+
# 1b. Patients only as N-Triples
|
|
131
|
+
nt_path = os.path.join(outdir, "patients.nt")
|
|
132
|
+
result = engine.export_rdf(nt_path, format="nt", label_filter=["http://hl7.org/fhir/Patient"])
|
|
133
|
+
print(f" Patient subgraph → {nt_path} ({result['triples']} triples)")
|
|
134
|
+
|
|
135
|
+
# 1c. Cypher-based subgraph: HFrEF cohort only
|
|
136
|
+
hfref_path = os.path.join(outdir, "hfref_cohort.ttl")
|
|
137
|
+
result = engine.export_rdf_from_cypher(
|
|
138
|
+
"MATCH (p:Patient) WHERE p.cohort = 'HFrEF' RETURN p.id AS id",
|
|
139
|
+
hfref_path,
|
|
140
|
+
)
|
|
141
|
+
print(f" HFrEF cohort export → {hfref_path} ({result['triples']} triples)")
|
|
142
|
+
|
|
143
|
+
# 1d. Verify Turtle is valid
|
|
144
|
+
import rdflib
|
|
145
|
+
g = rdflib.Graph()
|
|
146
|
+
g.parse(ttl_path, format="turtle")
|
|
147
|
+
print(f" Verified: {len(g)} triples parse cleanly in rdflib")
|
|
148
|
+
|
|
149
|
+
# Show first 5 triples
|
|
150
|
+
print(" Sample triples:")
|
|
151
|
+
for i, (s, p, o) in enumerate(g):
|
|
152
|
+
print(f" {str(s)[-30:]:30s} {str(p)[-25:]:25s} {str(o)[:40]}")
|
|
153
|
+
if i >= 4:
|
|
154
|
+
break
|
|
155
|
+
|
|
156
|
+
return ttl_path
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
# ---------------------------------------------------------------------------
|
|
160
|
+
# Demo 2: SHACL Validation
|
|
161
|
+
# ---------------------------------------------------------------------------
|
|
162
|
+
|
|
163
|
+
def demo_shacl(engine, outdir):
|
|
164
|
+
print("\n--- Part 2: SHACL Core Validation ---")
|
|
165
|
+
|
|
166
|
+
# 2a. Validate all patients against birthDate + name shapes
|
|
167
|
+
print(" Validating all patients against PatientShape...")
|
|
168
|
+
report = engine.validate_shacl(PATIENT_SHAPE)
|
|
169
|
+
print(f" Conforms: {report.conforms}")
|
|
170
|
+
print(f" Violations: {len(report.violations)}")
|
|
171
|
+
|
|
172
|
+
for v in report.violations:
|
|
173
|
+
print(f" [{v.severity}] {v.focus_node.split('/')[-1]:20s} → {v.message}")
|
|
174
|
+
|
|
175
|
+
# 2b. Validate only Carol Kim (known to be missing birthDate)
|
|
176
|
+
carol_id = "Patient/p003"
|
|
177
|
+
print(f"\n Targeted validation of {carol_id}:")
|
|
178
|
+
report_targeted = engine.validate_shacl(PATIENT_SHAPE, node_ids=[carol_id])
|
|
179
|
+
print(f" Conforms: {report_targeted.conforms}")
|
|
180
|
+
for v in report_targeted.violations:
|
|
181
|
+
print(f" [{v.severity}] {v.message}")
|
|
182
|
+
|
|
183
|
+
# 2c. Show JSON-serializable report
|
|
184
|
+
report_dict = report.to_dict()
|
|
185
|
+
report_path = os.path.join(outdir, "validation_report.json")
|
|
186
|
+
with open(report_path, "w") as f:
|
|
187
|
+
json.dump(report_dict, f, indent=2)
|
|
188
|
+
print(f"\n Full report saved → {report_path}")
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
# ---------------------------------------------------------------------------
|
|
192
|
+
# Demo 3: PROV-O Temporal Provenance
|
|
193
|
+
# ---------------------------------------------------------------------------
|
|
194
|
+
|
|
195
|
+
def demo_prov(engine, outdir):
|
|
196
|
+
print("\n--- Part 3: PROV-O Temporal Provenance ---")
|
|
197
|
+
|
|
198
|
+
# 3a. Export all temporal edges as PROV-O
|
|
199
|
+
prov_path = os.path.join(outdir, "provenance.ttl")
|
|
200
|
+
result = engine.prov_export(prov_path)
|
|
201
|
+
print(f" PROV-O export → {prov_path}")
|
|
202
|
+
print(f" {result['activities']} activities, {result['entities']} entities")
|
|
203
|
+
|
|
204
|
+
# 3b. Verify with rdflib
|
|
205
|
+
import rdflib
|
|
206
|
+
PROV = rdflib.Namespace("http://www.w3.org/ns/prov#")
|
|
207
|
+
g = rdflib.Graph()
|
|
208
|
+
g.parse(prov_path, format="turtle")
|
|
209
|
+
|
|
210
|
+
activities = list(g.subjects(rdflib.RDF.type, PROV.Activity))
|
|
211
|
+
entities = list(g.subjects(rdflib.RDF.type, PROV.Entity))
|
|
212
|
+
print(f" Verified: {len(activities)} prov:Activity, {len(entities)} prov:Entity")
|
|
213
|
+
|
|
214
|
+
# 3c. Show activity details
|
|
215
|
+
print(" Activities:")
|
|
216
|
+
for act in activities[:3]:
|
|
217
|
+
started = next(g.objects(act, PROV.startedAtTime), "—")
|
|
218
|
+
ended = next(g.objects(act, PROV.endedAtTime), "—")
|
|
219
|
+
used = next(g.objects(act, PROV.used), "—")
|
|
220
|
+
short_act = str(act).split("/")[-1][:40]
|
|
221
|
+
print(f" {short_act}")
|
|
222
|
+
print(f" started: {started}")
|
|
223
|
+
print(f" ended: {ended}")
|
|
224
|
+
print(f" used: {str(used).split('/')[-1]}")
|
|
225
|
+
|
|
226
|
+
# 3d. Time-windowed export (Alice's admission only)
|
|
227
|
+
window_path = os.path.join(outdir, "alice_prov.ttl")
|
|
228
|
+
engine.prov_export(window_path, ts_start=1699999999, ts_end=1700086401)
|
|
229
|
+
g2 = rdflib.Graph()
|
|
230
|
+
g2.parse(window_path, format="turtle")
|
|
231
|
+
print(f"\n Alice time-window export → {window_path}")
|
|
232
|
+
print(f" {len(list(g2.subjects(rdflib.RDF.type, PROV.Activity)))} activities in window")
|
|
233
|
+
|
|
234
|
+
return prov_path
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
# ---------------------------------------------------------------------------
|
|
238
|
+
# Demo 4: End-to-End integration
|
|
239
|
+
# ---------------------------------------------------------------------------
|
|
240
|
+
|
|
241
|
+
def demo_integration(engine, ttl_path, outdir):
|
|
242
|
+
print("\n--- Part 4: End-to-End Integration Pattern ---")
|
|
243
|
+
print(" Simulate: export IVG graph → validate with SHACL → export provenance")
|
|
244
|
+
|
|
245
|
+
# Round-trip: export then verify with rdflib
|
|
246
|
+
import rdflib
|
|
247
|
+
g = rdflib.Graph()
|
|
248
|
+
g.parse(ttl_path, format="turtle")
|
|
249
|
+
|
|
250
|
+
# Count by type
|
|
251
|
+
by_type = {}
|
|
252
|
+
for s, p, o in g.triples((None, rdflib.RDF.type, None)):
|
|
253
|
+
type_name = str(o).split("/")[-1] or str(o).split("#")[-1]
|
|
254
|
+
by_type[type_name] = by_type.get(type_name, 0) + 1
|
|
255
|
+
|
|
256
|
+
print(" Graph composition by type:")
|
|
257
|
+
for t, count in sorted(by_type.items(), key=lambda x: -x[1]):
|
|
258
|
+
print(f" {t:30s}: {count}")
|
|
259
|
+
|
|
260
|
+
print(f"\n → Graph is now portable to any SPARQL endpoint or rdflib pipeline.")
|
|
261
|
+
print(f" → SHACL validated before publication.")
|
|
262
|
+
print(f" → PROV-O provenance attached for audit trail.")
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
# ---------------------------------------------------------------------------
|
|
266
|
+
# Cleanup
|
|
267
|
+
# ---------------------------------------------------------------------------
|
|
268
|
+
|
|
269
|
+
def cleanup(engine):
|
|
270
|
+
cur = engine.conn.cursor()
|
|
271
|
+
try:
|
|
272
|
+
for p in PATIENTS:
|
|
273
|
+
cur.execute("DELETE FROM Graph_KG.nodes WHERE node_id = ?", [p["id"]])
|
|
274
|
+
for enc in ENCOUNTERS:
|
|
275
|
+
cur.execute("DELETE FROM Graph_KG.nodes WHERE node_id = ?", [enc["id"]])
|
|
276
|
+
cur.execute(
|
|
277
|
+
"DELETE FROM Graph_KG.rdf_edges WHERE s LIKE 'Patient/%' OR s LIKE 'Encounter/%'"
|
|
278
|
+
)
|
|
279
|
+
cur.execute(
|
|
280
|
+
"DELETE FROM Graph_KG.rdf_labels WHERE s LIKE 'Patient/%' OR s LIKE 'Encounter/%'"
|
|
281
|
+
)
|
|
282
|
+
cur.execute(
|
|
283
|
+
"DELETE FROM Graph_KG.rdf_props WHERE s LIKE 'Patient/%' OR s LIKE 'Encounter/%'"
|
|
284
|
+
)
|
|
285
|
+
engine.conn.commit()
|
|
286
|
+
except Exception:
|
|
287
|
+
pass
|
|
288
|
+
finally:
|
|
289
|
+
cur.close()
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
# ---------------------------------------------------------------------------
|
|
293
|
+
# Main
|
|
294
|
+
# ---------------------------------------------------------------------------
|
|
295
|
+
|
|
296
|
+
def main():
|
|
297
|
+
print("=" * 60)
|
|
298
|
+
print(" iris-vector-graph — RDF Semantic Layer Demo (v2.3.0)")
|
|
299
|
+
print("=" * 60)
|
|
300
|
+
|
|
301
|
+
# Check rdflib available
|
|
302
|
+
try:
|
|
303
|
+
import rdflib
|
|
304
|
+
print(f"\n rdflib {rdflib.__version__} detected")
|
|
305
|
+
except ImportError:
|
|
306
|
+
print("\n[ERROR] rdflib not installed.")
|
|
307
|
+
print(" Run: pip install 'iris-vector-graph[rdf]'")
|
|
308
|
+
sys.exit(1)
|
|
309
|
+
|
|
310
|
+
conn = connect()
|
|
311
|
+
print(f"\n Connected to IRIS")
|
|
312
|
+
|
|
313
|
+
from iris_vector_graph.engine import IRISGraphEngine
|
|
314
|
+
engine = IRISGraphEngine(conn, embedding_dimension=4)
|
|
315
|
+
engine.initialize_schema()
|
|
316
|
+
|
|
317
|
+
with tempfile.TemporaryDirectory() as outdir:
|
|
318
|
+
try:
|
|
319
|
+
seed(engine)
|
|
320
|
+
ttl_path = demo_export(engine, outdir)
|
|
321
|
+
demo_shacl(engine, outdir)
|
|
322
|
+
demo_prov(engine, outdir)
|
|
323
|
+
demo_integration(engine, ttl_path, outdir)
|
|
324
|
+
finally:
|
|
325
|
+
cleanup(engine)
|
|
326
|
+
|
|
327
|
+
conn.close()
|
|
328
|
+
print("\n" + "=" * 60)
|
|
329
|
+
print(" Demo complete.")
|
|
330
|
+
print(" See docs/SEMANTIC_LAYER.md for the full guide.")
|
|
331
|
+
print("=" * 60)
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
if __name__ == "__main__":
|
|
335
|
+
main()
|
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
/// Graph.KG.EdgeScan — adjacency-global maintenance + scan procedures.
|
|
2
|
+
///
|
|
3
|
+
/// ============================================================================
|
|
4
|
+
/// ^KG ADJACENCY LAYOUT OF RECORD (canonical — do not deviate)
|
|
5
|
+
/// ============================================================================
|
|
6
|
+
/// The production adjacency layout is SHARD-PREFIXED:
|
|
7
|
+
///
|
|
8
|
+
/// ^KG("out", 0, s, p, o) = weight outbound edges
|
|
9
|
+
/// ^KG("in", 0, o, p, s) = weight inbound edges
|
|
10
|
+
/// ^KG("deg", s) = out-degree
|
|
11
|
+
/// ^KG("degp", s, p) = per-predicate out-degree
|
|
12
|
+
///
|
|
13
|
+
/// Every live reader scans this layout: MatchEdges (here), Graph.KG.Algorithms,
|
|
14
|
+
/// Graph.KG.Centrality, Graph.KG.Subgraph, and the NKG builders. WriteAdjacency
|
|
15
|
+
/// (below), TraversalBuild.BuildKG, TemporalIndex.InsertEdge, and the (currently
|
|
16
|
+
/// undeployed) Graph.KG.GraphIndex functional index all WRITE this exact form.
|
|
17
|
+
///
|
|
18
|
+
/// There is a LEGACY no-shard layout — ^KG("out", s, p, o) — still written by
|
|
19
|
+
/// the bench harness (Graph.KG.BenchSeeder / BenchFormat) and the standalone CSV
|
|
20
|
+
/// Graph.KG.Loader, and read by dead Else-fallback branches in NKGAccelTraversal
|
|
21
|
+
/// / NKGAccelAdjacency. Nothing in the production write/read path uses it.
|
|
22
|
+
/// DO NOT add new readers or writers of the no-shard form. If you need adjacency,
|
|
23
|
+
/// use ^KG("out", 0, ...). See docs/index-maintenance-architecture-review.md.
|
|
24
|
+
/// ============================================================================
|
|
1
25
|
Class Graph.KG.EdgeScan Extends %RegisteredObject
|
|
2
26
|
{
|
|
3
27
|
|
|
@@ -62,8 +62,12 @@ ClassMethod InsertIndex(pID As %String, s As %Binary, p As %Binary, o As %Binary
|
|
|
62
62
|
{
|
|
63
63
|
Set weight = ##class(Graph.KG.GraphIndex).ExtractWeight(qualifiers)
|
|
64
64
|
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
// Shard-0 layout — MUST match EdgeScan.WriteAdjacency / TraversalBuild.BuildKG.
|
|
66
|
+
// Every live reader (MatchEdges, Algorithms, Centrality, NKG BFS) scans
|
|
67
|
+
// ^KG("out", 0, ...). Writing the legacy no-shard layout here would populate
|
|
68
|
+
// globals nothing reads. See Graph.KG.EdgeScan:WriteAdjacency for the canonical form.
|
|
69
|
+
Set ^KG("out", 0, s, p, o) = weight
|
|
70
|
+
Set ^KG("in", 0, o, p, s) = weight
|
|
67
71
|
Set tmp = $Increment(^KG("deg", s))
|
|
68
72
|
Set tmp = $Increment(^KG("degp", s, p))
|
|
69
73
|
|
|
@@ -147,8 +151,8 @@ ClassMethod UpdateIndex(pID As %String, s As %Binary, p As %Binary, o As %Binary
|
|
|
147
151
|
|
|
148
152
|
ClassMethod DeleteIndex(pID As %String, s As %Binary, p As %Binary, o As %Binary, qualifiers As %Binary = "") As %Status [ ServerOnly = 1 ]
|
|
149
153
|
{
|
|
150
|
-
Kill ^KG("out", s, p, o)
|
|
151
|
-
Kill ^KG("in", o, p, s)
|
|
154
|
+
Kill ^KG("out", 0, s, p, o)
|
|
155
|
+
Kill ^KG("in", 0, o, p, s)
|
|
152
156
|
Set tmp = $Increment(^KG("deg", s), -1)
|
|
153
157
|
Set tmp = $Increment(^KG("degp", s, p), -1)
|
|
154
158
|
If $Get(^KG("deg", s)) <= 0 Kill ^KG("deg", s)
|