iris-vector-graph 1.63.4__tar.gz → 1.63.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/PKG-INFO +5 -1
  2. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/README.md +4 -0
  3. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/NKGAccel.cls +99 -14
  4. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/engine.py +16 -7
  5. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/status.py +19 -0
  6. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/pyproject.toml +1 -1
  7. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/.gitignore +0 -0
  8. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/LICENSE +0 -0
  9. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/demo_biomedical.py +0 -0
  10. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/demo_fraud_detection.py +0 -0
  11. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/demo_fraud_detection_sql.py +0 -0
  12. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/demo_utils.py +0 -0
  13. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/demo_working_system.py +0 -0
  14. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/domains/__init__.py +0 -0
  15. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/domains/biomedical/__init__.py +0 -0
  16. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/domains/biomedical/loaders.py +0 -0
  17. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/domains/biomedical/resolver.py +0 -0
  18. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/domains/biomedical/types.py +0 -0
  19. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/domains/biomedical_legacy/__init__.py +0 -0
  20. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/domains/biomedical_legacy/biomedical_engine.py +0 -0
  21. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/domains/biomedical_legacy/biomedical_schema.py +0 -0
  22. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/domains/biomedical_legacy/legacy_wrapper.py +0 -0
  23. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/domains/fraud/__init__.py +0 -0
  24. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/domains/fraud/loaders.py +0 -0
  25. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/domains/fraud/resolver.py +0 -0
  26. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/domains/fraud/types.py +0 -0
  27. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/graphQL.http +0 -0
  28. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/hybrid_vector_graph_query.cypher +0 -0
  29. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/examples/rest.http +0 -0
  30. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/Algorithms.cls +0 -0
  31. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/ArnoAccel.cls +0 -0
  32. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/BM25Index.cls +0 -0
  33. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/BenchFormat.cls +0 -0
  34. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/BenchSeeder.cls +0 -0
  35. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/Benchmark.cls +0 -0
  36. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/Edge.cls +0 -0
  37. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/EdgeScan.cls +0 -0
  38. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/GraphIndex.cls +0 -0
  39. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/IVFIndex.cls +0 -0
  40. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/Loader.cls +0 -0
  41. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/MCPService.cls +0 -0
  42. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/MCPToolSet.cls +0 -0
  43. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/MCPTools.cls +0 -0
  44. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/Meta.cls +0 -0
  45. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/PLAIDSearch.cls +0 -0
  46. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/PageRank.cls +0 -0
  47. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/PyOps.cls +0 -0
  48. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/Service.cls +0 -0
  49. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/Snapshot.cls +0 -0
  50. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/Subgraph.cls +0 -0
  51. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/TemporalIndex.cls +0 -0
  52. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/TestEdge.cls +0 -0
  53. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/Traversal.cls +0 -0
  54. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/Graph/KG/VecIndex.cls +0 -0
  55. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/PageRankEmbedded.cls +0 -0
  56. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/User.Exec.cls +0 -0
  57. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_src/src/iris/vector/graph/GraphOperators.cls +0 -0
  58. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/__init__.py +0 -0
  59. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/bolt_server.py +0 -0
  60. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/bulk_loader.py +0 -0
  61. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/capabilities.py +0 -0
  62. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/cypher/__init__.py +0 -0
  63. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/cypher/algorithms/__init__.py +0 -0
  64. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/cypher/algorithms/paths.py +0 -0
  65. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/cypher/ast.py +0 -0
  66. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/cypher/lexer.py +0 -0
  67. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/cypher/parser.py +0 -0
  68. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/cypher/translator.py +0 -0
  69. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/cypher_api.py +0 -0
  70. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/embedded.py +0 -0
  71. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/fusion.py +0 -0
  72. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/gql/__init__.py +0 -0
  73. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/gql/constants.py +0 -0
  74. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/gql/engine.py +0 -0
  75. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/gql/pooling.py +0 -0
  76. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/gql/resolvers.py +0 -0
  77. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/gql/schema.py +0 -0
  78. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/models.py +0 -0
  79. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/operators.py +0 -0
  80. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/py.typed +0 -0
  81. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/schema.py +0 -0
  82. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/security.py +0 -0
  83. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/text_search.py +0 -0
  84. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/utils.py +0 -0
  85. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/iris_vector_graph/vector_utils.py +0 -0
  86. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/sql/fhir_bridges.sql +0 -0
  87. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/sql/fraud_sample_data.sql +0 -0
  88. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/sql/globals_schema.sql +0 -0
  89. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/sql/graph_path_globals.sql +0 -0
  90. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/sql/graph_walk_tvf.sql +0 -0
  91. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/sql/migrations/000_base_schema_iris.sql +0 -0
  92. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/sql/migrations/001_add_nodepk_table.sql +0 -0
  93. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/sql/migrations/001_rollback_nodepk.sql +0 -0
  94. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/sql/migrations/002_add_fk_constraints.sql +0 -0
  95. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/sql/operators.sql +0 -0
  96. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/sql/operators_fixed.sql +0 -0
  97. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/sql/procedures/kg_PageRank.sql +0 -0
  98. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/sql/rdf_reifications.sql +0 -0
  99. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/sql/schema.sql +0 -0
  100. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/TESTING.md +0 -0
  101. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/benchmark_parser.py +0 -0
  102. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/benchmarks/benchmark_neo4j.py +0 -0
  103. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/benchmarks/bfs_benchmark.py +0 -0
  104. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/benchmarks/establish_baseline.py +0 -0
  105. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/benchmarks/graph_gen.py +0 -0
  106. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/benchmarks/iris_baseline_run.py +0 -0
  107. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/benchmarks/iris_os_run.py +0 -0
  108. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/benchmarks/load_neo4j.py +0 -0
  109. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/benchmarks/synthetic_baseline.csv +0 -0
  110. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/conftest.py +0 -0
  111. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/contract/__init__.py +0 -0
  112. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/contract/test_cypher_api.py +0 -0
  113. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/contract/test_cypher_api_errors.py +0 -0
  114. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/contract/test_graphql_queries.py +0 -0
  115. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/contract/test_graphql_schema.py +0 -0
  116. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/contract/test_ppr_api.py +0 -0
  117. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/curl_suite.sh +0 -0
  118. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/__init__.py +0 -0
  119. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/conftest.py +0 -0
  120. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_biomedical_demo.py +0 -0
  121. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_biomedical_ui.py +0 -0
  122. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_cypher_coerce_e2e.py +0 -0
  123. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_cypher_sprints_e2e.py +0 -0
  124. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_cypher_vector_search.py +0 -0
  125. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_fhir_bridges_e2e.py +0 -0
  126. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_fraud_demo.py +0 -0
  127. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_fraud_ui.py +0 -0
  128. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_gql_autogen_startup.py +0 -0
  129. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_gql_cypher_passthrough.py +0 -0
  130. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_gql_node_queries.py +0 -0
  131. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_gql_semantic_search.py +0 -0
  132. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_gql_traversal.py +0 -0
  133. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_graph_kernels_e2e.py +0 -0
  134. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_hla_kg_e2e.py +0 -0
  135. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_multi_query_engine_platform.py +0 -0
  136. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_named_paths_e2e.py +0 -0
  137. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_nkg_index_e2e.py +0 -0
  138. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_operator_wiring_e2e.py +0 -0
  139. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_plaid_search_e2e.py +0 -0
  140. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_ppr_cls_fast_path.py +0 -0
  141. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_ppr_guided_e2e.py +0 -0
  142. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_procedure_installation.py +0 -0
  143. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_reification_e2e.py +0 -0
  144. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_schema_procedures_e2e.py +0 -0
  145. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_subgraph_e2e.py +0 -0
  146. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_subquery_call_e2e.py +0 -0
  147. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/e2e/test_vecindex_e2e.py +0 -0
  148. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/__init__.py +0 -0
  149. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/conftest.py +0 -0
  150. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/gql/__init__.py +0 -0
  151. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/gql/test_graphql_mutations.py +0 -0
  152. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/gql/test_graphql_nested_queries.py +0 -0
  153. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/gql/test_graphql_queries.py +0 -0
  154. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/gql/test_graphql_vector_search.py +0 -0
  155. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_bidirectional_ppr.py +0 -0
  156. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_cls_layer.py +0 -0
  157. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_cypher_advanced.py +0 -0
  158. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_cypher_enhancements.py +0 -0
  159. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_cypher_multi_type.py +0 -0
  160. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_cypher_rd.py +0 -0
  161. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_cypher_rel_vars.py +0 -0
  162. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_cypher_single_type.py +0 -0
  163. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_cypher_untyped.py +0 -0
  164. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_cypher_vector_search.py +0 -0
  165. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_embeddings_api.py +0 -0
  166. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_fastapi_graphql.py +0 -0
  167. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_fhir_bridges_integration.py +0 -0
  168. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_named_paths_integration.py +0 -0
  169. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_nodepk_advanced_benchmarks.py +0 -0
  170. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_nodepk_constraints.py +0 -0
  171. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_nodepk_graph_analytics.py +0 -0
  172. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_nodepk_migration.py +0 -0
  173. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_nodepk_performance.py +0 -0
  174. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_nodepk_production_scale.py +0 -0
  175. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_objectscript_classes.py +0 -0
  176. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_pagerank_sql_optimization.py +0 -0
  177. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_reification_integration.py +0 -0
  178. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_schema_migration.py +0 -0
  179. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_stored_procedure_install.py +0 -0
  180. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/integration/test_subquery_call_integration.py +0 -0
  181. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/performance/conftest.py +0 -0
  182. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/performance/scale_benchmark.py +0 -0
  183. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/performance/test_ppr_stress.py +0 -0
  184. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/performance/test_stress_v1_5.py +0 -0
  185. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/python/run_all_tests.py +0 -0
  186. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/python/test_iris_rest_api.py +0 -0
  187. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/python/test_networkx_loader.py +0 -0
  188. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/python/test_performance_benchmarks.py +0 -0
  189. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/python/test_pyops_vector_conversion.py +0 -0
  190. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/python/test_python_operators.py +0 -0
  191. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/python/test_python_sdk.py +0 -0
  192. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/python/test_schema_validation.py +0 -0
  193. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/python/test_sql_queries.py +0 -0
  194. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/python/test_vector_functions.py +0 -0
  195. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/cypher/__init__.py +0 -0
  196. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/cypher/test_lexer.py +0 -0
  197. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/cypher/test_lexer_advanced.py +0 -0
  198. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/cypher/test_parser.py +0 -0
  199. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/cypher/test_parser_advanced.py +0 -0
  200. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_batch_mutations.py +0 -0
  201. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_bfs_arno.py +0 -0
  202. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_bm25_index.py +0 -0
  203. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_bolt_server.py +0 -0
  204. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_cls_deployment.py +0 -0
  205. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_cypher_benchmark.py +0 -0
  206. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_cypher_benchmark_scale.py +0 -0
  207. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_cypher_case_when.py +0 -0
  208. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_cypher_e2e_new_features.py +0 -0
  209. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_cypher_functions.py +0 -0
  210. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_cypher_parser.py +0 -0
  211. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_cypher_posos_bugs.py +0 -0
  212. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_cypher_procedures.py +0 -0
  213. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_cypher_translator.py +0 -0
  214. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_cypher_union_exists.py +0 -0
  215. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_cypher_var_length.py +0 -0
  216. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_cypher_vector_search.py +0 -0
  217. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_edge_embeddings.py +0 -0
  218. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_edgeprop_ndjson.py +0 -0
  219. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_embedded.py +0 -0
  220. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_engine_dimension_fix.py +0 -0
  221. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_engine_embeddings.py +0 -0
  222. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_engine_status.py +0 -0
  223. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_fhir_bridges.py +0 -0
  224. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_get_nodes.py +0 -0
  225. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_graph_kernels.py +0 -0
  226. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_graphql_dataloader.py +0 -0
  227. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_ingest_formats.py +0 -0
  228. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_ivf_index.py +0 -0
  229. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_named_graphs.py +0 -0
  230. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_named_paths.py +0 -0
  231. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_operators_wiring.py +0 -0
  232. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_plaid_search.py +0 -0
  233. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_ppr_guided_subgraph.py +0 -0
  234. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_reification.py +0 -0
  235. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_schema_init.py +0 -0
  236. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_schema_procedures.py +0 -0
  237. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_shortest_path.py +0 -0
  238. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_snapshot.py +0 -0
  239. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_sql_splitter.py +0 -0
  240. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_sql_table_bridge.py +0 -0
  241. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_subgraph.py +0 -0
  242. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_subquery_call.py +0 -0
  243. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_temporal_cypher.py +0 -0
  244. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_temporal_edges.py +0 -0
  245. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/tests/unit/test_unified_edge_store.py +0 -0
  246. {iris_vector_graph-1.63.4 → iris_vector_graph-1.63.6}/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: 1.63.4
