Let’s start with the question: what is Ontology. According to Wikipedia: “In computer science and information science, an ontology is a formal naming and definition of the types, properties, and interrelationships of the entities that really or fundamentally exist for a particular domain of discourse. It is thus a practical application of philosophical ontology, with a taxonomy”.
Sounds complex? Well, it can be. Ontology within WEM is one of the most powerful, but also complex concepts. In this article we will cover the basics, and we’ll discuss the more complex aspects of the WEM Ontology in another article.
Many people use the Ontology to define and maintain picklists that are static. Some examples:
- A list of all US states;
- A list of the saluations you have to use in your application;
- A list of every possible status of a ticket in a helpdesk system;
If you need a field in your WEM list from which you need to select pre-defined options (a
single select or
multi-select data field), you need to point that field to a list of values that is stored in the Ontology.
And this is the most basic use of the Ontology. It is also the way most modelers use the Ontology.
You can also have a hierarchy within a picklist. You could e.g. have a list of “Car brands” (BMW, Ford, Infinity, Nissan, Volkswagen, etc.), and for each car brand the car models (children of the parent Concept “Car brands”). You now have a simple hierarchy of car brands and car models.
Items in the Ontology are called
Concepts. So in the Ontology you find relations between
Every item in the Ontology is a
Concept. So when you want to maintain car brands, “Ford” would be a Concept. If there is a hierarchy, “Ford”.”Mustang” is also a Concept.
Note: “Mustang” is called a
child of “Ford”. But it is still a Concept.
A Concept has information associated with it:
Local name: This is the name of the name of the Concept;
Display Names: If you have a multi-lingual application, you can specify what the Concept name is in the various languages you want to support;
Concept type: Specify a new Concept type or select one from a list of existing Concept types. See below for an explanation of Concept types;
Description: You can briefly describe a Concept;
Synonyms: you can add one or more synonyms for a car. You can use this e.g. if you want to user to be able to search for a Concept, but you want “Volkswagen”and “VW” to point to the same Concept. You would add the Synonym “VW” to the “Volkswagen” Concept.
Concept Type is used to make a distinction between Concepts. This is not limited to children of a single Concept. You could look at a Concept Type as being a label.
Example: Let’s say you want to be able to find all car models dat are SUVs. You could easily realize this by adding the Concept Type “SUV” to the car models that are SUVs. You now have created new relationship between the various Concepts, based on the Concept Type “SUV”. In a list you could create a single-select field that would only show the car models of concept type “SUV”.
The Concept Type is a very powerful way of adding an extra layer of relationships between Concepts.
Adding a Concept
To add a new Concept, you first need to go to the
Ontology section of your Project. You now get an overview of all Concept that are available. To add a new Concept, simply select
New sibling from the menubar:
Since you start at ‘the top’ of the Ontology hierarchy you start with creating a new sibling. Give this Concept a name (e.g. “Cars”) and fill in the Concept details on the right hand side of the screen:
Besides the basic information that is associated with a Concept (see above), it is also possible to add one or more properties to a Concept. You can use these properties for whatever you want. E.g. maybe you want to add a car brand logo image to a Concept: just add a property of the type
file to the Concept.
To add a property to a Concept, select the Concept and click on the
Properties button in the menubar. You now get a list of all defined properties (this list is empty for a new Concept, of course), and you can
Delete a property.
add. You now get the properties form for the new property:
|Name||The name you want to give this property.|
|The value type you want this property to have|
|Specify if this property is available to only the direct children of a Concept, or to all children of all children.|
|Only concepts with type||If a property should only be available to concepts of a specific Concept type, you can specify that Concept type here.|
Once a property has been defined, you can change the value of that property through the detailed information of the Concept (on the right hand side when you select a Concept).
Adding a child
To add a children to a Concept, simply select
New child. A new child is now created as part of a Concept. Alle properties of the parent Concept are available, and the information details you needed to enter for the parent must/can also be specified for the child.
If you want to create a picklist that is rather long (e.g. all the Countries in the world, or all the US states), you may want to import that data to create a list. To use the Import function you first select the Concept where you want to add all the children. Let’s say you have a Concept called “Cars” and want to add a list of all car brands. Select “Cars” and click on the
Import button. You get the import screen:
Here you copy the list of car brands in the main container (see example above). This container has a dropdown list where you specify how you want to use this list. nN our example we select
Local name because we want all the children to use the name of the car brand as the local name. Other import options are:
- Content type
- Display name – you can select multiple display name if your application support multiple languages
- Any property you may have defined for the Concept “Car”
You can also specify whether the copied list has a header or not. Is a seperator used and if so: which one? What is the qualifier you want to use.
Now simply click on
Ok, and the list is imported and your Concept “Cars” now has a complete list of child Concepts that each represent a car brand.
Advanced Ontoloy topics
There are two areas that are for advanced use: Ontology Queries and Ontology Relations. These topics will be discussed in the Tips & Tricks section of the WEM Documentation.
Let’s look at how to configure webservices.