Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cypher Editor
Search
Dmitrijs Vrublevskis
June 05, 2017
Programming
0
140
Cypher Editor
Dmitrijs Vrublevskis
June 05, 2017
Tweet
Share
More Decks by Dmitrijs Vrublevskis
See All by Dmitrijs Vrublevskis
Cypher in JetBrains IDE
fylmtm
0
200
Adopting Neo4j @ Enterprise scale
fylmtm
0
75
League of Graphs \w Neo4j
fylmtm
0
1.5k
Performance & Stability testing \w Gatling
fylmtm
0
230
Neo4j Magic Adventures
fylmtm
1
190
Vim introduction
fylmtm
1
100
Google I/O 2014 - Web updates
fylmtm
0
150
Other Decks in Programming
See All in Programming
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
3
740
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
120
テストやOSS開発に役立つSetup PHP Action
matsuo_atsushi
0
160
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin? at Henry
agatan
2
7.2k
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
140
これならできる!個人開発のすゝめ
tinykitten
PRO
0
110
FluorTracer / RayTracingCamp11
kugimasa
0
230
認証・認可の基本を学ぼう後編
kouyuume
0
240
関数実行の裏側では何が起きているのか?
minop1205
1
700
connect-python: convenient protobuf RPC for Python
anuraaga
0
410
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
160
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
480
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.3k
Rails Girls Zürich Keynote
gr2m
95
14k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Optimizing for Happiness
mojombo
379
70k
Unsuck your backbone
ammeep
671
58k
4 Signs Your Business is Dying
shpigford
186
22k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
970
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
Embracing the Ebb and Flow
colly
88
4.9k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Transcript
Cypher Editor ! " # $ In the Web
Dmitry Vrublevsky Software Engineer @ %
[email protected]
& @FylmTM Ambassador
@
None
Syntax highlighting
Error reporting
Auto Completion
It’s already there • Open Source • Separate “Backend” •
CodeMirror support • Integrated into Neo4j 3.2 ' /neo4j-contrib/cypher-editor
openCypher ?
1. Grammar 2. Tests 3. Improvements
1. Grammar • Based on ANTLR4 grammar • Copied &
Modified for Cypher Editor usage • Superset of openCypher grammar version • Neo4j version of Cypher File: cypher-editor-support/src/_generated/Cypher.g4
ANTLR4 ♥ JavaScript * * With a few exceptions.
2. Tests $ cd cypher-editor-support/test/parser/openCypherTestFiles $ ls -1 cypher-legacy.js cypher.js
$ cat * | grep "§" | wc -l 227
3. Improvements • Grammar improvements (clause order) • https://github.com/opencypher/openCypher/pull/223 •
Add namespace to procedure names • https://github.com/opencypher/openCypher/pull/226
Challenges (1) • Vendor extensions • Legacy Cypher -> Neo4j
Vendor extension • Documented vendor extension • Neo4j 3.2 node key constraint • Neo4j 3.2 composite index
Challenges (2) Little details that matters nodeLabel : ‘:’ SP?
labelName ; MATCH (n:Person) MATCH (n:`Army:General`) MATCH (n: Person) MATCH (n: `Army:General`)
Challenges (2) Little details that matters MATCH (n:␣ RETURN n
MATCH (n:␣ RETURN n What user sees: What grammar sees:
' /slizaa / slizaa-opencypher-xtext
Our team responsibility • Sync up with openCypher grammar when
possible and makes sense • Contribute our grammar fixes & improvements back to openCypher
None