Re: Tag Spec

Trans <[email protected]>
Newsgroups gmane.text.yaml.general
Message-ID <CAEu+kw2h8M=JQw5sfd3QTNkWn_CEjkUxkQsj2iEURBzbLMnWmg@mail.gmail.com>
On Sun, Feb 3, 2013 at 1:31 PM, Oren Ben-Kiki <[email protected]>wrote:

> The question isn't one of ease of parsing (we all know YAML isn't easy to
> parse :-).
>

:-) Indeed!

It is a matter of ambiguity. The !<verbatim> syntax was added very late in
> the game, to allow avoiding the tag prefix games.
>

>
The thinking isn't "domain" vs. "local", the thinking is "full arbitrary
> URI" (inside <...>) vs. "suffix added to some arbitrary URI prefix"
> (without the <...>). The difference between "!", "!!" and "!foo!" is just
> "which URI prefix should we use here".
>

Though in practice that's what people see. Perhaps the better terminology
is "globally unique" vs "local" tags. Although determining if a prefix is
applied would depend on whether the tag contains a `:` or not, sticking
with current spec, !<...> tags would still not resolve. To clarify the
difference:

    %TAG ! tag:foo.org/
    ---
    - !foo                   => !<tag:foo.org/foo>
    - !tag:bar.org/bar   => !<tag:bar.org/bar>

Also, I think this would open up `!<foo>` to be a legal local tag, rather
then the degenerate global tag it is now b/c it is not a valid URI. So,
without a `%TAG !` directive:

    ---
    - !foo                 => !<foo>

So the `!` would no longer have any significance if a tags *name*. It would
be used only to designate a tag and to sub prefixes, but a local tag would
not need to be `!foo` any more, just `foo`.

If we said "we don't attach any prefix if what follows the "!" looks like a
> complete URI" we'd be entering a world of pain. URIs can be in all sort of
> forms: "urn:isbn:0-395-36341-1" is a URI and hence (if someone wanted) !<
> urn:isbn:0-395-36341-1> would be a valid (if somewhat insane) tag. So
> "looking like a complete URI" isn't really easy to define. "Looking like a
> tag URI" is well-defined, but YAML really doesn't insist on using "tag
> URIs", even though we call the "node type tags", well, tags.
>

I'm not seeing how this translates into be a world of pain. Keeping it
simple, as in "does it contain a `:`" should suffice b/c `:` is required of
a valid URI. Local tags can live without them. Some adjustment might be
required by end users in rare cases. Like your example, they could use !<
urn:isbn#0-395-36341-1>. I don't think it's too much to ask of end-users
that local tags not use `:`. (If it really is too much to ask then perhaps
a different escape notion could be allowed, e.g `![urn:isbn:0-395-36341-1]`.

(Note, before I suggested that `/` be an indicator of global tag too. In
that case if no `:` is present, `tag:` would be assumed. That just seemed
like a nice convenience, but it is not necessary.)

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_jan

_______________________________________________
Yaml-core mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/yaml-core
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.