Re: YAML compared to MGraph
Jeff Dickey <[email protected]>
| Newsgroups | gmane.text.yaml.general |
|---|---|
| Message-ID | <C888C6AF.40A4F%[email protected]> |
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 -- Jeff Dickey Seven Sigma Software and Services Email: [email protected] Phone/SMS: +65 8333 4403 Website: http://www.seven-sigma.com/ More contact info: http://card.ly/jdickey > From: Jakob Voss <[email protected]> > Date: Mon, 09 Aug 2010 13:49:11 +0200 > To: <[email protected]> > Subject: Re: [Yaml-core] YAML compared to MGraph > > Oren Ben-Kiki wrote: > >> According to the rumor mill >> http://www.infoq.com/news/2010/08/quadrant-drops >> 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 > (summarized): > > An "M" values instance is a directed, edge-labeled multi-graph[1]. 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[2] > 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. > > Remarks: > > [1] "M" is a multigraph, as collections can contain the same node > multiple times. > > [2] 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? > > Cheers, > Jakob > >> On Fri, Aug 6, 2010 at 11:11 AM, Jakob Voss <[email protected] >> <mailto:[email protected]>> wrote: >> >> Hi, >> >> 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 >> introductions: >> >> http://startbigthinksmall.wordpress.com/2008/12/10/mgraph-the-next-xml/ >> >> http://blog.jclark.com/2008/11/some-thoughts-on-oslo-modeling-language.html > > > -- > Jakob Voß <[email protected]>, 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 > http://p.sf.net/sfu/RIM-dev2dev > _______________________________________________ > Yaml-core mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/yaml-core ------------------------------------------------------------------------------ This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev