Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
180
Adopting Neo4j @ Enterprise scale
fylmtm
0
66
League of Graphs \w Neo4j
fylmtm
0
1.4k
Performance & Stability testing \w Gatling
fylmtm
0
230
Neo4j Magic Adventures
fylmtm
1
180
Vim introduction
fylmtm
1
99
Google I/O 2014 - Web updates
fylmtm
0
140
Other Decks in Programming
See All in Programming
AIコーディングの理想と現実
tomohisa
22
29k
Being an ethical software engineer
xgouchet
PRO
0
210
サービスクラスのありがたみを発見したときの思い出 #phpcon_odawara
77web
4
670
スモールスタートで始めるためのLambda×モノリス(Lambdalith)
akihisaikeda
2
280
Vibe Codingをせずに Clineを使っている
watany
17
6.3k
PHPバージョンアップから始めるOSSコントリビュート / how2oss-contribute
dmnlk
1
1.1k
Amazon CloudWatchの地味だけど強力な機能紹介!
itotsum
0
160
音声プラットフォームのアーキテクチャ変遷から学ぶ、クラウドネイティブなバッチ処理 (20250422_CNDS2025_Batch_Architecture)
thousanda
0
180
生成AIを使ったQAアプリケーションの作成 - ハンズオン補足資料
oracle4engineer
PRO
3
220
AWSで雰囲気でつくる! VRChatの写真変換ピタゴラスイッチ
anatofuz
0
160
Memory API : Patterns, Performance et Cas d'Utilisation
josepaumard
0
140
プロフェッショナルとしての成長「問題の深掘り」が導く真のスキルアップ / issue-analysis-and-skill-up
minodriven
6
770
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
522
40k
Making Projects Easy
brettharned
116
6.1k
Designing for humans not robots
tammielis
252
25k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
660
Building a Modern Day E-commerce SEO Strategy
aleyda
40
7.2k
The Pragmatic Product Professional
lauravandoore
33
6.5k
4 Signs Your Business is Dying
shpigford
183
22k
GraphQLの誤解/rethinking-graphql
sonatard
71
10k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
5
520
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
104
19k
Fireside Chat
paigeccino
37
3.4k
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