Apache TinkerPop

AT

Apache TinkerPop

Apache TinkerPop is an open source graph computing framework and the home of the Gremlin graph query language.

Join

Help with Stubbing Golang gremlin-go V3 Package

I'm using the gremlin-go V3 package and I'm trying to find an easy way to mock for testing. Has anyone successfully created a Mock Package/Interface? My code currently uses: GraphTraversalSource...

Help with a gremlin query..

Hi folks, I have a graph where: Customer vertices connect to Order vertices via hasOrder edges....

Gremlin drivers with Neptune when connecting through an EC2 instance?

Hello! Currently connecting to a Neptune db from my cloud desktop/local environment..? by using aws session manager with an ec2 instance. I'm using an api to send queries to neptune but was wondering if in a case like this, gremlin drivers are possible to use or if i have to keep with the http-based approach! the json responses are pretty convoluted ...

ERR_TLS_CERT_ALTNAME_INVALID when using @aws-sdk/client-neptunedata in Bun application

Hi, I'm the creator and maintainer of queryblast; https://github.com/SouthwestAir/queryblast which is a babashka pod for submitting opencypher queries to Neptune Queryblast is a babashka pod, and it runs in a process of its own, while a user script interacts with it.
Queryblast uses @aws-sdk/client-neptunedata, and it's built for darwin using Bun OK here's my question: I'm seeing the following error message when I get on my corporate VPN and submit a query to Neptune: ...

Is there any work on a shapes constraint language for gremlin?

https://www.w3.org/TR/shacl/ I want to constrain the shapes in my graph but I’m finding that there is a lack of tooling in this area. Can anyone tell me if there is such a thing as a shapes constraint language for Gremlin? I want to use it with Neptune...
Solution:
Unfortunately TinkerPop/Gremlin is schemaless and does not provide any tools for constraint enforcement at this time. It's a capability that I personally would very much like to see in gremlin, but at this time seems unlikely to arrive in the near future.

Inconsistent Behavior with WhereStep with labels

I'm getting some weird behavior when using labels on an anonymous traversal within the WhereStep. Below are some code examples - excuse the fact that they're kind of silly they're just meant to demonstrate the issue ``` final var tinkerg = TinkerFactory.createModern(); tinkerg.traversal().V().drop().iterate();...

New websocket connection on each traversal

