I'm new to this and am trying to get Titan working with Python. I've been beating my head on this for a day and a half and can't get anywhere. I've tried bulbs and rexpro-python but nothing seems to work.
In rexpro-python the following code:
from rexpro import RexProConnection
conn = RexProConnection('localhost', 8184, 'graph')
will hang and the server produces the following message (for titan versions 0.3.2, 0.3.1 and 0.2.1)
13/09/18 16:59:27 WARN filter.RexProMessageFilter: unsupported rexpro version: 1
In Bulbs:
from bulbs.config import Config, DEBUG
from bulbs.rexster import Graph
config = Config('http://localhost:8182/graphs/graph')
g = Graph(config)
Produces the following error:
SystemError: ({'status': '500', 'transfer-encoding': 'chunked', 'server': 'grizzly/2.2.16', 'connection': 'close', 'date': 'Wed, 18 Sep 2013 21:06:27 GMT', 'access-control-allow-origin': '*', 'content-type': 'application/json'}, '{"message":"","error":"javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: groovy.lang.MissingMethodException.idx() is applicable for argument types: () values: []\\nPossible solutions: is(java.lang.Object), any(), find(), any(groovy.lang.Closure), with(groovy.lang.Closure), _(groovy.lang.Closure)","api":{"description":"evaluate an ad-hoc Gremlin script for a graph.","parameters":{"rexster.returnKeys":"an array of element property keys to return (default is to return all element properties)","rexster.showTypes":"displays the properties of the elements with their native data type (default is false)","load":"a list of \'stored procedures\' to execute prior to the \'script\' (if \'script\' is not specified then the last script in this argument will return the values","rexster.offset.end":"end index for a paged set of data to be returned","rexster.offset.start":"start index for a paged set of data to be returned","params":"a map of parameters to bind to the script engine","language":"the gremlin language flavor to use (default to groovy)","script":"the Gremlin script to be evaluated"}},"success":false}')
with a similar exception on the Titan server. Has anyone gotten this to work?
In the case of rexpro-python, you have a version issue. The latest version of RexPro Python will connect to TinkerPop/Rexster 2.4.0. Titan does not support that version yet. As of Titan 0.3.2 it supports TinkerPop 2.3.x. It looks like this is the last commit prior to the bump to 2.4.0 compatibility for rexpro-python:
https://github.com/bdeggleston/rexpro-python/commit/3597f4ce5a4da69ec64f174aa1a064abf7524693
but you may want to review the commit history a bit to be sure you get the right one.
Bulbs looks like it is making a call to a manual index, something Titan doesn't support. There are a number of posts on this in the gremlin-users and/or areuliusgraphs mailing lists. Check out this post with a reference to your exact problem:
https://groups.google.com/forum/#!msg/gremlin-users/s7Ag1tjbxLs/nC5WjtHh6woJ
Short answer it looks like Bulbs was updated to support Titan. Perhaps, you have some version incompatibility somewhere still.
With Titan 1.0.0 or later, we have better ways to connect from python.
Now titan comes with Gremlin server. Gremlin server provides ability for Non-JVM languages (e.g. Python, Javascript, etc.) to communicate with the TinkerPop stack.
Gremlin Server is the replacement for Rexster.
To start gremlin server (this script is packaged with titan):
sh gremlin-server.sh
Similar batch script is available for windows in same directory.
Once started, following python drivers should help connect with Gremlin server:
Python based Query language libraries, that can help during development:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With