## Bonobo Activation Query Langage

## The Bonobo Activation query langage

Bonobo Activation has a query language used to request components with specific properties from the Bonobo Activation daemon. The API call `bonobo_activation_activate` takes a requirements parameter which is a string containing a specific request in the OAF query langage. A simple example is:

    CORBA_Object o = bonobo_activation_activate ("repo_ids.has ('IDL:GNOME/Graph/Layout:1.0')",
                                                 NULL, 0, NULL, &ev);

This will ask for a component which supports the GNOME/Graph/Lyout:1.0 interface. You can also do much more complicated things.

    "(repo_ids.has_all (['IDL:Bonobo/Control:1.0',
    		     'IDL:Nautilus/ContentView:1.0']) OR
      repo_ids.has_one (['IDL:Bonobo/Control:1.0',
                         'IDL:Bonobo/Embeddable:1.0'])) AND
      repo_ids.has('IDL:Bonobo/PersistFile:1.0') AND
      foo:bar.defined()"

This would get any component with both 'Control' and 'ContentView' or with either 'Control' or 'Embeddable' as long as they supported the 'PersistFile' interface, and defined the attribute 'foo:bar'.