Short answer: M is a mindshare-retention tool for developers in the
Microsoft ecosystem. I'd be surprised if it even got support in the Mono
environment, which generally tries *really* hard to stay current with .NET.
Just my two rupiah worth,
Jeff Dickey Seven Sigma Software and Services
Phone/SMS: +65 8333 4403
More contact info: http://card.ly/jdickey
> From: Jakob Voss <jakob.voss@...>
> Date: Mon, 09 Aug 2010 13:49:11 +0200
> To: <yaml-core@...>
> Subject: Re: [Yaml-core] YAML compared to MGraph
> Oren Ben-Kiki wrote:
>> According to the rumor mill
>> Microsoft is not really pushing it.
> That would answer why I does not beat XML as promised ;-)
>> The M model isn't identical to YAML's (e.g., collections are unsorted
>> and arrays are second class).
>> M isn't a superset of JSON, YAML is.
>> M is tightly coupled with the Microsoft ecosystem.
>> There are plenty or differences...
> I found a good summary at
> http://msdn.microsoft.com/en-us/library/dd878360.aspx that says
> An "M" values instance is a directed, edge-labeled multi-graph. Each
> node is either atomic, holding a single value, or non-atomic, holding a
> multiset of outgoing edges. Nodes carry an optional brand. Brands are
> strings. Edges outgoing from a node are either unlabeled or uniquely
> labeled, relative to their source node. Labels are either strings or
> integers. A value held by an atomic node is either of an "M" values
> classified type or of unclassified type.
> In the same way you can describe YAML:
> A YAML representation graph instance is a directed edge-labeled
> multi-graph. Each node is either atomic, holding a single value
> ("scalar"), or non-atomic, holding a multiset of outgoing edges. Nodes
> carry an optional tag. Tags are either URIs ("global tags") or strings
> from the URI character set ("local tags"). Edges outgoing from a node
> are either unlabeled and ordered ("sequence") or uniquely labeled
> ("mapping"), relative to their source node and defined by recursion, as
> labels are nodes. A value held by an atomic node is a Unicode string,
> optionally classified by a tag.
> It looks like "M" can model ordered collections, records, tuples, lists
> etc. by additional constraints just like YAML models sets and multisets
> (they are not directly supported but must be emulated). The "M" concept
> of "brands" is similar to YAML's tags. I find both model and syntax of
> YAML and "M" look very similar - they share much more then for example
> XML and one of the two.
>  "M" is a multigraph, as collections can contain the same node
> multiple times.
>  edge-labels are nodes themselves - this is the most unique features
> of YAML compared to other data serialisation languages. And it's one of
> the most rarely used features I think. Arbitrary mapping keys make
> validating YAML as complex as graph isomorphism testing which is not
> solvable in polynomial time for the worst case. Do you know of any YAML
> implementation that supports graph isomorphism testing?
>> On Fri, Aug 6, 2010 at 11:11 AM, Jakob Voss <Jakob.Voss@...
>> <mailto:Jakob.Voss@...>> wrote:
>> I stumbled upon Microsoft's "M" aka project Oslo which includes the
>> MGraph language. It is often compared with XML but looks much more like
>> YAML. Has anyone had a look at it and compared it with YAML? Some good
> Jakob Voß <jakob.voss@...>, skype: nichtich
> Verbundzentrale des GBV (VZG) / Common Library Network
> Platz der Goettinger Sieben 1, 37073 Göttingen, Germany
> +49 (0)551 39-10242, http://www.gbv.de
> This SF.net email is sponsored by
> Make an app they can't live without
> Enter the BlackBerry Developer Challenge
> Yaml-core mailing list