ArcGIS Pro 3.7 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 Function New()
    public KnowledgeGraphQueryFilter()
    Example
    Submit a Graph Query
    {
      await QueuedTask.Run(async () =>
      {
        //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)
        bool includeProvenanceIfPresent = KnowledgeGraphSupportsProvenance(kg);
    
        if (includeProvenanceIfPresent)
        {
          //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 Home, Pro, Enterprise (64 bit)

    ArcGIS Pro version: 3.2 or higher.
    See Also