> David, Gary and I spoke a bit about making the GUI connections between loci. > Loci should be able to tell the user what can be connected to what. For > example, you wouldn't feed a PDB file (directly) to a DNA seq aligner. So, > objects or object types should have very specific IDs, and a locus should be > able to say, 'I need input from locus type XXXXXXXXX'. If you try to connect > locus type YYYYYYYYY as input, you'll get an error message. Does Bonobo/CORBA > give us just that or will we have to define IDs for every locus or locus type? Mmm, yes to some extent. Gnome ( or bonobo ) is based upon an interface called GNOME::Unknown. An unknown can be refcounted, shut down :), or queried. The interesting part is the query, ( and the concept is shamelessy stolen from Microsoft of all places ;) You *don't* query an unknown about what it is. Instead, you query it for functionality. Say that someone sends you an unknown. You has been sent it as a container, so you suspect that it is a storage. If you want to use it as a storage, then you query it about "are you a storage?" and, if it is, it will return a GNOME::Storage ( that is just a different reference to the same object ) The queries is of the kind object.query_interface("IDL:GNOME/Storage:1.0"), that is, the ID's are strings and not numbers - slower, but more flexible. However, GNOME::Storage completely lacks a method to enumerate what kind of functionality it supports. By the way. All GNOME::<anything> objects inherite from GNOME::Unknonwn. // Liss