Hi: I read a very interesting article by Witold Wysota, who is one of the administrators of this site, called "Semantic Model of Application User Interfaces". As someone who is interested in automatically generating GUIs based on a data model, and also on building an ontology of the user interface domain (that is, an ontology OF user interfaces, not user interfaces TO ontologies in other domains e.g. medicine), I was pleased to see specific ideas on this subject proposed by a Qt expert. The journal "Information Theories and Applications" published a proposed for a UI ontology to be hosted on the internet, back in 2003, but did not seem to follow up that proposal. I am a former student at the University at Buffalo, NY, which houses the (US) National Center for Ontological Research and has done extensive work on formal systems for ontological engineering, and also on the theory of partitions, which I believe could be very useful in analyzing how an Application User Interface can best be subdivided so as to incorporate the structure of the Application Data Model in a user-friendly way. There are many possible UI controls both for single data fields and for aggregators like notebooks, dialog boxes, wizards, etc. If some heuristics exist for how to map data structure on UI structure it might be possible to autogenerate useful GUIs on top of a data model, even if a programmer needs to tweak to the results. I would like to develop a User Interface Ontology which catalogs different kinds of UI components (as well as things like User-Generated Events, etc.) including information such as the relative complexity of different UI controls, what UI control types they can contain or be contained inside, etc., as a way to guide the mapping from data-model partitions onto UI controls. I have already developed C++ code generators which can build alot of boilerplate code related to Qt (also wxWidgets) apps, though only if the UI details are explicitly set beforehand (for myself, using a Lisp-like DSL). I'd like to extend this via a kind of decision engine which can infer the best UI controls to represent a given data component, and a UI ontology could provide parameters guiding this decision process. Therefore, I'd like to know whether the ideas in Wysota's article are just conceptual, or whether there are actual Qt-related tools which incorporate them e.g. into source-code analyzers for Qt apps, etc. "Another important field of use is creation and usage of semantics-enabled code generators. Having an abstract model of a user interface makes it possible to implement tools that would transform such definition into source code for different arbitrary development environments" -- I agree; do these tools exist at all?
Bookmarks