3
+ Version: 1.63.6
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
@@ -692,6 +692,10 @@ anchors = engine.get_kg_anchors(icd_codes=["J18.0", "E11.9"])
692
692
 
693
693
  ## Changelog
694
694
 
695
+ ### v1.63.5 (2026-04-26)
696
+ - fix: `NKGAccel.BFSJson` per-seed adjacency export — `ExportAdjacencyFromSeed()` exports only the subgraph reachable from the seed node (not the full 299K-edge graph). Fixes `<MAXSTRING>` on Mindwalk-scale graphs, enabling Arno-accelerated multi-hop BFS. Adjacency string now scales with BFS result size (~10KB per seed instead of >3.5MB full graph). Handles outbound + inbound edges for undirected BFS.
697
+
698
+
695
699
  ### v1.63.4 (2026-04-26)
696
700
  - chore: merge 080-engine-status to main; NKGAccel.cls added to iris_src from arno upstream
697
701
 
@@ -620,6 +620,10 @@ anchors = engine.get_kg_anchors(icd_codes=["J18.0", "E11.9"])
620
620
 
621
621
  ## Changelog
622
622
 
623
+ ### v1.63.5 (2026-04-26)
624
+ - fix: `NKGAccel.BFSJson` per-seed adjacency export — `ExportAdjacencyFromSeed()` exports only the subgraph reachable from the seed node (not the full 299K-edge graph). Fixes `<MAXSTRING>` on Mindwalk-scale graphs, enabling Arno-accelerated multi-hop BFS. Adjacency string now scales with BFS result size (~10KB per seed instead of >3.5MB full graph). Handles outbound + inbound edges for undirected BFS.
625
+
626
+
623
627
  ### v1.63.4 (2026-04-26)
