require(["esri/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsConfiguration"], (CIMFilteredFindPathsConfiguration) => { /* code goes here */ });
import CIMFilteredFindPathsConfiguration from "@arcgis/core/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsConfiguration.js";
esri/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsConfiguration
The pathfinding configuration for executeFindPaths and executeFindPathsAsynchronous.
You can define filters that specify which entity types and relationship types must be included. You can also define filters that exclude entity types and relationship types or specific entities and relationships. You can define mandatory waypoints (individual entities or relationships) that must be present in paths. You can also define optional waypoints (individual entities or relationships, and entire entity types and entire relationship types): when optional waypoints are defined, paths must pass through at least one of the optional waypoints.
knowledgeGraphService.executeFindPaths({
inKnowledgeGraphUrl: "https://sampleserver7.arcgisonline.com/server/rest/services/Hosted/BumbleBees/KnowledgeGraphServer",
config: {
type: "CIMFilteredFindPathsConfiguration",
name: "exampleFFPconfiguration",
originEntities: [
{
type: "CIMFilteredFindPathsEntity",
iD: devPathStart,
entityTypeName: "User"
}
],
destinationEntities: [
{
type: "CIMFilteredFindPathsEntity",
iD: devPathEnd,
entityTypeName: "Species"
}
],
pathFilters: [
{
type: "CIMFilteredFindPathsPathFilter",
iD: null,
itemTypeName: "Observation",
itemType: "Entity",
filterType: "Include"
}
],
defaultTraversalDirectionType: "Any",
entityUsage: "EachPair",
pathMode: "All",
minPathLength: 1,
maxPathLength: 8,
maxCountPaths: 100000
}
});
Constructors
-
Parameterproperties Objectoptional
See the properties for a list of all the properties that may be passed into the constructor
Property Overview
Name | Type | Summary | Class |
---|---|---|---|
The name of the class. | Accessor | ||
Specifies the direction which the algorithm uses to traverse relationship in the path. | CIMFilteredFindPathsConfiguration | ||
The entities to use as the destination of the path. | CIMFilteredFindPathsConfiguration | ||
Specifies how the origin and destination entities are used in the executeFindPaths and executeFindPathsAsynchronous algorithm. | CIMFilteredFindPathsConfiguration | ||
The maximum number of paths that the executeFindPaths and executeFindPathsAsynchronous algorithm returns. | CIMFilteredFindPathsConfiguration | ||
The maximum path length. | CIMFilteredFindPathsConfiguration | ||
The minimum path length. | CIMFilteredFindPathsConfiguration | ||
The name of the configuration. | CIMFilteredFindPathsConfiguration | ||
The entities to use as the origin of the paths. | CIMFilteredFindPathsConfiguration | ||
Any filters to use during pathfinding. | CIMFilteredFindPathsConfiguration | ||
Specifies whether the filtered find paths algorithm searches for all paths or only the shortest paths. | CIMFilteredFindPathsConfiguration | ||
The filtered find paths algorithm uses traversal directions to specify how relationships are traversed. | CIMFilteredFindPathsConfiguration | ||
For CIMFilteredFindPathsConfiguration the type is always "CIMFilteredFindPathsConfiguration". | CIMFilteredFindPathsConfiguration |
Property Details
-
defaultTraversalDirectionType
defaultTraversalDirectionType String
-
Specifies the direction which the algorithm uses to traverse relationship in the path.
Direction Description Any The filtered find paths algorithm considers all relationships independent of their direction. Forward The filtered find paths algorithm considers only the relationships that are traversed in forward direction, origin --> destination
.Backward The filtered find paths algorithm considers only the relationships that are traversed in backward direction, origin <-- destination
.Possible Values:"Any" |"Forward" |"Backward"
- Default Value:"Any"
-
destinationEntities
destinationEntities CIMFilteredFindPathsEntity[]
-
The entities to use as the destination of the path.
-
entityUsage
entityUsage String
-
Specifies how the origin and destination entities are used in the executeFindPaths and executeFindPathsAsynchronous algorithm. For example, say you want to find all shortest paths between {A, B} and {C, D} where A and B are your possible origin entities and C and D are your possible destination entities. Using the default setting of
AnyOriginAnyDestination
, this means that the algorithm can return 4 kinds of shortest paths:A -> C
A -> D
B -> C
B -> D
If the shortest paths between each origin and each destination have the following lengths:
A -> C : length 4
A -> D : length 3
B -> C : length 5
B -> D : length 6
Then the "shortest shortest paths" here are the shortest paths of length 3, from A to D. So only these paths will be returned.
Option Description AnyOriginAnyDestination The filtered find paths algorithm only returns the shortest paths for the origin entities that have the shortest shortest paths and the shortest paths for the destination entities that have the shortest shortest paths. When multiple entities are used, this option leads to faster computations. AnyOriginAllDestinations The filtered find paths algorithm returns the shortest paths for the origin entities that have the shortest shortest paths and one shortest path (if it exists) per destination entity. When multiple entities are used, this option leads to longer computations. AllOriginsAnyDestination The filtered find paths algorithm returns one shortest path (if it exists) per origin entity and the shortest paths for the destination entities that have the shortest shortest paths. When multiple entities are used, this option leads to longer computations. AllOriginsAllDestinations The filtered find paths algorithm returns one shortest path (if it exists) per origin entity and one shortest path (if it exists) per destination entity. When multiple entities are used, this option leads to longer computations. EachPair The filtered find paths algorithm returns one shortest path (if it exists) per pair of origin and destination entity. When multiple entities are used, this option leads to longer computations. An error will be returned if strictly more than 10 origin entities are defined or if strictly more than 10 destination entities are defined. Possible Values:"AnyOriginAnyDestination" |"AnyOriginAllDestinations" |"AllOriginsAnyDestination" |"AllOriginsAllDestinations" |"EachPair"
- Default Value:"AnyOriginAnyDestination"
-
maxCountPaths
maxCountPaths Number
-
The maximum number of paths that the executeFindPaths and executeFindPathsAsynchronous algorithm returns. This parameter is only taken into account when pathMode is
All
.- Default Value:100000
-
maxPathLength
maxPathLength Number
-
The maximum path length. The default value of
0
means the value is unlimited.- Default Value:0
-
minPathLength
minPathLength Number
-
The minimum path length.
- Default Value:1
-
name
name String
-
The name of the configuration.
-
originEntities
originEntities CIMFilteredFindPathsEntity[]
-
The entities to use as the origin of the paths.
-
pathFilters
pathFilters CIMFilteredFindPathsPathFilter[]
-
Any filters to use during pathfinding.
-
pathMode
pathMode String
-
Specifies whether the filtered find paths algorithm searches for all paths or only the shortest paths.
Possible Values:"Shortest" |"All"
- Default Value:"Shortest"
-
traversalDirections
traversalDirections CIMKGTraversalDirection[]
-
The filtered find paths algorithm uses traversal directions to specify how relationships are traversed. When no traversal direction is defined for a specific relationship type, the default traversal direction is used.
-
type
type Stringreadonly
-
For CIMFilteredFindPathsConfiguration the type is always "CIMFilteredFindPathsConfiguration".
Method Overview
Name | Return Type | Summary | Class |
---|---|---|---|
Adds one or more handles which are to be tied to the lifecycle of the object. | Accessor | ||
Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product. | CIMFilteredFindPathsConfiguration | ||
Returns true if a named group of handles exist. | Accessor | ||
Removes a group of handles owned by the object. | Accessor | ||
Converts an instance of this class to its ArcGIS portal JSON representation. | CIMFilteredFindPathsConfiguration |
Method Details
-
Inherited from Accessor
-
Adds one or more handles which are to be tied to the lifecycle of the object. The handles will be removed when the object is destroyed.
// Manually manage handles const handle = reactiveUtils.when( () => !view.updating, () => { wkidSelect.disabled = false; }, { once: true } ); this.addHandles(handle); // Destroy the object this.destroy();
ParametershandleOrHandles WatchHandle|WatchHandle[]Handles marked for removal once the object is destroyed.
groupKey *optionalKey identifying the group to which the handles should be added. All the handles in the group can later be removed with Accessor.removeHandles(). If no key is provided the handles are added to a default group.
-
Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product. The object passed into the input
json
parameter often comes from a response to a query operation in the REST API or a toJSON() method from another ArcGIS product. See the Using fromJSON() topic in the Guide for details and examples of when and how to use this function.Parameterjson ObjectA JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects.
Returns
-
hasHandles
InheritedMethodhasHandles(groupKey){Boolean}
Inherited from Accessor -
Returns true if a named group of handles exist.
ParametergroupKey *optionalA group key.
ReturnsType Description Boolean Returns true
if a named group of handles exist.Example// Remove a named group of handles if they exist. if (obj.hasHandles("watch-view-updates")) { obj.removeHandles("watch-view-updates"); }
-
Inherited from Accessor
-
Removes a group of handles owned by the object.
ParametergroupKey *optionalA group key or an array or collection of group keys to remove.
Exampleobj.removeHandles(); // removes handles from default group obj.removeHandles("handle-group"); obj.removeHandles("other-handle-group");
-
toJSON
toJSON(){Object}
-
Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.
ReturnsType Description Object The ArcGIS portal JSON representation of an instance of this class.