ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Core.Data.Knowledge Namespace / KnowledgeGraphQueryFilter Class / ProvenanceBehavior Property
Example

In This Topic
    ProvenanceBehavior Property (KnowledgeGraphQueryFilter)
    In This Topic
    Indicates whether entities with an entity type of role KnowledgeGraphNamedObjectTypeRole.Provenance should be excluded or included in the query results. Default value is KnowledgeGraphProvenanceBehavior.Exclude.
    Syntax
    Public Property ProvenanceBehavior As KnowledgeGraphProvenanceBehavior
    public KnowledgeGraphProvenanceBehavior ProvenanceBehavior {get; set;}
    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