Getting started Database Specific Requirements
Tuesday, May 4, 2021 2:02 PMDatabase Specific Requirements
Anzograph
Versions and features requirements
Graphileon requires at least Anzograph version 2.3.0.
- Graphileon uses Anzograph's
Vertex
andEdge
functions which were introduced in version 2.3. Also core queries of Graphileon use theID_TO_URI
function.
To use the EDGE and VERTEX function, you must first set auto_predicate=true
(in the install_path/config/settings.conf
file) prior to loading the data with which you want to use the VERTEX function. This setting directs Anzograph to register vertex labels as predicates.
Graphileon installation
Before installing Graphileon you need to create a graph for it by running the following query using the Anzograph web interface:
INSERT DATA { GRAPH <graphileon> {
<test> a "test"
}
}
Then, when setting up Graphileon's application store, you should enter graphileon
in the Graph name:
field. The graphileon
designation is not required so you can use an alternative name if you like.
Graph Visualisation
In order to visualise RDF data in a graph visualization (in a NetworkView or YFilesView) your queries need to use Vertex
and Edge
functions:
SELECT DISTINCT (VERTEX(?s) as ?n)
WHERE {
?s ?r ?m .
?m a ?type .
}
LIMIT 10
Editing edges
Edges (relationships - e.g. predicates) can be edited only if they can be uniquely identified. Non uniquely identifiable edges can be visualised in Graphileon views, but in order to edit them you need to write queries for your specific needs.
Example of non unique edges (and non editable) is <knows>
in:
<John> <knows> <Betty>
<Betty> <knows> <Alexia>
Example of unique edges (editable):
<John> <knows-1> <Betty>
<knows-1> a <edge>
<knows-1> <since> 1999
<Betty> <knows-2> <Alexia>
<knows-2> a <edge>
<knows-2> <since> 2002
Query with parameters
Graphileon supports parameter injection for queries. In the query string, parameters are declared by prepending $
to the parameter name.
For example, executing the query
SELECT ?person ?key ?value
WHERE {
?person a "Person";
<name> "$name";
?key ?value.
}
LIMIT 10
with the parameters:
{
'name': 'John'
}
will replace $name
with John
when the query is executed.
Datastax
Requirements
Graphileon was developed and tested with Datastax 6.7
Datastax 6.8
Starting with version 6.8, Datastax introduced a new database core which is used by default.
For the moment Graphileon can only use the old core so graphs need to be created using the classicEngine()
statement.
Example:
system.graph(<graph-name>)
.classicEngine()
.create()
Replace <graph-name>
with the desired name of the graph
Graphileon installation
Recommended Datastax settings
Datastax 6 has a low default value for max_query_params
.
Please edit the dse.yaml
file and set max_query_params=256
.
Create a graph for the application store
Before installing Graphileon one needs to create a graph for the application
store, using the gremlin console, with the one of the following statements depending on the Datastax version:
For Datastax 6.7:
system.graph('graphileon')
.option("graph.schema_mode").set("Development")
.create()
For Datastax 6.8:
system.graph('graphileon')
.classicEngine()
.option("graph.schema_mode").set("Development")
.create()
Limitations
Query parameters
Graphileon supports running Gremlin queries with parameters. The parameters are binded to variables with the same name when the query is executed.
Gremlin forbids declaring variables with the same name as some reserved words (ex: id
, label
, key
, in
...) so make sure you use unique parameter names or prepend them with _
(example: _id
, _label
, ...)
Example:
Executing the query g.V().has('id', id).limit(1)
with parameters {id: 1}
will trigger an error because id
is a reserved word.
One way to fix this is to use the query: g.V().has('id', _id).limit(1)
with parameters {_id: 1}
.
Visualisation
CRUD operations
- Datastax ids can be used as Object/JSON String.
Redisgraph
For working with Graphileon we recommend Redisgraph version 2.2.x The oldest known version that Graphileon can work with is Redisgraph 2.1.1