ArcGIS Knowledge 11.0 added the support for Neo4j graph store, as to my understanding, now we are able to register an empty Neo4j graph store in the ArcGIS Portal and then use it to store knowledge graph, but it has serveral limitations that I would like to confirm:
1. Neo4j graph store only supports two types of entities: Non-spatial and Point, while the default graph store(ArangoDB) supports five types of entities: Non-spatial, Point, Multi-Point, Line and Polygon. I was wondering if there any workarounds to this limitiation?
2. For the default graph store(ArangoDB), supported spatial relation operators are esri.graph.ST_Equals(<geom>, <geom>), esri.graph.ST_Intersects(<geom>, <geom>), and esri.graph.ST_Contains(<geom>, <geom>). For spatial utility, there is esri.graph.ST_GeoDistance(<geom>, <geom>) and for spatial construction there is esri.graph.ST_WKTToGeometry(string). But those operators are not valid when using the Neo4j graph store. I was wondering if there any plans to make those operators valid for the Neo4j graph store?
Thank you !
Solved! Go to Solution.
Hi xingchenc,
Yes, a service created on the Neo4j database only supports the point geometry, since, currently Neo4j only supports Points. (https://neo4j.com/docs/cypher-manual/current/syntax/spatial/)
This info is available on the service json as:
"geometryCapabilities": { "supportsMValues": false, "supportsZValues": false, "supportedGeometryTypes": [ "Point" ] }
Also, yes, that the service has a limited support for the spatial functions for now.
At 11.0 we only support a query like this where the first geometry is a rectangle:
MATCH (n:Address) WHERE esri.graph.ST_Intersects(esri.graph.ST_WKTToGeometry("POLYGON((0 -90,179.99999999 -90,179.99999999 90,0 90))"),n.geometry) return n.name
We are looking into supporting additional spatial functions for future releases.
Hi xingchenc,
Yes, a service created on the Neo4j database only supports the point geometry, since, currently Neo4j only supports Points. (https://neo4j.com/docs/cypher-manual/current/syntax/spatial/)
This info is available on the service json as:
"geometryCapabilities": { "supportsMValues": false, "supportsZValues": false, "supportedGeometryTypes": [ "Point" ] }
Also, yes, that the service has a limited support for the spatial functions for now.
At 11.0 we only support a query like this where the first geometry is a rectangle:
MATCH (n:Address) WHERE esri.graph.ST_Intersects(esri.graph.ST_WKTToGeometry("POLYGON((0 -90,179.99999999 -90,179.99999999 90,0 90))"),n.geometry) return n.name
We are looking into supporting additional spatial functions for future releases.
@MandarPurohit Thanks, Mandar!
Hi Mandar, I was wondering if there are any updates on those two limitations in the newer version(11.3)?
Hi xingchenc,
Stay tuned. A few additional functions/constructors on a Neo4j-based knowledge graph service, such as ST_GeoDistance and ST_Point() are in the development plan for 11.4.
Any specific spatial function are you looking for?