ArcGIS Blog

Analytics

ArcGIS Knowledge

Build web apps using ArcGIS Knowledge Server REST APIs

By Sara Sanchez and Rob Santos

ArcGIS Knowledge introduces compelling new graph analysis capabilities to explore spatial and non-spatial relationships in ArcGIS Enterprise and ArcGIS Pro.

It enables organizations to identify and understand the complex relationships that are found within vast amounts of data using the power of graph databases.

And now, developers can leverage the ArcGIS Knowledge Server REST API to build web applications where this interconnected data can be visualized on any device with a web browser. The REST API can be used to perform graph queries across relationship links, edit entities, edit relationships, or even to edit the data model of the graph itself.

Scenario

To see the real power of this capability in action, consider a farm-to-table supply chain scenario. Food supply chains are important when considering ingredient sourcing for freshness or when tracing the origin of foodborne illness.

In this example:

  1. A farm produces fresh produce and goods
  2. Many vendors purchase goods from these farms
  3. Vendors supply these goods to participating restaurants as ingredients
  4. Customers patronize these restaurants to consume menu items made from ingredients

The flow of the food supply chain can be visualized from farm to customer or from customer back to farm with a directed graph structure.

Graph databases, such as those that power ArcGIS Knowledge, structure data differently than the rows and columns of a traditional database, and emphasize the patterns that define the relationships between entities.

Visualize results

For this scenario, a supply chain has been modeled in a graph schema as shown in the diagram below.

Supply chain schema transformation

The various geospatial entities are in the diagram represented with icons. These entities are connected to each other through to non-geospatial entities, such as the food a vendor buys from a farm supplier, or the meals that are consumed by a person dining at a restaurant.

However, to meaningfully visualize the supply chain in a geospatial context, the user needs the geospatial entities to be directly connected on the web map scene if a valid path exists between them.

Using the services and data of the REST API, the web app finds the valid paths between geospatial entities via non-geospatial intermediary entities.

These paths are then rendered as direct lines between entity locations. Furthermore, finding this information allows the user to select a particular entity and visualize the up and downstream supply chain flow.

About the APIs

The Knowledge Graph Service APIs are in the ArcGIS REST Services Directory and organized with a similar structure to other service APIs such as map and feature services. They have similar endpoints to perform data transaction operations like query and apply edits.

One significant difference is that ArcGIS Knowledge is powered by a graph store instead of a relational database. As a result, when querying data, you will use openCypher instead of SQL. This allows you to structure queries that match patterns across the graph, to enable analysis. This workflow would be very difficult to achieve using a traditional relational database.

ArcGIS Knowledge Server REST API

Regardless, these APIs and underlying data can be consumed by both Esri and non-Esri libraries. For example, the following web app was built using non-Esri tools to visualize the same farm-to-table supply chain scenario.

The web app uses a Force-directed graph drawing, is powered by the Open Source D3 graphics rendering library, and was enhanced with added additional functionality, such as expandability. The Material-UI component library provides flexibility to visualize the underlying data using a variety of tabular formats.

Conclusion

We’re excited for the future of graph data with ArcGIS and are looking forward to seeing what you, the developer community, can build with graphs powered by ArcGIS Knowledge services.

Share this article

Subscribe
Notify of
0 Comments
Oldest
Newest
Inline Feedbacks
View all comments