From: Clark C. E. <cc...@cl...> - 2004-09-07 15:17:29
|
With the recent agreement on proposal #11, and the YAML Prologue we are on a quick path to YAML 1.1 Final Decisions for YAML 1.1 - !tags are by default private - !!tags are by default from YAML's Type Repository - globally unique prefixes are given a handle /w %TAG directive - !global!tags are now possible, where 'global' is a declared handle - the prefix for !tags and !!tags are both changable via %TAG directive - see Oren's post "#11 (modified #7)" for more details, it is authoriative - YAML streams will now have a optional prologue - a prologue starts with with %YAML 1.1 - a prologue may contain zero or more other directives (like %TAG) - a prologue may contain comments - see Brian's post "YAML Prologue Proposal" for more details, it is authoritative Open Issues for YAML 1.1 - see Clark's post "Unspecifed Tags and the rise of an Imp", this is still under discussion; which adopts David's suggestion of 'cooking' untagged nodes at the parser level with a well-known tag. - any other 'gripes' people have now that a change set is pending? YAML Processors need not, but should try to do their best to parse YAML 1.0 documents which are explicitly marked with the #YAML:1.0 or %YAML:1.0 directive (depending on which pass was implemented). Note that the %YAML:1.0 directive is a syntax error in YAML 1.1. A YAML 1.1 processor need not worry about YAML documents which assume 1.0 semantics but have not been marked with a declaration. The YAML 1.1 specification will contain an appendix with depreciated YAML 1.0 details. Kind Regards, Clark -- Clark C. Evans Prometheus Research, LLC. http://www.prometheusresearch.com/ o office: +1.203.777.2550 ~/ , mobile: +1.203.444.0557 // (( Prometheus Research: Transforming Data Into Knowledge \\ , \/ - Research Exchange Database /\ - Survey & Assessment Technologies ` \ - Software Tools for Researchers ~ * |
From: Sean O'D. <se...@ce...> - 2004-09-07 16:12:52
|
On Tuesday 07 September 2004 08:17, Clark C. Evans wrote: > With the recent agreement on proposal #11, and the YAML Prologue > we are on a quick path to YAML 1.1 > > Final Decisions for YAML 1.1 > > - !tags are by default private > - !!tags are by default from YAML's Type Repository > - globally unique prefixes are given a handle /w %TAG directive > - !global!tags are now possible, where 'global' is a declared handle > - the prefix for !tags and !!tags are both changable via %TAG directive > - see Oren's post "#11 (modified #7)" for more details, it is authoriative Slightly confusing language. It makes more sense this way, I think: - !tags are private tags - !namespace!tags are tags local to the given namespace - !!tags are tags using the default namespace, yaml.org initially I'm thinking that it's possible a person might want to change the "default" namespace so !!tags won't necessarily always be in yaml.org's space. In such cases, the only way to explicitly declare a yaml.org type would be to create a %TAG entry for yaml.org, and use it, i.e.: !yaml!int. Sean O'Dell |
From: Clark C. E. <cc...@cl...> - 2004-09-07 16:51:31
|
On Tue, Sep 07, 2004 at 09:05:52AM -0700, Sean O'Dell wrote: | Slightly confusing language. It makes more sense this way, I think: | | - !tags are private tags | - !namespace!tags are tags local to the given namespace | - !!tags are tags using the default namespace, yaml.org initially Except that we don't have namespaces. A namespace, in XML land is a separate item, an XML parser reports qnames which is a (namespace, local-part) tuple. A YAML parser does the cooking, reporting a single string. Thus, %TAG !one! tag:clarkevans.com,2002: %TAG !two! tag:clarkevans.com,2002:bing/ --- !one!bing/wibble one: this is !two!wibble one: a duplicate key ... Is an invalid YAML document since the cooking is done by the YAML processor, and this means both keys are reported with the same value, and the same tag:clarkevans.com,2002:bing/wibble If these were "namespaces" it would be valid, as the tags would be different ('tag:clarkevans.com,2002:','bing/wibble') is not the same as ('tag:clarkevans.com,2002:bing/','wibble') | I'm thinking that it's possible a person might want to change the | "default" namespace so !!tags won't necessarily always be in | yaml.org's space. In such cases, the only way to explicitly declare a | yaml.org type would be to create a %TAG entry for yaml.org, and use | it, i.e.: !yaml!int. Correct, this is by design. Only I'd call it a 'prefix' not an namespace. Cheers, Clark |
From: Sean O'D. <se...@ce...> - 2004-09-07 17:14:28
|
On Tuesday 07 September 2004 09:51, Clark C. Evans wrote: > On Tue, Sep 07, 2004 at 09:05:52AM -0700, Sean O'Dell wrote: > | Slightly confusing language. It makes more sense this way, I think: > | > | - !tags are private tags > | - !namespace!tags are tags local to the given namespace > | - !!tags are tags using the default namespace, yaml.org initially > > Except that we don't have namespaces. A namespace, in XML land is a > separate item, an XML parser reports qnames which is a (namespace, > local-part) tuple. A YAML parser does the cooking, reporting a single > string. Thus, > > %TAG !one! tag:clarkevans.com,2002: > %TAG !two! tag:clarkevans.com,2002:bing/ > --- > !one!bing/wibble one: this is > !two!wibble one: a duplicate key > ... > > Is an invalid YAML document since the cooking is done by the YAML > processor, and this means both keys are reported with the same > value, and the same tag:clarkevans.com,2002:bing/wibble > If these were "namespaces" it would be valid, as the tags > would be different ('tag:clarkevans.com,2002:','bing/wibble') > is not the same as ('tag:clarkevans.com,2002:bing/','wibble') Okay, I now understand how they're expressed, but isn't "clarkevans.com,2002" still the namespace and "bing/wibble one" an identifier under that namespace? I realize !one and !two are prefixes that will cook up the same fully qualified identifier, so they can't be re-emitted precisely as originally presented. I understand why that shouldn't be allowed. So there's no such thing as namespaces, just unique identifiers that happen to share the same prefixes? Seems like namespaces to me. Sean O'Dell |
From: Clark C. E. <cc...@cl...> - 2004-09-07 17:51:25
|
On Tue, Sep 07, 2004 at 10:14:17AM -0700, Sean O'Dell wrote: | Okay, I now understand how they're expressed, but isn't | "clarkevans.com,2002" still the namespace and "bing/wibble one" an | identifier under that namespace? it is the taggingEntity of the tagURI, but if you used another URI, it would not be so clear | I realize !one and !two are prefixes that will cook up the same fully | qualified identifier, so they can't be re-emitted precisely as originally | presented. I understand why that shouldn't be allowed. Cool. That's all. But when you say namespace, it really has a set of implications that the space and localpart remain distinctly identifiable. ;) Clark |
From: Sean O'D. <se...@ce...> - 2004-09-07 19:19:08
|
On Tuesday 07 September 2004 10:51, Clark C. Evans wrote: > On Tue, Sep 07, 2004 at 10:14:17AM -0700, Sean O'Dell wrote: > | Okay, I now understand how they're expressed, but isn't > | "clarkevans.com,2002" still the namespace and "bing/wibble one" an > | identifier under that namespace? > > it is the taggingEntity of the tagURI, but if you used another > URI, it would not be so clear That's why I think of them as namespaces: because it might not always be a taguri, so it might not always be the name of the tagging entity. I just think of it as "namespace" because it's a string and everything is wrapped by it. > | I realize !one and !two are prefixes that will cook up the same fully > | qualified identifier, so they can't be re-emitted precisely as originally > | presented. I understand why that shouldn't be allowed. > > Cool. That's all. But when you say namespace, it really has > a set of implications that the space and localpart remain > distinctly identifiable. ;) Isn't the space distinctly identifiable? Sean O'Dell |
From: Clark C. E. <cc...@cl...> - 2004-09-08 15:21:47
|
On Tue, Sep 07, 2004 at 12:18:31PM -0700, Sean O'Dell wrote: | > Cool. That's all. But when you say namespace, it really has | > a set of implications that the space and localpart remain | > distinctly identifiable. ;) | | Isn't the space distinctly identifiable? For tagURI, the taggingEntity is quite identifiable, but there isn't a 1-1 correspondence with taggingEntity and YAML's prefix mechanism: > %TAG !one! tag:clarkevans.com,2002: > %TAG !two! tag:clarkevans.com,2002:bing/ > --- > !one!bing/wibble one: this is > !two!wibble one: a duplicate key Both the prefix 'one' and 'two' have the same taggingEntity - "clarkevans.com,2002", but they are different prefixes. It is for this reason that calling a YAML prefix a namespace isn't quite accurate. After 'cooking', you'd have no idea that I used two %TAGs here, since this (invalid) YAML is also equivalent to: %TAG !one! tag:clarkevans.com,2002: --- !one!bing/wibble one: this is !one!bing/wibble one: a duplicate key ... Make sense? It's not that your thoughts are totally off, just that thinking of it as a distinct (namespace,local-part) pair may lead you to the wrong conclusion; that the first document is valid, where its equivalent in the second example is clearly not valid. Cheers, Clark -- Clark C. Evans Prometheus Research, LLC. http://www.prometheusresearch.com/ o office: +1.203.777.2550 ~/ , mobile: +1.203.444.0557 // (( Prometheus Research: Transforming Data Into Knowledge \\ , \/ - Research Exchange Database /\ - Survey & Assessment Technologies ` \ - Software Tools for Researchers ~ * |
From: Clark C. E. <cc...@cl...> - 2004-09-09 15:14:30
|
On Tue, Sep 07, 2004 at 11:17:20AM -0400, Clark C. Evans wrote: | Open Issues for YAML 1.1 | | - see Clark's post "Unspecifed Tags and the rise of an Imp", this is | still under discussion; which adopts David's suggestion of 'cooking' | untagged nodes at the parser level with a well-known tag. This seems to be resolved with Oren's proposal, using alot of the details in David's post (but leaving out the concrete plain type); we are waiting for Brian's approval. | - any other 'gripes' people have now that a change set is pending? Last call. Clark |
From: why t. l. s. <yam...@wh...> - 2004-09-09 16:59:34
|
Clark C. Evans wrote: >| - any other 'gripes' people have now that a change set is pending? > >Last call. > > Can I start coding? I'm dying to get crackin on this. _why |
From: Clark C. E. <cc...@cl...> - 2004-09-09 17:21:50
|
On Thu, Sep 09, 2004 at 10:58:49AM -0600, why the lucky stiff wrote: | Can I start coding? I'm dying to get crackin on this. I think Brian has to approve the ?implicit -- but we have explicit approval on the other items. The spec will be updated within a few weeks (it takes time/effort to consolidate fuzzy list talk and turn it into words/diagrams). I'll be updating the first part of the spec; Oren will be focusing on the productions (per usual). In any case, if anyone wants to help, you could submit patches to the specification source, http://cvs.sourceforge.net/viewcvs.py/yaml/spec/spec.dbk Also, I'm sure Brian or Tim could use help with the Perl/Python implementations. Also, I was thinking... emitting is perhaps a bit easier than parsing, does anyone care to help with a glorified emitter in "C"? Cheers! Clark P.S. I _hope_ there arn't any other items pending, other than spec editing issues (David has been very helpful with identifying inconsistencies, and Tim has been awesome pointing out production implementation quirks). |