7. Neo4j
Out of the Box
Data: http://www.neo4j.org/develop/example_data
8. Gremlin
● Provides control over the traversal
algorithm
● Pipe & Filter – similar to jQuery
● Works across different graph databases
● Based on Groovy (limited to Java)
10. Gremlin
● Can modify the graph
● Allows to run arbitrary code
● Implementation not as stable in Neo4j
11. Cypher
START doctor = node(1)
MATCH
doctor <-[:COMPANION_OF]- companion,
companion -[:APPEARED_IN]-> episode
WHERE
episode.title = "The Doctor's Daughter"
RETURN companion, companion.character
13. REST API
● JSON over HTTP
● Well supported
● Used by the web admin
● Meaningful work requires many HTTP
requests
● http://docs.neo4j.org/chunked/stable/rest-api.html
14. everyman/neo4jphp
● Complete? REST API implementation
● Basic wrappers for all components
● https://github.com/jadell/neo4jphp/wiki
15. everyman/neo4jphp
Pros: Cons:
● Well maintained ● Tedious API
● Good ● Error-prone
documentation ● Low-level
● Predictable
behavior
16. hirevoice/neo4jphp-ogm
● Bias: I am the author
● Inspired by Doctrine
● Uses annotations on classes
● Built on top of everyman/neo4jphp
● https://github.com/lphuberdeau/Neo4j-PHP-OGM
17. hirevoice/neo4jphp-ogm
Pros: Cons:
● Fast (bulk operations) ● Supported by me
● Feels like Doctrine ● Skim
● Benefits from type documentation
checking ● Implementation still
● Well tested partial
● Bundles and
modules available
(many)