I am using gremlin for traversing the janusgraph data via my java spring application. I am initiating the graph as below snippet @Bean public GraphTraversalSource g(Cluster cluster) { return AnonymousTraversalSource.traversal().withRemote(DriverRemoteConnection.using(cluster)); // Or "conf/remote.yaml" }...

PuppyGraph: Vertex Definitions with Filtering

When I create vertex definitions to build a PuppyGraph schema, is there a way to apply simple Where clauses to apply filtering? That would have to go into the mappedTableSourceobject. Thanks.

Supplying multiple IP:port pairs to Java GLV

I am trying to connect to multiple gremlin-server nodes that have different ports. Is there a workaround in the Java driver that would allow this? I cannot find any way to build the Cluster without using the same port.
Solution:
Looking at the code, I agree there doesn't seem to be a way to do this unfortunately

Could you point out to the active OGM/ORM projects that are based on Tinkerpop ?

We are working on our own implementation of "MaterializedEntities" for Java and integrating YTDB in XodusDNQ for Kotlin but we interested in wide coverage.

When gremlin-JavaScript release?

Any plans for a new release of gremlin-JavaScript? 3.7.4?...

Cosmos functionality

Hi all, I'm toying with cosmos gremlin for my DB and after experimenting more, I find that the limitations it has are getting to be a bit ridiculous. I'm trying to use mergeV/E to simply upsert but since there is no map support I can't upsert with this function. Am I correct? Is this version of the language even turing complete?...

GraphBinary and Graphson version 4.0 specifications?

Where is the description of the GraphBinary and Graphson version 4.0 formats? I looked at https://tinkerpop.apache.org/docs/3.4.1/dev/io/, although it covers up to GraphBinary 1.0 and Graphson 3.0. Is there another place with their description?...
Solution:
that's a really old link and refers to the 3.4.1 release. i imagine it very out of date. you can replace that version number with any you like. so the most current would be like: https://tinkerpop.apache.org/docs/3.7.3/dev/io/ but you can always just specify "current" and the version to get the most recent one: https://tinkerpop.apache.org/docs/current/dev/io/ "current" only covers full official releases. upcoming releases get SNAPSHOT publication occasionally: https://tinkerpop.apache.org/docs/4.0.0-SNAPSHOT/dev/io/ though the most up to date for the future will be in github: https://github.com/apache/tinkerpop/tree/master/docs/src/dev/io...

Gremlin traversal exceeded maximum compilation depth. Max: 400

Hi all, I'm using gremlin through cosmos and the python library and I'm getting this error when I try to add a lot of vertices to my graph at the same time. (A lot as in only 583 vertices). I'm guessing this refers to the actual traversal part, but considering my query is structurally just chained addV's: g.addV("..").property(...).addV("..").... I can't imagine it's that complex. I tried chunking them into smaller batches and submitting them individually but I still get the same error after the last batch....
Solution:
Hey, i've run into that one before - there's a maximum length of query Cosmos DB can handle and it looks like you're exceeding it. When writing a big big gremlin query that creates a bunch of vertices and their properties it can quickly exceed that limit. I believe if I remember right from the CosmosDB docs that the solution here is to batch these smaller and run them in parallel (e.g. threading) to get the best performance...

Seeking Help: Building a Text-to-Gremlin Corpus Generator - AST Parsing

Hey everyone, I'm working on fine-tuning a large language model for text-to-Gremlin generation. To do this, I need a substantial dataset of natural language queries paired with their corresponding Gremlin queries. I'm currently building a corpus generator for this. I've seen some work on text-to-Cypher where they parsed the Cypher AST (Abstract Syntax Tree). However, the ASTs for Cypher and Gremlin are quite different. Does anyone have suggestions on how to tackle this? Specifically: * Are there any existing tools for parsing Gremlin ASTs?...

g.dot.v new version

A question for Awesome @G.V() - Gremlin IDE (Arthur) . The newest version of g.dot.v opens and claims that I have no existing saved connections and no saved queries. Did I just erase a lot of good work? Can I find those former queries in Mac's /Library/... folders?...

Cursor based pagination on gremlin queries

I wanted to ask whether there's a way of implementing cursor based pagination on gremlin queries in a relatively performant way. For example, if I were to run the following query: g.V().hasLabel('person').order().by('created', asc) .limit(50), to get the first 50 results for all nodes with label "person" and ordered by the created attribute, and then save the highest created property for this batch of results, and then run `g.V().hasLabel('person').has('created', gt(last_highest_created_property).order().by('created', asc)...

Neptune 1.4.5 DFE Repeat/Until Optimization

I notice that the 1.4.5 engine version has DFE support for the Gremlin repeat() step. This has been a step which I've had some trouble with in a POC that I've been working on where 99% of the execution time consistently gets spent on this step. This was also raised with Neptune support and they acknowledged the step needed optimization as well. I'm wondering now that DFE is implementing repeat() as well, if it incorporates these optimizations. I've been using 1.3.2.1 and will try to upgrade and...

Hiring a Neptune/Gremlin Administrator

I work with a client that would like to have a DBA-like FTE specialist, as a new member of their broader DataOps group, that can help the organization to manage and scale a number of AWS Neptune (Gremlin) clusters. This individual would be tasked to work closely with DevSecOps and Product teams to ensure that optimal implementations of relevant Python based API services are realized. Would anyone have advice on websites where I might be able to find candidates for such a specialist position? If you already are employed in a role like this, can you share any info on what this position requires w.r.t. education, experience, and as to what salary band expectations are to be expected? Location is ideally in Canada but USA may be ok too. Work is fully remote....

Neptune Local Development Access Methods

Question for the Neptune folks - I'm trying to cobble together ergonomic local access to our development cluster. Here's what I've got that works: - SSM session running via an EC2 bastion host, which makes the targeted cluster (using AWS-StartPortForwardingSessionToRemoteHost) available at localhost:8182 - A mapping in /etc/hosts resolving <my_cluster_url> to localhost...
Solution:
Ok, after a bit more tinkering, here's an implementation that doesn't require any outside-script configuration or tools, and doesn't require disabling SSL. It requires an additional import AiohttpTransport which is used to pass the server hostname to DriverRemoteConnection via transport_factory, solving the hostname mismatch failure issue that arises without it by passing the 'correct' host to the TLS handshake. ```python...
Next