ArcGIS Pro 3.3 API Reference Guide
ArcGIS.Core.Data.Knowledge Namespace / KnowledgeGraphQueryFilter Class / KnowledgeGraphQueryFilter Constructor
Example

In This Topic
    KnowledgeGraphQueryFilter Constructor
    In This Topic
    Represents a filter for performing a query against a KnowledgeGraph.
    Syntax
    public KnowledgeGraphQueryFilter()
    Public Function New()
    Example
    Submit a Graph Query
    //On the QueuedTask...
    //and assuming you have established a connection to a knowledge graph
    //...
    //Construct an openCypher query - return the first 10 entities (whatever
    //they are...)
    var query = "MATCH (n) RETURN n LIMIT 10";//default limit is 100 if not specified
    //other examples...
    //query = "MATCH (a:Person) RETURN [a.name, a.age] ORDER BY a.age DESC LIMIT 50";
    //query = "MATCH (b:Person) RETURN { Xperson: { Xname: b.name, Xage: b.age } } ORDER BY b.name DESC";
    //query = "MATCH p = (c:Person)-[:HasCar]-() RETURN p ORDER BY c.name DESC";
    
    //Create a query filter
    //Note: OutputSpatialReference is currently ignored
    var kg_qf = new KnowledgeGraphQueryFilter()
    {
      QueryText = query
    };
    //Optionally - u can choose to include provenance in the results
    //(_if_ the KG has provenance - otherwise the query will fail)
    if (includeProvenanceIfPresent)
    {
      //see "Get Whether KG Supports Provenance" snippet
      if (KnowledgeGraphSupportsProvenance(kg))
      {
        //Only include if the KG has provenance
        kg_qf.ProvenanceBehavior = 
          KnowledgeGraphProvenanceBehavior.Include;//default is exclude
      }
    }
    //submit the query - returns a KnowledgeGraphCursor
    using (var kg_rc = kg.SubmitQuery(kg_qf))
    {
      //wait for rows to be returned from the server
      //note the "await"...
      while (await kg_rc.WaitForRowsAsync())
      {
        //Rows have been retrieved - process this "batch"...
        while (kg_rc.MoveNext())
        {
          //Get the current KnowledgeGraphRow
          using (var graph_row = kg_rc.Current)
          {
            //Graph row is an array, process all returned values...
            var val_count = (int)graph_row.GetCount();
            for (int i = 0; i < val_count; i++)
            {
              var retval = graph_row[i];
              //Process row value (note: recursive)
              //See "Process a KnowledgeGraphRow Value" snippet
              ProcessKnowledgeGraphRowValue(retval);
            }
          }
        }
      }//WaitForRowsAsync
    }//SubmitQuery
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3.2 or higher.
    See Also