624
628
  - chore: merge 080-engine-status to main; NKGAccel.cls added to iris_src from arno upstream
625
629
 
@@ -450,7 +450,7 @@ ClassMethod RandomWalkJson(seedId As %String, walkLength As %Integer = 20, numWa
450
450
  Return result
451
451
  }
452
452
 
453
- ClassMethod BFSJson(seed As %String, predicatesJson As %String = "[]", maxHops As %Integer = 3, maxResults As %Integer = 0) As %String
453
+ ClassMethod BFSJson(seed As %String, predicatesJson As %String = "[]", maxHops As %Integer = 3, maxResults As %Integer = 0) As %String
454
454
  {
455
455
  Set dllPath = $Get(^||NKGAccel("libPath"), "/usr/irissys/mgr/libarno_callout.so")
456
456
  If '$Data(^||NKGAccel("bfs_fn")) {
@@ -466,25 +466,110 @@ ClassMethod BFSJson(seed As %String, predicatesJson As %String = "[]", maxHops A
466
466
  If fnid = 0 {
467
467
  Return ##class(Graph.KG.Traversal).BFSFastJson(seed, predicatesJson, maxHops, "")
468
468
  }
469
- Set adjStr = ..ExportAdjacencyWithPreds()
470
- If $Extract(adjStr, 1, 8) = "CHUNKED:" {
471
- Set nChunks = $Piece(adjStr, ":", 2)
472
- Set adjStr = ""
473
- For i = 1:1:nChunks {
474
- Set adjStr = adjStr _ ^||adjWP(i)
475
- If $Length(adjStr) > 3500000 {
476
- Kill ^||adjWP
477
- Return ##class(Graph.KG.Traversal).BFSFastJson(seed, predicatesJson, maxHops, "")
478
- }
479
- }
480
- Kill ^||adjWP
481
- }
469
+
470
+ // Per-seed export: only export the subgraph reachable from seed (bounded by maxHops+1)
471
+ // This keeps adjStr small even on 300K+ edge graphs
472
+ Set adjStr = ..ExportAdjacencyFromSeed(seed, maxHops + 1, predicatesJson)
482
473
  If $Length(adjStr) = 0 {
483
474
  Return ##class(Graph.KG.Traversal).BFSFastJson(seed, predicatesJson, maxHops, "")
484
475
  }
485
476
  Return $ZF(-5, dllid, fnid, adjStr, seed, predicatesJson, maxHops, maxResults)
486
477
  }
487
478
 
479
+ ClassMethod ExportAdjacencyFromSeed(seed As %String, maxHops As %Integer = 4, predicatesJson As %String = "[]") As %String [ Private ]
480
+ {
481
+ Set seedIdx = $Get(^NKG("$NI", seed), "")
482
+ If seedIdx = "" Return ""
483
+
484
+ Set preds = ""
485
+ If predicatesJson '= "[]" && (predicatesJson '= "") {
486
+ Try { Set preds = ##class(%DynamicArray).%FromJSON(predicatesJson) } Catch { Set preds = "" }
487
+ }
488
+
489
+ // BFS to collect reachable node indices within maxHops
490
+ Kill ^||seedBFS
491
+ Set ^||seedBFS("frontier", seedIdx) = ""
492
+ Set ^||seedBFS("seen", seedIdx) = ""
493
+
494
+ For hop = 1:1:maxHops {
495
+ Kill ^||seedBFS("nextFrontier")
496
+ Set s = ""
497
+ For {
498
+ Set s = $Order(^||seedBFS("frontier", s))
499
+ Quit:s=""
500
+ Set pred = ""
501
+ For {
502
+ Set pred = $Order(^NKG(-1, s, pred))
503
+ Quit:pred=""
504
+ If $IsObject(preds) {
505
+ Set allowed = 0
506
+ Set predStr = $Get(^NKG("$LS", -pred - 1), "")
507
+ For pi = 0:1:preds.%Size()-1 {
508
+ If preds.%Get(pi) = predStr { Set allowed = 1 Quit }
509
+ }
510
+ If 'allowed Continue
511
+ }
512
+ Set dst = ""
513
+ For {
514
+ Set dst = $Order(^NKG(-1, s, pred, dst))
515
+ Quit:dst=""
516
+ Set ^||seedBFS("nodes", s) = ""
517
+ Set ^||seedBFS("nodes", dst) = ""
518
+ If '$Data(^||seedBFS("seen", dst)) {
519
+ Set ^||seedBFS("seen", dst) = ""
520
+ Set ^||seedBFS("nextFrontier", dst) = ""
521
+ }
522
+ }
523
+ }
524
+ // Inbound traversal for undirected
525
+ Set pred = ""
526
+ For {
527
+ Set pred = $Order(^NKG(-2, s, pred))
528
+ Quit:pred=""
529
+ Set dst = ""
530
+ For {
531
+ Set dst = $Order(^NKG(-2, s, pred, dst))
532
+ Quit:dst=""
533
+ Set ^||seedBFS("nodes", s) = ""
534
+ Set ^||seedBFS("nodes", dst) = ""
535
+ If '$Data(^||seedBFS("seen", dst)) {
536
+ Set ^||seedBFS("seen", dst) = ""
537
+ Set ^||seedBFS("nextFrontier", dst) = ""
538
+ }
539
+ }
540
+ }
541
+ }
542
+ If '$Data(^||seedBFS("nextFrontier")) Quit
543
+ Merge ^||seedBFS("frontier") = ^||seedBFS("nextFrontier")
544
+ Kill ^||seedBFS("nextFrontier")
545
+ }
546
+
547
+ // Export only edges between collected nodes
548
+ Set result = ""
549
+ Set nodeIdx = ""
550
+ For {
551
+ Set nodeIdx = $Order(^||seedBFS("nodes", nodeIdx))
552
+ Quit:nodeIdx=""
553
+ Set srcStr = $Get(^NKG("$ND", nodeIdx), nodeIdx)
554
+ Set pred = ""
555
+ For {
556
+ Set pred = $Order(^NKG(-1, nodeIdx, pred))
557
+ Quit:pred=""
558
+ Set predStr = $Get(^NKG("$LS", -pred - 1), pred)
559
+ Set dst = ""
560
+ For {
561
+ Set dst = $Order(^NKG(-1, nodeIdx, pred, dst))
562
+ Quit:dst=""
563
+ If '$Data(^||seedBFS("nodes", dst)) Continue
564
+ Set dstStr = $Get(^NKG("$ND", dst), dst)
565
+ Set result = result _ srcStr _ $Char(31) _ predStr _ $Char(31) _ dstStr _ $Char(10)
566
+ }
567
+ }
568
+ }
569
+ Kill ^||seedBFS
570
+ Return result
571
+ }
572
+
488
573
  ClassMethod ExportAdjacencyWithPreds() As %String [ Private ]
