//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
Target Platforms: Windows 11, Windows 10