TitanGraphDB + Cassandraを使用しています。次のようにTitanを起動しています
cd titan-cassandra-0.3.1
bin/titan.sh config/titan-server-rexster.xml config/titan-server-cassandra.properties
上記の Titan + Cassandra との通信に使用できる Rexster シェルがあります。
cd rexster-console-2.3.0
bin/rexster-console.sh
Titan Graph DB を使用してネットワーク トポロジをモデル化しようとしています。Python プログラムから Titan Graph DB をプログラムしたいと考えています。そのために電球パッケージを使用しています。3 種類の頂点を作成します
- switch
- port
- device
物理的に接続されているポート間にラベル付きのエッジを作成します。使用するラベルは「リンク」です。
2 つのポート頂点portAとがあるとしportBます。
使用している電球パッケージからportA接続されているかどうかを確認したい。portBpython program
最初のステップとして、スクリプトを作成します (ファイルに保存されますis_connected.sh) 。
def is_connected(portA, portB):
return portA.both("link").retain([portB]).hasNext()
次のように rexster-console から上記のスクリプトを実行しようとすると、次の結果が得られます。
sudo ./start_rexter.sh
(l_(l
(_______( 0 0
( (-Y-) <woof>
l l-----l l
l l,, l l,,
opening session [127.0.0.1:8184]
?h for help
rexster[groovy]> ?e
specify the file to executerexster[groovy]> is_connected.sh
==>An error occurred while processing the script for language [groovy]. All transactions across all graphs in the session have been concluded with failure: java.util.concurrent.ExecutionException: javax.script.ScriptException: javax.script.ScriptException: groovy.lang.MissingPropertyException: No such property: is_connected for class: Script2
これは、ストアド プロシージャ (別名グレムリン スクリプト) を作成する最初の試みです。これがそれにアプローチする正しい方法であるかどうかはわかりません。また、私の最終的な目的は、Python プログラムからこのスクリプトを呼び出すことができるようにすることです。電球を使用しています。誰かが私を正しい方向に向けることができれば、それは素晴らしいことです!