graphiti/graphiti_core
supmo668 a944871942 feat: Add Gremlin query language support for Neptune Database
Adds experimental support for Apache TinkerPop Gremlin as an alternative
query language for AWS Neptune Database, alongside the existing openCypher
support. This enables users to choose their preferred query language and
opens the door for future support of other Gremlin-compatible databases.

- QueryLanguage enum (CYPHER, GREMLIN) for explicit language selection
- Dual-mode NeptuneDriver supporting both Cypher and Gremlin
- Gremlin query generation functions for common graph operations
- Graceful degradation when gremlinpython is not installed
- 100% backward compatible (defaults to CYPHER)

- graphiti_core/driver/driver.py: Added QueryLanguage enum
- graphiti_core/driver/neptune_driver.py: Dual client initialization
  and query routing based on language selection
- graphiti_core/graph_queries.py: 9 new Gremlin query generation functions

- graphiti_core/utils/maintenance/graph_data_operations.py: Updated
  clear_data() to support both query languages

- tests/test_neptune_gremlin_int.py: Comprehensive integration tests
- examples/quickstart/quickstart_neptune_gremlin.py: Usage example
- examples/quickstart/README.md: Updated with Gremlin instructions
- GREMLIN_FEATURE.md: Complete feature documentation

- pyproject.toml: Added gremlinpython>=3.7.0 to neptune extras

```python
from graphiti_core.driver.driver import QueryLanguage
from graphiti_core.driver.neptune_driver import NeptuneDriver

driver = NeptuneDriver(
    host='neptune-db://cluster.amazonaws.com',
    aoss_host='aoss-cluster.amazonaws.com',
    query_language=QueryLanguage.GREMLIN
)
```

- Only Neptune Database supports Gremlin (not Neptune Analytics)
- Fulltext and vector search still use OpenSearch (AOSS) integration
- Complete search_utils.py Gremlin implementation pending (future work)

-  All existing unit tests pass (103/103)
-  New integration tests for Gremlin operations
-  Type checking passes
-  Linting passes

None. Fully backward compatible.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 23:45:59 -08:00
..
cross_encoder fix typo and model selector (#843) 2025-08-18 11:15:45 -04:00
driver feat: Add Gremlin query language support for Neptune Database 2025-11-05 23:45:59 -08:00
embedder OpenSearch Integration for Neo4j (#896) 2025-09-09 10:51:46 -04:00
llm_client Fix Azure structured completions (#1039) 2025-11-01 18:40:43 -07:00
migrations cleanup (#894) 2025-09-05 11:30:46 -04:00
models Remove integration markers from database tests (#1000) 2025-10-12 10:16:34 -07:00
prompts Remove JSON indentation from prompts to reduce token usage (#985) 2025-10-06 16:08:43 -07:00
search [Improvement] Add GraphID isolation support for FalkorDB multi-tenant architecture (#835) 2025-11-03 10:56:53 -05:00
telemetry feat: add telemetry with PostHog and update Docker configurations (#633) 2025-06-27 12:23:30 -07:00
utils feat: Add Gremlin query language support for Neptune Database 2025-11-05 23:45:59 -08:00
__init__.py chore: Fix packaging (#38) 2024-08-25 10:07:50 -07:00
decorators.py [Improvement] Add GraphID isolation support for FalkorDB multi-tenant architecture (#835) 2025-11-03 10:56:53 -05:00
edges.py add search and graph operations interfaces (#984) 2025-10-07 13:34:37 -04:00
errors.py Add group ID validation and error handling (#618) 2025-06-24 09:33:54 -07:00
graph_queries.py feat: Add Gremlin query language support for Neptune Database 2025-11-05 23:45:59 -08:00
graphiti.py [Improvement] Add GraphID isolation support for FalkorDB multi-tenant architecture (#835) 2025-11-03 10:56:53 -05:00
graphiti_types.py Add OpenTelemetry distributed tracing support (#982) 2025-10-05 12:26:14 -07:00
helpers.py fix-fulltext-syntax-error (#914) 2025-09-23 10:52:44 -04:00
nodes.py fix deprecated cypher pattern (#993) 2025-10-09 16:12:55 -04:00
py.typed Add py.typed file (#105) 2024-09-11 08:44:06 -04:00
tracer.py Add OpenTelemetry distributed tracing support (#982) 2025-10-05 12:26:14 -07:00