{"componentChunkName":"component---src-templates-default-template-tsx","path":"/documentation/api/gremlin/","result":{"data":{"asciidoc":{"id":"6c4c0d01-3fc5-5639-b16d-3beb41e26b0a","html":"<div id=\"toc\" class=\"toc\">\n<div id=\"toctitle\">Table of Contents</div>\n<ul class=\"sectlevel1\">\n<li><a href=\"#_gremlin_query_documentation\">Gremlin Query Documentation</a></li>\n<li><a href=\"#_limitations_in_hiro_graph\">Limitations in HIRO Graph</a></li>\n<li><a href=\"#_data_access_control\">Data Access Control</a></li>\n</ul>\n</div>\n<div class=\"sect1\">\n<h2 id=\"_gremlin_query_documentation\">Gremlin Query Documentation</h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>One of the supported query modes in HIRO&#8482; uses the Gremlin query language for\ngraph traversals.</p>\n</div>\n<div class=\"paragraph\">\n<p>The official documentation of the Gremlin query language can be found at\n<a href=\"http://tinkerpop.apache.org/docs/3.2.6/\">GremlinDocs</a>.\nThe support version is tinkerpop ´3.2.6´.</p>\n</div>\n</div>\n</div>\n<div class=\"sect1\">\n<h2 id=\"_limitations_in_hiro_graph\">Limitations in HIRO Graph</h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>The Gremlin query interface in HIRO has been implemented with the following\nlimitations:</p>\n</div>\n<div class=\"olist arabic\">\n<ol class=\"arabic\">\n<li>\n<p>Gremlin queries are read-only.</p>\n</li>\n<li>\n<p>All Gremlin queries are filtered according to the user&#8217;s access control permissions (see below).</p>\n</li>\n<li>\n<p>Queries have to start with a root vertex. One cannot query the graph with <code>E() or V()</code>.</p>\n</li>\n<li>\n<p>The following syntax elements cannot be used and end in an error message: <code>V(), E(), addV(), addE(), addOutE(), addInE(), drop(), property(&#8230;&#8203;)</code></p>\n</li>\n<li>\n<p>The following is a list of the allowed steps:<br>\n<code>aggregate, and, as, barrier, both, bothE, bothV, by, cap, choose, coalesce, coin, constant, count, cyclicPath, dedup, emit, explain, fill, filter, flatMap, fold, group, groupCount, has, hasId, hasKey, hasLabel, hasNext, hasNot, hasValue, id, identity, in, inE, inV, inject, is, iterate, key, label, limit, local, loops, map, mapKeys, mapValues, max, mean, min, next, option, optional, or, order, otherV, out, outE, outV, pageRank, path, peerPressure, profile, program, project, promise, properties, propertyMap, range, repeat, sack, sample, select, simplePath, store, subgraph, sum, tail, timeLimit, times, to, toBulkSet, toE, toList, toSet, toV, tree, unfold, union, value, valueMap, values, where</code></p>\n</li>\n<li>\n<p>Closures are restricted to default tinkerpop classes as well as java fundamentals e.g. <code>Integer, Long, String</code></p>\n</li>\n</ol>\n</div>\n</div>\n</div>\n<div class=\"sect1\">\n<h2 id=\"_data_access_control\">Data Access Control</h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>In the HIRO&#8482; Graph database, vertices and edges are authorized on a per vertex\ngranularity. For Gremlin queries, all vertices on the traversal path are checked\nfor proper data access permissions. Vertices, for which the user does not have\nproper permissions, are ignored by the query. That means these vertices are neither\nreturned in query result set, nor can there be graph traversals via these\nvertices.</p>\n</div>\n</div>\n</div>","document":{"main":"HIRO Graph - Gremlin Query","title":"HIRO Graph - Gremlin Query","subtitle":""},"fields":{"toc":true,"location":["documentation","api","gremlin"]}},"sidebarYaml":{"id":"6d066bdd-c982-5a69-b909-a31e6fc044e0","showIndex":null}},"pageContext":{"id":"6c4c0d01-3fc5-5639-b16d-3beb41e26b0a","parent":"documentation"}},"staticQueryHashes":["1010459453","1010459453","2356112386","2356112386","2603905930","2603905930","3026652197","3026652197","3167850324","3167850324","63159454","63159454"]}