Meta-Application Interface: a proposal

Hi guys and gals,

	I'm not a GNOME developer and I've never posted here, so I
hope you'll forgive my crossposting to a few different GNOME
lists. While thinking about one of my ecological modelling projects
I've come up with an idea for a general core GUI feature that I think deserves
sharing and needs feedback - also because, fingers crossed, I might
have funding by year 2000 to help its development, if done compatibly
with the (non-commercial, open-source) project's purposes.

You can read about the original project at  Basically it's a proposal to develop
a framework/set of tools to integrate independent ecological models by
making their semantics explicit (using XML DTD's) and developing sw to
perform connections on a graphical workbench, run models and 'probe'
the information passing along the connections. It's a big thing with
lots of difficulties, but very fascinating to me.

	This leads easily to the idea of a 'meta-application
interface' as a core desktop functionality, where users can 'patch'
applications together graphically (connecting their icons with the
mouse), save their meta-application to the desktop, and use it as a
single app. At the very simplest level this allows to use the UNIX
pipe mechanism graphically: e.g. to print text files as postscript, I
create a new meta-app (a box with input and optionally output ports),
drop the ascii-to-ps translator and the ps-printer icons into it,
connect the meta-app input to the translator and the translator to the
printer, assign an icon and save it. Now I can drop my ascii file on
the icon and have it translated and printed in one step. It's not much
of a deal but you get the idea - try and find something like that on
Windows or MacOS. One of the most powerful features of Unix comes to
the friendly desktop. Myself, I would love to have it.

	Going up with the complexity, you can carry this to a very high
and very new level of power. As a first stab at it: through an API,
applications can notify their 'output ports' and make them available
as outputs in a meta-application context. This translates in users
being able to select graphically the ports from the application's icon
in the meta-application editor. The 'semantics' of the info that
passes through there can be described in XML and the connections, of
course, can be based on CORBA, which makes it possible to use remote
apps ('services') as well. An application in the meta-application can
play a 'lead role' by showing its own interface when running the
meta-app, and is notified of the connected apps through the API,
adjusting its menus and functions (possibly directed from similar info
set in the connected apps) according to what services are available to
it in the meta-application context. Specific 'GUI' apps can offer
specific services like e.g. interactive output port selection: you
drop the Ascii file on the meta-printing app and you get the pop-up
asking which printer/viewer you want it to print on (all printers are
connected to the outputs of the switcher).

	Never mind my silly examples, but the beauty of this is that
the user does it all - if s/he wants - and can personalize the system
to very high levels of proficiency and customization, all without
writing a line of code. Think of the possibilities of using meta-apps
hierarchically within meta-apps. In the long run I can see apps
providing fundamental services (e.g. text composition, financial
conversion, you name it) and 'real' apps being made by users by
patching together the building blocks. And the development of this is
certainly non trivial but very scalable: something encapsulating just
UNIX pipes would be more than enough to make many people happy, and
simpler to do than most GNOME core libraries.  I can't imagine
anything more ideal than GNOME for a similar functionality, and it
would be a smashy improvement over any other system, commercial or
not, that I know of.

	What do you think? When it comes to me: I'm paid to do
research as a theoretical ecologist and I've submitted a proposal for
the IMA project, which could be funded or not by the end of the
year. I won't know about funding for a while. If we get the funds,
I'll have to hire a programmer (since 2001 but possibly earlier) to do
the job with me and another colleague, and this person could be
developing the GNOME side as well if we make it fit in there. The
whole modelling project is probably much more complicated than this,
so it would be easy to fit it in ...:)

	If I don't get the funds, I don't think I'll ever have the
resources to do it, but I'd be happy to contribute if someone in the
Gnome community decides it's worth the effort. For now just think
about it and let me know what your feelings are (in case you decide to
email me, know that I won't read email until July 1st. Best address is, i use this one for mailing lists only).

	In any case, thanks for reading, and best to you all


Ferdinando Villa, Ph.D.                         Assistant Research Scientist
Institute of Ecological Economics                     University of Maryland
P.O. Box 38, 20688 Solomons MD                         Phone: (410) 326-7446
URL:                         Fax: (410) 326-7354

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]