ArcGIS Arcade se puede usar para consultar ArcGIS Knowledge Graphs directamente desde ventanas emergentes personalizadas en mapas web, aplicaciones de mapas, gráficos de enlaces dentro de muchas aplicaciones de ArcGIS, como ArcGIS Pro, ArcGIS AllSource, ArcGIS Knowledge Studio y dentro de mapas en Map Viewer, Dashboards y Experience Builder. Esto permite a los analistas enriquecer una entidad, característica o relación seleccionada con contexto conectado de un knowledge graph empresarial, sin sacar a los usuarios de su flujo de trabajo actual en el mapa o gráfico de enlaces.
Este patrón es útil cuando una capa de entidades contiene solo parte del panorama operativo, pero el contexto más amplio reside en un knowledge graph. Una ventana emergente puede hacer coincidir la entidad seleccionada con una entidad del grafo mediante un ID único, usar la geometría de la entidad seleccionada en una consulta espacial del grafo, resumir entidades conectadas o generar una URL que abra la entidad relacionada en Knowledge Studio.
En este contexto, “cargar contexto lateral” significa recuperar información relacionada del grafo al hacer clic y mostrarla en una ventana emergente, en lugar de copiar atributos derivados del grafo en la capa de entidades.
Hay dos patrones comunes: primero, las ventanas emergentes de capas de entidades pueden usar un ID compartido, atributo o geometría para encontrar entidades relacionadas en un knowledge graph; segundo, las ventanas emergentes de capas del knowledge graph pueden partir de la entidad o relación seleccionada y consultar contexto adicional conectado del mismo grafo.
Lo que aprenderás
- Cómo usar ArcGIS Arcade para consultar ArcGIS Knowledge Graphs desde ventanas emergentes personalizadas.
- Cómo hacer coincidir ventanas emergentes de capas de entidades con entidades del grafo usando IDs compartidos, atributos o geometría.
- Cómo consultar el mismo grafo desde una capa del knowledge graph o gráfico de enlaces usando $graph.
- Cómo formatear resultados de consultas al grafo como texto para ventanas emergentes, tablas, enlaces o resúmenes.
- Cómo generar URLs para Knowledge Studio desde expresiones Arcade.
Cuándo usar ventanas emergentes con grafo en Arcade
Usa este patrón cuando tu capa del mapa muestra la entidad operativa, pero el contexto relacionado vive en un ArcGIS Knowledge Graph. Ejemplos comunes incluyen encontrar proveedores, activos, instalaciones, parcelas, clientes, documentos u otras entidades conectadas relacionadas con una entidad seleccionada.
- Ejecuta consultas espaciales del grafo desde un polígono seleccionado, ruta, instalación o área de incidente.
- Resume relaciones aguas arriba y aguas abajo
- Resume propiedades de esas entidades relacionadas aguas arriba o aguas abajo (suma, promedio, etc.)
- Abre entidades seleccionadas o relacionadas en ArcGIS Knowledge Studio.
- Haz preguntas adicionales en ArcGIS Knowledge Studio sobre la entidad seleccionada o relacionada usando un parámetro URL
- Enriquece mapas y aplicaciones existentes sin duplicar atributos derivados del grafo en capas de entidades.
Requisitos previos
- ArcGIS Enterprise 11.3 o superior para funciones Arcade de knowledge graph en ventanas emergentes web Map / Link Chart
- ArcGIS Pro 3.3 o superior, ArcGIS AllSource, Map Viewer, ArcGIS Knowledge Studio u otra experiencia compatible con mapas o gráficos de enlaces.
- Acceso a un ArcGIS Knowledge Graph.
- Un identificador compartido, geometría seleccionada o entidad de capa del knowledge graph que pueda usarse como entrada para la consulta.
- Permisos adecuados para acceder a la capa de entidades, knowledge graph y proyecto Knowledge Studio.
- ArcGIS Enterprise 12.1 para desbloquear URLs dinámicas a consultas guardadas, nuevos gráficos de enlaces y otros flujos avanzados en Knowledge Studio desde ventanas emergentes
Flujo canónico
- Identifica el knowledge graph usando KnowledgeGraphByPortalItem() o $graph.
- Captura la entidad seleccionada, relación, atributo o geometría.
- Usa querygraph() para recuperar entidades conectadas, relaciones o coincidencias espaciales.
- Formatea los resultados de la consulta como contenido legible para ventana emergente.
- Devuelve un diccionario que ArcGIS renderiza en la ventana emergente.
Ejemplo completo: Script Arcade integral
Vamos a recorrer un ejemplo. Supongamos que tienes una capa que muestra un cono predictivo de huracán superpuesto sobre un mapa con instalaciones clave de proveedores. Además mantienes información más detallada sobre tus proveedores —y sus proveedores— dentro de un knowledge graph separado en ArcGIS. Ahora, cuando haces clic en una entidad relacionada con el clima, tu ventana emergente puede ejecutar instantáneamente una consulta espacial contra tu knowledge graph. Esto te permite identificar no solo todos tus proveedores nivel 1 ubicados dentro del área afectada sino también sus proveedores aguas arriba y cualquier parte que necesite ser preposicionada (enviada antes) en preparación para el huracán.
También puedes configurar tu ventana emergente personalizada para ejecutar múltiples consultas a la vez. Por ejemplo, la misma ventana podría mostrar un resumen de todos los productos aguas abajo, clientes clave e ingresos esperados que podrían verse afectados en los próximos 30 días si la instalación del proveedor se ve interrumpida por el huracán.
El script Arcade del ejemplo a continuación muestra cómo podrías usarlo en un Mapa con un Servicio de Entidades independiente allí como referencia junto a una capa espacial del Knowledge Graph, ¡o el grafo podría no estar presente en el mapa! La consulta al grafo dentro de la expresión Arcade devuelve los Proveedores ubicados dentro del polígono de una entidad meteorológica seleccionada.
El script a continuación demuestra varios patrones útiles:
- Usa la función geométrica Arcade - generalize - para simplificar la forma del polígono seleccionado y mejorar el rendimiento de la consulta espacial openCypher
- Muestra cómo puedes generar URLs para Knowledge Studio que abren la entidad seleccionada o 'gemela' coincidente en un knowledge graph. También puedes generar URLs para explorar otras entidades relacionadas para exploración más profunda.
Código ejemplo: script Arcade integral con consulta al grafo a un servicio independiente del knowledge graph
//El ID del elemento portal del servicio Knowledge Graph (pid) y URL del portal servidor (Cámbialos)
var pid = "d03d80ca35c94cadb963f845acbd0de1"
var portal_url = " https://[YOUR_ORG_PORTAL_URL].com/portal/"
var kg = KnowledgeGraphByPortalItem(Portal(portal_url), pid)
// Para simplificar el polígono y mejorar rendimiento usamos la función Generalize
var gen = Generalize($feature, 5000, true, 'meters')
var results = querygraph(kg, "MATCH (s:Supplier) WHERE esri.graph.ST_Contains($feature_geom, s.shape) RETURN s.Name, s.globalid", {'feature_geom': gen});
var final_str = "";
var cnt = 0
for (var r in results) {
var name = results[r][0]
var g_id = StandardizeGuid(results[r][1],'digits-hyphen')
var studio_url = '<a href = ' + server_url + '/apps/knowledge-studio/main?id=' + pid + '&selectedContentId=dataExplorer&selectedContentElement=%7B' + g_id + '%7D&selectedContentInstruction=entity>'
final_str = final_str + studio_url + " " + name + "</a><br>"
}
return {
'type' : 'text',
'text' : final_str
}
Cómo funcionan las ventanas emergentes con grafo en Arcade
'El detalle "cómo hacerlo"',' field 71 ':' A partir de ArcGIS Enterprise 11.3 y ArcGIS Pro 3.3 ',' field 72 ':' Las expresiones Arcade ',' field 73 ':' pueden consultar ArcGIS Knowledge Graphs desde ventanas emergentes personalizadas en mapas y gráficos de enlaces. Estas ventanas pueden configurarse para capas de entidades o capas del knowledge graph en ArcGIS Pro , ArcGIS AllSource , ArcGIS Knowledge Studio , Map Viewer y aplicaciones web map .',' field 74 ':' La ventana emergente usa funciones gráficas Arcade para enviar información desde la entidad , relación o característica seleccionada a una consulta gráfica . La consulta puede devolver entidades conectadas , detalles relacionales , resúmenes calculados , coincidencias espaciales o salida formateada que aparece directamente en la ventana emergente .',' field 75 ':' Para ',' field 76 ':' ventanas emergentes capa-entidad ',' field 77 ':' , normalmente se hace coincidir la característica seleccionada con una entidad del knowledge graph usando un GUID compartido , ID activo , ID instalación , ID parcela u otro atributo único . La ventana emergente también puede pasar la geometría característica seleccionada a una consulta espacial gráfica para encontrar entidades gráficas que intersectan , caen dentro o se relacionan con esa área .',' field 78 ':' Para ',' field 79 ':' ventanas emergentes capa-knowledge-graph ',' field 80 ':' , ya se parte desde la entidad o relación seleccionada . Arcade puede usar esa selección para consultar contexto gráfico adicional , resumir datos conectados o generar una URL Knowledge Studio que abre la entidad relacionada para exploración más profunda .',' field 81 ':' Patrón Arcade para consultar ArcGIS Knowledge Graphs desde ventanas emergentes ',' field 82 ':' La mayoría de las ventanas emergentes basadas en Arcade siguen el mismo patrón básico : identificar el grafo , definir la característica o entidad seleccionada como entrada , ejecutar una consulta gráfica , formatear resultados y devolver un diccionario listo para ventana emergente . Vamos a recorrer cada paso .',' field 83 ':' Paso 1 — Identificar el Knowledge Graph a Consultar ',' field 84 ':' En Arcade , “conectarse” a un knowledge graph significa identificar el grafo que quieres consultar . Usa ',' field 85 ':' KnowledgeGraphByPortalItem() ',' field 86 ':' para referenciar un grafo por elemento portal . Si la ventana está construida sobre una Capa Knowledge Graph y consulta el mismo grafo , puedes omitir este paso y usar ',' field 87 ':' $graph ',' field 88 ':' directamente en la consulta .',' field 89 ':' Si el grafo está almacenado en otro portal ArcGIS Enterprise , es posible que se solicite a los usuarios iniciar sesión cuando se abra el mapa o gráfico .',' field 90 ':' Asegúrate que el modelo datos gráfico — tipos entidad , tipos relación y propiedades — esté alineado con identificadores , atributos o geometría usados por expresión ventana emergente .',' field 91 ':' Código ejemplo : referencia al knowledge graph ',' field 92 ':' // Opción A : consulta un grafo objetivo por elemento portal ',' field 93 ':' var portalUrl = "https://[YOUR_ORG_PORTAL_URL]/portal";',' field 94 ':' var graphItemId = "[KNOWLEDGE_GRAPH_ITEM_ID]";',' field 95 ':' var kg = KnowledgeGraphByPortalItem(Portal(portalUrl), graphItemId);',' field 96 ':' // Opción B : consulta el mismo grafo que la capa gráfica seleccionada ',' field 97 ':' var kg = $graph;',' field 98 ':' Paso 2 — Identificar Entidad , Característica o Geometría a Consultar ',' field 99 ':' Luego decide qué pasará la ventana al query gráfico : atributo característica , geometría característica seleccionada o entidad / relación gráfica seleccionada .',' field 100 ':' Para ventanas capa-entidad esto usualmente significa :',' field 101 ':' Elegir identificador compartido como GUID , ID activo , ID instalación , ID parcela u otro atributo único .',' field 102 ':' Usar ese valor para encontrar entidad correspondiente o contexto conectado en knowledge graph .',' field 103
Starting with ArcGIS Enterprise 11.3 and ArcGIS Pro 3.3, Arcade expressions can query ArcGIS Knowledge Graphs from custom pop-ups in maps and link charts. These pop-ups can be configured for feature layers or knowledge graph layers in ArcGIS Pro, ArcGIS AllSource, ArcGIS Knowledge Studio, Map Viewer, and web map applications.
The pop-up uses Arcade graph functions to send information from the selected feature, entity, or relationship into a graph query. The query can return connected entities, relationship details, calculated summaries, spatial matches, or formatted output that appears directly in the pop-up.
For feature-layer pop-ups, the selected feature is typically matched to a knowledge graph entity using a shared GUID, asset ID, facility ID, parcel ID, or other unique attribute. The pop-up can also pass the selected feature’s geometry into a spatial graph query to find graph entities that intersect, fall within, or relate to that area.
For knowledge graph layer pop-ups, the selected entity or relationship is already the starting point. Arcade can use that selection to query additional graph context, summarize connected data, or generate a Knowledge Studio URL that opens the related entity for deeper exploration.
Arcade Pattern for Querying ArcGIS Knowledge Graphs from Pop-ups
Most Arcade-based Knowledge Graph pop-ups follow the same basic pattern: identify the graph, define the selected feature or entity as the input, run a graph query, format the results, and return a pop-up-ready dictionary. Let's walk through each step.
Step 1 — Identify the Knowledge Graph to Query
In Arcade, “connecting” to a knowledge graph means identifying the graph you want to query. Use KnowledgeGraphByPortalItem() to reference a graph by portal item. If the pop-up is built on a Knowledge Graph Layer and queries the same graph, you can skip this step and use $graph directly in the query.
- If the graph is stored in another ArcGIS Enterprise portal, users may be prompted to sign in to that portal when the map or link chart opens.
- Make sure the graph data model—entity types, relationship types, and properties—aligns with the identifiers, attributes, or geometry used by the pop-up expression.
Example code: reference the knowledge graph
// Option A: query a target graph by portal item
var portalUrl = "https://[YOUR_ORG_PORTAL_URL]/portal";
var graphItemId = "[KNOWLEDGE_GRAPH_ITEM_ID]";
var kg = KnowledgeGraphByPortalItem(Portal(portalUrl), graphItemId);
// Option B: query the same graph as the selected graph layer
var kg = $graph;
Step 2 — Identify the Feature, Entity or Geometry You Want to Query
Next, decide what the pop-up will pass into the graph query: a feature attribute, the selected feature’s geometry, or the selected graph entity or relationship.
For feature-layer pop-ups, this usually means:
- Choosing a shared identifier, such as a GUID, asset ID, facility ID, parcel ID, or other unique attribute.
- Using that value to find the corresponding entity or connected context in the knowledge graph.
Query Patterns | Description | Example Use Cases |
|---|
Match by a Unique ID | Match a selected feature to a graph entity using a shared ID such as a GUID, asset ID, facility ID, or parcel ID. | · Fetch connected entities and properties · Aggregate statistics about groups of connected entities · Aggregate statistics about properties of those connected entities · Find employees matching open roles, proximity, and skill criteria. |
Match by Intersecting Shape | Utilice la geometría de la entidad seleccionada como entrada para una consulta de grafo espacial que devuelve entidades que intersectan, están contenidas o relacionadas con esa forma. | · Encuentre proveedores aguas abajo de proveedores dentro de un polígono seleccionado. · Agregue estadísticas de propiedades en entidades o relaciones conectadas |
Código de ejemplo: capturar la entrada seleccionada
// Entrada basada en atributos de una entidad seleccionada
var selectedId = $feature.[SHARED_ID_FIELD];
var params = { id: selectedId };
// Entrada de capa de grafo desde una entidad seleccionada
var selectedGuid = $feature.globalid;
Para los pop-ups de capa de grafo, la entidad seleccionada ya es el punto de inicio, por lo que la expresión normalmente puede usar directamente el GUID de esa entidad.
Las consultas de grafo también pueden usar la geometría de la entidad seleccionada para filtrar resultados espacialmente, como en el ejemplo de cadena de suministro descrito arriba.
// Entrada basada en geometría desde una entidad seleccionada
var selectedGeom = Generalize($feature, 5000, true, 'meters');
var spatialParams = { feature_geom: selectedGeom };
querygraph (kg, "MATCH (s:Supplier) WHERE esri.graph.ST_Contains($feature_geom, s.shape) RETURN s.Name, s.globalid", {'feature_geom': $feature}
Este paso ancla la consulta a la entidad, relación o geometría que el usuario seleccionó.
Paso 3 — Escribir la lógica de la consulta del grafo
Defina el insight que debe devolver el pop-up. Las operaciones comunes en consultas incluyen:
- Recuperar entidades vecinas, como proveedores, activos, instalaciones, personas o documentos.
- Recorrer relaciones multi-salto, como proveedores aguas arriba o clientes aguas abajo.
- Filtrar por estado, período de tiempo, categoría, tipo de relación o relevancia espacial.
- Calcular resúmenes como conteos, totales, clasificaciones, puntuaciones de riesgo o listas de categorías.
- Combinar múltiples consultas de grafo en una sola respuesta para el pop-up.
El objetivo es convertir datos conectados del grafo en una respuesta concisa que el usuario pueda entender rápidamente.
Código de ejemplo: ejecutar consultas de relación y grafo espacial
var results = querygraph(
kg,
"MATCH (start:EntityType {globalid: $id})-[:RELATIONSHIP_TYPE]->(related:EntityType) RETURN related.Name, related.globalid LIMIT 10",
{ id: selectedGuid }
);
var spatialResults = querygraph(
kg,
"MATCH (e:EntityType) WHERE esri.graph.ST_Contains($feature_geom, e.shape) RETURN e.Name, e.globalid",
{ feature_geom: selectedGeom }
);
Paso 4 — Formatear los resultados para el Pop‑up
Después de que la consulta devuelve resultados, formatee para el pop-up. La mayoría de expresiones:
- Construyen un diccionario con secciones nombradas o salida formateada.
- Formatean resultados como texto, listas, tablas pequeñas o enlaces.
- Devuelven un objeto estructurado que el motor del pop-up ArcGIS puede renderizar.
Aquí es donde los resultados crudos del grafo se convierten en contexto legible para la entidad del mapa seleccionada o elemento del gráfico vinculado.
Código de ejemplo: formatear resultados del grafo para mostrar
var finalText = "";
for (var r in results) {
var name = results[r][0];
var guid = results[r][1];
finalText += "<b>" + name + "</b><br>";
}
if (IsEmpty(finalText)) {
finalText = "No se encontraron resultados relacionados en el grafo.";
}
Paso 5 — Devolver el diccionario final
Finalmente, devuelva el diccionario. ArcGIS lee el objeto devuelto y renderiza el texto formateado, secciones, tablas, enlaces o controles en el pop-up.
Código de ejemplo: devolver contenido del pop-up
return {
type: 'text',
text: finalText
};
Formatear resultados de consultas del Knowledge Graph en Pop-ups de ArcGIS
Las expresiones Arcade pueden formatear resultados de consultas del grafo en varias formas amigables para pop-ups. Los patrones comunes incluyen:
- Generar secciones con listas expandibles o tablas de entidades relacionadas resultantes que coinciden con su patrón
- Generar tablas con entidades resultantes y estadísticas creadas usando la consulta
- Generar enlaces dinámicos a entidades (a partir de la versión 11.4) o consultas guardadas (a partir de la versión 12.0) en la aplicación web Knowledge Studio usando Parámetros URL.
Ver ejemplo: Arcade_Graph_Pop-ups.mp4
Ejemplo completo: Script Arcade integral
En el ejemplo simple (repetido arriba), la consulta del grafo dentro de la expresión Arcade devuelve los Suppliers ubicados dentro del polígono de una entidad meteorológica seleccionada. El script también usa la función Arcade geometry - generalize' - para simplificar la forma del polígono seleccionado y mejorar el rendimiento de la consulta espacial openCypher.
'//El ID del ítem portal del servicio Knowledge Graph (pid) y URL del portal servidor (Cambie estos)'
'var pid = "d03d80ca35c94cadb963f845acbd0de1"'
'var portal_url = " https://[YOUR_ORG_PORTAL_URL].com/portal/"'
'var kg = KnowledgeGraphByPortalItem(Portal(portal_url), pid)'
' '
'// Para simplificar el polígono y mejorar rendimiento usamos Generalize'
'var gen = Generalize($feature, 5000, true, 'meters')'
' '
'var results = querygraph(kg, "MATCH (s:Supplier) WHERE esri.graph.ST_Contains($feature_geom, s.shape) RETURN s.Name, s.globalid", {'feature_geom': gen});'
' '
'var final_str = "";'
'var cnt = 0'
' '
'for (var r in results) {'
' var name = results[r][0]'
' var g_id = StandardizeGuid(results[r][1],'digits-hyphen')'
' var studio_url = '<a href = ' + server_url + '/apps/knowledge-studio/main?id=' + pid + '&selectedContentId=dataExplorer&selectedContentElement=%7B' + g_id + '%7D&selectedContentInstruction=entity>';'
' final_str = final_str + studio_url + " " + name + "</a><br>";'
' }'
'return {'
' type : 'text','
'text : final_str'
' }'
'Este es un ejemplo de una consulta que podría usar en un ','Map',' field','98':' con un ','Feature Service',' field','100':' allí como referencia junto a una capa espacial Knowledge Graph, ¡o incluso sin que el grafo esté presente en el mapa!',' field','101':' Planeo seguir este blog con algunas consultas completas adicionales y prompts AI para ayudarte a aprovechar LLMs y construir tus propias consultas Arcade + Graph. También puedes profundizar revisando la ','Arcade Knowledge Graph function documentation',' field','103':'.'}}Map with an independent Feature Service there for reference alongside a spatial Knowledge Graph layer, or the graph could not be present in the map at all!
I plan follow this blog with some additional full sample queries, along with AI prompts to help you leverage LLMs to help you build your own Arcade + Graph queries. You can also go deeper by reviewing the Arcade Knowledge Graph function documentation.