JanusGraph is a transactional graph DBMS optimized for storing and querying graphs distributed across a multi-machine cluster.
- Website
- https://janusgraph.org/[01]
- Source Code
- https://github.com/JanusGraph/janusgraph[02]
- Developer
- Country of Origin
- US
- Start Year
- 2012
- Former Name
- Titan
- Acquired By
- Project Type
- Open Source
- Written in
- Java
- Supported Languages
- Java
- Derived From
- 1010data
- Compatible With
- Berkeley DB
- Operating System
- All OS with Java VM
- License
- Apache v2
JanusGraph is a transactional graph DBMS optimized for storing and querying graphs distributed across a multi-machine cluster.
History
- Originally called Titan. It was renamed to JanusGraph in 2015.
Query Interface
JanusGraph uses Gremlin graph query language to retrieve data from and modify data in the graph. Gremlin is a functional language whereby traversal operators are chained together to form path-like expressions, expressing query or data modification on graphs.
A Gremlin query is a chain of operations/functions that are evaluated from left to right. A simple example of gremlin language to query the name of Alex's grandson on his genealogy graph is provided below
g.V().has('name', 'Alex').out('father').out('father').values('name')
The query can be read as
g: for the current graph
V: for the vertices in the graph
has('name', 'Alex'): filters the vertices down to those with the "name" property "Alex"
out('father'): traverse outgoing through edges whose type is "father" from "Alex" (Notice here the result can be more than one vertices)
out('father'): traverse outgoing through edges whose type is "father" from "Alex"' son (the result from the last traversal)
values('name'): get the property of "name"
Citations
3 sources- JanusGraph janusgraph.org
- GitHub - JanusGraph/janusgraph: JanusGraph: an open-source, distributed graph database · GitHub github.com
- https://docs.janusgraph.org/latest janusgraph.org