+/* Returns true if the given "ident" matches the (more general) selector of
+ * the graph "cfg". */
+_Bool graph_ident_matches (graph_config_t *cfg, const graph_ident_t *ident);
+
+/* Returns true if the selector of the graph "cfg" matches the more general
+ * ident "selector". */
+_Bool graph_matches_ident (graph_config_t *cfg,
+ const graph_ident_t *selector);
+
+/* Returns true if a file may apply to both, the graphs selector and the
+ * selector given as argument. If the selectors contradict one another,
+ * returns false. */
+_Bool graph_ident_intersect (graph_config_t *cfg,
+ const graph_ident_t *selector);
+
+/* Compares the given string with the appropriate field of the selector. If
+ * the selector field is "/all/" or "/any/", returns true without checking the
+ * instances. See "graph_inst_search_field" for finding all matching
+ * instances. */
+_Bool graph_matches_field (graph_config_t *cfg,
+ graph_ident_field_t field, const char *field_value);
+
+int graph_inst_foreach (graph_config_t *cfg,
+ inst_callback_t cb, void *user_data);
+
+graph_instance_t *graph_inst_find_exact (graph_config_t *cfg,
+ graph_ident_t *ident);
+
+graph_instance_t *graph_inst_find_matching (graph_config_t *cfg,
+ const graph_ident_t *ident);
+
+int graph_inst_find_all_matching (graph_config_t *cfg,
+ const graph_ident_t *ident,
+ graph_inst_callback_t callback, void *user_data);
+
+/* Search for instances using a search_info_t. The code assumes that the
+ * graph's selector has already been checked against the search_info_t, using
+ * "search_to_ident" and "graph_matches_ident". */
+int graph_search_inst (graph_config_t *cfg, search_info_t *si,
+ graph_inst_callback_t callback, void *user_data);
+
+int graph_search_inst_string (graph_config_t *cfg, const char *term,
+ graph_inst_callback_t callback, void *user_data);
+
+/* Iterates over all instances and calls "inst_matches_field". If that method
+ * returns true, calls the callback with the graph and instance pointers. */
+int graph_inst_search_field (graph_config_t *cfg,
+ graph_ident_field_t field, const char *field_value,
+ graph_inst_callback_t callback, void *user_data);