ArcGIS Knowledge provides an entity-centric approach to data modeling and analysis. Information in a knowledge graph is structured around entities and the relationships between them. This network of things is primarily nonspatial, even if some entities and relationships have an associated spatial location.
When investigating the contents of a knowledge graph, analysis is focused on properties of the entities and relationships in the knowledge graph and understanding how entities are connected. ArcGIS Pro allows you to integrate those results with spatial analysis of entities and relationships that have spatial locations.
The following sections define key terms associated with ArcGIS Knowledge.
A knowledge graph allows you to create and query a graph network. This network connects people, places, and things (represented by entities) with each other through relationships that define how they are associated. An entity with a spatial location can be connected with other entities that do not have a spatial location.
You create a knowledge graph as part of the process of creating an investigation in your project.
When you create a knowledge graph, you must determine how your data will be managed. The options that are available to you depend on how you have configured your ArcGIS Enterprise deployment.
You can choose to store a knowledge graph's data in a hosted graph store that is entirely managed by ArcGIS Knowledge. These knowledge graphs are identified as hosted knowledge graphs in the Enterprise portal. When you delete a hosted knowledge graph, all the data associated with the knowledge graph is also deleted.
Alternatively, you can store the entities and relationships in a NoSQL data store that has been added to your deployment. You must create, manage, and delete the databases yourself in Neo4j. In addition to the data stored in the NoSQL data store, the knowledge graph also maintains data model information identifying the entity types, relationship types, and the data types of all properties in an associated graph store that is automatically created and deleted with the knowledge graph. The information stored in the associated graph store supports displaying, querying, and searching the knowledge graph data.
Managing data in a NoSQL data store
When you create a knowledge graph that uses a NoSQL data store, you must choose how the data stored in the Neo4j database will be managed. Two options are available: ArcGIS managed and User managed.
- ArcGIS managed—With this option, ArcGIS Knowledge will create, manage, and delete the entities and relationships stored in the Neo4j database. Also, the data model stored in the graph store is updated automatically when entity types and relationship types and their properties change. You can also choose if anyone other than yourself is able to edit the data, and what types of edits they are allowed to perform. The data and the data model must not be edited directly in Neo4j. This option is only available if your Neo4j database is empty.
- User managed—With this option, you must create, manage, and delete the entities and relationships and define the data model using Neo4j. The data and the data model are read-only when they are accessed by ArcGIS Knowledge. To display, query, and search the knowledge graph's data, you must synchronize the data model information recorded in the associated graph store with the current data model defined in the Neo4j database. The Neo4j database name and its data model types and properties must satisfy all naming restrictions.
An investigation allows you to research entities and relationships in a knowledge graph to establish facts and reach conclusions. You can view and edit details for individual entities and relationships, and expand the network's data model to capture additional information that you learn. You can save queries that select the sets of entities and relationships you are researching.
When you create an investigation, you can either create a knowledge graph or investigate the contents of an existing knowledge graph. If you add an existing knowledge graph to your ArcGIS Pro project from the active portal, an investigation is created automatically.
As you work, you can share your investigation to collaborate with others and show the results of your analysis.
A data model defines the types of entities and relationships that can exist in the knowledge graph and the properties that can exist for each type of entity and relationship. You can edit a knowledge graph's data model if you have sufficient privileges to do so. Editing the data model is not supported when a knowledge graph is based on a NoSQL data store with User managed data.
An entity type defines a homogeneous collection of entities with a common set of properties and a spatial feature type. For example, an entity type defining vehicles would define properties including model and license plate, and an optional point feature.
A relationship type defines a homogenous collection of relationships that can exist between two entity types, with a common set of properties and a spatial feature type. For example, a relationship type defining vehicle ownership can associate a vehicle with a person, and the relationship can have properties such as the date a person bought the car and the date a person sold the car.
An entity is a specific type of item that can exist in the knowledge graph such as a person, a building, or a vehicle. Many instances of an entity can be added to the knowledge graph. For example, to describe a family, multiple instances of the person entity can be defined, along with multiple instances of vehicles and buildings with which the family is associated. You can add, remove, and update entities and their property values in the knowledge graph if you have sufficient privileges to do so.
All entities can be added to a link chart. Entities that have a spatial feature can be added to a map.
A relationship is a type of association that can exist in the knowledge graph to connect two entities. Many instances of a relationship can be added to the knowledge graph. For example, to describe a family, multiple instances of the spouse-of, parent-of, and child-of relationships can be defined between two-person entities, and multiple instances of owns, leases, or rents relationships can be defined between a person entity and vehicle or building entities. You can add, remove, and update relationships and their property values in the knowledge graph if you have sufficient privileges to do so.
A relationship is described in a single direction—every relationship describes an association from one entity to another entity. If two people in a family are siblings, each person entity requires a separate sibling-of relationship to the other entity to fully describe the relationship.
Relationships can be added to a link chart.
Documents can be added to a knowledge graph to provide context for an entity or a relationship in which it participates, provide authoritative sources for the facts stored in properties of entities and relationships, and allow you to capture notes regarding the investigation. Documents can be pictures, presentations, text or Adobe Acrobat PDF files, websites, and so on.
When you create a knowledge graph, it contains a Document entity type and a HasDocument relationship type by default. When you add a document to an entity to describe one of its characteristics, such as a picture of a person, a new entity is created for the Document entity type that references the file or website. A HasDocument relationship is created from the person entity to the document entity that provides access to the picture. A document can be referenced by many entities.
Adding documents is not supported when a knowledge graph is based on a NoSQL data store with User managed data.
You can add entities with a spatial location to a map. This allows you to see spatial relationships between entities that might not be apparent in a nongeographic view, and visually correlate those entities with geographic features that don't participate in the graph network. You can also view relationships between entities on the map, create entities and relationships, and edit their properties.
A link chart allows you to visualize how entities are connected. The link chart allows you to analyze the associations between entities using various link analysis operations such as finding a path from one entity to another, determining which entities are central to the network, and detecting communities of related entities in the network.
Most of the methods for displaying entities use a nongeographic view. However, you can also use a geographic layout that positions entities associated with a geographic location on a basemap. Nonspatial entities and relationships are also drawn on the link chart even though they don't have a fixed geographic position. Use a graphics layer to add notes, pictures, and graphics to the link chart.