Neo4j connector through its JSON REST API using curl.

For ease of use and testing this module provide a wrapper to the neo4j command:

var srv = new Neo4jServer
assert srv.start_quiet

In order to connect to Neo4j you need a connector:

var client = new Neo4jClient("http://localhost:7474")
assert client.is_ok

The fundamental units that form a graph are nodes and relationships.

Nodes are used to represent entities stored in base:

var andres = new NeoNode
andres["name"] = "Andres"
# Connect the node to Neo4j
client.save_node(andres)
assert andres.is_linked

# Create a second node
var kate = new NeoNode
kate["name"] = "Kate"
client.save_node(kate)
assert kate.is_linked

Relationships between nodes are a key part of a graph database. They allow for finding related data. Just like nodes, relationships can have properties.

var loves = new NeoEdge(andres, "LOVES", kate)
client.save_edge(loves)
assert loves.is_linked

Nodes can also be loaded fron Neo4j:

var url = andres.url.to_s
var from = client.load_node(url)
assert from["name"].to_s == "Andres"
var to = from.out_nodes("LOVES").first      # follow the first LOVES relationship
assert to["name"].to_s == "Kate"

For more details, see http://docs.neo4j.org/chunked/milestone/rest-api.html

All groups and modules

module curl_json

neo4j :: curl_json

cURL requests compatible with the JSON REST APIs.
module error

neo4j :: error

Errors thrown by the neo4j library.
group graph

neo4j > graph

Provides an interface for services on a Neo4j graphs.
module neo4j

neo4j :: neo4j

Neo4j connector through its JSON REST API using curl.
package_diagram neo4j neo4j json json neo4j->json curl curl neo4j->curl progression progression neo4j->progression pipeline pipeline neo4j->pipeline parser_base parser_base json->parser_base serialization serialization json->serialization curl->json core core curl->core progression->core pipeline->core ...parser_base ... ...parser_base->parser_base ...serialization ... ...serialization->serialization ...core ... ...core->core

Ancestors

package core

core

Nit common library of core classes and methods
package meta

meta

Simple user-defined meta-level to manipulate types of instances as object.
package parser_base

parser_base

Simple base for hand-made parsers of all kinds
package poset

poset

Pre order sets and partial order set (ie hierarchies)
package serialization

serialization

Abstract serialization services

Parents

package curl

curl

Data transfer powered by the native curl library
package json

json

read and write JSON formatted text
package pipeline

pipeline

Pipelined filters and operations on iterators.
package progression

progression

Event-based interface to track the progression of an operation.