489
574
  {
490
575
  Set result = "", chunk = "", chunkNum = 0
@@ -2099,13 +2099,7 @@ class IRISGraphEngine:
2099
2099
  except Exception:
2100
2100
  errors.append(f"^KG probe failed: {e}")
2101
2101
 
2102
- adjacency = AdjacencyStatus(
2103
- kg_populated=kg_populated,
2104
- kg_edge_count=kg_count,
2105
- kg_edge_count_capped=kg_capped,
2106
- nkg_populated=nkg_populated,
2107
- )
2108
-
2102
+ kg_predicates_consistent = True
2109
2103
  if kg_populated and tables.edges > 0:
2110
2104
  try:
2111
2105
  native = self._iris_obj()
@@ -2128,6 +2122,7 @@ class IRISGraphEngine:
2128
2122
  )
2129
2123
  row = cursor.fetchone()
2130
2124
  if row and int(row[0]) == 0:
2125
+ kg_predicates_consistent = False
2131
2126
  errors.append(
2132
2127
  f"^KG predicate mismatch: ^KG has '{kg_pred[:60]}' "
2133
2128
  f"but rdf_edges has no matching p — "
@@ -2137,6 +2132,15 @@ class IRISGraphEngine:
2137
2132
  except Exception:
2138
2133
  pass
2139
2134
 
2135
+ adjacency = AdjacencyStatus(
2136
+ kg_populated=kg_populated,
2137
+ kg_edge_count=kg_count,
2138
+ kg_edge_count_capped=kg_capped,
2139
+ nkg_populated=nkg_populated,
2140
+ kg_predicates_consistent=kg_predicates_consistent,
2141
+ bfs_path="none",
2142
+ )
2143
+
2140
2144
  os_classes = []
2141
2145
  os_deployed = self.capabilities.objectscript_deployed
2142
2146
  _known_classes = [
@@ -2185,6 +2189,11 @@ class IRISGraphEngine:
2185
2189
  plaid_indexes=plaid,
2186
2190
  )
2187
2191
 
2192
+ if arno.loaded and arno.capabilities.get("bfs") and adjacency.nkg_populated:
2193
+ adjacency.bfs_path = "arno"
2194
+ elif objectscript.deployed and adjacency.kg_populated:
2195
+ adjacency.bfs_path = "objectscript"
2196
+
2188
2197
  probe_ms = (_time.perf_counter() - t0) * 1000
2189
2198
  return EngineStatus(
2190
2199
  tables=tables,
@@ -20,6 +20,8 @@ class AdjacencyStatus:
20
20
  kg_edge_count: int = 0
21
21
  kg_edge_count_capped: bool = False
22
22
  nkg_populated: bool = False
23
+ kg_predicates_consistent: bool = True
24
+ bfs_path: str = "none"
23
25
 
24
26
 
25
27
  @dataclass
@@ -57,6 +59,14 @@ class EngineStatus:
57
59
  def ready_for_bfs(self) -> bool:
58
60
  return self.adjacency.kg_populated and self.tables.edges > 0
59
61
 
62
+ @property
63
+ def ready_for_multihop_bfs(self) -> bool:
64
+ if not self.ready_for_bfs:
65
+ return False
66
+ if not self.adjacency.kg_predicates_consistent:
67
+ return False
68
+ return self.adjacency.bfs_path in ("arno", "objectscript")
69
+
60
70
  @property
61
71
  def ready_for_vector_search(self) -> bool:
62
72
  return self.tables.node_embeddings > 0
@@ -95,6 +105,15 @@ class EngineStatus:
95
105
  f" {tick(self.adjacency.nkg_populated)} ^NKG (Arno integer index)",
96
106
  ]
97
107
 
108
+ bfs_sym = "✓" if self.adjacency.bfs_path in ("arno", "objectscript") else "✗"
109
+ lines.append(f" {bfs_sym} BFS path: {self.adjacency.bfs_path}")
110
+
111
+ if not self.adjacency.kg_predicates_consistent and self.adjacency.kg_populated:
112
+ lines.append(
113
+ " ⚠ ^KG predicate mismatch — stale from different data snapshot. "
114
+ "Run BuildKG() after reloading graph data."
115
+ )
116
+
98
117
  if not self.adjacency.kg_populated and self.tables.edges > 0:
99
118
  lines.append(
100
119
  " ⚠ ^KG empty but edges exist — "
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "iris-vector-graph"
7
- version = "1.63.4"
7
+ version = "1.63.6"
8
8
  description = "Transactional Graph + Vector retrieval system for InterSystems IRIS with hybrid search, openCypher, and GraphQL APIs"
9
9
  readme = "README.md"
10
10
  license = "MIT"