<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><br></div>If you want to keep exclusions, and to some extent left/right-most child, I think you only have a few options.  For example, how do I exclude a version component but not a binary component with the same bytes?  Are you going to add a MarkedComponent option to each exclusion predicate?<div><br></div><div>1) Use one “T” then always use a (key=value) pair in the name component of every name component.  This is a TLKV encoding.</div><div>2) Ditch TLV for name components, use a run-length encoding L(key=value) (LKV encoding), the exclude will include the “KV” as the “NameComponent”.</div><div>3) Use #2 with the observation that it’s really LTV encoding by another name.</div><div>4) Use one “T” and use the “_v/…” name component pairs.</div><div>5) Use MarkedComponents and extend the exclusion predicate to include the type.</div><div>6) Don’t use exclusions (the ccnx 1.0 option)</div><div><br></div><div>It is not straightforward to include the type directly in the exclusion if you use multiple "T" TLV encoding with multiple types.  You’d need to change the grammar of the exclusion.</div><div><br></div><div><pre style="margin-top: 0px; margin-bottom: 0px; padding: 1.5em; box-sizing: border-box; font-size: 0.9em; direction: ltr; color: rgb(34, 34, 34); border-width: 2px; border-style: solid none; border-color: rgb(198, 201, 203); background-color: rgb(247, 247, 247); background-position: initial initial; background-repeat: initial initial;">Exclude ::= EXCLUDE-TYPE TLV-LENGTH Any? (NameComponent (Any)?)+
Any ::= ANY-TYPE TLV-LENGTH(=0)</pre><div><br></div></div><div>Did I miss anything?</div><div><br></div><div>Marc</div><div><br><div><div>On Sep 17, 2014, at 10:10 AM, Thompson, Jeff <<a href="mailto:jefft0@remap.ucla.edu">jefft0@remap.ucla.edu</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">

<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px; font-family: Calibri, sans-serif;">
<div>Hi Junxiao,</div>
<div><br>
</div>
<div>In your MarkedComponent proposal, would you want to make the marker code fixed-length to address the concerns explained by Marc?  In other words, the desire that a shorter name component value always sorts before a longer component value, regardless of
 its type?  (The risk is that a shorter component value may have a marker code which encodes as a long VAR-NUMBER which would make the overall TLV longer and mess up the sorting.)</div>
<div><br>
</div>
<div>- Jeff T</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family: Calibri; font-size: 11pt; text-align: left; border-width: 1pt medium medium; border-style: solid none none; padding: 3pt 0in 0in; border-top-color: rgb(181, 196, 223);">
<span style="font-weight:bold">From: </span>Junxiao Shi <<a href="mailto:shijunxiao@email.arizona.edu">shijunxiao@email.arizona.edu</a>><br>
<span style="font-weight:bold">Date: </span>Wednesday, September 17, 2014 7:46 AM<br>
<span style="font-weight:bold">To: </span>"<a href="mailto:Marc.Mosko@parc.com">Marc.Mosko@parc.com</a>" <<a href="mailto:Marc.Mosko@parc.com">Marc.Mosko@parc.com</a>><br>
<span style="font-weight:bold">Cc: </span>"<a href="mailto:ndn-interest@lists.cs.ucla.edu">ndn-interest@lists.cs.ucla.edu</a>" <<a href="mailto:ndn-interest@lists.cs.ucla.edu">ndn-interest@lists.cs.ucla.edu</a>><br>
<span style="font-weight:bold">Subject: </span>Re: [Ndn-interest] any comments on naming convention?<br>
</div>
<div><br>
</div>
<div>
<div>
<div dir="ltr">Hi Marc
<div><br>
</div>
<div>The MarkedComponent proposal <<a href="http://www.lists.cs.ucla.edu/pipermail/ndn-interest/2014-September/000085.html">http://www.lists.cs.ucla.edu/pipermail/ndn-interest/2014-September/000085.html</a>> is precisely a T0/T1 system:<br>
</div>
<div>
<ul>
<li>T0=NameComponent</li><li>T1=MarkedComponent</li><li>key is encoded as variable length number (same way as T)</li></ul>
</div>
<div>This still requires all codes to distinguish between NameComponent and MarkedComponent everywhere, but we'll have exactly two types, instead of potentially many types.</div>
<div><br>
</div>
<div>However, I agree that putting the key into TLV-TYPE is better than using MarkedComponent or having a key in every component, because the processing cost isn't any different.</div>
<div><br>
</div>
<div>Yours, Junxiao<br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Sep 17, 2014 at 7:36 AM, <span dir="ltr"><<a href="mailto:Marc.Mosko@parc.com" target="_blank">Marc.Mosko@parc.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex" type="cite">
I think if you require all name components to have a “key=value” format, then that is an ok system, but it seems duplicative of having the TLV type.   Personally, I would then encode the “key=“ piece the same way you encode the TLV “T” (i.e. the 1/3/5 system).<br>
<br>
Though it does seem rather duplicative of having the TLV type, as I said.  I think having one T (call it T0) for non-tagged and one T (call it T1) for “key=value” introduces more overhead than is needed, as you now have two type systems for one value.  You
 will need to keep the T0/T1 distinction everywhere in the code so you know if there is a “key=“ embedded in the name.  Programmatically, you’ll probably need to sprout a new class or getter/setter for the “key=“ for those types.  It seems simpler to me for
 the TLV “T” to always be associated with a name component, so you are always working with the (T, value) pair.<br>
<span class=""><font color="#888888"><br>
Marc<br>
</font></span>
<div class="">
<div class="h5"><br>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</div>
</span>
</div>

</blockquote></div><br></div></body></html>