Greetings. Welcome to the "Oslo" Modeling Language Team blog!

This blog exists to facilitate a conversation with you about the "Oslo" Modeling Language, aka "M".

"M" is a core feature of "Oslo" and is a language for textually describing and authoring domains. "M" comprises the following: MGraph, MSchema, and MGrammar. MGraph is for serializing data values to a graph structure similar to syntaxes like JSON. MSchema builds on MGraph by providing a structural type system, extent declarations for storing values, and computed values, which are queries over values and extents. MGrammar is used to describe domain-specific languages in terms of rules that are used to transform input text to MGraph.

We will frequently post about things all things "M", covering both technical and informational content that we are passionate about and that we think you need to know. We’ll begin with deeper dives into "M", MGraph, MSchema, and MGrammar over the coming days.

Of course, we’re *very* passionate about all of "M" so we have plenty to post about J. But this blog will be much more interesting for you if you let us know that we’re posting what you need and, if not, what you’d like to see instead. Make sure you get the most out of this blog.

And make sure you get the bits as soon as you possibly can! You’ll find them in the Microsoft "Oslo" SDK, which you can download and install from here. The SDK includes the following "M" goodies:

Compilers and tools:

  • The MSchema compiler (m.exe)
  • A tool to load MSchema content into a SQL database (mx.exe)
  • The MGrammar compiler (mg.exe)
  • A tool to parse files based on a .mgx, and output an MSchema or XAML file (mgx.exe)
  • Visual Studio language integration for "M"
  • Intellipad, a text editor with MSchema and MGrammar integration (ipad.exe)*
  • MSBuild integration for the MSchema and MGrammar compilers

Language specifications, primers, and help:

  • MSchema in a Nutshell
  • MSchema Language Specification
  • MGrammar in a Nutshell
  • MGrammar Language Specification


  • MSchema
  • MGrammar

* Note - when you install the SDK, make sure you launch the Samples-Enabled Intellipad -> Start | Program Files | Microsoft Oslo SDK | Tools | Intellipad (Samples Enabled)

As you play, please let us know what you like, what you don’t like, and what you’d like to see. We both want and need your feedback to make "M" the best product it can be for you. There are several ways for you to provide feedback:

Have fun!
The "M" Language Team