What are the best practices for modeling templates for future instances? We would like to be able to render a form where the properties are well defined: based on type there is an appropriate widget (multiselect, dropdown, integer value, textbox with freetext, etc), order is defined, etc.
Is it recommended to define classes having properties and all possible properties should be rendered? What about the required widgets? Shall we define range for the property which will constraint the type of the widget? Or shall we use annotation?
Is it a good idea at all, to model the template? Can we use reasoning to validate the instance based on the template info?
Somehow I feel like this information is really data about the instances, but as it was already described here, owl classes - unlike OO - are not property restricted: properties are defining classes and not classes the properties. Or did I miss something?
asked 12 Feb '10, 17:13
We use ontologies to define how information is displayed on the screen. This is a key aspect to visualizing information in both, TopBraid Composer and TopBraid Ensemble. You can see this User Interface ontology at http://www.topquadrant.com/topbraid/2007/01/forms.owl. It is entirely about the display and does not deal with whether members of a certain class should have certain property values.
The latter part of modeling is already supported by the standard RDFS/OWL definitions. If you expect to reuse properties across classes, you should use restrictions in class definitions. Restrictions are local constraints, while domains and ranges are global.
Given that UI templates are purely about the UI, it does not make much sense to use them for data validation. But you can certainly use the domain model for data validation.
As you look at the forms ontology, you will probably want to understand how to use it and to see how would the actual display information look like. If you wanted to, you could experiment with it by downloading TopBraid Composer and creating a form for something. When you save an ontology that has form customizations, a file with .tbc suffix is created. For example, my-ontology.owl.tbc. This is an RDF file that contains form information. You can open it with any editor. If you decide to try this out, make sure to read the following article in the TBC Help facility: TopBraid Composer > User Interface Overview > Resource Editor >Form Layout Panel
You should also be aware of Fresnel vocabularies for display of information. Fresnel takes a similar approach of using a UI ontology.
answered 15 Feb '10, 18:47