Changes for page kg-spatial-search

Last modified by oschmid on 2023/08/22 11:23

From version 7.3
edited by oschmid
on 2023/08/22 09:01
Change comment: There is no comment for this version
To version 7.4
edited by oschmid
on 2023/08/22 09:22
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -29,12 +29,55 @@
29 29  Simply use the API endpoint at [[https:~~/~~/spatial.kg.ebrains.eu/api/>>https://spatial.kg.ebrains.eu/api/]] by running queries according to the following examples:
30 30  
31 31  
32 +==== Get started: Query by a "bounding box" (hyperrectangle) ====
32 32  
34 +{{code}}
35 +curl -X 'POST' \
36 + 'https://spatial.kg.ebrains.eu/spatial-search/cores/ebrains/spatial_objects' \
37 + -H 'accept: application/json' \
38 + -H 'Content-Type: application/json' \
39 + -d '{
40 + "filters": "inside(hyperrectangle{[50.0,146.0,227.0], [51.0, 149.0, 228.0], \"AMB-CCF_v3-RAS\"})"
41 +}'
42 +{{/code}}
33 33  
34 -Theoretically, all data which is anchored in their respective coordinate space can be registered in the KG Spatial Search. We currently provide ingestion pipelines for data annotated with the[[ locareJSON format>>https://github.com/blixilla/LocareJSON]]. Please note that complex, planar and volumetric geometries such as polyhedrons, spheres, etc. are translated into point clouds of a configurable density during the ingestion process to ensure better performance at query time for the cost for potential false-negatives in highly fine-granular queries.
44 +As you can see, you're sending a POST request to the endpoint at **https:~/~/spatial.kg.ebrains.eu/spatial-search/cores/ebrains/spatial_objects  **with a payload defining a geometry of interest. In this case, we're looking for all objects that are **inside **a **hyperrectangle **defined by its lowest and highest point in the coordinate system of the coordinate space **AMB-CCF_v3-RAS**. This query will return you an array of ids of the objects located within the geometry which you then can use to conveniently query the KG either through the [[Instance API>>https://core.kg.ebrains.eu/swagger-ui/index.html#/2%20Advanced/getInstancesByIds]] or the [[Query API>>https://core.kg.ebrains.eu/swagger-ui/index.html#/1%20Basic/runDynamicQuery]] to access detailed meta information.
35 35  
36 36  
47 +==== Query by hypersphere ====
37 37  
49 +Alongside the possibility to use hyperrectangles for querying the spatial search, you can also use hyperspheres:
50 +
51 +{{code}}
52 +{
53 + "filters": "inside(hypersphere{[50.0,146.0,227.0], 2, \"AMB-CCF_v3-RAS\"})"
54 +}
55 +{{/code}}
56 +
57 +It is defined by the center of the sphere with its coordinates, the radius in coordinate units and the coordinate space of the given coordinates (in this case again AMB-CCF_v3-RAS)
58 +
59 +
60 +
61 +==== Advanced use: Union geometries for complex queries ====
62 +
63 +To build arbitrarily complex geometries, it is possible to combine hyperrectangles and hyperspheres via (nested) unions:
64 +
65 +{{code}}
66 +{
67 + "filters": "
68 + union(
69 + union(
70 + inside(hyperrectangle{[50.0,146.0,227.0], [51.0, 149.0, 228.0], \"AMB-CCF_v3-RAS\"}),
71 + inside(hyperrectangle{[120.0,146.0,227.0], [150.0, 180.0, 300.0], \"AMB-CCF_v3-RAS\"})
72 + ),
73 + inside(hypersphere{[50.0,146.0,227.0], 2, \"AMB-CCF_v3-RAS\"})
74 + )"
75 +}
76 +{{/code}}
77 +
78 +
79 +
80 +
38 38  
39 39  )))
40 40