Skip to content

docs(gfql): Add Call/Let/Ref documentation (Part 2 of PR #719 improvements)#750

Merged
lmeyerov merged 8 commits into
masterfrom
docs/pr719-improvements-part2
Sep 26, 2025
Merged

docs(gfql): Add Call/Let/Ref documentation (Part 2 of PR #719 improvements)#750
lmeyerov merged 8 commits into
masterfrom
docs/pr719-improvements-part2

Conversation

@lmeyerov

@lmeyerov lmeyerov commented Sep 26, 2025

Copy link
Copy Markdown
Contributor

Summary

This is Part 2 of the documentation improvements from PR #719, stacked on top of PR #748.

PR Stack

  1. PR docs(gfql): Rename chain() to gfql() throughout documentation #748 (ready): All chain→gfql renames
  2. This PR docs(gfql): Add Call/Let/Ref documentation (Part 2 of PR #719 improvements) #750: Call/Let/Ref/RemoteGraph documentation

Changes in This PR

All Documentation Completed ✅

  • Step 52 - spec/language.md: Added comprehensive Call Operations and Security section

    • Safelist architecture and security model
    • Categories of allowed operations (analysis, transformation, layout, encoding)
    • Validation stages and error codes
  • Step 53 - spec/python_embedding.md: Added DAG Patterns with Let Bindings section

    • Let bindings for named graph operations
    • Ref for referencing bindings with additional operations
    • Complex DAG pattern examples
    • RemoteGraph for distributed computing
    • Call operations with Let bindings
  • Step 54 - spec/wire_protocol.md: Updated with new operation types

    • Added Let, ChainRef, RemoteGraph, Call to message types
    • Added serialization examples for all new operations
  • Step 55 - overview.rst: Added Python vs GFQL Let comparison

    • Shows difference between sequential Python and declarative GFQL DAG approach
    • Highlights key advantages of Let bindings
  • Step 57 - quick.rst: Added Let and Call examples

    • Let Bindings and DAG Patterns section
    • Call Operations section with algorithm examples
    • RemoteGraph References section
  • Step 60 - loading_graph_data.rst: Created comprehensive loading guide

    • Loading from DataFrames, files, databases
    • GPU memory management
    • Data preprocessing best practices
  • Step 61 - about.rst (10min.rst): Added "Sequencing Programs with Let"

    • Multi-stage fraud analysis example
    • Key benefits of Let bindings

Testing

  • Documentation builds successfully
  • Examples are syntactically correct
  • All cross-references work

Related

Base automatically changed from docs/pr719-improvements to master September 26, 2025 04:25
lmeyerov and others added 5 commits September 25, 2025 21:29
- Enhanced cypher_mapping.md introduction with clearer structure
- Added GFQL-Only Super-Powers section highlighting unique features
- Improved section headers and organization
- Added comment to edge patterns table about upper-bound only
- Reordered predicates table with literal first
- Added DataFrame-native explanation to translate.rst
- Added reference to loading-graph-data guide

These improvements make the documentation clearer and more comprehensive
for users migrating from Cypher to GFQL.

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

Co-Authored-By: Claude <noreply@anthropic.com>
Removed the reference to :ref:`loading-graph-data` as the file doesn't
exist yet. The DataFrame-native explanation remains to help users
understand GFQL's approach.

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

Co-Authored-By: Claude <noreply@anthropic.com>
Added comprehensive documentation for Call operations including:
- Safelist architecture and security model
- Categories of allowed operations (analysis, transformation, layout, encoding)
- Validation stages and error codes
- Prevents arbitrary code execution

From PR #719 improvements (Step 52 of plan)

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

Co-Authored-By: Claude <noreply@anthropic.com>
Added comprehensive documentation for DAG patterns including:
- Let bindings for named graph operations
- Ref for referencing bindings with additional operations
- Complex DAG pattern examples
- RemoteGraph for distributed computing
- Call operations with Let bindings

From PR #719 improvements (Step 53 of plan)

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

Co-Authored-By: Claude <noreply@anthropic.com>
- Add Call Operations and Security section to spec/language.md
- Add DAG Patterns with Let Bindings to spec/python_embedding.md
- Update wire_protocol.md with new operation types
- Add Python vs GFQL Let comparison to overview.rst
- Add Let, Call, RemoteGraph examples to quick.rst
- Create comprehensive loading_graph_data.rst guide
- Add Sequencing Programs with Let to 10min.rst

Part 2 of PR #719 documentation improvements
@lmeyerov
lmeyerov force-pushed the docs/pr719-improvements-part2 branch from 219ae90 to c888a95 Compare September 26, 2025 04:29
Comment thread docs/source/gfql/overview.rst Outdated
connections = result._edges[result._edges['connections']]

Key advantages of GFQL Let:
- **Single-pass execution**: Entire DAG computed in one optimized operation

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

single pass is sus..

- Remove incorrect claim about 'single-pass execution'
- Clarify that Let creates named subgraphs/operations like variables
- Emphasize DAG dependency management and composability
- Maintain focus on GPU acceleration benefits
Comment thread docs/source/gfql/quick.rst Outdated
'adults': ref('persons', [n({'age': ge(18)})]),
'connections': ref('adults', [
e_forward({'type': 'knows'}),
ref('adults') # Find connections between adults

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

invalid?

- Fix invalid Let examples that used bare matchers (now use Chain wrapper)
- Add note that Chain wrapper is currently required (will be fixed)
- Improve Call Operations description to be clearer about graph algorithms
- Remove invalid example with ref() inside ref() chain
All GFQL operations use lowercase aliases:
- let() not Let()
- ref() not Ref()
- call() not Call()
- remote() not RemoteGraph()

Fixed documentation to use correct lowercase 'remote' alias
@lmeyerov
lmeyerov merged commit eb2977d into master Sep 26, 2025
25 checks passed
@lmeyerov
lmeyerov deleted the docs/pr719-improvements-part2 branch September 26, 2025 04:54
lmeyerov added a commit that referenced this pull request Sep 26, 2025
…chain()

- Replaced all .chain() calls with .gfql()
- Replaced all .chain_remote() calls with .gfql_remote()
- Updated references to chain_remote() and chain_remote_shape() in text
- Updated code examples in markdown cells

Affected notebooks:
- benchmark_hops_cpu_gpu.ipynb: 31 chain() replacements
- gfql_remote.ipynb: 1 chain() + 8 chain_remote() replacements
- gfql_validation_fundamentals.ipynb: 6 chain() replacements
- GPU_memory_consumption_tutorial.ipynb: 1 chain() replacement
- temporal_predicates.ipynb: 7 chain() replacements

This aligns notebooks with the API deprecation from PRs #748 and #750.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant