Microsoft Ontology (MSO)

Explore the Full List of MSO Entities


It is recommended to use MSO entities as inputs and outputs botlets whenever possible.

MSO (Microsoft Ontology) is a set of entity definitions which describe many real-world objects, such as people, restaurant reservations, movies, or stock prices. These are available to browse via the store portal.

Why you should use MSO

Use of MSO entities provides a standard data format for interoperation between skills. The Prebuilt Botlets and the COLLECT syntax both output entities conforming to the MSO standard.

Each MSO entity includes properties to define the features of the item it classifies. For example, mso.person includes fields for the given_name, family_name, gender, and occupation. Properties may be of either an Atomic Types or be MSO entities in themselves. To continue the example of an mso.person, the birth_place property is of type, an MSO entity. In contrast, the person’s birth_date is of the date atomic type.

Sometimes it is desirable for an entity to allow multiple instances of a given property. For example, a given mso.person may have more than one email address. In these cases, the property is a list containing the relevant data instances. Thus, the email property on mso.person is of type list<email_address>.

Extending on

The MSO vocabulary is largely based on the open-source project. When an MSO entity is needed which is not represented in, it is assigned to the mso.ext namespace. There is also an mso.iot namespace which defines entities for various IoT devices, such as activity trackers, lights, and thermostats.