Jakob Voss | 6 Aug 2010 10:11
Picon

YAML compared to MGraph

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

--

-- 
Verbundzentrale des GBV (VZG)
Digitale Bibliothek - Jakob Voß
Platz der Goettinger Sieben 1
37073 Goettingen - Germany
+49 (0)551 39-10242
http://www.gbv.de
jakob.voss <at> 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
Yaml-core <at> lists.sourceforge.net
(Continue reading)

Oren Ben-Kiki | 8 Aug 2010 16:29
Gravatar

Re: YAML compared to MGraph

According to the rumor mill http://www.infoq.com/news/2010/08/quadrant-drops Microsoft is not really pushing it.
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...

Have fun,

    Oren Ben-Kiki

On Fri, Aug 6, 2010 at 11:11 AM, Jakob Voss <Jakob.Voss <at> gbv.de> 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


--
Verbundzentrale des GBV (VZG)
Digitale Bibliothek - Jakob Voß
Platz der Goettinger Sieben 1
37073 Goettingen - Germany
+49 (0)551 39-10242
http://www.gbv.de
jakob.voss-24UGbQzdbaw@public.gmane.org

------------------------------------------------------------------------------
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
Yaml-core-5NWGOfrQmnetEtDZOKyKiw@public.gmane.orgrge.net
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 
_______________________________________________
Yaml-core mailing list
Yaml-core@...
https://lists.sourceforge.net/lists/listinfo/yaml-core
Jakob Voss | 9 Aug 2010 13:49
Picon
Gravatar

Re: 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 <Jakob.Voss@...
> <mailto:Jakob.Voss@...>> 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ß <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
http://p.sf.net/sfu/RIM-dev2dev 
Jeff Dickey | 11 Aug 2010 15:29
Gravatar

Re: YAML compared to MGraph

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:              jdickey@...
Phone/SMS:          +65 8333 4403
Website:            http://www.seven-sigma.com/
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
>> 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 <Jakob.Voss@...
>> <mailto:Jakob.Voss@...>> 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ß <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
> http://p.sf.net/sfu/RIM-dev2dev
> _______________________________________________
> Yaml-core mailing list
> Yaml-core@...
> 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 
Andrey Somov | 13 Aug 2010 13:39
Picon

[ANN] SnakeYAML-1.7 final is available

==========================
 Announcing SnakeYAML-1.7
==========================

A new release of SnakeYAML is now available:

    http://code.google.com/p/snakeyaml/

This release delivers simplified public API (drop Loader and Dumper, issue 77),
as well as other minor changes and bug fixes.

Changes
========
 * fix for issue 74: Do not use redundant tags for arrays which are
JavaBean properties,
 * fix for issue 73: Provide support for loading java.util.Set as a sequence,
 * fix for issue 55: Allow direct field access bypassing setters and getters,
 * fix for issue 53: Enhancement for a pretty format that combines
BLOCK and FLOW

The complete list of changes is here:
http://snakeyamlrepo.appspot.com/releases/1.7/site/changes-report.html

Resources
==========

SnakeYAML homepage: http://code.google.com/p/snakeyaml/
SnakeYAML documentation: http://code.google.com/p/snakeyaml/wiki/Documentation

JAR package: http://repo2.maven.org/maven2/org/yaml/snakeyaml/1.7/snakeyaml-1.7.jar
Reports: http://snakeyamlrepo.appspot.com/

SnakeYAML Mercurial repository: http://snakeyaml.googlecode.com/hg/
Submit a bug report: http://code.google.com/p/snakeyaml/issues/entry

YAML homepage: http://yaml.org/
YAML-core mailing list: http://lists.sourceforge.net/lists/listinfo/yaml-core

About SnakeYAML
================

SnakeYAML is a YAML parser and emitter for Java 5.

SnakeYAML features a complete YAML 1.1 parser.
SnakeYAML is applicable for a broad range of tasks from complex
configuration files to object serialization and persistence.

Copyright
==========
SnakeYAML is released under the Apache License Version 2.0

------------------------------------------------------------------------------
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 
Stephan Arts | 16 Aug 2010 00:42
Favicon

libyaml-0.1.3 - Missing pkgconfig file

Hi,

I have just installed libyaml-0.1.3, and I found that it was missing a
.pc file for use with pkgconfig. Having this file would greatly
improve dependency-tracking for applications being built against libyaml.

I was wondering:
Was this done on purpose or would you guys accept a patch adding this
file to libyaml?

Regards,
Stephan Arts

------------------------------------------------------------------------------
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 
Yu Feng | 16 Aug 2010 00:58
Picon
Gravatar

Re: libyaml-0.1.3 - Missing pkgconfig file

  I submitted a ticket sometime ago:

http://pyyaml.org/ticket/127

