{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,5]],"date-time":"2026-02-05T06:35:16Z","timestamp":1770273316375,"version":"3.49.0"},"reference-count":24,"publisher":"Association for Computing Machinery (ACM)","issue":"12","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Proc. VLDB Endow."],"published-print":{"date-parts":[[2019,8]]},"abstract":"<jats:p>The paper describes the present and the future of graph updates in Cypher, the language of the Neo4j property graph database and several other products. Update features include those with clear analogs in relational databases, as well as those that do not correspond to any relational operators. Moreover, unlike SQL, Cypher updates can be arbitrarily intertwined with querying clauses. After presenting the current state of update features, we point out their shortcomings, most notably violations of atomicity and non-deterministic behavior of updates. These have not been previously known in the Cypher community. We then describe the industry-academia collaboration on designing a revised set of Cypher update operations. Based on discovered shortcomings of update features, a number of possible solutions were devised. They were presented to key Cypher users, who were given the opportunity to comment on how update features are used in real life, and on their preferences for proposed fixes. As the result of the consultation, a new set of update operations for Cypher were designed. Those led to a streamlined syntax, and eliminated the unexpected and problematic behavior that original Cypher updates exhibited.<\/jats:p>","DOI":"10.14778\/3352063.3352139","type":"journal-article","created":{"date-parts":[[2019,9,18]],"date-time":"2019-09-18T18:36:11Z","timestamp":1568831771000},"page":"2242-2254","source":"Crossref","is-referenced-by-count":27,"title":["Updating graph databases with Cypher"],"prefix":"10.14778","volume":"12","author":[{"given":"Alastair","family":"Green","sequence":"first","affiliation":[{"name":"Neo4j"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Paolo","family":"Guagliardo","sequence":"additional","affiliation":[{"name":"University of Edinburgh"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Leonid","family":"Libkin","sequence":"additional","affiliation":[{"name":"University of Edinburgh"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Tobias","family":"Lindaaker","sequence":"additional","affiliation":[{"name":"Neo4j"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Victor","family":"Marsault","sequence":"additional","affiliation":[{"name":"UPEM and University of Edinburgh"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Stefan","family":"Plantikow","sequence":"additional","affiliation":[{"name":"Neo4j"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Martin","family":"Schuster","sequence":"additional","affiliation":[{"name":"Abbott Informatics and University of Edinburgh"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Petra","family":"Selmer","sequence":"additional","affiliation":[{"name":"Neo4j"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Hannes","family":"Voigt","sequence":"additional","affiliation":[{"name":"Neo4j"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2019,8]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"Cypher for Apache Spark Oct. 2018. https:\/\/github.com\/opencypher\/cypher-for-apache-spark\/.  Cypher for Apache Spark Oct. 2018. https:\/\/github.com\/opencypher\/cypher-for-apache-spark\/."},{"key":"e_1_2_1_2_1","unstructured":"Cypher for Gremlin Oct. 2018. https:\/\/github.com\/opencypher\/cypher-for-gremlin\/.  Cypher for Gremlin Oct. 2018. https:\/\/github.com\/opencypher\/cypher-for-gremlin\/."},{"key":"e_1_2_1_3_1","unstructured":"Graph Query Language GQL 2018. https:\/\/www.gqlstandards.org\/.  Graph Query Language GQL 2018. https:\/\/www.gqlstandards.org\/."},{"key":"e_1_2_1_4_1","unstructured":"MemGraph Oct. 2018. https:\/\/memgraph.com\/.  MemGraph Oct. 2018. https:\/\/memgraph.com\/."},{"key":"e_1_2_1_5_1","unstructured":"openCypher Project 2018. http:\/\/www.opencypher.org\/.  openCypher Project 2018. http:\/\/www.opencypher.org\/."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1010051815785"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/3183713.3190654"},{"key":"e_1_2_1_8_1","unstructured":"Bitnine. AgensGraph Oct. 2018. https:\/\/github.com\/bitnine-oss\/agensgraph\/.  Bitnine. AgensGraph Oct. 2018. https:\/\/github.com\/bitnine-oss\/agensgraph\/."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1985.232223"},{"key":"e_1_2_1_10_1","volume-title":"CIDR","author":"Chu S.","year":"2017","unstructured":"S. Chu , C. Wang , K. Weitz , and A. Cheung . Cosette: An automated prover for SQL . In CIDR , 2017 . S. Chu, C. Wang, K. Weitz, and A. Cheung. Cosette: An automated prover for SQL. In CIDR, 2017."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3062341.3062348"},{"key":"e_1_2_1_12_1","volume-title":"Formal semantics of the language Cypher. CoRR, abs\/1802.09984","author":"Francis N.","year":"2018","unstructured":"N. Francis , A. Green , P. Guagliardo , L. Libkin , T. Lindaaker , V. Marsault , S. Plantikow , M. Rydberg , M. Schuster , P. Selmer , and A. Taylor . Formal semantics of the language Cypher. CoRR, abs\/1802.09984 , 2018 . https:\/\/arxiv.org\/abs\/1802.09984. N. Francis, A. Green, P. Guagliardo, L. Libkin, T. Lindaaker, V. Marsault, S. Plantikow, M. Rydberg, M. Schuster, P. Selmer, and A. Taylor. Formal semantics of the language Cypher. CoRR, abs\/1802.09984, 2018. https:\/\/arxiv.org\/abs\/1802.09984."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/3183713.3190657"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.14778\/3151113.3151116"},{"key":"e_1_2_1_15_1","first-page":"274","volume-title":"Computer Science Logic","author":"Gurevich Y.","year":"1992","unstructured":"Y. Gurevich and J. K. Huggins . The semantics of the C programming language . In Computer Science Logic , pages 274 -- 308 , 1992 . Y. Gurevich and J. K. Huggins. The semantics of the C programming language. In Computer Science Logic, pages 274--308, 1992."},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.5555\/3002812"},{"key":"e_1_2_1_17_1","volume-title":"Definition of Standard ML","author":"Milner R.","year":"1990","unstructured":"R. Milner , M. Tofte , and R. Harper . Definition of Standard ML . MIT Press , 1990 . R. Milner, M. Tofte, and R. Harper. Definition of Standard ML. MIT Press, 1990."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/111197.111212"},{"key":"e_1_2_1_19_1","volume-title":"Feb.","author":"Paradies M.","year":"2017","unstructured":"M. Paradies . Graph pattern matching in SAP HANA. First openCypher Implementers Meeting , Feb. 2017 . https:\/\/tinyurl.com\/ycxu54pr. M. Paradies. Graph pattern matching in SAP HANA. First openCypher Implementers Meeting, Feb. 2017. https:\/\/tinyurl.com\/ycxu54pr."},{"key":"e_1_2_1_20_1","unstructured":"Redis Labs. RedisGraph Oct. 2018. https:\/\/oss.redislabs.com\/redisgraph\/.  Redis Labs. RedisGraph Oct. 2018. https:\/\/oss.redislabs.com\/redisgraph\/."},{"key":"e_1_2_1_21_1","volume-title":"Graph databases","author":"Robinson I.","year":"2013","unstructured":"I. Robinson , J. Webber , and E. Eifrem . Graph databases . O'Reilly Media , 2013 . I. Robinson, J. Webber, and E. Eifrem. Graph databases. O'Reilly Media, 2013."},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/3186728.3164139"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/2960414.2960421"},{"key":"e_1_2_1_24_1","series-title":"LNCS","doi-asserted-by":"crossref","first-page":"425","DOI":"10.1007\/978-3-642-17511-4_24","volume-title":"Logic for Programming, Artificial Intelligence, and Reasoning (LPAR)","author":"Veanes M.","year":"2010","unstructured":"M. Veanes , N. Tillmann , and J. de Halleux. Qex: Symbolic SQL query explorer . In Logic for Programming, Artificial Intelligence, and Reasoning (LPAR) , volume 6355 of LNCS , pages 425 -- 446 . Springer , 2010 . M. Veanes, N. Tillmann, and J. de Halleux. Qex: Symbolic SQL query explorer. In Logic for Programming, Artificial Intelligence, and Reasoning (LPAR), volume 6355 of LNCS, pages 425--446. Springer, 2010."}],"container-title":["Proceedings of the VLDB Endowment"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.14778\/3352063.3352139","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,12,28]],"date-time":"2022-12-28T10:35:13Z","timestamp":1672223713000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.14778\/3352063.3352139"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,8]]},"references-count":24,"journal-issue":{"issue":"12","published-print":{"date-parts":[[2019,8]]}},"alternative-id":["10.14778\/3352063.3352139"],"URL":"https:\/\/doi.org\/10.14778\/3352063.3352139","relation":{},"ISSN":["2150-8097"],"issn-type":[{"value":"2150-8097","type":"print"}],"subject":[],"published":{"date-parts":[[2019,8]]}}}