title: I don't understand what a YAML tag is
body: <p>I get it on some level, but I have yet to see an example that didn't bring up more questions than answers.</p>
  
  <p><a href="http://rhnh.net/2011/01/31/yaml-tutorial">http://rhnh.net/2011/01/31/yaml-tutorial</a></p>
  
  <pre><code># Set.new([1,2]).to_yaml
  --- !ruby/object:Set 
  hash: 
    1: true
    2: true
  </code></pre>
  
  <p>I get that we're declaring a Set tag.  I don't get what the subsequent hash mapping has to do with it.  Are we declaring a schema?  Can someone show me an example with multiple tag declarations?</p>
  
  <p>I've read through the spec: <a href="http://yaml.org/spec/1.2/spec.html#id2761292">http://yaml.org/spec/1.2/spec.html#id2761292</a></p>
  
  <pre><code>%TAG ! tag:clarkevans.com,2002:
  </code></pre>
  
  <p>Is this declaring a schema?  Is there something else a parser has to do in order to successfully parse the file?  A schema file of some type?</p>
  
  <p><a href="http://www.yaml.org/refcard.html">http://www.yaml.org/refcard.html</a></p>
  
  <pre><code>Tag property: # Usually unspecified.
      none    : Unspecified tag (automatically resolved by application).
      '!'     : Non-specific tag (by default, "!!map"/"!!seq"/"!!str").
      '!foo'  : Primary (by convention, means a local "!foo" tag).
      '!!foo' : Secondary (by convention, means "tag:yaml.org,2002:foo").
      '!h!foo': Requires "%TAG !h! &lt;prefix&gt;" (and then means "&lt;prefix&gt;foo").
      '!&lt;foo&gt;': Verbatim tag (always means "foo").
  </code></pre>
  
  <p>Why is it relevant to have a primary and secondary tag, and why does a secondary tag refer to a URI?  What problem is being solved by having these?</p>
  
  <p>I seem to see a lot of "what they are", and no "why are they there", or "what are they used for".</p>