On 8/15/2010 6:42 PM, Stephan Arts wrote:
> Hi,
>
> I have just installed libyaml-0.1.3, and I found that it was missing a
> .pc file for use with pkgconfig. Having this file would greatly
> improve dependency-tracking for applications being built against libyaml.
>
> I was wondering:
> Was this done on purpose or would you guys accept a patch adding this
> file to libyaml?
>
> Regards,
> Stephan Arts
>
> ------------------------------------------------------------------------------
> 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
> Yaml-core@...
> 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 
Stephan Arts | 16 Aug 2010 14:31
Favicon

Re: libyaml-0.1.3 - Missing pkgconfig file

Too bad this ticket does not get much attention.

Speaking of which, is the project still alive?

When looking at the trac history, there does not seem to be much going
on lately.

Regards,
Stephan

On Mon, Aug 16, 2010 at 12:58 AM, Yu Feng <rainwoodman@...> wrote:
>  I submitted a ticket sometime ago:
>
> http://pyyaml.org/ticket/127
>
>
> On 8/15/2010 6:42 PM, Stephan Arts wrote:
>> Hi,
>>
>> I have just installed libyaml-0.1.3, and I found that it was missing a
>> .pc file for use with pkgconfig. Having this file would greatly
>> improve dependency-tracking for applications being built against libyaml.
>>
>> I was wondering:
>> Was this done on purpose or would you guys accept a patch adding this
>> file to libyaml?
>>
>> Regards,
>> Stephan Arts
>>
>> ------------------------------------------------------------------------------
>> 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
>> Yaml-core@...
>> 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
> _______________________________________________
> Yaml-core mailing list
> Yaml-core@...
> 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 
Andrey Somov | 18 Aug 2010 09:13
Picon

: in the flow context for PyYAML and SnakeYAML

Hi all,
according to http://pyyaml.org/wiki/YAMLColonInFlowContext colon in
the flow context does not work according to the 1.1 specification in
PyYAML.
PyYAML follows "pythonic" way instead of implementing language-neutral
solution. It causes compatibility issues with other languages.
There is an issue reported for SnakeYAML to address the problem -
http://code.google.com/p/snakeyaml/issues/detail?id=78

The ticket for PyYAML is created but there is no progress -
http://pyyaml.org/ticket/158

I am not really in favor to fix the problem only in SnakeYAML as we
find it important that any valid document for SnakeYAML is always
valid for PyYAML and vice versa.

-
Andrey
SnakeYAML developer

------------------------------------------------------------------------------
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 
Kirill Simonov | 25 Aug 2010 00:05
Picon

Re: : in the flow context for PyYAML and SnakeYAML

Hi Andrey,

On 08/18/2010 03:13 AM, Andrey Somov wrote:
> Hi all,
> according to http://pyyaml.org/wiki/YAMLColonInFlowContext colon in
> the flow context does not work according to the 1.1 specification in
> PyYAML.
> PyYAML follows "pythonic" way instead of implementing language-neutral
> solution. It causes compatibility issues with other languages.
> There is an issue reported for SnakeYAML to address the problem -
> http://code.google.com/p/snakeyaml/issues/detail?id=78
>
> The ticket for PyYAML is created but there is no progress -
> http://pyyaml.org/ticket/158
>
> I am not really in favor to fix the problem only in SnakeYAML as we
> find it important that any valid document for SnakeYAML is always
> valid for PyYAML and vice versa.

As far as I remember, the YAML 1.1 spec claims that ':' is a valid 
character for a plain literal if it is not followed by a whitespace, and 
the mapping separator is ': ' (colon followed by a whitespace).  I 
strongly disagreed with it because it does not follow Python or 
Javascript conventions, but I didn't want to decide one way or another 
until some consensus is reached.  So I made ':' (colon followed by a 
non-whitespace character) an error when it is a part of a plain literal 
in the flow context.

I haven't checked the YAML 1.2 specs, but I believe the rules were 
relaxed to facilitate JSON compatibility.  AFAIK, the mapping separator 
is now ':' (colon), but colon is still a valid character in a plain 
literal and if it is not followed by a whitespace, it is interpreted as 
a part of the literal rather than a mapping separator.  Thus a JSON 
expression like {"foo":1} is now a valid YAML.  The solution is still 
not that great since a valid Python or Javascript expression like {1:1} 
has a different meaning in YAML (in this case, {'1:1': null}).  I'm not 
sure how much this is a problem in practice though.

I believe there was another proposal (which I like even less): forbid 
':' in mapping keys, but allow them in mapping values.  Unfortunately it 
creates ambiguities in expressions like [foo:bar], which could be 
interpreted both ways.

Note that my understanding of the YAML specs could be incorrect: it was 
a long time ago since I last read them.

Thanks,
Kirill

------------------------------------------------------------------------------
Sell apps to millions through the Intel(R) Atom(Tm) Developer Program
Be part of this innovative community and reach millions of netbook users 
worldwide. Take advantage of special opportunities to increase revenue and 
speed time-to-market. Join now, and jumpstart your future.
http://p.sf.net/sfu/intel-atom-d2d

Gmane