General

Ontology data structures in WEM

Almost any application has some standard lists that are used as standard info, these list are often static, they don’t change over the course of the life of the application, and you want to build your application to easily respond to changes of these values. A very common example is country, where a lists of countries is shown for the user to select from.

In WEM one of the project level functions is Ontology, when we look at the definition of the word we find the following definitions at Dictionary.com:

ontology, noun

philosophy the branch of metaphysics that deals with the nature of being
logic the set of entities presupposed by a theory


For our use in WEM the definition from logic applies, our free translation "A set of elements with commonalities.".

In the WEM Ontology you create hierarchical lists of common elements that you can use later as the basis for single and multi-select data elements. In our country example you could import the list of ISO standard country names.

You can give elements in your Ontology, properties, properties are additional pieces of information about the Ontology element, in the country example you would be able to add the two letter country code and the currency amongst others, allowing you to invoice a user in their local currency once they select their country.

The WEM Ontology allows you to create hierarchical lists, for example enabling you to organize your country list by region, so instead of showing hundreds of countries to a user, the user is offered the choice to first selects a region and the lists of countries is filtered down to only those in that region. To enable this kind of behavior you use Ontology Queries, graphical "point & click" created selections of what information is shown when, that are dynamically executed in your application when needed, without you having to add any logic to your application to do so.

While this concept of Ontology is fairly simple the possibilities are virtually endless. The WEM ontology functionality make your applications development faster, allow you to make the user experience more intuitive and make "smart" applications without any programming.